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