X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=c%2Fscreen.h;fp=c%2Fscreen.h;h=a591a20268516d146c6822c004ce83c7238fa2f3;hb=f8a47de5ec444c452093371e3db16857eb39a490;hp=0000000000000000000000000000000000000000;hpb=8ba0586bcbdc7fe9648f1063812126d71a041670;p=chaz%2Fopenbox diff --git a/c/screen.h b/c/screen.h new file mode 100644 index 00000000..a591a202 --- /dev/null +++ b/c/screen.h @@ -0,0 +1,66 @@ +#ifndef __screen_h +#define __screen_h + +#include "geom.h" + +struct Client; + +#define DESKTOP_ALL (0xffffffff) + +/*! The number of available desktops */ +extern guint screen_num_desktops; +/*! The current desktop */ +extern guint screen_desktop; +/*! The size of the screen */ +extern Size screen_physical_size; +/*! Are we in showing-desktop mode? */ +extern gboolean screen_showing_desktop; + +typedef struct DesktopLayout { + guint orientation; + guint start_corner; + guint rows; + guint columns; +} DesktopLayout; +extern DesktopLayout screen_desktop_layout; + +/*! An array of gchar*'s which are desktop names in UTF-8 format */ +extern GPtrArray *screen_desktop_names; + +/*! Take over the screen, set the basic hints on it claming it as ours */ +gboolean screen_annex(); + +/*! Once the screen is ours, set up its initial state */ +void screen_startup(); +/*! Free resources */ +void screen_shutdown(); + +/*! Figure out the new size of the screen and adjust stuff for it */ +void screen_resize(); + +/*! Change the number of available desktops */ +void screen_set_num_desktops(guint num); +/*! Change the current desktop */ +void screen_set_desktop(guint num); + +/*! Shows and focuses the desktop and hides all the client windows, or + returns to the normal state, showing client windows. */ +void screen_show_desktop(gboolean show); + +/*! Updates the desktop layout from the root property if available */ +void screen_update_layout(); + +/*! Get desktop names from the root window property */ +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_update_struts(); + +Rect *screen_area(guint desktop); + +Strut *screen_strut(guint desktop); + +#endif