summaryrefslogtreecommitdiff
path: root/src/desktop.h
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@gnugeneration.com>2016-08-28 00:36:53 -0700
committerVito Caputo <vcaputo@gnugeneration.com>2016-09-09 14:14:31 -0700
commit4642216f70dd98134a79f9299b7ca4bc876649c7 (patch)
treebdf9fd892bc54a2f2a678a9828c6af9d9fc8bed2 /src/desktop.h
parente99f5ac1293a0ae1f498bc4c73c4c04e4edb8665 (diff)
*: refactor all the things
Long overdue house cleaning. The addition of compositing/monitoring overlays in vwm3 pushed vwm well past what is a reasonable size for a simple thousand line file. This is a first step towards restoring sanity in the code, but no behavioral differences are intended, this is mostly just shuffling around and organizing code. I expect some performance regressions initially, follow-on commits will make more improvements to that end as the dust settles.
Diffstat (limited to 'src/desktop.h')
-rw-r--r--src/desktop.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/desktop.h b/src/desktop.h
new file mode 100644
index 0000000..cc6df38
--- /dev/null
+++ b/src/desktop.h
@@ -0,0 +1,25 @@
+#ifndef _DESKTOP_H
+#define _DESKTOP_H
+
+#include "list.h"
+#include "window.h"
+
+typedef struct _vwm_t vwm_t;
+typedef struct _vwm_window_t vwm_window_t;
+
+typedef struct _vwm_desktop_t {
+ list_head_t desktops; /* global list of (virtual) desktops */
+ list_head_t desktops_mru; /* global list of (virtual) desktops in MRU order */
+ char *name; /* name of the desktop (TODO) */
+ vwm_window_t *focused_window; /* the focused window on this virtual desktop */
+} vwm_desktop_t;
+
+void vwm_desktop_mru(vwm_t *vwm, vwm_desktop_t *desktop);
+int vwm_desktop_focus(vwm_t *vwm, vwm_desktop_t *desktop);
+vwm_desktop_t * vwm_desktop_create(vwm_t *vwm, char *name);
+void vwm_desktop_destroy(vwm_t *vwm, vwm_desktop_t *desktop);
+vwm_desktop_t * vwm_desktop_next_mru(vwm_t *vwm, vwm_desktop_t *desktop);
+vwm_desktop_t * vwm_desktop_next(vwm_t *vwm, vwm_desktop_t *desktop);
+vwm_desktop_t * vwm_desktop_prev(vwm_t *vwm, vwm_desktop_t *desktop);
+
+#endif
© All Rights Reserved