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 @@
-
+