diff --git a/bindings/pascocoa/appkit/AppKit.inc b/bindings/pascocoa/appkit/AppKit.inc index 0bde45783..fd2d81c83 100644 --- a/bindings/pascocoa/appkit/AppKit.inc +++ b/bindings/pascocoa/appkit/AppKit.inc @@ -27,10 +27,10 @@ #import #import #import -#import -#import -#import -#import +#import } +{$include NSMenu.inc} +{$include NSMenuItem.inc} +{#import #import } {$include NSBitmapImageRep.inc} {#import diff --git a/bindings/pascocoa/appkit/NSMenu.inc b/bindings/pascocoa/appkit/NSMenu.inc new file mode 100644 index 000000000..c2be73642 --- /dev/null +++ b/bindings/pascocoa/appkit/NSMenu.inc @@ -0,0 +1,635 @@ +{%mainunit appkit.pas} +(* + NSMenu.h + Application Kit + Copyright (c) 1996-2005, Apple Computer, Inc. + All rights reserved. +*) + +{$ifdef HEADER} +{$ifndef NSMENU_PAS_H} +{$define NSMENU_PAS_H} + +{$include AppKitDefines.inc} +{$include NSMenuItem.inc} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} +//APPKIT_EXTERN NSString *NSMenuWillSendActionNotification; +//APPKIT_EXTERN NSString *NSMenuDidSendActionNotification; +//APPKIT_EXTERN NSString *NSMenuDidAddItemNotification; +//APPKIT_EXTERN NSString *NSMenuDidRemoveItemNotification; +//APPKIT_EXTERN NSString *NSMenuDidChangeItemNotification; +//APPKIT_EXTERN NSString *NSMenuDidEndTrackingNotification AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER; +{$endif} +{$endif} + +{$ifdef FORWARD} +{$ifndef NSMENU_PAS__FORWARD} +{$define NSMENU_PAS__FORWARD} + + NSMenu = class; +{$endif} +{$endif} + +{$ifdef CLASSES} +{$ifndef NSMENU_PAS_C} +{$define NSMENU_PAS_C} + +{$include AppKitDefines.inc} +{$include NSMenuItem.inc} + + { NSMenu } + + NSMenu = class(NSObject) + public + class function getClass: objc.id; override; + // All instance variables are private + class procedure setMenuZone(_aZone: NSZone); + class function menuZone: NSZone; + class procedure popUpContextMenu_withEvent_forView(_menu: objc.id {NSMenu}; _event: objc.id {NSEvent}; _view: objc.id {NSView}); + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + class procedure popUpContextMenu_withEvent_forView_withFont(_menu: objc.id {NSMenu}; _event: objc.id {NSEvent}; _view: objc.id {NSView}; _font: objc.id {NSFont}); + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2} + class procedure setMenuBarVisible(_visible: LongBool); + class function menuBarVisible: LongBool; + {.$endif} + constructor initWithTitle(_aTitle: CFStringRef); + procedure setTitle(_aString: CFStringRef); + function title: CFStringRef; + procedure setSupermenu(_supermenu: objc.id {NSMenu}); + function supermenu: objc.id;{NSMenu} + // Never call the set method directly it is there only for subclassers. + procedure insertItem_atIndex(_newItem: objc.id; __index: Integer); + procedure addItem(_newItem: objc.id); + function insertItemWithTitle_action_keyEquivalent_atIndex(_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef; __index: Integer): objc.id; + function addItemWithTitle_action_keyEquivalent(_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef): objc.id; + procedure removeItemAtIndex(__index: Integer); + procedure removeItem(_item: objc.id); + procedure setSubmenu_forItem(_aMenu: objc.id {NSMenu}; _anItem: objc.id); + function itemArray: CFArrayRef; + function numberOfItems: Integer; + function indexOfItem(__index: objc.id): Integer; + function indexOfItemWithTitle(_aTitle: CFStringRef): Integer; + function indexOfItemWithTag(_aTag: Integer): Integer; + function indexOfItemWithRepresentedObject(__object: objc.id): Integer; + function indexOfItemWithSubmenu(_submenu: objc.id {NSMenu}): Integer; + function indexOfItemWithTarget_andAction(_target: objc.id; _actionSelector: SEL): Integer; + function itemAtIndex(__index: Integer): objc.id; + function itemWithTitle(_aTitle: CFStringRef): objc.id; + function itemWithTag(_tag: Integer): objc.id; + procedure setAutoenablesItems(_flag: LongBool); + function autoenablesItems: LongBool; + function performKeyEquivalent(_theEvent: objc.id {NSEvent}): LongBool; + procedure update; + procedure setMenuChangedMessagesEnabled(_flag: LongBool); + function menuChangedMessagesEnabled: LongBool; + procedure itemChanged(_item: objc.id); + procedure helpRequested(_eventPtr: objc.id {NSEvent}); + procedure setMenuRepresentation(_menuRep: objc.id); + function menuRepresentation: objc.id; + procedure setContextMenuRepresentation(_menuRep: objc.id); + function contextMenuRepresentation: objc.id; + procedure setTearOffMenuRepresentation(_menuRep: objc.id); + function tearOffMenuRepresentation: objc.id; + function isTornOff: LongBool; + // These methods are platform specific. They really make little sense on Windows. + // Their use is discouraged. + function attachedMenu: objc.id;{NSMenu} + function isAttached: LongBool; + procedure sizeToFit; + function locationForSubmenu(_aSubmenu: objc.id {NSMenu}): NSPoint; + procedure performActionForItemAtIndex(__index: Integer); + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + procedure setDelegate(_anObject: objc.id); + function delegate: objc.id; + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4} + function menuBarHeight: Single; + {.$endif} + procedure submenuAction(_sender: objc.id); + end; + + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} +{$endif} +{$endif} + +{$ifdef IMPLEMENTATION} +const + StrNSMenu_NSMenu = 'NSMenu'; + StrNSMenu_setMenuZone = 'setMenuZone:'; + StrNSMenu_menuZone = 'menuZone'; + StrNSMenu_popUpContextMenu_withEvent_forView = 'popUpContextMenu:withEvent:forView:'; + StrNSMenu_popUpContextMenu_withEvent_forView_withFont = 'popUpContextMenu:withEvent:forView:withFont:'; + StrNSMenu_setMenuBarVisible = 'setMenuBarVisible:'; + StrNSMenu_menuBarVisible = 'menuBarVisible'; + StrNSMenu_initWithTitle = 'initWithTitle:'; + StrNSMenu_setTitle = 'setTitle:'; + StrNSMenu_title = 'title'; + StrNSMenu_setSupermenu = 'setSupermenu:'; + StrNSMenu_supermenu = 'supermenu'; + StrNSMenu_insertItem_atIndex = 'insertItem:atIndex:'; + StrNSMenu_addItem = 'addItem:'; + StrNSMenu_insertItemWithTitle_action_keyEquivalent_atIndex = 'insertItemWithTitle:action:keyEquivalent:atIndex:'; + StrNSMenu_addItemWithTitle_action_keyEquivalent = 'addItemWithTitle:action:keyEquivalent:'; + StrNSMenu_removeItemAtIndex = 'removeItemAtIndex:'; + StrNSMenu_removeItem = 'removeItem:'; + StrNSMenu_setSubmenu_forItem = 'setSubmenu:forItem:'; + StrNSMenu_itemArray = 'itemArray'; + StrNSMenu_numberOfItems = 'numberOfItems'; + StrNSMenu_indexOfItem = 'indexOfItem:'; + StrNSMenu_indexOfItemWithTitle = 'indexOfItemWithTitle:'; + StrNSMenu_indexOfItemWithTag = 'indexOfItemWithTag:'; + StrNSMenu_indexOfItemWithRepresentedObject = 'indexOfItemWithRepresentedObject:'; + StrNSMenu_indexOfItemWithSubmenu = 'indexOfItemWithSubmenu:'; + StrNSMenu_indexOfItemWithTarget_andAction = 'indexOfItemWithTarget:andAction:'; + StrNSMenu_itemAtIndex = 'itemAtIndex:'; + StrNSMenu_itemWithTitle = 'itemWithTitle:'; + StrNSMenu_itemWithTag = 'itemWithTag:'; + StrNSMenu_setAutoenablesItems = 'setAutoenablesItems:'; + StrNSMenu_autoenablesItems = 'autoenablesItems'; + StrNSMenu_performKeyEquivalent = 'performKeyEquivalent:'; + StrNSMenu_update = 'update'; + StrNSMenu_setMenuChangedMessagesEnabled = 'setMenuChangedMessagesEnabled:'; + StrNSMenu_menuChangedMessagesEnabled = 'menuChangedMessagesEnabled'; + StrNSMenu_itemChanged = 'itemChanged:'; + StrNSMenu_helpRequested = 'helpRequested:'; + StrNSMenu_setMenuRepresentation = 'setMenuRepresentation:'; + StrNSMenu_menuRepresentation = 'menuRepresentation'; + StrNSMenu_setContextMenuRepresentation = 'setContextMenuRepresentation:'; + StrNSMenu_contextMenuRepresentation = 'contextMenuRepresentation'; + StrNSMenu_setTearOffMenuRepresentation = 'setTearOffMenuRepresentation:'; + StrNSMenu_tearOffMenuRepresentation = 'tearOffMenuRepresentation'; + StrNSMenu_isTornOff = 'isTornOff'; + StrNSMenu_attachedMenu = 'attachedMenu'; + StrNSMenu_isAttached = 'isAttached'; + StrNSMenu_sizeToFit = 'sizeToFit'; + StrNSMenu_locationForSubmenu = 'locationForSubmenu:'; + StrNSMenu_performActionForItemAtIndex = 'performActionForItemAtIndex:'; + StrNSMenu_setDelegate = 'setDelegate:'; + StrNSMenu_delegate = 'delegate'; + StrNSMenu_menuBarHeight = 'menuBarHeight'; + + StrNSMenu_submenuAction = 'submenuAction:'; + +{ NSMenu } + +class function NSMenu.getClass: objc.id; +begin + Result := objc_getClass(StrNSMenu_NSMenu); +end; + +class procedure NSMenu.setMenuZone(_aZone: NSZone); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aZone: NSZone); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(getClass, sel_registerName(PChar(StrNSMenu_setMenuZone)), _aZone); +end; + +class function NSMenu.menuZone: NSZone; +begin + Result := NSZone(objc_msgSend(getClass, sel_registerName(PChar(StrNSMenu_menuZone)), [])); +end; + +class procedure NSMenu.popUpContextMenu_withEvent_forView(_menu: objc.id {NSMenu}; _event: objc.id {NSEvent}; _view: objc.id {NSView}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_menu: objc.id {NSMenu}; _event: objc.id {NSEvent}; _view: objc.id {NSView}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(getClass, sel_registerName(PChar(StrNSMenu_popUpContextMenu_withEvent_forView)), _menu, _event, _view); +end; + +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} +class procedure NSMenu.popUpContextMenu_withEvent_forView_withFont(_menu: objc.id {NSMenu}; _event: objc.id {NSEvent}; _view: objc.id {NSView}; _font: objc.id {NSFont}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_menu: objc.id {NSMenu}; _event: objc.id {NSEvent}; _view: objc.id {NSView}; _font: objc.id {NSFont}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(getClass, sel_registerName(PChar(StrNSMenu_popUpContextMenu_withEvent_forView_withFont)), _menu, _event, _view, _font); +end; + +{.$endif} +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2} +class procedure NSMenu.setMenuBarVisible(_visible: LongBool); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_visible: LongBool); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(getClass, sel_registerName(PChar(StrNSMenu_setMenuBarVisible)), _visible); +end; + +class function NSMenu.menuBarVisible: LongBool; +begin + Result := LongBool(objc_msgSend(getClass, sel_registerName(PChar(StrNSMenu_menuBarVisible)), [])); +end; + +{.$endif} +constructor NSMenu.initWithTitle(_aTitle: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aTitle: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSMenu_initWithTitle)), _aTitle); +end; + +procedure NSMenu.setTitle(_aString: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aString: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setTitle)), _aString); +end; + +function NSMenu.title: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_title)), [])); +end; + +procedure NSMenu.setSupermenu(_supermenu: objc.id {NSMenu}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_supermenu: objc.id {NSMenu}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setSupermenu)), _supermenu); +end; + +function NSMenu.supermenu: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_supermenu)), [])); +end; + +procedure NSMenu.insertItem_atIndex(_newItem: objc.id; __index: Integer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_newItem: objc.id; __index: Integer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_insertItem_atIndex)), _newItem, __index); +end; + +procedure NSMenu.addItem(_newItem: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_newItem: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_addItem)), _newItem); +end; + +function NSMenu.insertItemWithTitle_action_keyEquivalent_atIndex(_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef; __index: Integer): objc.id; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef; __index: Integer): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSMenu_insertItemWithTitle_action_keyEquivalent_atIndex)), _aString, _aSelector, _charCode, __index)); +end; + +function NSMenu.addItemWithTitle_action_keyEquivalent(_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef): objc.id; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSMenu_addItemWithTitle_action_keyEquivalent)), _aString, _aSelector, _charCode)); +end; + +procedure NSMenu.removeItemAtIndex(__index: Integer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;__index: Integer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_removeItemAtIndex)), __index); +end; + +procedure NSMenu.removeItem(_item: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_item: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_removeItem)), _item); +end; + +procedure NSMenu.setSubmenu_forItem(_aMenu: objc.id {NSMenu}; _anItem: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aMenu: objc.id {NSMenu}; _anItem: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setSubmenu_forItem)), _aMenu, _anItem); +end; + +function NSMenu.itemArray: CFArrayRef; +begin + Result := CFArrayRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_itemArray)), [])); +end; + +function NSMenu.numberOfItems: Integer; +begin + Result := Integer(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_numberOfItems)), [])); +end; + +function NSMenu.indexOfItem(__index: objc.id): Integer; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__index: objc.id): Integer; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := Integer(vmethod(Handle, sel_registerName(PChar(StrNSMenu_indexOfItem)), __index)); +end; + +function NSMenu.indexOfItemWithTitle(_aTitle: CFStringRef): Integer; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aTitle: CFStringRef): Integer; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := Integer(vmethod(Handle, sel_registerName(PChar(StrNSMenu_indexOfItemWithTitle)), _aTitle)); +end; + +function NSMenu.indexOfItemWithTag(_aTag: Integer): Integer; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aTag: Integer): Integer; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := Integer(vmethod(Handle, sel_registerName(PChar(StrNSMenu_indexOfItemWithTag)), _aTag)); +end; + +function NSMenu.indexOfItemWithRepresentedObject(__object: objc.id): Integer; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__object: objc.id): Integer; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := Integer(vmethod(Handle, sel_registerName(PChar(StrNSMenu_indexOfItemWithRepresentedObject)), __object)); +end; + +function NSMenu.indexOfItemWithSubmenu(_submenu: objc.id {NSMenu}): Integer; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_submenu: objc.id {NSMenu}): Integer; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := Integer(vmethod(Handle, sel_registerName(PChar(StrNSMenu_indexOfItemWithSubmenu)), _submenu)); +end; + +function NSMenu.indexOfItemWithTarget_andAction(_target: objc.id; _actionSelector: SEL): Integer; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_target: objc.id; _actionSelector: SEL): Integer; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := Integer(vmethod(Handle, sel_registerName(PChar(StrNSMenu_indexOfItemWithTarget_andAction)), _target, _actionSelector)); +end; + +function NSMenu.itemAtIndex(__index: Integer): objc.id; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;__index: Integer): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSMenu_itemAtIndex)), __index)); +end; + +function NSMenu.itemWithTitle(_aTitle: CFStringRef): objc.id; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aTitle: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSMenu_itemWithTitle)), _aTitle)); +end; + +function NSMenu.itemWithTag(_tag: Integer): objc.id; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_tag: Integer): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSMenu_itemWithTag)), _tag)); +end; + +procedure NSMenu.setAutoenablesItems(_flag: LongBool); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_flag: LongBool); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setAutoenablesItems)), _flag); +end; + +function NSMenu.autoenablesItems: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_autoenablesItems)), [])); +end; + +function NSMenu.performKeyEquivalent(_theEvent: objc.id {NSEvent}): LongBool; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_theEvent: objc.id {NSEvent}): LongBool; cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + Result := LongBool(vmethod(Handle, sel_registerName(PChar(StrNSMenu_performKeyEquivalent)), _theEvent)); +end; + +procedure NSMenu.update; +begin + objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_update)), []); +end; + +procedure NSMenu.setMenuChangedMessagesEnabled(_flag: LongBool); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_flag: LongBool); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setMenuChangedMessagesEnabled)), _flag); +end; + +function NSMenu.menuChangedMessagesEnabled: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_menuChangedMessagesEnabled)), [])); +end; + +procedure NSMenu.itemChanged(_item: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_item: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_itemChanged)), _item); +end; + +procedure NSMenu.helpRequested(_eventPtr: objc.id {NSEvent}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_eventPtr: objc.id {NSEvent}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_helpRequested)), _eventPtr); +end; + +procedure NSMenu.setMenuRepresentation(_menuRep: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_menuRep: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setMenuRepresentation)), _menuRep); +end; + +function NSMenu.menuRepresentation: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_menuRepresentation)), [])); +end; + +procedure NSMenu.setContextMenuRepresentation(_menuRep: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_menuRep: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setContextMenuRepresentation)), _menuRep); +end; + +function NSMenu.contextMenuRepresentation: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_contextMenuRepresentation)), [])); +end; + +procedure NSMenu.setTearOffMenuRepresentation(_menuRep: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_menuRep: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setTearOffMenuRepresentation)), _menuRep); +end; + +function NSMenu.tearOffMenuRepresentation: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_tearOffMenuRepresentation)), [])); +end; + +function NSMenu.isTornOff: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_isTornOff)), [])); +end; + +function NSMenu.attachedMenu: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_attachedMenu)), [])); +end; + +function NSMenu.isAttached: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_isAttached)), [])); +end; + +procedure NSMenu.sizeToFit; +begin + objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_sizeToFit)), []); +end; + +function NSMenu.locationForSubmenu(_aSubmenu: objc.id {NSMenu}): NSPoint; +type + TmsgSendWrapper = procedure (result_param: Pointer; param1: objc.id; param2: SEL;_aSubmenu: objc.id {NSMenu}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend_fpret); + vmethod(@Result, Handle, sel_registerName(PChar(StrNSMenu_locationForSubmenu)), _aSubmenu); +end; + +procedure NSMenu.performActionForItemAtIndex(__index: Integer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;__index: Integer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_performActionForItemAtIndex)), __index); +end; + +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} +procedure NSMenu.setDelegate(_anObject: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_setDelegate)), _anObject); +end; + +function NSMenu.delegate: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_delegate)), [])); +end; + +{.$endif} +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4} +function NSMenu.menuBarHeight: Single; +begin + Result := Single(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenu_menuBarHeight)), [])); +end; + +{.$endif} +procedure NSMenu.submenuAction(_sender: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_sender: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenu_submenuAction)), _sender); +end; + +{$endif} diff --git a/bindings/pascocoa/appkit/NSMenuItem.inc b/bindings/pascocoa/appkit/NSMenuItem.inc new file mode 100644 index 000000000..95257ab49 --- /dev/null +++ b/bindings/pascocoa/appkit/NSMenuItem.inc @@ -0,0 +1,607 @@ +{%mainunit appkit.pas} +(* + NSMenuItem.h + Application Kit + Copyright (c) 1996-2005, Apple Computer, Inc. + All rights reserved. +*) + +{$ifdef HEADER} +{$ifndef NSMENUITEM_PAS_H} +{$define NSMENUITEM_PAS_H} + +{$include AppKitDefines.inc} +{.$include NSUserInterfaceValidation.inc} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} +//@protocol NSMenuItem +//+ (void)setUsesUserKeyEquivalents:(BOOL)flag; +//+ (BOOL)usesUserKeyEquivalents; +//+ (id )separatorItem; +//- (id)initWithTitle:(NSString *)aString action:(SEL)aSelector keyEquivalent:(NSString *)charCode; +//- (void)setMenu:(NSMenu *)menu; +//- (NSMenu *)menu; +//- (BOOL)hasSubmenu; +//- (void)setSubmenu:(NSMenu *)submenu; +//- (NSMenu *)submenu; +//- (void)setTitle:(NSString *)aString; +//- (NSString *)title; +//- (void)setAttributedTitle:(NSAttributedString*)string; +//- (NSAttributedString*)attributedTitle; +//- (BOOL)isSeparatorItem; +//- (void)setKeyEquivalent:(NSString *)aKeyEquivalent; +//- (NSString *)keyEquivalent; +//- (void)setKeyEquivalentModifierMask:(unsigned int)mask; +//- (unsigned int)keyEquivalentModifierMask; +//- (NSString *)userKeyEquivalent; +//- (unsigned int)userKeyEquivalentModifierMask; +//- (void)setMnemonicLocation:(unsigned)location; +//- (unsigned)mnemonicLocation; +//- (NSString *)mnemonic; +//- (void)setTitleWithMnemonic:(NSString *)stringWithAmpersand; +//- (void)setImage:(NSImage *)menuImage; +//- (NSImage *)image; +//- (void)setState:(int)state; +//- (int)state; +//- (void)setOnStateImage:(NSImage *)image; // checkmark by default +//- (NSImage *)onStateImage; +//- (void)setOffStateImage:(NSImage *)image; // none by default +//- (NSImage *)offStateImage; +//- (void)setMixedStateImage:(NSImage *)image; // horizontal line by default? +//- (NSImage *)mixedStateImage; +//- (void)setEnabled:(BOOL)flag; +//- (BOOL)isEnabled; +//- (void) setAlternate:(BOOL)isAlternate; +//- (BOOL) isAlternate; +//- (void) setIndentationLevel:(int)indentationLevel; +//- (int) indentationLevel; +//- (void)setTarget:(id)anObject; +//- (id)target; +//- (void)setAction:(SEL)aSelector; +//- (SEL)action; +//- (void)setTag:(int)anInt; +//- (int)tag; +//- (void)setRepresentedObject:(id)anObject; +//- (id)representedObject; +//- (void) setToolTip:(NSString*)toolTip; +//- (NSString*) toolTip; +//@end +{$endif} +{$endif} + +{$ifdef FORWARD} +{$ifndef NSMENUITEM_PAS__FORWARD} +{$define NSMENUITEM_PAS__FORWARD} + + NSMenuItem = class; +{$endif} +{$endif} + +{$ifdef CLASSES} +{$ifndef NSMENUITEM_PAS_C} +{$define NSMENUITEM_PAS_C} + +{$include AppKitDefines.inc} +{.$include NSUserInterfaceValidation.inc} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + {.$endif} + + { NSMenuItem } + + NSMenuItem = class(NSObject) + public + class function getClass: objc.id; override; + // All instance variables are private + class procedure setUsesUserKeyEquivalents(_flag: LongBool); + class function usesUserKeyEquivalents: LongBool; + constructor separatorItem; + constructor initWithTitle_action_keyEquivalent(_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef); + procedure setMenu(_menu: objc.id {NSMenu}); + function menu: objc.id;{NSMenu} + // Never call the set method directly it is there only for subclassers. + function hasSubmenu: LongBool; + procedure setSubmenu(_submenu: objc.id {NSMenu}); + function submenu: objc.id;{NSMenu} + procedure setTitle(_aString: CFStringRef); + function title: CFStringRef; + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + procedure setAttributedTitle(__string: objc.id {NSAttributedString}); + function attributedTitle: objc.id;{NSAttributedString} + {.$endif} + function isSeparatorItem: LongBool; + procedure setKeyEquivalent(_aKeyEquivalent: CFStringRef); + function keyEquivalent: CFStringRef; + procedure setKeyEquivalentModifierMask(_mask: LongWord); + function keyEquivalentModifierMask: LongWord; + function userKeyEquivalent: CFStringRef; + procedure setMnemonicLocation(_location: LongWord); + function mnemonicLocation: LongWord; + function mnemonic: CFStringRef; + procedure setTitleWithMnemonic(_stringWithAmpersand: CFStringRef); + procedure setImage(_menuImage: objc.id {NSImage}); + function image: objc.id;{NSImage} + procedure setState(_state: Integer); + function state: Integer; + procedure setOnStateImage(_image: objc.id {NSImage}); + // checkmark by default + function onStateImage: objc.id;{NSImage} + procedure setOffStateImage(_image: objc.id {NSImage}); + // none by default + function offStateImage: objc.id;{NSImage} + procedure setMixedStateImage(_image: objc.id {NSImage}); + // horizontal line by default? + function mixedStateImage: objc.id;{NSImage} + procedure setEnabled(_flag: LongBool); + function isEnabled: LongBool; + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + procedure setAlternate(_isAlternate: LongBool); + function isAlternate: LongBool; + procedure setIndentationLevel(_indentationLevel: Integer); + function indentationLevel: Integer; + {.$endif} + procedure setTarget(_anObject: objc.id); + function target: objc.id; + procedure setAction(_aSelector: SEL); + function action: SEL; + procedure setTag(_anInt: Integer); + function tag: Integer; + procedure setRepresentedObject(_anObject: objc.id); + function representedObject: objc.id; + {.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} + procedure setToolTip(_toolTip: CFStringRef); + function toolTip: CFStringRef; + {.$endif} + end; + +{$endif} +{$endif} + +{$ifdef IMPLEMENTATION} +const + StrNSMenuItem_NSMenuItem = 'NSMenuItem'; + StrNSMenuItem_setUsesUserKeyEquivalents = 'setUsesUserKeyEquivalents:'; + StrNSMenuItem_usesUserKeyEquivalents = 'usesUserKeyEquivalents'; + StrNSMenuItem_separatorItem = 'separatorItem'; + StrNSMenuItem_initWithTitle_action_keyEquivalent = 'initWithTitle:action:keyEquivalent:'; + StrNSMenuItem_setMenu = 'setMenu:'; + StrNSMenuItem_menu = 'menu'; + StrNSMenuItem_hasSubmenu = 'hasSubmenu'; + StrNSMenuItem_setSubmenu = 'setSubmenu:'; + StrNSMenuItem_submenu = 'submenu'; + StrNSMenuItem_setTitle = 'setTitle:'; + StrNSMenuItem_title = 'title'; + StrNSMenuItem_setAttributedTitle = 'setAttributedTitle:'; + StrNSMenuItem_attributedTitle = 'attributedTitle'; + StrNSMenuItem_isSeparatorItem = 'isSeparatorItem'; + StrNSMenuItem_setKeyEquivalent = 'setKeyEquivalent:'; + StrNSMenuItem_keyEquivalent = 'keyEquivalent'; + StrNSMenuItem_setKeyEquivalentModifierMask = 'setKeyEquivalentModifierMask:'; + StrNSMenuItem_keyEquivalentModifierMask = 'keyEquivalentModifierMask'; + StrNSMenuItem_userKeyEquivalent = 'userKeyEquivalent'; + StrNSMenuItem_setMnemonicLocation = 'setMnemonicLocation:'; + StrNSMenuItem_mnemonicLocation = 'mnemonicLocation'; + StrNSMenuItem_mnemonic = 'mnemonic'; + StrNSMenuItem_setTitleWithMnemonic = 'setTitleWithMnemonic:'; + StrNSMenuItem_setImage = 'setImage:'; + StrNSMenuItem_image = 'image'; + StrNSMenuItem_setState = 'setState:'; + StrNSMenuItem_state = 'state'; + StrNSMenuItem_setOnStateImage = 'setOnStateImage:'; + StrNSMenuItem_onStateImage = 'onStateImage'; + StrNSMenuItem_setOffStateImage = 'setOffStateImage:'; + StrNSMenuItem_offStateImage = 'offStateImage'; + StrNSMenuItem_setMixedStateImage = 'setMixedStateImage:'; + StrNSMenuItem_mixedStateImage = 'mixedStateImage'; + StrNSMenuItem_setEnabled = 'setEnabled:'; + StrNSMenuItem_isEnabled = 'isEnabled'; + StrNSMenuItem_setAlternate = 'setAlternate:'; + StrNSMenuItem_isAlternate = 'isAlternate'; + StrNSMenuItem_setIndentationLevel = 'setIndentationLevel:'; + StrNSMenuItem_indentationLevel = 'indentationLevel'; + StrNSMenuItem_setTarget = 'setTarget:'; + StrNSMenuItem_target = 'target'; + StrNSMenuItem_setAction = 'setAction:'; + StrNSMenuItem_action = 'action'; + StrNSMenuItem_setTag = 'setTag:'; + StrNSMenuItem_tag = 'tag'; + StrNSMenuItem_setRepresentedObject = 'setRepresentedObject:'; + StrNSMenuItem_representedObject = 'representedObject'; + StrNSMenuItem_setToolTip = 'setToolTip:'; + StrNSMenuItem_toolTip = 'toolTip'; + +{ NSMenuItem } + +class function NSMenuItem.getClass: objc.id; +begin + Result := objc_getClass(StrNSMenuItem_NSMenuItem); +end; + +class procedure NSMenuItem.setUsesUserKeyEquivalents(_flag: LongBool); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_flag: LongBool); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(getClass, sel_registerName(PChar(StrNSMenuItem_setUsesUserKeyEquivalents)), _flag); +end; + +class function NSMenuItem.usesUserKeyEquivalents: LongBool; +begin + Result := LongBool(objc_msgSend(getClass, sel_registerName(PChar(StrNSMenuItem_usesUserKeyEquivalents)), [])); +end; + +constructor NSMenuItem.separatorItem; +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(ClassID, sel_registerName(PChar(StrNSMenuItem_separatorItem))); +end; + +constructor NSMenuItem.initWithTitle_action_keyEquivalent(_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef); +type + TmsgSendWrapper = function (param1: objc.id; param2: SEL;_aString: CFStringRef; _aSelector: SEL; _charCode: CFStringRef): objc.id; cdecl; +var + vmethod: TmsgSendWrapper; +begin + ClassID := getClass(); + allocbuf := objc_msgSend(ClassID, sel_registerName(PChar(Str_alloc)), []); + vmethod := TmsgSendWrapper(@objc_msgSend); + Handle := vmethod(allocbuf, sel_registerName(PChar(StrNSMenuItem_initWithTitle_action_keyEquivalent)), _aString, _aSelector, _charCode); +end; + +procedure NSMenuItem.setMenu(_menu: objc.id {NSMenu}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_menu: objc.id {NSMenu}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setMenu)), _menu); +end; + +function NSMenuItem.menu: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_menu)), [])); +end; + +function NSMenuItem.hasSubmenu: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_hasSubmenu)), [])); +end; + +procedure NSMenuItem.setSubmenu(_submenu: objc.id {NSMenu}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_submenu: objc.id {NSMenu}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setSubmenu)), _submenu); +end; + +function NSMenuItem.submenu: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_submenu)), [])); +end; + +procedure NSMenuItem.setTitle(_aString: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aString: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setTitle)), _aString); +end; + +function NSMenuItem.title: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_title)), [])); +end; + +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} +procedure NSMenuItem.setAttributedTitle(__string: objc.id {NSAttributedString}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;__string: objc.id {NSAttributedString}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setAttributedTitle)), __string); +end; + +function NSMenuItem.attributedTitle: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_attributedTitle)), [])); +end; + +{.$endif} +function NSMenuItem.isSeparatorItem: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_isSeparatorItem)), [])); +end; + +procedure NSMenuItem.setKeyEquivalent(_aKeyEquivalent: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aKeyEquivalent: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setKeyEquivalent)), _aKeyEquivalent); +end; + +function NSMenuItem.keyEquivalent: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_keyEquivalent)), [])); +end; + +procedure NSMenuItem.setKeyEquivalentModifierMask(_mask: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_mask: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setKeyEquivalentModifierMask)), _mask); +end; + +function NSMenuItem.keyEquivalentModifierMask: LongWord; +begin + Result := LongWord(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_keyEquivalentModifierMask)), [])); +end; + +function NSMenuItem.userKeyEquivalent: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_userKeyEquivalent)), [])); +end; + +procedure NSMenuItem.setMnemonicLocation(_location: LongWord); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_location: LongWord); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setMnemonicLocation)), _location); +end; + +function NSMenuItem.mnemonicLocation: LongWord; +begin + Result := LongWord(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_mnemonicLocation)), [])); +end; + +function NSMenuItem.mnemonic: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_mnemonic)), [])); +end; + +procedure NSMenuItem.setTitleWithMnemonic(_stringWithAmpersand: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_stringWithAmpersand: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setTitleWithMnemonic)), _stringWithAmpersand); +end; + +procedure NSMenuItem.setImage(_menuImage: objc.id {NSImage}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_menuImage: objc.id {NSImage}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setImage)), _menuImage); +end; + +function NSMenuItem.image: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_image)), [])); +end; + +procedure NSMenuItem.setState(_state: Integer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_state: Integer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setState)), _state); +end; + +function NSMenuItem.state: Integer; +begin + Result := Integer(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_state)), [])); +end; + +procedure NSMenuItem.setOnStateImage(_image: objc.id {NSImage}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_image: objc.id {NSImage}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setOnStateImage)), _image); +end; + +function NSMenuItem.onStateImage: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_onStateImage)), [])); +end; + +procedure NSMenuItem.setOffStateImage(_image: objc.id {NSImage}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_image: objc.id {NSImage}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setOffStateImage)), _image); +end; + +function NSMenuItem.offStateImage: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_offStateImage)), [])); +end; + +procedure NSMenuItem.setMixedStateImage(_image: objc.id {NSImage}); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_image: objc.id {NSImage}); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setMixedStateImage)), _image); +end; + +function NSMenuItem.mixedStateImage: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_mixedStateImage)), [])); +end; + +procedure NSMenuItem.setEnabled(_flag: LongBool); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_flag: LongBool); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setEnabled)), _flag); +end; + +function NSMenuItem.isEnabled: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_isEnabled)), [])); +end; + +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} +procedure NSMenuItem.setAlternate(_isAlternate: LongBool); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_isAlternate: LongBool); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setAlternate)), _isAlternate); +end; + +function NSMenuItem.isAlternate: LongBool; +begin + Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_isAlternate)), [])); +end; + +procedure NSMenuItem.setIndentationLevel(_indentationLevel: Integer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_indentationLevel: Integer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setIndentationLevel)), _indentationLevel); +end; + +function NSMenuItem.indentationLevel: Integer; +begin + Result := Integer(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_indentationLevel)), [])); +end; + +{.$endif} +procedure NSMenuItem.setTarget(_anObject: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setTarget)), _anObject); +end; + +function NSMenuItem.target: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_target)), [])); +end; + +procedure NSMenuItem.setAction(_aSelector: SEL); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_aSelector: SEL); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setAction)), _aSelector); +end; + +function NSMenuItem.action: SEL; +begin + Result := SEL(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_action)), [])); +end; + +procedure NSMenuItem.setTag(_anInt: Integer); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anInt: Integer); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setTag)), _anInt); +end; + +function NSMenuItem.tag: Integer; +begin + Result := Integer(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_tag)), [])); +end; + +procedure NSMenuItem.setRepresentedObject(_anObject: objc.id); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_anObject: objc.id); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setRepresentedObject)), _anObject); +end; + +function NSMenuItem.representedObject: objc.id; +begin + Result := objc.id(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_representedObject)), [])); +end; + +{.$ifdef MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3} +procedure NSMenuItem.setToolTip(_toolTip: CFStringRef); +type + TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_toolTip: CFStringRef); cdecl; +var + vmethod: TmsgSendWrapper; +begin + vmethod := TmsgSendWrapper(@objc_msgSend); + vmethod(Handle, sel_registerName(PChar(StrNSMenuItem_setToolTip)), _toolTip); +end; + +function NSMenuItem.toolTip: CFStringRef; +begin + Result := CFStringRef(objc_msgSend(Handle, sel_registerName(PChar(StrNSMenuItem_toolTip)), [])); +end; + +{.$endif} +{$endif} diff --git a/bindings/pascocoa/build/buildappkit.sh b/bindings/pascocoa/build/buildappkit.sh index f754b02a2..c2339921b 100755 --- a/bindings/pascocoa/build/buildappkit.sh +++ b/bindings/pascocoa/build/buildappkit.sh @@ -3,13 +3,15 @@ cd parser DEFAULT_INI="default.ini" APPKIT_INI="../build/appkit.ini" FRAMEWORK="/System/Library/Frameworks/AppKit.framework/Headers" -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSApplication.h > ../appkit/NSApplication.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSBitmapImageRep.h > ../appkit/NSBitmapImageRep.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSButton.h > ../appkit/NSButton.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSGraphics.h > ../appkit/NSGraphics.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSGraphicsContext.h > ../appkit/NSGraphicsContext.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSImage.h > ../appkit/NSImage.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSImageRep.h > ../appkit/NSImageRep.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSStatusBar.h > ../appkit/NSStatusBar.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSStatusItem.h > ../appkit/NSStatusItem.inc -./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSWindow.h > ../appkit/NSWindow.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSApplication.h > ../appkit/NSApplication.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSBitmapImageRep.h > ../appkit/NSBitmapImageRep.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSButton.h > ../appkit/NSButton.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSGraphics.h > ../appkit/NSGraphics.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSGraphicsContext.h > ../appkit/NSGraphicsContext.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSImage.h > ../appkit/NSImage.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSImageRep.h > ../appkit/NSImageRep.inc +./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSMenu.h > ../appkit/NSMenu.inc +./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSMenuItem.h > ../appkit/NSMenuItem.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSStatusBar.h > ../appkit/NSStatusBar.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSStatusItem.h > ../appkit/NSStatusItem.inc +#./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSWindow.h > ../appkit/NSWindow.inc diff --git a/bindings/pascocoa/examples/statusitem/statusitem.lpi b/bindings/pascocoa/examples/statusitem/statusitem.lpi index d35c7b4a0..ed1f37f2d 100644 --- a/bindings/pascocoa/examples/statusitem/statusitem.lpi +++ b/bindings/pascocoa/examples/statusitem/statusitem.lpi @@ -7,7 +7,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -53,11 +53,9 @@ - + - - @@ -74,11 +72,9 @@ - - - + + - @@ -225,7 +221,7 @@ - + @@ -251,11 +247,9 @@ - + - - @@ -391,9 +385,11 @@ - - + + + + @@ -432,7 +428,7 @@ - + @@ -441,7 +437,7 @@ - + @@ -460,50 +456,58 @@ - + - - - + - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - - - - - - - - - - - diff --git a/bindings/pascocoa/foundation/Foundation.inc b/bindings/pascocoa/foundation/Foundation.inc index 255441e93..7127f4b87 100644 --- a/bindings/pascocoa/foundation/Foundation.inc +++ b/bindings/pascocoa/foundation/Foundation.inc @@ -93,10 +93,10 @@ #import #import #import -#import -#import +#import } +{$include NSZone.inc} -#import +{#import #import #import #import diff --git a/bindings/pascocoa/foundation/NSZone.inc b/bindings/pascocoa/foundation/NSZone.inc new file mode 100644 index 000000000..b8f8c3cdc --- /dev/null +++ b/bindings/pascocoa/foundation/NSZone.inc @@ -0,0 +1,43 @@ +{ NSZone.h + Copyright (c) 1994-2005, Apple, Inc. All rights reserved. +} + +{$ifdef HEADER} +{$ifndef NSZONE_PAS_H} +{$define NSZONE_PAS_H} + +{$include NSObjCRuntime.inc} + +type + NSZone = Pointer; + +{ +FOUNDATION_EXPORT NSZone *NSDefaultMallocZone(void); +FOUNDATION_EXPORT NSZone *NSCreateZone(unsigned startSize, unsigned granularity, BOOL canFree); +FOUNDATION_EXPORT void NSRecycleZone(NSZone *zone); +FOUNDATION_EXPORT void NSSetZoneName(NSZone *zone, NSString *name); +FOUNDATION_EXPORT NSString *NSZoneName(NSZone *zone); +FOUNDATION_EXPORT NSZone *NSZoneFromPointer(void *ptr); + +FOUNDATION_EXPORT void *NSZoneMalloc(NSZone *zone, unsigned size); +FOUNDATION_EXPORT void *NSZoneCalloc(NSZone *zone, unsigned numElems, unsigned byteSize); +FOUNDATION_EXPORT void *NSZoneRealloc(NSZone *zone, void *ptr, unsigned size); +FOUNDATION_EXPORT void NSZoneFree(NSZone *zone, void *ptr);} + +const + NSScannedOption = 1; + +{FOUNDATION_EXPORT void *NSAllocateCollectable(unsigned long size, unsigned long options) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER; +FOUNDATION_EXPORT void *NSReallocateCollectable(void *ptr, unsigned long size, unsigned long options) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER; + +FOUNDATION_EXPORT unsigned NSPageSize(void); +FOUNDATION_EXPORT unsigned NSLogPageSize(void); +FOUNDATION_EXPORT unsigned NSRoundUpToMultipleOfPageSize(unsigned bytes); +FOUNDATION_EXPORT unsigned NSRoundDownToMultipleOfPageSize(unsigned bytes); +FOUNDATION_EXPORT void *NSAllocateMemoryPages(unsigned bytes); +FOUNDATION_EXPORT void NSDeallocateMemoryPages(void *ptr, unsigned bytes); +FOUNDATION_EXPORT void NSCopyMemoryPages(const void *source, void *dest, unsigned bytes); +FOUNDATION_EXPORT unsigned NSRealMemoryAvailable(void);} + +{$endif} +{$endif}