/usr/include/cairo-dock/gldit/cairo-dock-X-manager.h is in libgldi-dev 3.0.0.1-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | /*
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* 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 3
* 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.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __CAIRO_DOCK_X_MANAGER__
#define __CAIRO_DOCK_X_MANAGER__
#include <X11/Xlib.h>
#include "cairo-dock-struct.h"
#include "cairo-dock-manager.h"
G_BEGIN_DECLS
/**
*@file cairo-dock-X-manager.h This class manages the interactions with X.
* The X manager will handle signals from X and dispatch them, and manages the screen geometry.
*/
typedef struct _CairoDockDesktopManager CairoDockDesktopManager;
#ifndef _MANAGER_DEF_
extern CairoDockDesktopManager myDesktopMgr;
#endif
// no param
// manager
struct _CairoDockDesktopManager {
GldiManager mgr;
} ;
/// signals
typedef enum {
/// notification called when the user switches to another desktop/viewport. data : NULL
NOTIFICATION_DESKTOP_CHANGED = NB_NOTIFICATIONS_OBJECT,
/// notification called when the geometry of the desktop has changed (number of viewports/desktops, dimensions). data : NULL
NOTIFICATION_SCREEN_GEOMETRY_ALTERED,
/// notification called when the desktop is shown/hidden. data:NULL.
NOTIFICATION_DESKTOP_VISIBILITY_CHANGED,
/// notification called when the state of the keyboard has changed.
NOTIFICATION_KBD_STATE_CHANGED,
/// notification called when a window is resized or moved, or when the z-order of windows has changed. data : {Xid, XConfigureEvent or NULL}.
NOTIFICATION_WINDOW_CONFIGURED,
/// notification called when the active window has changed. data : Window* or NULL
NOTIFICATION_WINDOW_ACTIVATED,
/// notification called when a window's property has changed. data : {Window, Atom, int}
NOTIFICATION_WINDOW_PROPERTY_CHANGED,
NB_NOTIFICATIONS_DESKTOP
} CairoDesktopNotifications;
// data
struct _CairoDockDesktopGeometry {
int iScreenWidth[2], iScreenHeight[2]; // dimension de l'ecran sur lequel est place le dock.
int iXScreenWidth[2], iXScreenHeight[2]; // dimension de l'ecran logique compose eventuellement de plusieurs moniteurs.
int iNbDesktops;
int iNbViewportX, iNbViewportY;
int iCurrentDesktop;
int iCurrentViewportX, iCurrentViewportY;
};
/// Definition of the Window Manager backend.
struct _CairoDockWMBackend {
gboolean (*present_class) (const gchar *cClass);
gboolean (*present_windows) (void);
gboolean (*present_desktops) (void);
gboolean (*show_widget_layer) (void);
gboolean (*set_on_widget_layer) (Window Xid, gboolean bOnWidgetLayer);
};
/// Definition of a Desktop Background Buffer. It has a reference count so that it can be shared across all the lib.
struct _CairoDockDesktopBackground {
cairo_surface_t *pSurface;
GLuint iTexture;
guint iSidDestroyBg;
gint iRefCount;
} ;
/** Register a Window Manager backend, overwriting any previous one.
*@param pBackend a Window Manager backend; the function takes ownership of the pointer.
*/
void cairo_dock_wm_register_backend (CairoDockWMBackend *pBackend);
/** Present all the windows of a given class.
*@param cClass the class.
*@return TRUE on success
*/
gboolean cairo_dock_wm_present_class (const gchar *cClass);
/** Present all the windows of the current desktop.
*@return TRUE on success
*/
gboolean cairo_dock_wm_present_windows (void);
/** Present all the desktops.
*@return TRUE on success
*/
gboolean cairo_dock_wm_present_desktops (void);
/** Show the Widget Layer.
*@return TRUE on success
*/
gboolean cairo_dock_wm_show_widget_layer (void);
/** Set a window to be displayed on the Widget Layer.
*@param Xid X ID of the window.
*@param bOnWidgetLayer whether to set or unset the option.
*@return TRUE on success
*/
gboolean cairo_dock_wm_set_on_widget_layer (Window Xid, gboolean bOnWidgetLayer);
gboolean cairo_dock_wm_can_present_class (void);
gboolean cairo_dock_wm_can_present_windows (void);
gboolean cairo_dock_wm_can_present_desktops (void);
gboolean cairo_dock_wm_can_show_widget_layer (void);
gboolean cairo_dock_wm_can_set_on_widget_layer (void);
// X manager : access
/** Get the current workspace (desktop and viewport).
*@param iCurrentDesktop will be filled with the current desktop number
*@param iCurrentViewportX will be filled with the current horizontal viewport number
*@param iCurrentViewportY will be filled with the current vertical viewport number
*/
void cairo_dock_get_current_desktop_and_viewport (int *iCurrentDesktop, int *iCurrentViewportX, int *iCurrentViewportY);
// Desktop background
CairoDockDesktopBackground *cairo_dock_get_desktop_background (gboolean bWithTextureToo);
void cairo_dock_destroy_desktop_background (CairoDockDesktopBackground *pDesktopBg);
cairo_surface_t *cairo_dock_get_desktop_bg_surface (CairoDockDesktopBackground *pDesktopBg);
GLuint cairo_dock_get_desktop_bg_texture (CairoDockDesktopBackground *pDesktopBg);
void gldi_register_desktop_manager (void);
G_END_DECLS
#endif
|