X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fdock.h;h=cb4fd6cada01524b9f368b9e1d4951004aff8b4b;hb=HEAD;hp=14411499a165ddb7699057e6ed9b0ff88af03cd5;hpb=7a166a383805f7693e0800f3bf693e3736463a0d;p=chaz%2Fopenbox diff --git a/openbox/dock.h b/openbox/dock.h index 14411499..cb4fd6ca 100644 --- a/openbox/dock.h +++ b/openbox/dock.h @@ -1,71 +1,88 @@ +/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- + + dock.h for the Openbox window manager + 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 __dock_h #define __dock_h -#include "timer.h" #include "window.h" #include "stacking.h" #include "geom.h" -#include "render/render.h" +#include "obrender/render.h" #include #include #include -typedef enum { - DockPos_Floating, - DockPos_TopLeft, - DockPos_Top, - DockPos_TopRight, - DockPos_Right, - DockPos_BottomRight, - DockPos_Bottom, - DockPos_BottomLeft, - DockPos_Left -} DockPosition; - -typedef struct Dock { +typedef struct _ObDock ObDock; +typedef struct _ObDockApp ObDockApp; + +struct _ObDock +{ ObWindow obwin; Window frame; - Appearance *a_frame; + RrAppearance *a_frame; /* actual position (when not auto-hidden) */ - int x, y; - int w, h; + Rect area; gboolean hidden; - Timer *hide_timer; GList *dock_apps; -} Dock; + GHashTable *dock_map; +}; -typedef struct DockApp { - ObWindow obwin; - - int ignore_unmaps; +struct _ObDockApp { + gint ignore_unmaps; Window icon_win; - Window win; - int x; - int y; - int w; - int h; -} DockApp; + Window name_win; + + gchar *name; + gchar *class; + + gint x; + gint y; + gint w; + gint h; +}; -extern Strut dock_strut; +extern StrutPartial dock_strut; -void dock_startup(); -void dock_shutdown(); +void dock_startup(gboolean reconfig); +void dock_shutdown(gboolean reconfig); -void dock_configure(); +void dock_configure(void); void dock_hide(gboolean hide); -void dock_add(Window win, XWMHints *wmhints); +void dock_manage(Window icon_win, Window name_win); + +void dock_unmanage_all(void); +void dock_unmanage(ObDockApp *app, gboolean reparent); + +void dock_app_drag(ObDockApp *app, XMotionEvent *e); +void dock_app_configure(ObDockApp *app, gint w, gint h); + +void dock_get_area(Rect *a); -void dock_remove_all(); -void dock_remove(DockApp *app, gboolean reparent); +void dock_raise_dock(void); +void dock_lower_dock(void); -void dock_app_drag(DockApp *app, XMotionEvent *e); -void dock_app_configure(DockApp *app, int w, int h); +ObDockApp* dock_find_dockapp(Window xwin); #endif