#include "data.h"
Go to the source code of this file.
Defines | |
#define | _NET_WM_STATE_REMOVE 0 |
#define | _NET_WM_STATE_ADD 1 |
#define | _NET_WM_STATE_TOGGLE 2 |
#define | XCB_CURSOR_LEFT_PTR 68 |
This is the equivalent of XC_left_ptr. | |
#define | XCB_CURSOR_SB_H_DOUBLE_ARROW 108 |
#define | XCB_CURSOR_SB_V_DOUBLE_ARROW 116 |
#define | XCB_NUM_LOCK 0xff7f |
#define | CHILD_EVENT_MASK |
The XCB_CW_EVENT_MASK for the child (= real window). | |
#define | FRAME_EVENT_MASK |
The XCB_CW_EVENT_MASK for its frame. | |
Enumerations | |
enum | { _NET_SUPPORTED = 0, _NET_SUPPORTING_WM_CHECK, _NET_WM_NAME, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE, _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_UTILITY, _NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_SPLASH, _NET_WM_DESKTOP, _NET_WM_STRUT_PARTIAL, WM_PROTOCOLS, WM_DELETE_WINDOW, UTF8_STRING, WM_STATE, WM_CLIENT_LEADER, _NET_CURRENT_DESKTOP, _NET_ACTIVE_WINDOW, _NET_WORKAREA } |
Functions | |
i3Font * | load_font (xcb_connection_t *conn, const char *pattern) |
Loads a font for usage, getting its height. | |
uint32_t | get_colorpixel (xcb_connection_t *conn, char *hex) |
Returns the colorpixel to use for the given hex color (think of HTML). | |
xcb_window_t | create_window (xcb_connection_t *conn, Rect r, uint16_t window_class, int cursor, bool map, uint32_t mask, uint32_t *values) |
Convenience wrapper around xcb_create_window which takes care of depth, generating an ID and checking for errors. | |
void | xcb_change_gc_single (xcb_connection_t *conn, xcb_gcontext_t gc, uint32_t mask, uint32_t value) |
Changes a single value in the graphic context (so one doesn’t have to define an array of values). | |
void | xcb_draw_line (xcb_connection_t *conn, xcb_drawable_t drawable, xcb_gcontext_t gc, uint32_t colorpixel, uint32_t x, uint32_t y, uint32_t to_x, uint32_t to_y) |
Draws a line from x,y to to_x,to_y using the given color. | |
void | xcb_draw_rect (xcb_connection_t *conn, xcb_drawable_t drawable, xcb_gcontext_t gc, uint32_t colorpixel, uint32_t x, uint32_t y, uint32_t width, uint32_t height) |
Draws a rectangle from x,y with width,height using the given color. | |
void | fake_configure_notify (xcb_connection_t *conn, Rect r, xcb_window_t window) |
Generates a configure_notify event and sends it to the given window Applications need this to think they’ve configured themselves correctly. | |
void | fake_absolute_configure_notify (xcb_connection_t *conn, Client *client) |
Generates a configure_notify_event with absolute coordinates (relative to the X root window, not to the client’s frame) for the given client. | |
void | xcb_get_numlock_mask (xcb_connection_t *conn) |
Finds out which modifier mask is the one for numlock, as the user may change this. | |
void | xcb_raise_window (xcb_connection_t *conn, xcb_window_t window) |
Raises the given window (typically client->frame) above all other windows. | |
void | cached_pixmap_prepare (xcb_connection_t *conn, struct Cached_Pixmap *pixmap) |
Prepares the given Cached_Pixmap for usage (checks whether the size of the object this pixmap is related to (e.g. | |
int | predict_text_width (xcb_connection_t *conn, const char *font_pattern, char *text, int length) |
Calculate the width of the given text (16-bit characters, UCS) with given real length (amount of glyphs) using the given font. | |
void | xcb_set_window_rect (xcb_connection_t *conn, xcb_window_t window, Rect r) |
Configures the given window to have the size/position specified by given rect. | |
Variables | |
unsigned int | xcb_numlock_mask |
#define _NET_WM_STATE_ADD 1 |
Definition at line 17 of file xcb.h.
Referenced by handle_client_message().
#define _NET_WM_STATE_REMOVE 0 |
Definition at line 16 of file xcb.h.
Referenced by handle_client_message().
#define _NET_WM_STATE_TOGGLE 2 |
Definition at line 18 of file xcb.h.
Referenced by handle_client_message().
#define CHILD_EVENT_MASK |
(XCB_EVENT_MASK_PROPERTY_CHANGE | \ XCB_EVENT_MASK_STRUCTURE_NOTIFY | \ XCB_EVENT_MASK_ENTER_WINDOW)
The XCB_CW_EVENT_MASK for the child (= real window).
Definition at line 33 of file xcb.h.
Referenced by ignore_enter_notify_forall(), and reparent_window().
#define FRAME_EVENT_MASK |
(XCB_EVENT_MASK_BUTTON_PRESS | /* …mouse is pressed/released */ \ XCB_EVENT_MASK_BUTTON_RELEASE | \ XCB_EVENT_MASK_EXPOSURE | /* …our window needs to be redrawn */ \ XCB_EVENT_MASK_STRUCTURE_NOTIFY | /* …the frame gets destroyed */ \ XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | /* …the application tries to resize itself */ \ XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | /* …subwindows get notifies */ \ XCB_EVENT_MASK_ENTER_WINDOW)
The XCB_CW_EVENT_MASK for its frame.
Definition at line 38 of file xcb.h.
Referenced by ignore_enter_notify_forall(), and reparent_window().
#define XCB_CURSOR_LEFT_PTR 68 |
This is the equivalent of XC_left_ptr.
I’m not sure why xcb doesn’t have a constant for that.
Definition at line 22 of file xcb.h.
Referenced by create_window(), initialize_output(), reparent_window(), and switch_layout_mode().
#define XCB_CURSOR_SB_H_DOUBLE_ARROW 108 |
Definition at line 23 of file xcb.h.
Referenced by resize_graphical_handler().
#define XCB_CURSOR_SB_V_DOUBLE_ARROW 116 |
Definition at line 24 of file xcb.h.
Referenced by resize_graphical_handler().
#define XCB_NUM_LOCK 0xff7f |
Definition at line 27 of file xcb.h.
Referenced by xcb_get_numlock_mask().
anonymous enum |
void cached_pixmap_prepare | ( | xcb_connection_t * | conn, | |
struct Cached_Pixmap * | pixmap | |||
) |
Prepares the given Cached_Pixmap for usage (checks whether the size of the object this pixmap is related to (e.g.
a window) has changed and re-creates the pixmap if so).
Definition at line 271 of file xcb.c.
References DLOG, Cached_Pixmap::gc, Rect::height, Cached_Pixmap::id, Cached_Pixmap::rect, Cached_Pixmap::referred_drawable, Cached_Pixmap::referred_rect, root_depth, and Rect::width.
Referenced by render_container().
xcb_window_t create_window | ( | xcb_connection_t * | conn, | |
Rect | r, | |||
uint16_t | window_class, | |||
int | cursor, | |||
bool | map, | |||
uint32_t | mask, | |||
uint32_t * | values | |||
) |
Convenience wrapper around xcb_create_window which takes care of depth, generating an ID and checking for errors.
Definition at line 93 of file xcb.c.
References Rect::height, Font::id, load_font(), root, Rect::width, Rect::x, XCB_CURSOR_LEFT_PTR, and Rect::y.
Referenced by initialize_output(), reparent_window(), resize_graphical_handler(), and switch_layout_mode().
void fake_absolute_configure_notify | ( | xcb_connection_t * | conn, | |
Client * | client | |||
) |
Generates a configure_notify_event with absolute coordinates (relative to the X root window, not to the client’s frame) for the given client.
Definition at line 190 of file xcb.c.
References Client::child, Client::child_rect, fake_configure_notify(), Rect::height, Client::rect, Rect::width, Rect::x, and Rect::y.
Referenced by DRAGGING_CB(), floating_move(), handle_configure_request(), and resize_client().
void fake_configure_notify | ( | xcb_connection_t * | conn, | |
Rect | r, | |||
xcb_window_t | window | |||
) |
Generates a configure_notify event and sends it to the given window Applications need this to think they’ve configured themselves correctly.
The truth is, however, that we will manage them.
Definition at line 165 of file xcb.c.
References Rect::height, Rect::width, Rect::x, and Rect::y.
Referenced by client_enter_fullscreen(), fake_absolute_configure_notify(), and handle_configure_request().
uint32_t get_colorpixel | ( | xcb_connection_t * | conn, | |
char * | hex | |||
) |
Returns the colorpixel to use for the given hex color (think of HTML).
The hex_color has to start with #, for example FF00FF.
NOTE that get_colorpixel() does _NOT_ check the given color code for validity. This has to be done by the caller.
Definition at line 77 of file xcb.c.
Referenced by decorate_window(), handle_expose_event(), render_container(), render_internal_bar(), sig_draw_window(), and yyparse().
i3Font* load_font | ( | xcb_connection_t * | conn, | |
const char * | pattern | |||
) |
Loads a font for usage, getting its height.
This function is used very often, so it maintains a cache.
Referenced by button_press_stackwin(), client_min_height(), create_window(), decorate_window(), handle_button_press(), handle_configure_request(), handle_signal(), initialize_output(), output_change_mode(), predict_text_width(), render_container(), render_internal_bar(), render_workspace(), reparent_window(), resize_client(), toggle_floating_mode(), and workspace_height().
int predict_text_width | ( | xcb_connection_t * | conn, | |
const char * | font_pattern, | |||
char * | text, | |||
int | length | |||
) |
Calculate the width of the given text (16-bit characters, UCS) with given real length (amount of glyphs) using the given font.
Definition at line 301 of file xcb.c.
References ELOG, Font::id, and load_font().
Referenced by handle_signal(), load_configuration(), and workspace_set_name().
void xcb_change_gc_single | ( | xcb_connection_t * | conn, | |
xcb_gcontext_t | gc, | |||
uint32_t | mask, | |||
uint32_t | value | |||
) |
Changes a single value in the graphic context (so one doesn’t have to define an array of values).
Definition at line 133 of file xcb.c.
Referenced by decorate_window(), handle_expose_event(), handle_signal(), render_container(), render_internal_bar(), sig_draw_window(), xcb_draw_line(), and xcb_draw_rect().
void xcb_draw_line | ( | xcb_connection_t * | conn, | |
xcb_drawable_t | drawable, | |||
xcb_gcontext_t | gc, | |||
uint32_t | colorpixel, | |||
uint32_t | x, | |||
uint32_t | y, | |||
uint32_t | to_x, | |||
uint32_t | to_y | |||
) |
Draws a line from x,y to to_x,to_y using the given color.
Definition at line 141 of file xcb.c.
References xcb_change_gc_single().
Referenced by decorate_window().
void xcb_draw_rect | ( | xcb_connection_t * | conn, | |
xcb_drawable_t | drawable, | |||
xcb_gcontext_t | gc, | |||
uint32_t | colorpixel, | |||
uint32_t | x, | |||
uint32_t | y, | |||
uint32_t | width, | |||
uint32_t | height | |||
) |
Draws a rectangle from x,y with width,height using the given color.
Definition at line 152 of file xcb.c.
References Stack_Window::rect, and xcb_change_gc_single().
Referenced by render_internal_bar().
void xcb_get_numlock_mask | ( | xcb_connection_t * | conn | ) |
Finds out which modifier mask is the one for numlock, as the user may change this.
Definition at line 205 of file xcb.c.
References keysyms, XCB_NUM_LOCK, and xcb_numlock_mask.
Referenced by handle_mapping_notify(), main(), and xkb_got_event().
void xcb_raise_window | ( | xcb_connection_t * | conn, | |
xcb_window_t | window | |||
) |
Raises the given window (typically client->frame) above all other windows.
Definition at line 259 of file xcb.c.
Referenced by handle_button_press(), reparent_window(), and toggle_floating_mode().
void xcb_set_window_rect | ( | xcb_connection_t * | conn, | |
xcb_window_t | window, | |||
Rect | r | |||
) |
Configures the given window to have the size/position specified by given rect.
Definition at line 328 of file xcb.c.
References Rect::x.
Referenced by client_enter_fullscreen(), output_change_mode(), and resize_client().
unsigned int xcb_numlock_mask |
Referenced by grab_keycode_for_binding(), handle_key_press(), sig_handle_key_press(), and xcb_get_numlock_mask().