edelib
1.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
edelib
Netwm.h
1
/*
2
* $Id: Netwm.h 3533 2013-03-04 23:20:19Z karijes $
3
*
4
* Functions for easier communication with window manager
5
* Copyright (c) 2009 edelib authors
6
*
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2 of the License, or (at your option) any later version.
11
*
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this library. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef __EDELIB_NETWM_H__
22
#define __EDELIB_NETWM_H__
23
24
#include "edelib-global.h"
25
#include <FL/Fl_Image.H>
26
#include <FL/x.H>
27
28
#include "List.h"
29
30
EDELIB_NS_BEGIN
31
40
enum
{
41
NETWM_CHANGED_WORKSPACE_COUNT
,
42
NETWM_CHANGED_WORKSPACE_NAMES
,
43
NETWM_CHANGED_CURRENT_WORKSPACE
,
44
NETWM_CHANGED_CURRENT_WORKAREA
,
45
NETWM_CHANGED_ACTIVE_WINDOW
,
46
NETWM_CHANGED_WINDOW_NAME
,
47
NETWM_CHANGED_WINDOW_VISIBLE_NAME
,
48
NETWM_CHANGED_WINDOW_DESKTOP
,
49
NETWM_CHANGED_WINDOW_ICON
,
50
NETWM_CHANGED_WINDOW_LIST
51
};
52
58
enum
{
59
NETWM_WINDOW_TYPE_NORMAL
,
60
NETWM_WINDOW_TYPE_DESKTOP
,
61
NETWM_WINDOW_TYPE_DOCK
,
62
NETWM_WINDOW_TYPE_TOOLBAR
,
63
NETWM_WINDOW_TYPE_MENU
,
64
NETWM_WINDOW_TYPE_UTILITY
,
65
NETWM_WINDOW_TYPE_SPLASH
,
66
NETWM_WINDOW_TYPE_DIALOG
,
67
NETWM_WINDOW_TYPE_DROPDOWN_MENU
,
68
NETWM_WINDOW_TYPE_POPUP_MENU
,
69
NETWM_WINDOW_TYPE_TOOLTIP
,
70
NETWM_WINDOW_TYPE_NOTIFICATION
,
71
NETWM_WINDOW_TYPE_COMBO
,
72
NETWM_WINDOW_TYPE_DND
73
};
74
79
enum
WmStateValue
{
80
WM_WINDOW_STATE_NONE
= -1,
81
WM_WINDOW_STATE_WITHDRAW
= 0,
82
WM_WINDOW_STATE_NORMAL
= 1,
83
WM_WINDOW_STATE_ICONIC
= 3
84
};
85
90
enum
NetwmStateValue
{
91
NETWM_STATE_NONE
= -1,
92
NETWM_STATE_MODAL
,
93
NETWM_STATE_STICKY
,
94
NETWM_STATE_MAXIMIZED_VERT
,
95
NETWM_STATE_MAXIMIZED_HORZ
,
96
NETWM_STATE_MAXIMIZED
,
97
NETWM_STATE_SHADED
,
98
NETWM_STATE_SKIP_TASKBAR
,
99
NETWM_STATE_SKIP_PAGER
,
100
NETWM_STATE_HIDDEN
,
101
NETWM_STATE_FULLSCREEN
,
102
NETWM_STATE_ABOVE
,
103
NETWM_STATE_BELOW
,
104
NETWM_STATE_DEMANDS_ATTENTION
105
};
106
111
enum
NetwmStateAction
{
112
NETWM_STATE_ACTION_REMOVE
,
113
NETWM_STATE_ACTION_ADD
,
114
NETWM_STATE_ACTION_TOGGLE
115
};
116
117
122
typedef
void (*
NetwmCallback
)(
int
action,
Window
xid,
void
*data);
123
133
void
netwm_callback_add
(
NetwmCallback
cb,
void
*data = 0);
134
139
void
netwm_callback_remove
(
NetwmCallback
cb);
140
145
bool
netwm_workarea_get_size
(
int
& x,
int
& y,
int
& w,
int
&h);
146
151
int
netwm_workspace_get_count
(
void
);
152
157
void
netwm_workspace_change
(
int
n);
158
163
int
netwm_workspace_get_current
(
void
);
164
170
int
netwm_workspace_get_names
(
char
**& names);
171
176
void
netwm_workspace_free_names
(
char
** names);
177
183
void
netwm_window_set_type
(
Window
win,
int
t);
184
189
int
netwm_window_get_type
(
Window
win);
190
195
void
netwm_window_set_strut
(
Window
win,
int
left,
int
right,
int
top,
int
bottom);
196
205
void
netwm_window_set_strut_partial
(
Window
win,
int
sizes[12]);
206
211
void
netwm_window_remove_strut
(
Window
win);
212
217
void
netwm_window_remove_strut_partial
(
Window
win);
218
223
int
netwm_window_get_all_mapped
(
Window
**windows);
224
229
int
netwm_window_get_workspace
(
Window
win);
230
236
int
netwm_window_is_manageable
(
Window
win);
237
242
char
*
netwm_window_get_title
(
Window
win);
243
250
Fl_RGB_Image *
netwm_window_get_icon
(
Window
win,
unsigned
int
requested_width = 0);
251
256
Window
netwm_window_get_active
(
void
);
257
263
void
netwm_window_set_active
(
Window
win,
int
source = 0);
264
269
void
netwm_window_maximize
(
Window
win) EDELIB_DEPRECATED;
270
275
void
netwm_window_close
(
Window
win);
276
281
void
wm_window_ede_restore
(
Window
win);
282
288
void
netwm_window_set_state
(
Window
win,
NetwmStateValue
val,
NetwmStateAction
action);
289
294
bool
netwm_window_get_all_states
(
Window
win,
list<NetwmStateValue>
&ret);
295
300
bool
netwm_window_have_state
(
Window
win,
NetwmStateValue
val);
301
306
WmStateValue
wm_window_get_state
(
Window
win);
307
312
void
wm_window_set_state
(
Window
win,
WmStateValue
state);
313
314
EDELIB_NS_END
315
#endif
Generated on Fri Aug 1 2014 18:16:59 for edelib by
1.8.2