X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.h;h=7df47f396fca396f3094ad595d1c52e4e236416f;hb=d55f4b41c6ebf00e36a5e91ddc962a753f6c9ef8;hp=b40776df9afa541538c10c802bb150386328fe3e;hpb=6f6ab8c442b1626a1cd28868900a00fe4bf8cb08;p=chaz%2Fopenbox diff --git a/openbox/screen.h b/openbox/screen.h index b40776df..7df47f39 100644 --- a/openbox/screen.h +++ b/openbox/screen.h @@ -67,12 +67,18 @@ void screen_resize(); void screen_set_num_desktops(guint num); /*! Change the current desktop */ void screen_set_desktop(guint num, gboolean dofocus); -/*! Interactively change desktops */ -guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, - gboolean dialog, gboolean done, gboolean cancel); +/*! Add a new desktop either at the end or inserted at the current desktop */ +void screen_add_desktop(gboolean current); +/*! Remove a desktop, either at the end or the current desktop */ +void screen_remove_desktop(gboolean current); -/*! Show/hide the desktop popup (pager) for the given desktop */ -void screen_desktop_popup(guint d, gboolean show); +guint screen_find_desktop(guint from, ObDirection dir, + gboolean wrap, gboolean linear); + +/*! Show the desktop popup/notification */ +void screen_show_desktop_popup(guint d); +/*! Hide it */ +void screen_hide_desktop_popup(); /*! Shows and focuses the desktop and hides all the client windows, or returns to the normal state, showing client windows. @@ -94,17 +100,38 @@ void screen_install_colormap(struct _ObClient *client, gboolean install); void screen_update_areas(); -Rect *screen_physical_area(); +Rect *screen_physical_area_all_monitors(); Rect *screen_physical_area_monitor(guint head); -Rect *screen_area(guint desktop); +/*! Returns the monitor which contains the active window, or the one + containing the pointer otherwise. */ +guint screen_monitor_active(void); + +Rect *screen_physical_area_active(void); + +/*! Returns the primary monitor, as specified by the config */ +guint screen_monitor_primary(void); + +Rect *screen_physical_area_primary(void); -Rect *screen_area_monitor(guint desktop, guint head); +/* doesn't include struts which the search area is already outside of when + 'search' is not NULL */ +#define SCREEN_AREA_ALL_MONITORS ((unsigned)-1) +#define SCREEN_AREA_ONE_MONITOR ((unsigned)-2) + +/*! @param head is the number of the head or one of SCREEN_AREA_ALL_MONITORS, + SCREEN_AREA_ONE_MONITOR + @param search NULL or the whole monitor(s) + */ +Rect* screen_area(guint desktop, guint head, Rect *search); + +gboolean screen_physical_area_monitor_contains(guint head, Rect *search); /*! Determines which physical monitor a rectangle is on by calculating the area of the part of the rectable on each monitor. The number of the - monitor containing the greatest area of the rectangle is returned.*/ + monitor containing the greatest area of the rectangle is returned. +*/ guint screen_find_monitor(Rect *search); /*! Sets the root cursor. This function decides which cursor to use, but you @@ -115,4 +142,7 @@ void screen_set_root_cursor(); is on this screen and FALSE if it is on another screen. */ gboolean screen_pointer_pos(gint *x, gint *y); +/*! Returns the monitor which contains the pointer device */ +guint screen_monitor_pointer(void); + #endif