commit - e90991485f5534e15ed96db020f9eb531ff04b7c
commit + 881cb741b107b58be69f057a332cb73fa57d1d99
blob - 05b36e6d3164335dabf4fe1ca8ece006ff671a8c
blob + 140a08107bf3306e7fe8fb7981fc063b88f53a1d
--- driver.h
+++ driver.h
};
struct dri_ops {
- struct aui_window *(*create_window)();
+ struct aui_window *(*create_window)(struct aui_window_config*);
void (*delete_window)(struct aui_window *);
void (*handle_events)(void);
void (*resize_window)(struct aui_window *);
blob - ac26975ce5609037d0ecb44fe0b802fea184e180
blob + 8b025f0234b95cbb3ae9f98e7a02429eca6c50b4
--- window.c
+++ window.c
LIST_INIT(&wlist);
}
- struct aui_window *aw = driver->ops->create_window();
+ if (config == NULL) {
+ config = &default_config;
+ }
+
+ struct aui_window *aw = driver->ops->create_window(config);
struct aui_widget *widget = (struct aui_widget *)aw;
struct aui_container *con = (struct aui_container *)aw;
widget->type = WIDGET_TYPE_WINDOW;
blob - c396e524cfccd569fd7f46f9648308324a52d955
blob + 8bd389d63c432261823635c49c0457065c63cef9
--- xcb.c
+++ xcb.c
struct aui_dri *driver;
-static struct aui_window *aui_dri_create_window(void);
+static struct aui_window *aui_dri_create_window(struct aui_window_config *);
static void aui_dri_delete_window(struct aui_window *);
static void aui_dri_handle_events(void);
static void aui_dri_resize_window(struct aui_window *);
}
static struct aui_window
-*aui_dri_create_window(void)
+*aui_dri_create_window(struct aui_window_config *config)
{
struct aui_window_xcb *aw_xcb;
struct aui_dri_xcb *dri_xcb;
aw_xcb->xw,
dri_xcb->screen->root,
0, 0,
- 200, 200,
+ config->width, config->height,
0,
XCB_WINDOW_CLASS_INPUT_OUTPUT,
dri_xcb->screen->root_visual,
(const void *)data);
struct aui_widget *ww = (struct aui_widget *)aw;
- ww->geom.width = 200;
- ww->geom.height = 200;
+ ww->geom.width = config->width;
+ ww->geom.height = config->height;
set_pixmap_xcb(aw_xcb);
xcb_map_window(dri_xcb->conn, aw_xcb->xw);
xcb_flush(dri_xcb->conn);