Hi,

> [...]

hmm, just to get you a head start:

Most of the properties mentioned in the standard are those of a normal
window, so you should just start with a normal window (TForm...) and
work your way from there... (_NET_WM_NAME, WM_CLASS and _NET_WM_ICON are
normal window stuff, so no need to mess with them manually).

what you still need to do:
- request the owner of the selection "_NET_SYSTEM_TRAY_Sn" (where n =
screen number)
- if none is found, wait for a MANAGER client message (or fail horribly
if your app absolutely needs the trayicon - which would be a flaw ;) -
or just show no trayicon and continue normally)
- if one was found, send SYSTEM_TRAY_REQUEST_DOCK to it, giving it your
tray icon window
- maybe watch on _NET_SYSTEM_TRAY_ORIENTATION changes
- maybe watch on if the tray goes away in order to use some other means
instead of the trayicon then

you can look at some juicy C code that does the same here for ideas:
(don't worry, it only looks so convoluted because of 1) C and 2) Xlib)

http://svn.xfce.org/svn/xfce/libxfcegui4/trunk/libxfcegui4/netk-trayicon.c

especially:
netk_tray_icon_realize
netk_tray_icon_filter
netk_tray_icon_update
netk_tray_icon_opcode
netk_tray_icon_set_screen

Note that you should search for the counterparts in lazarus, I'm sure
most X functions already have wrappers to make them suck less (others
can comment on that?), so use/copy them instead of having to program
using Xlib directly... (where possible)

When in doubt, grep -R :)

cheers,
   Danny


_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to