Improves Cocoa bindings

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@458 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat
2008-06-06 01:32:06 +00:00
parent 3747542709
commit 8562b56ece
7 changed files with 1072 additions and 418 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
{%mainunit appkit.pas} {%mainunit appkit.pas}
{ (*
NSStatusBar.h NSStatusBar.h
Application Kit Application Kit
Copyright (c) 1997-2005, Apple Computer, Inc. Copyright (c) 1997-2005, Apple Computer, Inc.
All rights reserved. All rights reserved.
} *)
{$ifdef HEADER} {$ifdef HEADER}
{$ifndef NSSTATUSBAR_PAS_H} {$ifndef NSSTATUSBAR_PAS_H}
@ -12,73 +12,93 @@
const const
NSVariableStatusItemLength = (-1); NSVariableStatusItemLength = (-1);
NSSquareStatusItemLength = (-2); NSSquareStatusItemLength = (-2);
{ Class and method name strings }
const
Str_NSStatusBar = 'NSStatusBar';
Str_systemStatusBar = 'systemStatusBar';
Str_statusItemWithLength = 'statusItemWithLength:';
{$endif} {$endif}
{$endif} {$endif}
{$ifdef FORWARD}
{$ifndef NSSTATUSBAR_PAS__FORWARD}
{$define NSSTATUSBAR_PAS__FORWARD}
NSStatusBar = class;
{$endif}
{$endif}
{$ifdef CLASSES} {$ifdef CLASSES}
{$ifndef NSSTATUSBAR_PAS_C} {$ifndef NSSTATUSBAR_PAS_C}
{$define NSSTATUSBAR_PAS_C} {$define NSSTATUSBAR_PAS_C}
{@class NSColor;
@class NSFont;} { NSStatusBar }
NSStatusItem = class;
{@class NSMutableArray;}
NSStatusBar = class(NSObject) NSStatusBar = class(NSObject)
public public
{ Extra binding functions }
class function getClass: objc.id; override; class function getClass: objc.id; override;
public constructor systemStatusBar;
constructor systemStatusBar(); function statusItemWithLength(_length: Single): objc.id;{NSStatusItem}
procedure removeStatusItem(_item: objc.id {NSStatusItem});
function statusItemWithLength(length: cfloat): NSStatusItem; function isVertical: LongBool;
procedure removeStatusItem(item: NSStatusItem); function thickness: Single;
{- (BOOL) isVertical;
- (float) thickness;}
end; end;
{$endif} {$endif}
{$endif} {$endif}
{$ifdef IMPLEMENTATION} {$ifdef IMPLEMENTATION}
const
StrNSStatusBar_NSStatusBar = 'NSStatusBar';
StrNSStatusBar_systemStatusBar = 'systemStatusBar';
StrNSStatusBar_statusItemWithLength = 'statusItemWithLength:';
StrNSStatusBar_removeStatusItem = 'removeStatusItem:';
StrNSStatusBar_isVertical = 'isVertical';
StrNSStatusBar_thickness = 'thickness';
{ NSStatusBar }
class function NSStatusBar.getClass: objc.id; class function NSStatusBar.getClass: objc.id;
begin begin
Result := objc_getClass(Str_NSStatusBar); Result := objc_getClass(StrNSStatusBar_NSStatusBar);
end; end;
constructor NSStatusBar.systemStatusBar(); constructor NSStatusBar.systemStatusBar;
begin
ClassId := getClass();
Handle := objc_msgSend(ClassId, sel_registerName(PChar(Str_systemStatusBar)), []);
end;
function NSStatusBar.statusItemWithLength(length: cfloat): NSStatusItem;
type type
statusItemWithLength_t = function (param1: objc.id; param2: SEL; TmsgSendWrapper = function (param1: objc.id; param2: SEL): objc.id; cdecl;
param3: cfloat): objc.id; cdecl;
var var
vmethod: statusItemWithLength_t; vmethod: TmsgSendWrapper;
itemHandle: objc.id;
begin begin
vmethod := statusItemWithLength_t(@objc_msgSend); ClassID := getClass();
itemHandle := vmethod(Handle, sel_registerName(PChar(Str_statusItemWithLength)), length); vmethod := TmsgSendWrapper(@objc_msgSend);
Result := NSStatusItem.CreateWithHandle(itemHandle); Handle := vmethod(ClassID, sel_registerName(PChar(StrNSStatusBar_systemStatusBar)));
end; end;
procedure NSStatusBar.removeStatusItem(item: NSStatusItem); function NSStatusBar.statusItemWithLength(_length: Single): objc.id;
type
TmsgSendWrapper = function (param1: objc.id; param2: SEL;_length: Single): objc.id; cdecl;
var
vmethod: TmsgSendWrapper;
begin begin
vmethod := TmsgSendWrapper(@objc_msgSend);
Result := objc.id(vmethod(Handle, sel_registerName(PChar(StrNSStatusBar_statusItemWithLength)), _length));
end;
procedure NSStatusBar.removeStatusItem(_item: objc.id {NSStatusItem});
type
TmsgSendWrapper = procedure (param1: objc.id; param2: SEL;_item: objc.id {NSStatusItem}); cdecl;
var
vmethod: TmsgSendWrapper;
begin
vmethod := TmsgSendWrapper(@objc_msgSend);
vmethod(Handle, sel_registerName(PChar(StrNSStatusBar_removeStatusItem)), _item);
end;
function NSStatusBar.isVertical: LongBool;
begin
Result := LongBool(objc_msgSend(Handle, sel_registerName(PChar(StrNSStatusBar_isVertical)), []));
end;
function NSStatusBar.thickness: Single;
begin
Result := Single(objc_msgSend(Handle, sel_registerName(PChar(StrNSStatusBar_thickness)), []));
end; end;
{$endif} {$endif}

