Pagina1 van 1
Forum

Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!

Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.

Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.




Deel:
Meldingen
Alles wissen

[Opgelost] Lazarus - macOS - Dock Icon tekst en stuiterende Dock Icon

1 Berichten
1 Gebruikers
0 Vind-ik-leuks
859 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 11 jaar geleden
Berichten: 2663
Topic starter  

De macOS Dock is iets moois ... en zeker vanuit het applicatie ontwikkel perspectief.
Je kunt een icon in de Dock laten stuiteren, om de gebruiks aandacht te vragen, of een nummer of korte tekst toevoegen als feedback voor de gebruiker, ook al is de applicatie niet zichtbaar.

Maar hoe doen we dat in Lazarus Pascal?
Naar aanleiding van deze post in het Lazarus Forum en wat prullen, hier de oplossing voor zowel het stuiteren als tekst toevoegen.

Als eerste moeten we de compiler in ObjectiveC1 mode zetten. Je kunt dat doen door het volgende ergens bovenin de unit te zetten.

{$modeswitch ObjectiveC1}

Vervolgens hebben we de units MacOSAll en CocoaAll nodig.

uses ... ,MacOSAll, CocoaAll ...;

Stuiteren Dock Icon ...

1. Stuiter 1x:

NSApplication.sharedApplication.requestUserAttention(NSInformationalRequest);

2. Stuiter tot de applicatie (form) focus krijgt (dit werkt alleen als de applicatie nog niet de focus heeft!):

NSApplication.sharedApplication.requestUserAttention(NSCriticalRequest);

3. Handmatig het stuiteren stoppen doe je als volgt. 

Eerst moet je de request opslaan, en het stuiteren als volgt activeren

AttentionRequestID : NSInteger;
...
AttentionRequestID := NSApplication.sharedApplication.requestUserAttention(NSCriticalRequest);
...

en stoppen van het stuiteren vervolgens met:

NSApplication.sharedApplication.cancelUserAttentionRequest(AttentionRequestID);


Tekst toevoegen aan de Dock Icon (b.v. een nummer of een percentage) ...

In dit voorbeeld voeg ik de tekst "100%" toe, maar je kunt vanalles gebruiken, als je het maar kort houdt (weinig ruimte).

NSApplication.sharedApplication.dockTile.setBadgeLabel(NSStr(Pchar('100%')));

Je verwijdert de tekst weer uit met:

NSApplication.sharedApplication.dockTile.setBadgeLabel(nil);

   
BeantwoordenCiteren

Bevalt je wat je hier ziet, en wil je graag helpen? 

Uiteraard is de beste manier van helpen, door anderen hier te helpen met hun vragen. Maar je kunt ons ook op andere manieren helpen:

- Shop bijvoorbeeld bij Amazon, het kost je niks extra, maar het kan zijn dat wij een kleine commissie ontvangen,
- stuur me een koffie via PayPal ($5, $10, $20, or zelf kiezen),
- je kunt ook een Patreon worden,
- of BitCoin (BTC), of BitCoinCash (BCH) doneren.

Deel: