#include <X11/Xlib.h>
#include <glib.h>
+typedef struct _ObWindow ObWindow;
+typedef struct _ObInternalWindow ObInternalWindow;
+
typedef enum {
Window_Menu,
Window_Dock,
Window_Internal /* used for stacking but not events */
} Window_InternalType;
-typedef struct ObWindow {
+struct _ObWindow
+{
Window_InternalType type;
-} ObWindow;
+};
/* Wrapper for internal stuff. If its struct matches this then it can be used
as an ObWindow */
#define WINDOW_IS_CLIENT(win) (((ObWindow*)win)->type == Window_Client)
#define WINDOW_IS_INTERNAL(win) (((ObWindow*)win)->type == Window_Internal)
-struct Menu;
-struct Dock;
-struct DockApp;
-struct Client;
+struct _ObMenu;
+struct _ObDock;
+struct _ObDockApp;
+struct _ObClient;
-#define WINDOW_AS_MENU(win) ((struct Menu*)win)
-#define WINDOW_AS_DOCK(win) ((struct Dock*)win)
-#define WINDOW_AS_DOCKAPP(win) ((struct DockApp*)win)
-#define WINDOW_AS_CLIENT(win) ((struct Client*)win)
+#define WINDOW_AS_MENU(win) ((struct _ObMenuFrame*)win)
+#define WINDOW_AS_DOCK(win) ((struct _ObDock*)win)
+#define WINDOW_AS_DOCKAPP(win) ((struct _ObDockApp*)win)
+#define WINDOW_AS_CLIENT(win) ((struct _ObClient*)win)
#define WINDOW_AS_INTERNAL(win) ((struct InternalWindow*)win)
#define MENU_AS_WINDOW(menu) ((ObWindow*)menu)
extern GHashTable *window_map;
-void window_startup();
-void window_shutdown();
+void window_startup(gboolean reconfig);
+void window_shutdown(gboolean reconfig);
Window window_top(ObWindow *self);
Window window_layer(ObWindow *self);