View File

@ -3,10 +3,13 @@ cd parser
DEFAULT_INI="default.ini" DEFAULT_INI="default.ini"
APPKIT_INI="../build/appkit.ini" APPKIT_INI="../build/appkit.ini"
FRAMEWORK="/System/Library/Frameworks/AppKit.framework/Headers" FRAMEWORK="/System/Library/Frameworks/AppKit.framework/Headers"
./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSButton.h > ../appkit/NSButton.inc ./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSApplication.h > ../appkit/NSApplication.inc
./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSWindow.h > ../appkit/NSWindow.inc
./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSGraphics.h > ../appkit/NSGraphics.inc
./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSImage.h > ../appkit/NSImage.inc
./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSBitmapImageRep.h > ../appkit/NSBitmapImageRep.inc ./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSBitmapImageRep.h > ../appkit/NSBitmapImageRep.inc
./objcparser -ini=$DEFAULT_INI -ini=$APPKIT_INI $FRAMEWORK/NSImageRep.h > ../appkit/NSImageRep.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/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

View File

@ -110,7 +110,7 @@ class procedure TMyController.doShowStatusitem(_self: objc.id; _cmd: SEL; sender
begin begin
if myController.item <> nil then Exit; if myController.item <> nil then Exit;
myController.item := myController.bar.statusItemWithLength(NSSquareStatusItemLength); myController.item := NSStatusItem.CreateWithHandle(myController.bar.statusItemWithLength(NSSquareStatusItemLength));
myController.item.retain(); myController.item.retain();
myController.item.setImage(myController.image); myController.item.setImage(myController.image);
end; end;

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<ActiveEditorIndexAtStart Value="5"/> <ActiveEditorIndexAtStart Value="1"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -26,15 +26,15 @@
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local> </local>
</RunParams> </RunParams>
<Units Count="65"> <Units Count="66">
<Unit0> <Unit0>
<Filename Value="statusitem.pas"/> <Filename Value="statusitem.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="statusitem"/> <UnitName Value="statusitem"/>
<CursorPos X="1" Y="29"/> <CursorPos X="40" Y="70"/>
<TopLine Value="11"/> <TopLine Value="52"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="58"/> <UsageCount Value="62"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
@ -48,20 +48,22 @@
<Filename Value="../../appkit/NSButton.inc"/> <Filename Value="../../appkit/NSButton.inc"/>
<CursorPos X="3" Y="109"/> <CursorPos X="3" Y="109"/>
<TopLine Value="96"/> <TopLine Value="96"/>
<UsageCount Value="22"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="../../appkit/NSApplication.inc"/> <Filename Value="../../appkit/NSApplication.inc"/>
<CursorPos X="70" Y="102"/> <CursorPos X="21" Y="79"/>
<TopLine Value="96"/> <TopLine Value="69"/>
<UsageCount Value="16"/> <EditorIndex Value="1"/>
<UsageCount Value="18"/>
<Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="../../appkit/NSAlert.inc"/> <Filename Value="../../appkit/NSAlert.inc"/>
<CursorPos X="1" Y="12"/> <CursorPos X="1" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="30"/> <UsageCount Value="32"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
@ -74,8 +76,8 @@
<Filename Value="../../appkit/AppKit.inc"/> <Filename Value="../../appkit/AppKit.inc"/>
<CursorPos X="20" Y="11"/> <CursorPos X="20" Y="11"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="6"/> <EditorIndex Value="9"/>
<UsageCount Value="19"/> <UsageCount Value="21"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
@ -221,9 +223,11 @@
</Unit28> </Unit28>
<Unit29> <Unit29>
<Filename Value="../../appkit/NSStatusBar.inc"/> <Filename Value="../../appkit/NSStatusBar.inc"/>
<CursorPos X="85" Y="41"/> <CursorPos X="15" Y="73"/>
<TopLine Value="38"/> <TopLine Value="69"/>
<UsageCount Value="21"/> <EditorIndex Value="4"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
</Unit29> </Unit29>
<Unit30> <Unit30>
<Filename Value="../../foundation/NSAutoreleasePool.inc"/> <Filename Value="../../foundation/NSAutoreleasePool.inc"/>
@ -247,10 +251,10 @@
<Filename Value="controller.pas"/> <Filename Value="controller.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="controller"/> <UnitName Value="controller"/>
<CursorPos X="1" Y="176"/> <CursorPos X="1" Y="110"/>
<TopLine Value="153"/> <TopLine Value="100"/>
<EditorIndex Value="1"/> <EditorIndex Value="2"/>
<UsageCount Value="42"/> <UsageCount Value="46"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit33> </Unit33>
<Unit34> <Unit34>
@ -301,7 +305,7 @@
<UnitName Value="foundation"/> <UnitName Value="foundation"/>
<CursorPos X="16" Y="28"/> <CursorPos X="16" Y="28"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="13"/> <UsageCount Value="15"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit40> </Unit40>
<Unit41> <Unit41>
@ -382,7 +386,7 @@
<Filename Value="../../appkit/NSGraphics.inc"/> <Filename Value="../../appkit/NSGraphics.inc"/>
<CursorPos X="16" Y="28"/> <CursorPos X="16" Y="28"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit52> </Unit52>
<Unit53> <Unit53>
@ -426,10 +430,10 @@
</Unit58> </Unit58>
<Unit59> <Unit59>
<Filename Value="../../../../../lazarus/lcl/interfaces/carbon/carbontrayicon.inc"/> <Filename Value="../../../../../lazarus/lcl/interfaces/carbon/carbontrayicon.inc"/>
<CursorPos X="18" Y="43"/> <CursorPos X="9" Y="75"/>
<TopLine Value="27"/> <TopLine Value="68"/>
<EditorIndex Value="2"/> <EditorIndex Value="5"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit59> </Unit59>
<Unit60> <Unit60>
@ -437,8 +441,8 @@
<UnitName Value="CarbonInt"/> <UnitName Value="CarbonInt"/>
<CursorPos X="53" Y="39"/> <CursorPos X="53" Y="39"/>
<TopLine Value="32"/> <TopLine Value="32"/>
<EditorIndex Value="3"/> <EditorIndex Value="6"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit60> </Unit60>
<Unit61> <Unit61>
@ -456,38 +460,50 @@
</Unit62> </Unit62>
<Unit63> <Unit63>
<Filename Value="../../appkit/NSBitmapImageRep.inc"/> <Filename Value="../../appkit/NSBitmapImageRep.inc"/>
<CursorPos X="1" Y="66"/> <CursorPos X="13" Y="9"/>
<TopLine Value="66"/> <TopLine Value="1"/>
<EditorIndex Value="5"/> <EditorIndex Value="8"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit63> </Unit63>
<Unit64> <Unit64>
<Filename Value="../../appkit/NSImageRep.inc"/> <Filename Value="../../appkit/NSImageRep.inc"/>
<CursorPos X="3" Y="14"/> <CursorPos X="3" Y="14"/>
<TopLine Value="2"/> <TopLine Value="417"/>
<EditorIndex Value="4"/> <EditorIndex Value="7"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit64> </Unit64>
<Unit65>
<Filename Value="../../foundation/NSGeometry.inc"/>
<CursorPos X="1" Y="14"/>
<TopLine Value="12"/>
<EditorIndex Value="3"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit65>
</Units> </Units>
<JumpHistory Count="4" HistoryIndex="3"> <JumpHistory Count="5" HistoryIndex="4">
<Position1> <Position1>
<Filename Value="../../appkit/AppKit.inc"/> <Filename Value="controller.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="61" Column="22" TopLine="49"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="../../appkit/NSImageRep.inc"/> <Filename Value="controller.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="113" Column="39" TopLine="100"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="../../appkit/NSBitmapImageRep.inc"/> <Filename Value="controller.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="39" Column="16" TopLine="26"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="../../appkit/NSBitmapImageRep.inc"/> <Filename Value="statusitem.pas"/>
<Caret Line="170" Column="3" TopLine="157"/> <Caret Line="15" Column="16" TopLine="40"/>
</Position4> </Position4>
<Position5>
<Filename Value="statusitem.pas"/>
<Caret Line="70" Column="33" TopLine="52"/>
</Position5>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -67,7 +67,7 @@ begin
MainWindow.orderFrontRegardless; MainWindow.orderFrontRegardless;
NSApp.setDelegate(myController); NSApp.setDelegate(myController.Handle);
NSApp.run; NSApp.run;

View File

@ -9,15 +9,13 @@
<MainUnitHasCreateFormStatements Value="False"/> <MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/> <MainUnitHasTitleStatement Value="False"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<ActiveEditorIndexAtStart Value="1"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
<Language Value=""/>
<CharSet Value=""/>
</VersionInfo> </VersionInfo>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
@ -31,37 +29,13 @@
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local> </local>
</RunParams> </RunParams>
<Units Count="3"> <Units Count="1">
<Unit0> <Unit0>
<Filename Value="objcparser.pas"/> <Filename Value="objcparser.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="objcparser"/> <UnitName Value="objcparser"/>
<CursorPos X="45" Y="11"/>
<TopLine Value="1"/>
<EditorIndex Value="0"/>
<UsageCount Value="26"/>
<Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1>
<Filename Value="ObjCParserUtils.pas"/>
<UnitName Value="ObjCParserUtils"/>
<CursorPos X="13" Y="1305"/>
<TopLine Value="1293"/>
<EditorIndex Value="1"/>
<UsageCount Value="13"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="ObjCParserTypes.pas"/>
<UnitName Value="ObjCParserTypes"/>
<CursorPos X="18" Y="1966"/>
<TopLine Value="1950"/>
<EditorIndex Value="2"/>
<UsageCount Value="13"/>
<Loaded Value="True"/>
</Unit2>
</Units> </Units>
<JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -72,14 +46,4 @@
<CompilerPath Value="$(CompPath)"/> <CompilerPath Value="$(CompPath)"/>
</Other> </Other>
</CompilerOptions> </CompilerOptions>
<Debugging>
<Exceptions Count="2">
<Item1>
<Name Value="ECodetoolError"/>
</Item1>
<Item2>
<Name Value="EFOpenError"/>
</Item2>
</Exceptions>
</Debugging>
</CONFIG> </CONFIG>