| 42 #include "../common/context.h" |
42 #include "../common/context.h" |
| 43 |
43 |
| 44 |
44 |
| 45 #if UI_GTK2 || UI_GTK3 |
45 #if UI_GTK2 || UI_GTK3 |
| 46 |
46 |
| 47 GtkWidget* ui_create_toolbar(UiObject *obj) { |
47 GtkWidget* ui_create_toolbar(UiObject *obj, UiBool sidebar) { |
| 48 GtkWidget *toolbar = gtk_toolbar_new(); |
48 GtkWidget *toolbar = gtk_toolbar_new(); |
| 49 #ifdef UI_GTK3 |
49 #ifdef UI_GTK3 |
| 50 gtk_style_context_add_class( |
50 gtk_style_context_add_class( |
| 51 gtk_widget_get_style_context(toolbar), |
51 gtk_widget_get_style_context(toolbar), |
| 52 GTK_STYLE_CLASS_PRIMARY_TOOLBAR); |
52 GTK_STYLE_CLASS_PRIMARY_TOOLBAR); |
| 54 |
54 |
| 55 CxMap *items = uic_get_toolbar_items(); |
55 CxMap *items = uic_get_toolbar_items(); |
| 56 CxList *left_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_LEFT); |
56 CxList *left_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_LEFT); |
| 57 CxList *center_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_CENTER); |
57 CxList *center_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_CENTER); |
| 58 CxList *right_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHT); |
58 CxList *right_defaults = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHT); |
| |
59 CxList *sidebar_left = uic_get_toolbar_defaults(UI_TOOLBAR_SIDEBAR_LEFT); |
| |
60 CxList *sidebar_right = uic_get_toolbar_defaults(UI_TOOLBAR_SIDEBAR_RIGHT); |
| |
61 CxList *rightpanel_left = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHTPANEL_LEFT); |
| |
62 CxList *rightpanel_center = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHTPANEL_CENTER); |
| |
63 CxList *rightpanel_right = uic_get_toolbar_defaults(UI_TOOLBAR_RIGHTPANEL_RIGHT); |
| |
64 |
| |
65 if(sidebar) { |
| |
66 ui_toolbar_add_items(obj, toolbar, items, sidebar_left); |
| |
67 ui_toolbar_add_items(obj, toolbar, items, sidebar_right); |
| |
68 } |
| 59 |
69 |
| 60 ui_toolbar_add_items(obj, toolbar, items, left_defaults); |
70 ui_toolbar_add_items(obj, toolbar, items, left_defaults); |
| 61 ui_toolbar_add_items(obj, toolbar, items, center_defaults); |
71 ui_toolbar_add_items(obj, toolbar, items, center_defaults); |
| 62 ui_toolbar_add_items(obj, toolbar, items, right_defaults); |
72 ui_toolbar_add_items(obj, toolbar, items, right_defaults); |
| 63 |
73 |
| 64 /* |
74 ui_toolbar_add_items(obj, toolbar, items, rightpanel_left); |
| 65 GtkToolbar *tb = GTK_TOOLBAR(toolbar); |
75 ui_toolbar_add_items(obj, toolbar, items, rightpanel_center); |
| 66 CxIterator i = cxListIterator(defaults); |
76 ui_toolbar_add_items(obj, toolbar, items, rightpanel_right); |
| 67 cx_foreach(char *, def, i) { |
|
| 68 UiToolItemI *item = cxMapGet(toolbar_items, def); |
|
| 69 if(item) { |
|
| 70 item->add_to(tb, item, obj); |
|
| 71 } else if(!strcmp(def, "@separator")) { |
|
| 72 gtk_toolbar_insert(tb, gtk_separator_tool_item_new(), -1); |
|
| 73 } else { |
|
| 74 fprintf(stderr, "UI Error: Unknown toolbar item: %s\n", def); |
|
| 75 } |
|
| 76 } |
|
| 77 */ |
|
| 78 |
77 |
| 79 return toolbar; |
78 return toolbar; |
| 80 } |
79 } |
| 81 |
80 |
| 82 static void create_item(UiObject *obj, GtkWidget *toolbar, UiToolbarItemI *i) { |
81 static void create_item(UiObject *obj, GtkWidget *toolbar, UiToolbarItemI *i) { |