commit 881cb741b107b58be69f057a332cb73fa57d1d99 from: Onana Onana Xavier Manuel date: Mon Jul 6 05:30:10 2026 UTC Added window configuration support commit - e90991485f5534e15ed96db020f9eb531ff04b7c commit + 881cb741b107b58be69f057a332cb73fa57d1d99 blob - 05b36e6d3164335dabf4fe1ca8ece006ff671a8c blob + 140a08107bf3306e7fe8fb7981fc063b88f53a1d --- driver.h +++ driver.h @@ -13,7 +13,7 @@ struct aui_dri { }; 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 @@ -43,7 +43,11 @@ aui_window_new(struct aui_window_config *config) 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 @@ -43,7 +43,7 @@ struct aui_window_xcb { 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 *); @@ -163,7 +163,7 @@ xcb_driver_open(void) } 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; @@ -191,7 +191,7 @@ static struct aui_window 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, @@ -208,8 +208,8 @@ static struct aui_window (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);