ion->notion
[notion/jeffpc.git] / ioncore / global.h
blob9ca41c74a8834f98827d3f8a3ffa8e8dfcd968b5
1 /*
2 * ion/ioncore/global.h
4 * Copyright (c) Tuomo Valkonen 1999-2009.
6 * See the included file LICENSE for details.
7 */
9 #ifndef ION_IONCORE_GLOBAL_H
10 #define ION_IONCORE_GLOBAL_H
12 #include "common.h"
14 #include <X11/Xutil.h>
15 #include <X11/Xresource.h>
17 #include <libtu/stringstore.h>
19 #include "rootwin.h"
20 #include "screen.h"
21 #include "window.h"
22 #include "clientwin.h"
25 enum{
26 IONCORE_INPUTMODE_NORMAL,
27 IONCORE_INPUTMODE_GRAB,
28 IONCORE_INPUTMODE_WAITRELEASE
31 enum{
32 IONCORE_OPMODE_INIT,
33 IONCORE_OPMODE_NORMAL,
34 IONCORE_OPMODE_DEINIT
37 enum{
38 IONCORE_FOCUSNEXT_OTHER,
39 IONCORE_FOCUSNEXT_POINTERHACK,
40 IONCORE_FOCUSNEXT_ENTERWINDOW,
41 IONCORE_FOCUSNEXT_FALLBACK
45 INTRSTRUCT(WGlobal);
48 DECLSTRUCT(WGlobal){
49 int argc;
50 char **argv;
52 Display *dpy;
53 const char *display;
54 int conn;
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;
69 WRootWin *rootwins;
70 WScreen *screens;
71 WRegion *focus_next;
72 bool warp_next;
73 int focus_next_source;
75 /* We could have a display WRegion but the screen-link could impose
76 * some problems so these are handled as a special case.
78 * This is a doubly-linked list with links 'active_next' and 'active_prev'
80 WRegion *focus_current;
82 int input_mode;
83 int opmode;
85 Time dblclick_delay;
86 int opaque_resize;
87 bool warp_enabled;
88 bool switchto_new;
89 bool screen_notify;
90 int frame_default_index;
91 bool framed_transients;
92 bool no_mousefocus;
93 bool unsqueeze_enabled;
94 bool autoraise;
95 Time usertime_diff_current;
96 Time usertime_diff_new;
98 bool use_mb; /* use mb routines? */
99 bool enc_sb; /* 8-bit charset? If unset, use_mb must be set. */
100 bool enc_utf8; /* mb encoding is utf8? */
102 const char *sm_client_id;
104 struct{
105 StringId activated,
106 inactivated,
107 activity,
108 sub_activity,
109 name,
110 unset_manager,
111 set_manager,
112 tag,
113 set_return,
114 unset_return,
115 pseudoactivated,
116 pseudoinactivated,
117 deinit,
118 map,
119 unmap;
120 } notifies;
122 /** XShape extension presence */
123 bool shape_extension;
124 int shape_event_basep;
125 int shape_error_basep;
129 extern WGlobal ioncore_g;
131 #endif /* ION_IONCORE_GLOBAL_H */