X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.h;h=782c7311085b6ac8e613d789ddae086552880357;hb=7416313cad8d0dc51d5a5ea31b20296755f3049d;hp=42e3dc17f22766d8876f5b0c213268080768e27a;hpb=6357583c396382dd6ed8ac42004177f204fabe62;p=chaz%2Fopenbox diff --git a/openbox/screen.h b/openbox/screen.h index 42e3dc17..782c7311 100644 --- a/openbox/screen.h +++ b/openbox/screen.h @@ -1,10 +1,10 @@ #ifndef __screen_h #define __screen_h +#include "misc.h" #include "geom.h" -#include "client.h" -struct Client; +struct _ObClient; #define DESKTOP_ALL (0xffffffff) @@ -14,18 +14,16 @@ extern guint screen_num_desktops; extern guint screen_num_monitors; /*! The current desktop */ extern guint screen_desktop; +/*! The desktop which was last visible */ +extern guint screen_last_desktop; /*! Are we in showing-desktop mode? */ extern gboolean screen_showing_desktop; - -/*! Orientation of the desktops */ -typedef enum { - Orientation_Horz = 0, - Orientation_Vert = 1 -} Orientation; +/*! The support window also used for focus and stacking */ +extern Window screen_support_win; typedef struct DesktopLayout { - Orientation orientation; - Corner start_corner; + ObOrientation orientation; + ObCorner start_corner; guint rows; guint columns; } DesktopLayout; @@ -38,9 +36,9 @@ extern char **screen_desktop_names; gboolean screen_annex(); /*! Once the screen is ours, set up its initial state */ -void screen_startup(); +void screen_startup(gboolean reconfig); /*! Free resources */ -void screen_shutdown(); +void screen_shutdown(gboolean reconfig); /*! Figure out the new size of the screen and adjust stuff for it */ void screen_resize(); @@ -49,6 +47,9 @@ void screen_resize(); void screen_set_num_desktops(guint num); /*! Change the current desktop */ void screen_set_desktop(guint num); +/*! Interactively change desktops */ +guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, + gboolean dialog, gboolean done, gboolean cancel); /*! Shows and focuses the desktop and hides all the client windows, or returns to the normal state, showing client windows. */ @@ -62,7 +63,7 @@ void screen_update_desktop_names(); /*! Installs or uninstalls a colormap for a client. If client is NULL, then it handles the root colormap. */ -void screen_install_colormap(struct Client *client, gboolean install); +void screen_install_colormap(struct _ObClient *client, gboolean install); void screen_update_areas(); @@ -74,4 +75,10 @@ Rect *screen_area(guint desktop); Rect *screen_area_monitor(guint desktop, guint head); +/*! Sets the root cursor. This function decides which cursor to use, but you + gotta call it to let it know it should change. */ +void screen_set_root_cursor(); + +gboolean screen_pointer_pos(int *x, int *y); + #endif