+BOOL CALLBACK Mon(HMONITOR mon, HDC dc, LPRECT rect, LPARAM _screens)
+{
+ MONITORINFO info = {.cbSize=sizeof(MONITORINFO)};
+ GetMonitorInfo(mon, &info);
+ RECT *work = &info.rcWork;
+
+ list_t **screens = (list_t**)_screens;
+ win_t *screen = new0(win_t);
+ screen->x = work->left;
+ screen->y = work->top;
+ screen->w = work->right - work->left;
+ screen->h = work->bottom - work->top;
+ *screens = list_append(*screens, screen);
+ printf("mon_proc: %d,%d %dx%d\n",
+ screen->x, screen->y, screen->w, screen->h);
+ return TRUE;
+}
+
+list_t *sys_info(win_t *win)
+{
+ list_t *screens = NULL;
+ EnumDisplayMonitors(NULL, NULL, Mon, (LPARAM)&screens);
+ return screens;
+}
+