]> git.decadent.org.uk Git - ion3.git/blob - ioncore/global.h
Update cfg_kludge_flash for Flash 10
[ion3.git] / ioncore / global.h
1 /*
2  * ion/ioncore/global.h
3  *
4  * Copyright (c) Tuomo Valkonen 1999-2009. 
5  *
6  * See the included file LICENSE for details.
7  */
8
9 #ifndef ION_IONCORE_GLOBAL_H
10 #define ION_IONCORE_GLOBAL_H
11
12 #include "common.h"
13
14 #include <X11/Xutil.h>
15 #include <X11/Xresource.h>
16
17 #include <libtu/stringstore.h>
18
19 #include "rootwin.h"
20 #include "screen.h"
21 #include "window.h"
22 #include "clientwin.h"
23
24
25 enum{
26     IONCORE_INPUTMODE_NORMAL,
27     IONCORE_INPUTMODE_GRAB,
28     IONCORE_INPUTMODE_WAITRELEASE
29 };
30
31 enum{
32     IONCORE_OPMODE_INIT,
33     IONCORE_OPMODE_NORMAL,
34     IONCORE_OPMODE_DEINIT
35 };
36
37 enum{
38     IONCORE_FOCUSNEXT_OTHER,
39     IONCORE_FOCUSNEXT_POINTERHACK,
40     IONCORE_FOCUSNEXT_ENTERWINDOW,
41     IONCORE_FOCUSNEXT_FALLBACK
42 };
43
44
45 INTRSTRUCT(WGlobal);
46
47
48 DECLSTRUCT(WGlobal){
49     int argc;
50     char **argv;
51     
52     Display *dpy;
53     const char *display;
54     int conn;
55     
56     XContext win_context;
57     Atom atom_wm_state;
58     Atom atom_wm_change_state;
59     Atom atom_wm_protocols;
60     Atom atom_wm_delete;
61     Atom atom_wm_take_focus;
62     Atom atom_wm_colormaps;
63     Atom atom_wm_window_role;
64     Atom atom_checkcode;
65     Atom atom_selection;
66     Atom atom_mwm_hints;
67     Atom atom_dockapp_hack;
68     
69     WRootWin *rootwins;
70     WScreen *screens;
71     WRegion *focus_next;
72     bool warp_next;
73     int focus_next_source;
74     
75     /* We could have a display WRegion but the screen-link could impose
76      * some problems so these are handled as a special case.
77      */
78     WRegion *focus_current;
79     
80     int input_mode;
81     int opmode;
82     
83     Time dblclick_delay;
84     int opaque_resize;
85     bool warp_enabled;
86     bool switchto_new;
87     bool screen_notify;
88     int frame_default_index;
89     bool framed_transients;
90     bool no_mousefocus;
91     bool unsqueeze_enabled;
92     bool autoraise;
93     
94     bool use_mb; /* use mb routines? */
95     bool enc_sb; /* 8-bit charset? If unset, use_mb must be set. */
96     bool enc_utf8; /* mb encoding is utf8? */
97     
98     const char *sm_client_id;
99     
100     struct{
101         StringId activated,
102                  inactivated,
103                  activity,
104                  sub_activity,
105                  name,
106                  unset_manager,
107                  set_manager,
108                  tag,
109                  set_return,
110                  unset_return,
111                  pseudoactivated,
112                  pseudoinactivated,
113                  deinit,
114                  map,
115                  unmap;
116     } notifies;
117 };
118
119
120 extern WGlobal ioncore_g;
121
122 #endif /* ION_IONCORE_GLOBAL_H */