File: global.h

package info (click to toggle)
notion 3%2B2012042300-1
  • links: PTS, VCS
  • area: non-free
  • in suites: wheezy
  • size: 4,724 kB
  • sloc: ansic: 45,614; makefile: 544; sh: 409; perl: 113
file content (131 lines) | stat: -rw-r--r-- 2,745 bytes parent folder | download
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 */