File: global.h

package info (click to toggle)
notion 4.0.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,656 kB
  • sloc: ansic: 47,365; sh: 2,093; makefile: 594; perl: 270
file content (154 lines) | stat: -rw-r--r-- 3,559 bytes parent folder | download | duplicates (3)
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
 * ion/ioncore/global.h
 *
 * Copyright (c) Tuomo Valkonen 1999-2007.
 *
 * 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
};

enum{
    IONCORE_WINDOWSTACKINGREQUEST_IGNORE,
    IONCORE_WINDOWSTACKINGREQUEST_ACTIVATE
};


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'
     *
     * This is the list of previously-focused windows, in order of recent
     * usefulness. The currently-focussed window is deemed most important (first
     * item on this list) if focuslist_insert_delay is disabled, or if
     * focuslist_insert_delay is enabled and its timer has expired
     */
    WRegion* focuslist;

    /* This is the region that is currently focused. It is usually the first
     * item in the focuslist, but not always. It isn't the first item if
     * focuslist_insert_delay is enabled, and the corresponding timer is active */
    WRegion* focus_current;


    int input_mode;
    int opmode;

    Time dblclick_delay;
    int opaque_resize;
    bool warp_enabled;
    int warp_margin;
    double warp_factor[2];
    bool switchto_new;
    bool screen_notify;
    int frame_default_index;
    bool framed_transients;
    bool no_mousefocus;
    bool unsqueeze_enabled;
    bool window_dialog_float;
    bool autoraise;
    bool autosave_layout;
    int  window_stacking_request;

    Time focuslist_insert_delay;
    Time workspace_indicator_timeout;
    bool activity_notification_on_all_screens;

    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 */