mirror of
https://github.com/dylanaraps/sowm.git
synced 2026-10-27 12:31:43 +00:00
48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
#define _POSIX_C_SOURCE 200809L
|
|
#include <xcb/xcb.h>
|
|
|
|
struct wconf {
|
|
int16_t x;
|
|
int16_t y;
|
|
uint16_t width;
|
|
uint16_t height;
|
|
uint8_t stack_mode;
|
|
xcb_window_t sibling;
|
|
};
|
|
|
|
xcb_connection_t *dpy;
|
|
xcb_screen_t *scr;
|
|
xcb_drawable_t root;
|
|
|
|
uint32_t ev_vals[3];
|
|
|
|
/* xcb event with the largest value */
|
|
#define XCB_LAST_EVENT XCB_GET_MODIFIER_MAPPING
|
|
#define EVENT_MASK(e) (((e) & ~0x80))
|
|
|
|
void init_wm(void);
|
|
void init_input(void);
|
|
void run_loop(void);
|
|
|
|
void event_button_press(xcb_generic_event_t *ev);
|
|
void event_button_release(xcb_generic_event_t *ev);
|
|
void event_configure_request(xcb_generic_event_t *ev);
|
|
void event_key_press(xcb_generic_event_t *ev);
|
|
void event_notify_create(xcb_generic_event_t *ev);
|
|
void event_notify_destroy(xcb_generic_event_t *ev);
|
|
void event_notify_enter(xcb_generic_event_t *ev);
|
|
void event_notify_motion(xcb_generic_event_t *ev);
|
|
|
|
void (*events[XCB_NO_OPERATION])(xcb_generic_event_t *) = {
|
|
[XCB_BUTTON_PRESS] = event_button_press,
|
|
[XCB_BUTTON_RELEASE] = event_button_release,
|
|
[XCB_CONFIGURE_REQUEST] = event_configure_request,
|
|
[XCB_KEY_PRESS] = event_key_press,
|
|
[XCB_CREATE_NOTIFY] = event_notify_create,
|
|
[XCB_DESTROY_NOTIFY] = event_notify_destroy,
|
|
[XCB_ENTER_NOTIFY] = event_notify_enter,
|
|
[XCB_MOTION_NOTIFY] = event_notify_motion
|
|
};
|
|
|
|
void win_add(xcb_window_t win);
|