1 #ifndef __XCB_AUX_H__ 2 #define __XCB_AUX_H__ 3 4 5 #ifdef __cplusplus 6 extern "C" { 7 #endif 8 9 10 uint8_t xcb_aux_get_depth (xcb_connection_t *c, 11 xcb_screen_t *screen); 12 13 uint8_t xcb_aux_get_depth_of_visual (xcb_screen_t *screen, 14 xcb_visualid_t id); 15 16 xcb_screen_t *xcb_aux_get_screen (xcb_connection_t *c, 17 int screen); 18 19 xcb_visualtype_t *xcb_aux_get_visualtype (xcb_connection_t *c, 20 int screen, 21 xcb_visualid_t vid); 22 23 xcb_visualtype_t * 24 xcb_aux_find_visual_by_id (xcb_screen_t *screen, 25 xcb_visualid_t id); 26 27 xcb_visualtype_t * 28 xcb_aux_find_visual_by_attrs (xcb_screen_t *screen, 29 int8_t class_, 30 int8_t depth); 31 32 void xcb_aux_sync (xcb_connection_t *c); 33 34 /* internal helper macro for XCB_AUX_ADD_PARAM 35 It gives the offset of the field 'param' in the structure pointed to by 36 'paramsp' in multiples of an uint32_t's size. */ 37 #define XCB_AUX_INTERNAL_OFFSETOF(paramsp, param) \ 38 ((uint32_t const*)(&((paramsp)->param))-(uint32_t const*)(paramsp)) 39 40 /* add an optional parameter to an xcb_params_* structure 41 parameters: 42 maskp: pointer to bitmask whos bits mark used parameters 43 paramsp: pointer to structure with parameters 44 param: parameter to set 45 value: value to set the parameter to 46 */ 47 #define XCB_AUX_ADD_PARAM(maskp, paramsp, param, value) \ 48 ((*(maskp)|=1<<XCB_AUX_INTERNAL_OFFSETOF((paramsp),param)), \ 49 ((paramsp)->param=(value))) 50 51 typedef struct { 52 uint32_t back_pixmap; 53 uint32_t back_pixel; 54 uint32_t border_pixmap; 55 uint32_t border_pixel; 56 uint32_t bit_gravity; 57 uint32_t win_gravity; 58 uint32_t backing_store; 59 uint32_t backing_planes; 60 uint32_t backing_pixel; 61 uint32_t override_redirect; 62 uint32_t save_under; 63 uint32_t event_mask; 64 uint32_t dont_propagate; 65 uint32_t colormap; 66 uint32_t cursor; 67 } xcb_params_cw_t; 68 69 xcb_void_cookie_t 70 xcb_aux_create_window (xcb_connection_t *c, 71 uint8_t depth, 72 xcb_window_t wid, 73 xcb_window_t parent, 74 int16_t x, 75 int16_t y, 76 uint16_t width, 77 uint16_t height, 78 uint16_t border_width, 79 uint16_t class_, 80 xcb_visualid_t visual, 81 uint32_t mask, 82 const xcb_params_cw_t *params); 83 84 xcb_void_cookie_t 85 xcb_aux_create_window_checked (xcb_connection_t *c, 86 uint8_t depth, 87 xcb_window_t wid, 88 xcb_window_t parent, 89 int16_t x, 90 int16_t y, 91 uint16_t width, 92 uint16_t height, 93 uint16_t border_width, 94 uint16_t class_, 95 xcb_visualid_t visual, 96 uint32_t mask, 97 const xcb_params_cw_t *params); 98 99 xcb_void_cookie_t 100 xcb_aux_change_window_attributes (xcb_connection_t *c, 101 xcb_window_t window, 102 uint32_t mask, 103 const xcb_params_cw_t *params); 104 105 xcb_void_cookie_t 106 xcb_aux_change_window_attributes_checked (xcb_connection_t *c, 107 xcb_window_t window, 108 uint32_t mask, 109 const xcb_params_cw_t *params); 110 111 typedef struct { 112 int32_t x; 113 int32_t y; 114 uint32_t width; 115 uint32_t height; 116 uint32_t border_width; 117 uint32_t sibling; 118 uint32_t stack_mode; 119 } xcb_params_configure_window_t; 120 121 xcb_void_cookie_t 122 xcb_aux_configure_window (xcb_connection_t *c, 123 xcb_window_t window, 124 uint16_t mask, 125 const xcb_params_configure_window_t *params); 126 127 typedef struct { 128 uint32_t function; 129 uint32_t plane_mask; 130 uint32_t foreground; 131 uint32_t background; 132 uint32_t line_width; 133 uint32_t line_style; 134 uint32_t cap_style; 135 uint32_t join_style; 136 uint32_t fill_style; 137 uint32_t fill_rule; 138 uint32_t tile; 139 uint32_t stipple; 140 uint32_t tile_stipple_origin_x; 141 uint32_t tile_stipple_origin_y; 142 uint32_t font; 143 uint32_t subwindow_mode; 144 uint32_t graphics_exposures; 145 uint32_t clip_originX; 146 uint32_t clip_originY; 147 uint32_t mask; 148 uint32_t dash_offset; 149 uint32_t dash_list; 150 uint32_t arc_mode; 151 } xcb_params_gc_t; 152 153 xcb_void_cookie_t 154 xcb_aux_create_gc (xcb_connection_t *c, 155 xcb_gcontext_t cid, 156 xcb_drawable_t drawable, 157 uint32_t mask, 158 const xcb_params_gc_t *params); 159 160 xcb_void_cookie_t 161 xcb_aux_create_gc_checked (xcb_connection_t *c, 162 xcb_gcontext_t gid, 163 xcb_drawable_t drawable, 164 uint32_t mask, 165 const xcb_params_gc_t *params); 166 xcb_void_cookie_t 167 xcb_aux_change_gc (xcb_connection_t *c, 168 xcb_gcontext_t gc, 169 uint32_t mask, 170 const xcb_params_gc_t *params); 171 172 xcb_void_cookie_t 173 xcb_aux_change_gc_checked (xcb_connection_t *c, 174 xcb_gcontext_t gc, 175 uint32_t mask, 176 const xcb_params_gc_t *params); 177 typedef struct { 178 uint32_t key_click_percent; 179 uint32_t bell_percent; 180 uint32_t bell_pitch; 181 uint32_t bell_duration; 182 uint32_t led; 183 uint32_t led_mode; 184 uint32_t key; 185 uint32_t auto_repeat_mode; 186 } xcb_params_keyboard_t; 187 188 xcb_void_cookie_t 189 xcb_aux_change_keyboard_control (xcb_connection_t *c, 190 uint32_t mask, 191 const xcb_params_keyboard_t *params); 192 193 int 194 xcb_aux_parse_color(const char *color_name, 195 uint16_t *red, uint16_t *green, uint16_t *blue); 196 197 xcb_void_cookie_t 198 xcb_aux_set_line_attributes_checked (xcb_connection_t *dpy, 199 xcb_gcontext_t gc, 200 uint16_t linewidth, 201 int32_t linestyle, 202 int32_t capstyle, 203 int32_t joinstyle); 204 205 xcb_void_cookie_t 206 xcb_aux_clear_window(xcb_connection_t * dpy, 207 xcb_window_t w); 208 209 #ifdef __cplusplus 210 } 211 #endif 212 213 214 #endif /* __XCB_AUX_H__ */ 215