
#include "WindowMaker.h"
#include "window.h"

typedef struct {
	WWindow *wwin;
	WMLabel *mini;
} WSMWindow;

typedef struct {
	WScreen *scr;

	WMWindow *win;

	WSMWindow *windows;
	int windowCount;

	int xcount, ycount;
	int wswidth, wsheight;
} WWorkspaceMap;

#define WSMAP_DEFAULT_WIDTH 150

static WWorkspaceMap *createWorkspaceMap(WMScreen * scr, int xcount, int ycount)
{
	WWorkspaceMap *wsm = wnew0(WWorkspaceMap, 1);
	WMRect rect;
	//
	rect.width = 1024;
	rect.height = 768;

	wsm->win = WMCreateWindow(scr, "wsmap");

	/* find out the ideal size of the mini-workspaces */

	wsm->wswidth = WSMAP_DEFAULT_WIDTH;
	wsm->wsheight = (wsm->wswidth * rect.height) / rect.width;

	// check if it fits screen

	wsm->xcount = xcount;
	wsm->ycount = ycount;

	return wsm;
}

static void handleEvent(WWorkspaceMap * map, XEvent * event)
{
	switch (event->type) {
	}
}

void wShowWorkspaceMap(WScreen * scr)
{

}

Display *dpy;

int main(int argc, char **argv)
{
	WWorkspaceMap *wsmap;
	WMScreen *scr;

	WMInitializeApplication("WSMap", &argc, argv);

	dpy = XOpenDisplay("");
	if (!dpy) {
		wfatal("cant open display");
		exit(0);
	}

	scr = WMCreateSimpleApplicationScreen(dpy);

	wsmap = createWorkspaceMap(scr);

	WMRealizeWidget(wsmap->win);
	WMMapWidget(wsmap->win);

	WMScreenMainLoop(scr);

	return 0;
}
