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
|
/*
* ion/ioncore/global.h
*
* Copyright (c) Tuomo Valkonen 1999-2009.
*
* See the included file LICENSE for details.
*/
#ifndef ION_IONCORE_GLOBAL_H
#define ION_IONCORE_GLOBAL_H
#include "common.h"
#include <X11/Xutil.h>
#include <X11/Xresource.h>
#include <libtu/stringstore.h>
#include "rootwin.h"
#include "screen.h"
#include "window.h"
#include "clientwin.h"
enum{
IONCORE_INPUTMODE_NORMAL,
IONCORE_INPUTMODE_GRAB,
IONCORE_INPUTMODE_WAITRELEASE
};
enum{
IONCORE_OPMODE_INIT,
IONCORE_OPMODE_NORMAL,
IONCORE_OPMODE_DEINIT
};
enum{
IONCORE_FOCUSNEXT_OTHER,
IONCORE_FOCUSNEXT_POINTERHACK,
IONCORE_FOCUSNEXT_ENTERWINDOW,
IONCORE_FOCUSNEXT_FALLBACK
};
INTRSTRUCT(WGlobal);
DECLSTRUCT(WGlobal){
int argc;
char **argv;
Display *dpy;
const char *display;
int conn;
XContext win_context;
Atom atom_wm_state;
Atom atom_wm_change_state;
Atom atom_wm_protocols;
Atom atom_wm_delete;
Atom atom_wm_take_focus;
Atom atom_wm_colormaps;
Atom atom_wm_window_role;
Atom atom_checkcode;
Atom atom_selection;
Atom atom_mwm_hints;
Atom atom_dockapp_hack;
WRootWin *rootwins;
WScreen *screens;
WRegion *focus_next;
bool warp_next;
int focus_next_source;
/* We could have a display WRegion but the screen-link could impose
* some problems so these are handled as a special case.
*
* This is a doubly-linked list with links 'active_next' and 'active_prev'
*/
WRegion *focus_current;
int input_mode;
int opmode;
Time dblclick_delay;
int opaque_resize;
bool warp_enabled;
bool switchto_new;
bool screen_notify;
int frame_default_index;
bool framed_transients;
bool no_mousefocus;
bool unsqueeze_enabled;
bool autoraise;
Time usertime_diff_current;
Time usertime_diff_new;
bool use_mb; /* use mb routines? */
bool enc_sb; /* 8-bit charset? If unset, use_mb must be set. */
bool enc_utf8; /* mb encoding is utf8? */
const char *sm_client_id;
struct{
StringId activated,
inactivated,
activity,
sub_activity,
name,
unset_manager,
set_manager,
tag,
set_return,
unset_return,
pseudoactivated,
pseudoinactivated,
deinit,
map,
unmap;
} notifies;
/** XShape extension presence */
bool shape_extension;
int shape_event_basep;
int shape_error_basep;
};
extern WGlobal ioncore_g;
#endif /* ION_IONCORE_GLOBAL_H */
|