Use inotify to check for changes to the defaults database. Workaround for
[wmaker-crm.git] / src / wsmap.c
blobeb26acd34271e3da2340ff953aff4ff3a6604a28
2 #include "WindowMaker.h"
3 #include "window.h"
6 typedef struct {
7 WWindow *wwin;
8 WMLabel *mini;
9 } WSMWindow;
12 typedef struct {
13 WScreen *scr;
15 WMWindow *win;
17 WSMWindow *windows;
18 int windowCount;
20 int xcount, ycount;
21 int wswidth, wsheight;
22 } WWorkspaceMap;
25 #define WSMAP_DEFAULT_WIDTH 150
28 static WWorkspaceMap *createWorkspaceMap(WMScreen *scr, int xcount, int ycount)
30 WWorkspaceMap *wsm= wnew0(WWorkspaceMap, 1);
31 WMRect rect;
33 rect.width= 1024;
34 rect.height= 768;
36 wsm->win= WMCreateWindow(scr, "wsmap");
38 /* find out the ideal size of the mini-workspaces */
40 wsm->wswidth = WSMAP_DEFAULT_WIDTH;
41 wsm->wsheight = (wsm->wswidth*rect.height) / rect.width;
43 // check if it fits screen
45 wsm->xcount = xcount;
46 wsm->ycount = ycount;
50 return wsm;
55 static void handleEvent(WWorkspaceMap *map, XEvent *event)
57 switch (event->type)
64 void wShowWorkspaceMap(WScreen *scr)
71 Display *dpy;
73 int main(int argc, char **argv)
75 WWorkspaceMap *wsmap;
76 WMScreen *scr;
78 WMInitializeApplication("WSMap", &argc, argv);
80 dpy = XOpenDisplay("");
81 if (!dpy) {
82 wfatal("cant open display");
83 exit(0);
86 scr = WMCreateSimpleApplicationScreen(dpy);
88 wsmap= createWorkspaceMap(scr);
90 WMRealizeWidget(wsmap->win);
91 WMMapWidget(wsmap->win);
93 WMScreenMainLoop(scr);
95 return 0;