summaryrefslogtreecommitdiff
path: root/openbox/stacking.h
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-05-11 19:44:33 +0000
committerDana Jansens <danakj@orodu.net>2003-05-11 19:44:33 +0000
commit58cfbb7f8419e084af6b6b8b00c88ed270c29e88 (patch)
tree6d786e87e1fb369d94522a69d0b3f2c694a8ed4e /openbox/stacking.h
parent506122a110035f810c7d25225661973845a59c62 (diff)
Clients Menus and Slits are all 'ObWindow's now.
Stacking is done with ObWindows. Slits add themselves to the stacking order, as do clients of course. Added some macros for adding/removing to the stacking order.
Diffstat (limited to 'openbox/stacking.h')
-rw-r--r--openbox/stacking.h44
1 files changed, 20 insertions, 24 deletions
diff --git a/openbox/stacking.h b/openbox/stacking.h
index 22abb960..118cc5c3 100644
--- a/openbox/stacking.h
+++ b/openbox/stacking.h
@@ -1,46 +1,42 @@
#ifndef __stacking_h
#define __stacking_h
+#include "window.h"
+
#include <glib.h>
#include <X11/Xlib.h>
-struct Client;
-
/*! The possible stacking layers a client window can be a part of */
typedef enum {
- Layer_Icon, /*!< 0 - iconified windows, in any order at all */
- Layer_Desktop, /*!< 1 - desktop windows */
- Layer_Below, /*!< 2 - normal windows w/ below */
- Layer_Normal, /*!< 3 - normal windows */
- Layer_Above, /*!< 4 - normal windows w/ above */
- Layer_Top, /*!< 5 - always-on-top-windows (docks?) */
- Layer_Fullscreen, /*!< 6 - fullscreeen windows */
- Layer_Internal /*!< 7 - openbox windows/menus */
+ Layer_Desktop, /*!< 0 - desktop windows */
+ Layer_Below, /*!< 1 - normal windows w/ below */
+ Layer_Normal, /*!< 2 - normal windows */
+ Layer_Above, /*!< 3 - normal windows w/ above */
+ Layer_Top, /*!< 4 - always-on-top-windows (docks?) */
+ Layer_Fullscreen, /*!< 5 - fullscreeen windows */
+ Layer_Internal /*!< 6 - openbox windows/menus */
} StackLayer;
-/* list of Client*s in stacking order from highest to lowest */
+/* list of ObWindow*s in stacking order from highest to lowest */
extern GList *stacking_list;
-void stacking_startup();
-void stacking_shutdown();
-
-/*! Sets the client stacking list on the root window from the
- stacking_clientlist */
+/*! Sets the window stacking list on the root window from the
+ stacking_list */
void stacking_set_list();
-/*! Raises a client window above all others in its stacking layer
+#define stacking_add(win) stacking_list = g_list_append(stacking_list, win);
+#define stacking_remove(win) stacking_list = g_list_remove(stacking_list, win);
+
+/*! Raises a window above all others in its stacking layer
raiseWindow has a couple of constraints that lowerWindow does not.<br>
- 1) raiseWindow can be called after changing a Client's stack layer, and
+ 1) raiseWindow can be called after changing a Window's stack layer, and
the list will be reorganized properly.<br>
2) raiseWindow guarantees that XRestackWindows() will <i>always</i> be
- called for the specified client.
+ called for the specified window.
*/
-void stacking_raise(struct Client *client);
+void stacking_raise(ObWindow *window);
/*! Lowers a client window below all others in its stacking layer */
-void stacking_lower(struct Client *client);
-
-/*! Raises an internal window (e.g. menus) */
-void stacking_raise_internal(Window win);
+void stacking_lower(ObWindow *window);
#endif