ui/common/toolbar.c

changeset 1206
4637da12bc6c
parent 1096
655349c3021e
equal deleted inserted replaced
1205:749a32e91513 1206:4637da12bc6c
83 newargs.states = uic_copy_states(args->states, ngroups); 83 newargs.states = uic_copy_states(args->states, ngroups);
84 newargs.visibility_states = uic_copy_states(args->visibility_states, nvstates); 84 newargs.visibility_states = uic_copy_states(args->visibility_states, nvstates);
85 return newargs; 85 return newargs;
86 } 86 }
87 87
88 static UiToolbarContentToggleItemArgs contenttoggleitemargs_copy(UiToolbarContentToggleItemArgs *args, size_t *ngroups, size_t *nvstates) {
89 UiToolbarContentToggleItemArgs newargs;
90 newargs.label0 = nl_strdup(args->label0);
91 newargs.icon0 = nl_strdup(args->icon0);
92 newargs.tooltip0 = nl_strdup(args->tooltip0);
93 newargs.label1 = nl_strdup(args->label1);
94 newargs.icon1 = nl_strdup(args->icon1);
95 newargs.tooltip1 = nl_strdup(args->tooltip1);
96 newargs.varname = nl_strdup(args->varname);
97 newargs.onchange = args->onchange;
98 newargs.onchangedata = args->onchangedata;
99 newargs.action = nl_strdup(args->action);
100 newargs.toggled_by_state = args->toggled_by_state;
101 newargs.istogglebutton = args->istogglebutton;
102 newargs.states = uic_copy_states(args->states, ngroups);
103 newargs.visibility_states = uic_copy_states(args->visibility_states, nvstates);
104 return newargs;
105 }
106
88 void ui_toolbar_toggleitem_create(const char* name, UiToolbarToggleItemArgs *args) { 107 void ui_toolbar_toggleitem_create(const char* name, UiToolbarToggleItemArgs *args) {
89 UiToolbarToggleItem* item = malloc(sizeof(UiToolbarToggleItem)); 108 UiToolbarToggleItem* item = malloc(sizeof(UiToolbarToggleItem));
90 item->item.type = UI_TOOLBAR_TOGGLEITEM; 109 item->item.type = UI_TOOLBAR_TOGGLEITEM;
91 item->args = toggleitemargs_copy(args, &item->nstates, &item->nvstates); 110 item->args = toggleitemargs_copy(args, &item->nstates, &item->nvstates);
111 cxMapPut(toolbar_items, name, item);
112 }
113
114 void ui_toolbar_content_toggleitem_create(const char* name, UiToolbarContentToggleItemArgs *args) {
115 UiToolbarContentToggleItem* item = malloc(sizeof(UiToolbarContentToggleItem));
116 item->item.type = UI_TOOLBAR_CONTENT_TOGGLEITEM;
117 item->args = contenttoggleitemargs_copy(args, &item->nstates, &item->nvstates);
92 cxMapPut(toolbar_items, name, item); 118 cxMapPut(toolbar_items, name, item);
93 } 119 }
94 120
95 static UiToolbarMenuArgs menuargs_copy(UiToolbarMenuArgs *args, size_t *nvstates) { 121 static UiToolbarMenuArgs menuargs_copy(UiToolbarMenuArgs *args, size_t *nvstates) {
96 UiToolbarMenuArgs newargs; 122 UiToolbarMenuArgs newargs;

mercurial