From 395a262b0d48fe0e02a0be66a81e67f130accfa4 Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Fri, 6 Jun 2008 21:33:58 +0000 Subject: [PATCH] Improves Cocoa bindings git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@474 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../examples/statusitem/controller.pas | 29 +++++-- .../examples/statusitem/statusitem.lpi | 76 +++++++------------ 2 files changed, 52 insertions(+), 53 deletions(-) diff --git a/bindings/pascocoa/examples/statusitem/controller.pas b/bindings/pascocoa/examples/statusitem/controller.pas index 6fa02fc51..e240d8e40 100644 --- a/bindings/pascocoa/examples/statusitem/controller.pas +++ b/bindings/pascocoa/examples/statusitem/controller.pas @@ -36,6 +36,8 @@ type AX, AY, AWidth, AHeight: Double; ACallbackName: string; ACallbackClass: NSObject): NSButton; function CreateMenu(): NSMenu; + function CreateMenuItem(ATitle: shortstring; + ACallbackName: string; ACallbackClass: NSObject): NSMenuItem; { Fields } bar: NSStatusBar; item: NSStatusItem; @@ -182,16 +184,31 @@ end; function TMyController.CreateMenu(): NSMenu; var Item1: NSMenuItem; - EmptyCFString, Item1Text: CFStringRef; + MenuTitle: CFStringRef; begin - EmptyCFString := CFStringCreateWithPascalString(nil, '', kCFStringEncodingUTF8); - Item1Text := CFStringCreateWithPascalString(nil, 'Item 1', kCFStringEncodingUTF8); - - Result := NSMenu.initWithTitle(EmptyCFString); + MenuTitle := CFStringCreateWithPascalString(nil, '', kCFStringEncodingUTF8); + WriteLn('CreateMenu'); + Result := NSMenu.initWithTitle(MenuTitle); + WriteLn('Menu Created'); - Item1 := NSMenuItem.initWithTitle_action_keyEquivalent(Item1Text, nil, EmptyCFString); + Item1 := CreateMenuItem('Exit', Str_doClose, Self); Result.addItem(Item1.Handle); end; +function TMyController.CreateMenuItem(ATitle: shortstring; + ACallbackName: string; ACallbackClass: NSObject): NSMenuItem; +var + ItemText: CFStringRef; + KeyText: CFStringRef; +begin + KeyText := CFStringCreateWithPascalString(nil, '', kCFStringEncodingUTF8); + ItemText := CFStringCreateWithPascalString(nil, ATitle, kCFStringEncodingUTF8); + WriteLn(' ItemText: ', IntToHex(Int64(ItemText), 8), ' ATitle: ', ATitle); + + Result := NSMenuItem.initWithTitle_action_keyEquivalent(ItemText, nil, KeyText); + Result.setTarget(ACallbackClass.Handle); + Result.setAction(sel_registerName(PChar(ACallbackName))); +end; + end. diff --git a/bindings/pascocoa/examples/statusitem/statusitem.lpi b/bindings/pascocoa/examples/statusitem/statusitem.lpi index 6e77d952a..3d409cb88 100644 --- a/bindings/pascocoa/examples/statusitem/statusitem.lpi +++ b/bindings/pascocoa/examples/statusitem/statusitem.lpi @@ -7,7 +7,7 @@ - + @@ -32,9 +32,9 @@ - + - + @@ -48,7 +48,7 @@ - + @@ -61,15 +61,15 @@ - + - - + + @@ -223,8 +223,8 @@ - - + + @@ -249,10 +249,10 @@ - - + + - + @@ -303,7 +303,7 @@ - + @@ -384,15 +384,15 @@ - + - - + + @@ -430,10 +430,10 @@ - + - - + + @@ -441,8 +441,8 @@ - - + + @@ -484,9 +484,11 @@ - - - + + + + + @@ -503,31 +505,11 @@ - + - + - - - - - - - - - - - - - - - - - - - - @@ -542,7 +524,7 @@ - +