Oh well I’ve written the class now, but I also wanted to pull in icons and other files from other sources, {Prop:ImageInstance} only pulls in from the file its called from.
This is the inc file for my SystemTray Icon class, I’ve got a bit more flexibility than {Prop:ImageInstance}
!ABCIncludeFile
OMIT('_EndOfInclude_',_SysTrayIcon_)
_SysTrayIcon_ EQUATE(1)
MAP
End
Include('SysTray.inc'),Once
!Include('AppWideEquates.inc')
Include('SysTray_Icon_Equates.inc')
Include('SysTray_Icon_Queues.inc')
Include('SysTray_Icon_Groups.inc')
SysTrayIcon Class,Type,Module('SysTray_Icon.clw'),Link('SysTray_Icon.clw',_ABCLinkMode_),DLL(_ABCDllMode_)
Construct Procedure
Destruct Procedure
WinErrorCode ulong
!Construct
!Get Systray Icon Size
SysTrayIconWidthCX long,Private
SysTrayIconHeightCY long,Protected
GetSysTrayIconSize Procedure
!Construct
!Initialise the Icon Queue
LoadedIconQ &LoadedIconQT
IconQCount long
InitialiseIconQueue Procedure !Initialise NEW Icon Queue
!Destruct
!Unload any icons, clear Q and dispose of Q
DisposeIconQueue Procedure !Dispose Icon Queue
!Destruct
!Loop through Q and call UnloadIcon for each entry
UnloadAllIcons Procedure
!Destruct
!Unload the icon
UnloadIcon Procedure(<long pQiconNumber>) !If pQiconNumber position Queue Else use current Q fields to unload icon (free library, destroy icon)
LoadIconFromFile Procedure(String pImageFilename, ulong pWidthCX =0, ulong pHeightCY =0)
LoadIconFromFile Procedure(*cstring pImageFilename, ulong pWidthCX =0, ulong pHeightCY =0)
LoadIconOrdinalFromEXE Procedure(ulong pIconOrdinal, string pModuleFilename, ulong pWidthCX =0, ulong pHeightCY =0)
LoadIconOrdinalFromEXE Procedure(ulong pOrdinal, *cstring pModuleFilename, ulong pWidthCX =0, ulong pHeightCY =0)
LoadIconFromEXE Procedure(String pIconName, string pModuleFilename, ulong pWidthCX =0, ulong pHeightCY =0)
LoadIconFromEXE Procedure(*cstring pIconName, *cstring pModuleFilename, ulong pWidthCX =0, ulong pHeightCY =0)
LoadOEMIcon Procedure(long pOEM_OIC_ICON, ulong pWidthCX =0, ulong pHeightCY =0)
AddIconToQueue Procedure !Loads image (LoadImageA), gets handle then adds everything to the queue
Uuid like(guid)
GetUuid Procedure(),string !groups are treated as strings Guid is a Type group
GetGuid Procedure(),string !groups are treated as strings
End
_EndOfInclude_