/* Internal structures */
struct win_sys {
HWND hwnd;
- state_t state;
};
typedef struct {
case HSHELL_WINDOWDESTROYED:
printf("ShlProc: %p - window destroyed\n", hwnd);
if ((win = win_find(hwnd,0)) &&
- win->sys->state == st_show) {
+ win->state == st_show) {
wm_remove(win);
win_remove(win);
}
[st_icon ] {"icon" , SW_MINIMIZE},
[st_hide ] {"hide" , SW_HIDE },
};
- win->sys->state = state;
+ win->state = state;
printf("sys_show: %s\n", map[state].str);
ShowWindow(win->sys->hwnd, map[state].cmd);
}
* and control windows. */
+/* Window states */
+typedef enum {
+ st_show, // show as regular window
+ st_full, // fullscreen/maximized
+ st_shade, // show titlebar only
+ st_icon, // iconified/minimized
+ st_hide, // completely hidden
+} state_t;
+
/* Basic window type */
typedef struct win_sys win_sys_t;
typedef struct win_wm win_wm_t;
typedef struct {
int x, y, z;
int w, h;
+ state_t state;
win_sys_t *sys;
win_wm_t *wm;
} win_t;
} ptr_t;
#define PTR(...) ((ptr_t){__VA_ARGS__})
-/* Window states */
-typedef enum {
- st_show, // show as regular window
- st_full, // fullscreen/maximized
- st_shade, // show titlebar only
- st_icon, // iconified/minimized
- st_hide, // completely hidden
-} state_t;
-
/* Move the window to the specified location and set it's
* geometry. The position and size include borders and