]> Dogcows Code - chaz/openbox/blob - openbox/screen.h
s/_/./
[chaz/openbox] / openbox / screen.h
1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
2
3 screen.h for the Openbox window manager
4 Copyright (c) 2003 Ben Jansens
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 See the COPYING file for a copy of the GNU General Public License.
17 */
18
19 #ifndef __screen_h
20 #define __screen_h
21
22 #include "misc.h"
23 #include "geom.h"
24
25 struct _ObClient;
26
27 #define DESKTOP_ALL (0xffffffff)
28
29 /*! The number of available desktops */
30 extern guint screen_num_desktops;
31 /*! The number of virtual "xinerama" screens/heads */
32 extern guint screen_num_monitors;
33 /*! The current desktop */
34 extern guint screen_desktop;
35 /*! The desktop which was last visible */
36 extern guint screen_last_desktop;
37 /*! Are we in showing-desktop mode? */
38 extern gboolean screen_showing_desktop;
39 /*! The support window also used for focus and stacking */
40 extern Window screen_support_win;
41
42 typedef struct DesktopLayout {
43 ObOrientation orientation;
44 ObCorner start_corner;
45 guint rows;
46 guint columns;
47 } DesktopLayout;
48 extern DesktopLayout screen_desktop_layout;
49
50 /*! An array of gchar*'s which are desktop names in UTF-8 format */
51 extern gchar **screen_desktop_names;
52
53 /*! Take over the screen, set the basic hints on it claming it as ours */
54 gboolean screen_annex();
55
56 /*! Once the screen is ours, set up its initial state */
57 void screen_startup(gboolean reconfig);
58 /*! Free resources */
59 void screen_shutdown(gboolean reconfig);
60
61 /*! Figure out the new size of the screen and adjust stuff for it */
62 void screen_resize();
63
64 /*! Change the number of available desktops */
65 void screen_set_num_desktops(guint num);
66 /*! Change the current desktop */
67 void screen_set_desktop(guint num);
68 /*! Interactively change desktops */
69 guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
70 gboolean dialog, gboolean done, gboolean cancel);
71
72 /*! Show/hide the desktop popup (pager) for the given desktop */
73 void screen_desktop_popup(guint d, gboolean show);
74
75 /*! Shows and focuses the desktop and hides all the client windows, or
76 returns to the normal state, showing client windows. */
77 void screen_show_desktop(gboolean show);
78
79 /*! Updates the desktop layout from the root property if available */
80 void screen_update_layout();
81
82 /*! Get desktop names from the root window property */
83 void screen_update_desktop_names();
84
85 /*! Installs or uninstalls a colormap for a client. If client is NULL, then
86 it handles the root colormap. */
87 void screen_install_colormap(struct _ObClient *client, gboolean install);
88
89 void screen_update_areas();
90
91 Rect *screen_physical_area();
92
93 Rect *screen_physical_area_monitor(guint head);
94
95 Rect *screen_area(guint desktop);
96
97 Rect *screen_area_monitor(guint desktop, guint head);
98
99 /*! Sets the root cursor. This function decides which cursor to use, but you
100 gotta call it to let it know it should change. */
101 void screen_set_root_cursor();
102
103 gboolean screen_pointer_pos(gint *x, gint *y);
104
105 #endif
This page took 0.037602 seconds and 4 git commands to generate.