… | |
… | |
46 | ~refcache (); |
46 | ~refcache (); |
47 | }; |
47 | }; |
48 | |
48 | |
49 | ///////////////////////////////////////////////////////////////////////////// |
49 | ///////////////////////////////////////////////////////////////////////////// |
50 | |
50 | |
|
|
51 | #ifdef USE_XIM |
51 | struct rxvt_xim : refcounted { |
52 | struct rxvt_xim : refcounted { |
52 | void destroy (); |
53 | void destroy (); |
53 | rxvt_display *display; |
54 | rxvt_display *display; |
54 | |
55 | |
55 | //public |
56 | //public |
… | |
… | |
57 | |
58 | |
58 | rxvt_xim (const char *id) : refcounted (id) { } |
59 | rxvt_xim (const char *id) : refcounted (id) { } |
59 | bool init (); |
60 | bool init (); |
60 | ~rxvt_xim (); |
61 | ~rxvt_xim (); |
61 | }; |
62 | }; |
|
|
63 | #endif |
62 | |
64 | |
63 | struct rxvt_display : refcounted { |
65 | struct rxvt_display : refcounted { |
64 | Atom xa_xim_servers; |
66 | Atom xa_xim_servers; |
65 | |
67 | |
66 | io_manager_vec<xevent_watcher> xw; |
68 | io_manager_vec<xevent_watcher> xw; |
67 | |
69 | |
68 | io_watcher x_ev; void x_cb (io_watcher &w, short revents); |
70 | io_watcher x_ev; void x_cb (io_watcher &w, short revents); |
69 | |
71 | |
|
|
72 | #ifdef USE_XIM |
70 | refcache<rxvt_xim> xims; |
73 | refcache<rxvt_xim> xims; |
71 | vector<im_watcher *> imw; |
74 | vector<im_watcher *> imw; |
72 | |
75 | |
73 | void im_change_cb (); |
76 | void im_change_cb (); |
|
|
77 | #endif |
74 | |
78 | |
75 | //public |
79 | //public |
76 | Display *display; |
80 | Display *display; |
77 | int depth; |
81 | int depth; |
78 | int screen; |
82 | int screen; |
79 | Visual *visual; |
83 | Visual *visual; |
80 | Colormap cmap; |
84 | Colormap cmap; |
81 | Window root; |
85 | Window root; |
82 | rxvt_term *selection_owner; |
86 | rxvt_term *selection_owner; |
|
|
87 | #ifndef NO_SLOW_LINK_SUPPORT |
|
|
88 | bool is_local; |
|
|
89 | #endif |
83 | |
90 | |
84 | rxvt_display (const char *id); |
91 | rxvt_display (const char *id); |
85 | bool init (); |
92 | bool init (); |
86 | ~rxvt_display (); |
93 | ~rxvt_display (); |
87 | |
94 | |
88 | void flush (); |
95 | void flush (); |
89 | |
96 | |
|
|
97 | void set_selection_owner (rxvt_term *owner); |
|
|
98 | |
90 | void reg (xevent_watcher *w); |
99 | void reg (xevent_watcher *w); |
91 | void unreg (xevent_watcher *w); |
100 | void unreg (xevent_watcher *w); |
|
|
101 | |
|
|
102 | #ifdef USE_XIM |
92 | void reg (im_watcher *w); |
103 | void reg (im_watcher *w); |
93 | void unreg (im_watcher *w); |
104 | void unreg (im_watcher *w); |
94 | |
105 | |
95 | void set_selection_owner (rxvt_term *owner); |
|
|
96 | |
|
|
97 | rxvt_xim *get_xim (const char *locale, const char *modifiers); |
106 | rxvt_xim *get_xim (const char *locale, const char *modifiers); |
98 | void put_xim (rxvt_xim *xim); |
107 | void put_xim (rxvt_xim *xim); |
|
|
108 | #endif |
|
|
109 | |
|
|
110 | Atom atom (const char *name); |
99 | }; |
111 | }; |
100 | |
112 | |
|
|
113 | #ifdef USE_XIM |
101 | struct im_watcher : watcher, callback0<void> { |
114 | struct im_watcher : watcher, callback0<void> { |
102 | template<class O1, class O2> |
115 | template<class O1, class O2> |
103 | im_watcher (O1 *object, void (O2::*method) ()) |
116 | im_watcher (O1 *object, void (O2::*method) ()) |
104 | : callback0<void> (object,method) |
117 | : callback0<void> (object,method) |
105 | { } |
118 | { } |
… | |
… | |
111 | void stop (rxvt_display *display) |
124 | void stop (rxvt_display *display) |
112 | { |
125 | { |
113 | display->unreg (this); |
126 | display->unreg (this); |
114 | } |
127 | } |
115 | }; |
128 | }; |
|
|
129 | #endif |
116 | |
130 | |
117 | struct xevent_watcher : watcher, callback1<void, XEvent &> { |
131 | struct xevent_watcher : watcher, callback1<void, XEvent &> { |
118 | Window window; |
132 | Window window; |
119 | |
133 | |
120 | template<class O1, class O2> |
134 | template<class O1, class O2> |
… | |
… | |
155 | |
169 | |
156 | bool set (rxvt_display *display, Pixel p); |
170 | bool set (rxvt_display *display, Pixel p); |
157 | bool set (rxvt_display *display, const char *name); |
171 | bool set (rxvt_display *display, const char *name); |
158 | bool set (rxvt_display *display, unsigned short cr, unsigned short cg, unsigned short cb); |
172 | bool set (rxvt_display *display, unsigned short cr, unsigned short cg, unsigned short cb); |
159 | |
173 | |
|
|
174 | rxvt_color fade (rxvt_display *, int percent); |
|
|
175 | |
160 | void free (rxvt_display *display); |
176 | void free (rxvt_display *display); |
161 | }; |
177 | }; |
162 | |
178 | |
163 | #endif |
179 | #endif |
164 | |
180 | |