Lazarus
Programming => Operating Systems => macOS / Mac OS X => Topic started by: Odacir on January 31, 2013, 08:51:39 pm
-
I'm trying put my application icon to bounce, to notify user about a atention to my application (notification about update on some thing).
Have any way to made this using Lazarus? My target OS is OS X 10.7.
Thanks any help.
-
add this to your uses
{$IFDEF DARWIN}MacOSAll, appkit,{$ENDIF}
on form creation put this:
{$IFDEF LCLCarbon}
NsApp := NSApplication.sharedApplication;
{$ENDIF}
when you need to make the icon bounce use this for bounce the icon once
{$IFDEF LCLCarbon}
FRequestUserAttentionID := NSApp.requestUserAttention(NSInformationalRequest);
{$ENDIF}
or this to bounce icon untill application is activated
{$IFDEF LCLCarbon}
FRequestUserAttentionID := NSApp.requestUserAttention(NSCriticalRequest);
{$ENDIF}
if you need you can use the FRequestUserAttentionID identifier (it's an integer) to deactivate the bouncing
{$IFDEF LCLCarbon}
NSApp.cancelUserAttentionRequest(FRequestUserAttentionID);
{$ENDIF}
p.s you can't bounce icon if your application is active (it has 'focus')
p.p.s. i'm using $IFDEF to be prepared to compile this code also on other platforms.
-
I realize this is an old post, but it's been a super helpful one to me.
Since there have been a few changes in the past 6 years;
You'll need to switch mode:
{$modeswitch ObjectiveC1}
Units:
{$IFDEF DARWIN} ,MacOSAll, CocoaAll {$ENDIF}
And of course swap
{$IFDEF LCLCarbon}
with
{$IFDEF DARWIN}
The rest works still today. :)