Commit Diff


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);