]> Dogcows Code - chaz/openbox/blobdiff - openbox/stacking.h
1) translate all of openbox's output
[chaz/openbox] / openbox / stacking.h
index 118cc5c360f5de79ef96a1ebbfc45b84b0f81a71..2391f650aee80e73a456c0924e3e209bd55d94a5 100644 (file)
@@ -1,3 +1,22 @@
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+   stacking.h for the Openbox window manager
+   Copyright (c) 2006        Mikael Magnusson
+   Copyright (c) 2003-2007   Dana Jansens
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   See the COPYING file for a copy of the GNU General Public License.
+*/
+
 #ifndef __stacking_h
 #define __stacking_h
 
 
 /*! The possible stacking layers a client window can be a part of */
 typedef enum {
-    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;
+    OB_STACKING_LAYER_DESKTOP,     /*!< 0 - desktop windows */
+    OB_STACKING_LAYER_BELOW,       /*!< 1 - normal windows w/ below */
+    OB_STACKING_LAYER_NORMAL,      /*!< 2 - normal windows */
+    OB_STACKING_LAYER_ABOVE,       /*!< 3 - normal windows w/ above */
+    OB_STACKING_LAYER_FULLSCREEN,  /*!< 4 - fullscreeen windows */
+    OB_STACKING_LAYER_INTERNAL,    /*!< 5 - openbox windows/menus */
+    OB_NUM_STACKING_LAYERS
+} ObStackingLayer;
 
 /* list of ObWindow*s in stacking order from highest to lowest */
-extern GList  *stacking_list;
+extern GList *stacking_list;
 
 /*! Sets the window stacking list on the root window from the
   stacking_list */
 void stacking_set_list();
 
-#define stacking_add(win) stacking_list = g_list_append(stacking_list, win);
+void stacking_add(ObWindow *win);
+void stacking_add_nonintrusive(ObWindow *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 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 window.
-*/
+/*! Raises a window above all others in its stacking layer */
 void stacking_raise(ObWindow *window);
 
-/*! Lowers a client window below all others in its stacking layer */
+/*! Lowers a window below all others in its stacking layer */
 void stacking_lower(ObWindow *window);
 
+/*! Moves a window below another if its in the same layer.
+  This function does not enforce stacking rules IRT transients n such, and so
+  it should really ONLY be used to restore stacking orders from saved sessions
+*/
+void stacking_below(ObWindow *window, ObWindow *below);
+
 #endif
This page took 0.023243 seconds and 4 git commands to generate.