ui/common/toolbar.c

branch
newapi
changeset 226
4eef1d49f794
parent 207
93b9f502cb88
child 254
13997c76859b
--- a/ui/common/toolbar.c	Sun Nov 26 15:44:28 2023 +0100
+++ b/ui/common/toolbar.c	Tue Jan 16 12:49:46 2024 +0100
@@ -32,14 +32,15 @@
 
 static CxMap* toolbar_items;
 
-static CxList* toolbar_defaults;
+static CxList* toolbar_defaults[3]; // 0: left 1: center 2: right
 
 static UiToolbarMenuItem* ui_appmenu;
 
-
 void uic_toolbar_init(void) {
 	toolbar_items = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 16);
-	toolbar_defaults = cxLinkedListCreateSimple(CX_STORE_POINTERS);
+	toolbar_defaults[0] = cxLinkedListCreateSimple(CX_STORE_POINTERS);
+	toolbar_defaults[1] = cxLinkedListCreateSimple(CX_STORE_POINTERS);
+	toolbar_defaults[2] = cxLinkedListCreateSimple(CX_STORE_POINTERS);
 }
 
 static char* nl_strdup(char* str) {
@@ -114,17 +115,24 @@
 	return toolbar_items;
 }
 
-CxList* uic_get_toolbar_defaults(void) {
-	return toolbar_defaults;
+CxList* uic_get_toolbar_defaults(enum UiToolbarPos pos) {
+	if (pos >= 0 && pos < 3) {
+		return toolbar_defaults[pos];
+	}
 }
 
-void ui_toolbar_add_default(const char* name) {
+void ui_toolbar_add_default(const char* name, enum UiToolbarPos pos) {
 	char* cp = strdup(name);
-	cxListAdd(toolbar_defaults, cp);
+	if (pos >= 0 && pos < 3) {
+		cxListAdd(toolbar_defaults[pos], cp);
+	}
+	else {
+		// TODO: error
+	}
 }
 
 UiBool uic_toolbar_isenabled(void) {
-	return toolbar_defaults->size > 0;
+	return toolbar_defaults[0]->size + toolbar_defaults[1]->size + toolbar_defaults[2]->size > 0;
 }
 
 UiToolbarItemI* uic_toolbar_get_item(const char* name) {

mercurial