Lazarus

Programming => Operating Systems => macOS / Mac OS X => Topic started by: Odacir on January 31, 2013, 08:51:39 pm

Title: Put Application Icon on Dock to bouncing
Post 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.
Title: Re: Put Application Icon on Dock to bouncing
Post by: Shebuka on July 10, 2013, 12:40:38 pm
add this to your uses
Code: [Select]
{$IFDEF DARWIN}MacOSAll, appkit,{$ENDIF}
on form creation put this:
Code: [Select]
    {$IFDEF LCLCarbon}
    NsApp := NSApplication.sharedApplication;
    {$ENDIF}

when you need to make the icon bounce use this for bounce the icon once
Code: [Select]
      {$IFDEF LCLCarbon}
      FRequestUserAttentionID := NSApp.requestUserAttention(NSInformationalRequest);
      {$ENDIF}
or this to bounce icon untill application is activated
Code: [Select]
      {$IFDEF LCLCarbon}
      FRequestUserAttentionID := NSApp.requestUserAttention(NSCriticalRequest);
      {$ENDIF}
if you need you can use the FRequestUserAttentionID identifier (it's an integer) to deactivate the bouncing
Code: [Select]
      {$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.
Title: Re: Put Application Icon on Dock to bouncing
Post by: Hansaplast on April 23, 2019, 12:48:16 pm

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:
Code: [Select]
{$modeswitch ObjectiveC1}

Units:
Code: [Select]
{$IFDEF DARWIN} ,MacOSAll, CocoaAll {$ENDIF}

And of course swap
Code: [Select]
{$IFDEF LCLCarbon}with
Code: [Select]
{$IFDEF DARWIN}

The rest works still today. :)
TinyPortal © 2005-2018