X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fserver.h;h=5356229350db736b9d03ba0d119e39e93f673fc6;hb=b68d4db999a5912c2fc7f29aef8ab75e2f742706;hp=d042f7054f05b78954673c926ee5f870c6fad7ee;hpb=280d1d6e2e2cf7eed76e1def50a4b9547094d185;p=chaz%2Ftint2 diff --git a/src/server.h b/src/server.h index d042f70..5356229 100644 --- a/src/server.h +++ b/src/server.h @@ -1,6 +1,6 @@ /************************************************************************** -* server : -* - +* server : +* - * * Check COPYING file for Copyright * @@ -11,78 +11,86 @@ #include #include -#include #include typedef struct Global_atom { - Atom _XROOTPMAP_ID; - Atom _NET_CURRENT_DESKTOP; - Atom _NET_NUMBER_OF_DESKTOPS; - Atom _NET_DESKTOP_GEOMETRY; - Atom _NET_DESKTOP_VIEWPORT; - Atom _NET_ACTIVE_WINDOW; - Atom _NET_WM_WINDOW_TYPE; - Atom _NET_WM_STATE_SKIP_PAGER; - Atom _NET_WM_STATE_SKIP_TASKBAR; - Atom _NET_WM_STATE_STICKY; - Atom _NET_WM_WINDOW_TYPE_DOCK; - Atom _NET_WM_WINDOW_TYPE_DESKTOP; - Atom _NET_WM_WINDOW_TYPE_TOOLBAR; - Atom _NET_WM_WINDOW_TYPE_MENU; - Atom _NET_WM_WINDOW_TYPE_SPLASH; - Atom _NET_WM_WINDOW_TYPE_DIALOG; - Atom _NET_WM_WINDOW_TYPE_NORMAL; - Atom _NET_WM_DESKTOP; - Atom WM_STATE; - Atom _NET_WM_STATE; - Atom _NET_WM_STATE_SHADED; - Atom _NET_WM_STATE_BELOW; - Atom _NET_WM_STATE_MODAL; - Atom _NET_CLIENT_LIST; - Atom _NET_WM_NAME; - Atom _NET_WM_VISIBLE_NAME; - Atom _NET_WM_STRUT; - Atom _NET_WM_ICON; - Atom _NET_CLOSE_WINDOW; - Atom UTF8_STRING; - Atom _NET_SUPPORTING_WM_CHECK; - Atom _WIN_LAYER; - Atom _NET_WM_STRUT_PARTIAL; - Atom WM_NAME; - Atom __SWM_VROOT; - Atom _MOTIF_WM_HINTS; + Atom _XROOTPMAP_ID; + Atom _NET_CURRENT_DESKTOP; + Atom _NET_NUMBER_OF_DESKTOPS; + Atom _NET_DESKTOP_GEOMETRY; + Atom _NET_DESKTOP_VIEWPORT; + Atom _NET_ACTIVE_WINDOW; + Atom _NET_WM_WINDOW_TYPE; + Atom _NET_WM_STATE_SKIP_PAGER; + Atom _NET_WM_STATE_SKIP_TASKBAR; + Atom _NET_WM_STATE_STICKY; + Atom _NET_WM_STATE_DEMANDS_ATTENTION; + Atom _NET_WM_WINDOW_TYPE_DOCK; + Atom _NET_WM_WINDOW_TYPE_DESKTOP; + Atom _NET_WM_WINDOW_TYPE_TOOLBAR; + Atom _NET_WM_WINDOW_TYPE_MENU; + Atom _NET_WM_WINDOW_TYPE_SPLASH; + Atom _NET_WM_WINDOW_TYPE_DIALOG; + Atom _NET_WM_WINDOW_TYPE_NORMAL; + Atom _NET_WM_DESKTOP; + Atom WM_STATE; + Atom _NET_WM_STATE; + Atom _NET_WM_STATE_SHADED; + Atom _NET_WM_STATE_BELOW; + Atom _NET_WM_STATE_MODAL; + Atom _NET_CLIENT_LIST; + Atom _NET_WM_NAME; + Atom _NET_WM_VISIBLE_NAME; + Atom _NET_WM_STRUT; + Atom _NET_WM_ICON; + Atom _NET_CLOSE_WINDOW; + Atom UTF8_STRING; + Atom _NET_SUPPORTING_WM_CHECK; + Atom _WIN_LAYER; + Atom _NET_WM_STRUT_PARTIAL; + Atom WM_NAME; + Atom __SWM_VROOT; + Atom _MOTIF_WM_HINTS; + Atom _NET_SYSTEM_TRAY_SCREEN; + Atom _NET_SYSTEM_TRAY_OPCODE; + Atom MANAGER; + Atom _NET_SYSTEM_TRAY_MESSAGE_DATA; + Atom _NET_SYSTEM_TRAY_ORIENTATION; + Atom _XEMBED; + Atom _XEMBED_INFO; } Global_atom; typedef struct Monitor { - int x; - int y; - int width; - int height; + int x; + int y; + int width; + int height; } Monitor; typedef struct { - Display *dsp; - Window root_win; - int desktop; - int screen; - int depth; - int nb_desktop; - Monitor *monitor; - int nb_monitor; - int got_root_win; - Visual *visual; - int posx, posy; - Pixmap pmap; - GC gc; - GC gc_root; - Global_atom atom; + Display *dsp; + Window root_win; + // current desktop + int desktop; + int screen; + int depth; + int nb_desktop; + // number of monitor (without monitor included into another one) + int nb_monitor; + Monitor *monitor; + int got_root_win; + Visual *visual; + // root background + Pixmap root_pmap; + GC gc; + Global_atom atom; } Server_global; @@ -97,8 +105,12 @@ void server_refresh_root_pixmap (); void server_refresh_main_pixmap (); void server_catch_error (Display *d, XErrorEvent *ev); void server_init_atoms (); -void get_monitors(); -Pixmap get_root_pixmap(); + +// detect root background +void get_root_pixmap(); + +// detect monitors and desktops +void get_monitors_and_desktops(); #endif