66 void ui_toolbar_add_default(char *name) { |
66 void ui_toolbar_add_default(char *name) { |
67 char *s = strdup(name); |
67 char *s = strdup(name); |
68 defaults = ucx_list_append(defaults, s); |
68 defaults = ucx_list_append(defaults, s); |
69 } |
69 } |
70 |
70 |
71 void ui_create_toolbar(UiObject *obj, Widget parent) { |
71 Widget ui_create_toolbar(UiObject *obj, Widget parent) { |
72 if(!defaults) { |
72 if(!defaults) { |
73 return; |
73 return NULL; |
74 } |
74 } |
75 |
75 |
76 Arg args[8]; |
76 Arg args[8]; |
77 XtSetArg(args[0], XmNshadowType, XmSHADOW_ETCHED_OUT); |
77 XtSetArg(args[0], XmNshadowType, XmSHADOW_ETCHED_OUT); |
78 XtSetArg(args[1], XmNshadowThickness, 1); |
78 XtSetArg(args[1], XmNshadowThickness, 1); |
81 XtSetArg(args[4], XmNrightAttachment, XmATTACH_FORM); |
81 XtSetArg(args[4], XmNrightAttachment, XmATTACH_FORM); |
82 Widget frame = XmCreateFrame(parent, "toolbar_frame", args, 5); |
82 Widget frame = XmCreateFrame(parent, "toolbar_frame", args, 5); |
83 |
83 |
84 XtSetArg(args[0], XmNorientation, XmHORIZONTAL); |
84 XtSetArg(args[0], XmNorientation, XmHORIZONTAL); |
85 XtSetArg(args[1], XmNpacking, XmPACK_TIGHT); |
85 XtSetArg(args[1], XmNpacking, XmPACK_TIGHT); |
86 Widget toolbar = XmCreateRowColumn (frame, "toolbar", args, 2); |
86 XtSetArg(args[2], XmNspacing, 1); |
|
87 Widget toolbar = XmCreateRowColumn (frame, "toolbar", args, 3); |
87 |
88 |
88 UCX_FOREACH(elm, defaults) { |
89 UCX_FOREACH(elm, defaults) { |
89 UiToolItemI *item = ucx_map_cstr_get(toolbar_items, elm->data); |
90 UiToolItemI *item = ucx_map_cstr_get(toolbar_items, elm->data); |
90 if(item) { |
91 if(item) { |
91 item->add_to(toolbar, item, obj); |
92 item->add_to(toolbar, item, obj); |
92 } else if(!strcmp(elm->data, "@separator")) { |
93 } else if(!strcmp(elm->data, "@separator")) { |
93 |
94 // TODO |
94 } else { |
95 } else { |
95 fprintf(stderr, "UI Error: Unknown toolbar item: %s\n", elm->data); |
96 fprintf(stderr, "UI Error: Unknown toolbar item: %s\n", elm->data); |
96 } |
97 } |
97 } |
98 } |
98 |
99 |
99 XtManageChild(toolbar); |
100 XtManageChild(toolbar); |
100 XtManageChild(frame); |
101 XtManageChild(frame); |
|
102 |
|
103 return frame; |
101 } |
104 } |
102 |
105 |
103 void add_toolitem_widget(Widget parent, UiToolItem *item, UiObject *obj) { |
106 void add_toolitem_widget(Widget parent, UiToolItem *item, UiObject *obj) { |
104 Arg args[4]; |
107 Arg args[4]; |
105 |
108 |