lazarus/lcl/interfaces/cocoa/cocoatrayicon.inc
2011-06-29 20:45:12 +00:00

106 lines
2.8 KiB
PHP

{%mainunit cocoawsextctrls.pas}
(*type
TCocoaStatusItem = objcclass(NSStatusItem)
{ Fields }
bar: NSStatusBar;
image: NSImage;
menu: NSMenu;
{ Methods }
// procedure lclItemSelected(sender: id); message 'lclItemSelected:';
end;*)
{ TCocoaWSCustomTrayIcon }
class function TCocoaWSCustomTrayIcon.Hide(const ATrayIcon: TCustomTrayIcon): Boolean;
{var
statusitem: TCocoaStatusItem;
bar: NSStatusBar;}
begin
{ bar := NSStatusBar.systemStatusBar();
statusitem := bar.statusItemWithLength(NSSquareStatusItemLength);
statusitem.bar := bar;
statusicon.callback:=TLCLCommonCallback.Create(box, AWinControl);
statusitem.retain();
statusitem.item.setImage(APrivateTrayIcon.image.Handle);
Result:=TLCLIntfHandle(box);
// APrivateTrayIcon := TPrivateCocoaCocoaTrayIcon(ATrayIcon.Handle);
if APrivateTrayIcon.item <> nil then
begin
APrivateTrayIcon.item.Free;
APrivateTrayIcon.item := nil;
end;}
Result := True;
end;
{
}
class function TCocoaWSCustomTrayIcon.Show(const ATrayIcon: TCustomTrayIcon): Boolean;
var
statusitem: NSStatusItem;
bar: NSStatusBar;
image: NSImage;
{var
APrivateTrayIcon: TPrivateCocoaCocoaTrayIcon;
ASize: NSSize;
ACGRect: CGRect;
AcurrentContext: NSGraphicsContext;}
begin
{$ifdef VerboseCocoaTrayIcon}
WriteLn(':>[TCocoaWSCustomTrayIcon.Show]');
{$endif VerboseCocoaTrayIcon}
Result := False;
{ Creates the handle }
bar := NSStatusBar.systemStatusBar();
statusitem := bar.statusItemWithLength(NSSquareStatusItemLength);
// statusitem.bar := bar;
//statusicon.callback:=TLCLCommonCallback.Create(box, AWinControl);
{ Shows the icon }
statusitem.retain();
if (ATrayIcon.icon <> nil) and (ATrayIcon.icon.Handle <> 0) then
begin
image := TCocoaBitmap(ATrayIcon.icon.Handle).image;
if image <> nil then statusitem.setImage(image);
end;
// statusitem.setTitle('Menu');
statusitem.setHighlightMode(True);
statusitem.setEnabled(True);
Result := True;
{$ifdef VerboseCocoaTrayIcon}
{ WriteLn(':<[TCocoaWSCustomTrayIcon.Show]',
' Handle: ', IntToHex(ATrayIcon.Handle, 8),
' ACGRect.size.width: ', ACGRect.size.width,
' ACGRect.size.height: ', ACGRect.size.height,
' ACGRect.origin.x: ', ACGRect.origin.x,
' ACGRect.origin.y: ', ACGRect.origin.y,
' TCocoaBitmap(ATrayIcon.Icon.Handle).CGImage ', IntToHex(Int64(TCocoaBitmap(ATrayIcon.Icon.Handle).CGImage), 8)
);}
{$endif VerboseCocoaTrayIcon}
end;
class procedure TCocoaWSCustomTrayIcon.InternalUpdate(const ATrayIcon: TCustomTrayIcon);
begin
end;
class function TCocoaWSCustomTrayIcon.ShowBalloonHint(const ATrayIcon: TCustomTrayIcon): Boolean;
begin
Result := False;
end;
class function TCocoaWSCustomTrayIcon.GetPosition(const ATrayIcon: TCustomTrayIcon): TPoint;
begin
Result := Point(0, 0);
end;