Page 1 of 1
Missing function SysTrayIconID
Posted: Sun Apr 03, 2022 5:14 pm
by mk-soft
Missing SysTrayIconID(#SysTrayIcon) for API functions
Internal not official solution
Code: Select all
Procedure SysTrayIconID(SysTrayIcon)
Protected *object
*object = IsSysTrayIcon(SysTrayIcon)
If *object
ProcedureReturn PeekI(*object)
Else
ProcedureReturn 0
EndIf
EndProcedure
Re: Missing function SysTrayIconID
Posted: Sun Apr 03, 2022 7:22 pm
by Kwai chang caine
Thanks for this new function
Is it normal i have two time the same ID ?
Code: Select all
Procedure SysTrayIconID(SysTrayIcon)
Protected *object
*object = IsSysTrayIcon(SysTrayIcon)
If *object
ProcedureReturn PeekI(*object)
Else
ProcedureReturn 0
EndIf
EndProcedure
OpenWindow(0, 100, 150, 300, 100, "PureBasic - SysTray Example", #PB_Window_SystemMenu)
IconName$ = #PB_Compiler_Home + "examples/sources/Data/CdPlayer.ico"
AddSysTrayIcon(1, WindowID(0), LoadImage(0, IconName$))
AddSysTrayIcon(2, WindowID(0), LoadImage(1, IconName$))
SysTrayIconToolTip(1, "Icon 1")
SysTrayIconToolTip(2, "Icon 2")
Debug SysTrayIconID(1)
Debug SysTrayIconID(2)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_SysTray
If EventType() = #PB_EventType_LeftDoubleClick
MessageRequester("SysTray", "Left DoubleClick on SysTrayIcon "+Str(EventGadget()),0)
ChangeSysTrayIcon (EventGadget(), LoadImage(0, IconName$))
SysTrayIconToolTip(EventGadget(), "Changed !")
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
Re: Missing function SysTrayIconID
Posted: Sun Apr 03, 2022 8:29 pm
by mk-soft
With Linux and macOS it fits. I don't know under Windows.
Since there is no PB SDK via the Systray, this is without guarantee.
Re: Missing function SysTrayIconID
Posted: Mon Apr 04, 2022 6:01 pm
by Kwai chang caine
Ok thanks
