ui/common/menu.c

changeset 108
77254bd6dccb
parent 101
7b3a3130be44
child 110
c00e968d018b
equal deleted inserted replaced
107:b34bd1557c6c 108:77254bd6dccb
123 } 123 }
124 } 124 }
125 125
126 126
127 127
128 void ui_menuitem_create(UiMenuItemArgs args) { 128 void ui_menuitem_create(UiMenuItemArgs *args) {
129 UiMenuItem* item = malloc(sizeof(UiMenuItem)); 129 UiMenuItem* item = malloc(sizeof(UiMenuItem));
130 mitem_set_id(&item->item); 130 mitem_set_id(&item->item);
131 item->item.prev = NULL; 131 item->item.prev = NULL;
132 item->item.next = NULL; 132 item->item.next = NULL;
133 item->item.type = UI_MENU_ITEM; 133 item->item.type = UI_MENU_ITEM;
134 134
135 item->label = nl_strdup(args.label); 135 item->label = nl_strdup(args->label);
136 item->stockid = nl_strdup(args.stockid); 136 item->stockid = nl_strdup(args->stockid);
137 item->icon = nl_strdup(args.icon); 137 item->icon = nl_strdup(args->icon);
138 item->userdata = args.onclickdata; 138 item->userdata = args->onclickdata;
139 item->callback = args.onclick; 139 item->callback = args->onclick;
140 item->groups = uic_copy_groups(args.groups, &item->ngroups); 140 item->groups = uic_copy_groups(args->groups, &item->ngroups);
141 141
142 add_item((UiMenuItemI*)item); 142 add_item((UiMenuItemI*)item);
143 } 143 }
144 144
145 void ui_menuseparator() { 145 void ui_menuseparator() {
150 item->type = UI_MENU_SEPARATOR; 150 item->type = UI_MENU_SEPARATOR;
151 151
152 add_item((UiMenuItemI*)item); 152 add_item((UiMenuItemI*)item);
153 } 153 }
154 154
155 void ui_menu_toggleitem_create(UiMenuToggleItemArgs args) { 155 void ui_menu_toggleitem_create(UiMenuToggleItemArgs *args) {
156 UiMenuCheckItem *item = malloc(sizeof(UiMenuCheckItem)); 156 UiMenuCheckItem *item = malloc(sizeof(UiMenuCheckItem));
157 mitem_set_id(&item->item); 157 mitem_set_id(&item->item);
158 item->item.prev = NULL; 158 item->item.prev = NULL;
159 item->item.next = NULL; 159 item->item.next = NULL;
160 item->item.type = UI_MENU_CHECK_ITEM; 160 item->item.type = UI_MENU_CHECK_ITEM;
161 161
162 item->label = nl_strdup(args.label); 162 item->label = nl_strdup(args->label);
163 item->stockid = nl_strdup(args.stockid); 163 item->stockid = nl_strdup(args->stockid);
164 item->icon = nl_strdup(args.icon); 164 item->icon = nl_strdup(args->icon);
165 item->varname = nl_strdup(args.varname); 165 item->varname = nl_strdup(args->varname);
166 item->userdata = args.onchangedata; 166 item->userdata = args->onchangedata;
167 item->callback = args.onchange; 167 item->callback = args->onchange;
168 item->groups = uic_copy_groups(args.groups, &item->ngroups); 168 item->groups = uic_copy_groups(args->groups, &item->ngroups);
169 169
170 add_item((UiMenuItemI*)item); 170 add_item((UiMenuItemI*)item);
171 } 171 }
172 172
173 void ui_menu_radioitem_create(UiMenuToggleItemArgs args) { 173 void ui_menu_radioitem_create(UiMenuToggleItemArgs *args) {
174 UiMenuCheckItem* item = malloc(sizeof(UiMenuCheckItem)); 174 UiMenuCheckItem* item = malloc(sizeof(UiMenuCheckItem));
175 mitem_set_id(&item->item); 175 mitem_set_id(&item->item);
176 item->item.prev = NULL; 176 item->item.prev = NULL;
177 item->item.next = NULL; 177 item->item.next = NULL;
178 item->item.type = UI_MENU_RADIO_ITEM; 178 item->item.type = UI_MENU_RADIO_ITEM;
179 179
180 item->label = nl_strdup(args.label); 180 item->label = nl_strdup(args->label);
181 item->stockid = nl_strdup(args.stockid); 181 item->stockid = nl_strdup(args->stockid);
182 item->icon = nl_strdup(args.icon); 182 item->icon = nl_strdup(args->icon);
183 item->varname = nl_strdup(args.varname); 183 item->varname = nl_strdup(args->varname);
184 item->userdata = args.onchangedata; 184 item->userdata = args->onchangedata;
185 item->callback = args.onchange; 185 item->callback = args->onchange;
186 item->groups = uic_copy_groups(args.groups, &item->ngroups); 186 item->groups = uic_copy_groups(args->groups, &item->ngroups);
187 187
188 add_item((UiMenuItemI*)item); 188 add_item((UiMenuItemI*)item);
189 } 189 }
190 190
191 void ui_menu_itemlist_create(UiMenuItemListArgs args) { 191 void ui_menu_itemlist_create(UiMenuItemListArgs *args) {
192 UiMenuItemList*item = malloc(sizeof(UiMenuItemList)); 192 UiMenuItemList*item = malloc(sizeof(UiMenuItemList));
193 mitem_set_id(&item->item); 193 mitem_set_id(&item->item);
194 item->item.prev = NULL; 194 item->item.prev = NULL;
195 item->item.next = NULL; 195 item->item.next = NULL;
196 item->item.type = UI_MENU_ITEM_LIST; 196 item->item.type = UI_MENU_ITEM_LIST;
197 item->getvalue = args.getvalue; 197 item->getvalue = args->getvalue;
198 item->callback = args.onselect; 198 item->callback = args->onselect;
199 item->userdata = args.onselectdata; 199 item->userdata = args->onselectdata;
200 item->varname = nl_strdup(args.varname); 200 item->varname = nl_strdup(args->varname);
201 item->addseparator = args.addseparator; 201 item->addseparator = args->addseparator;
202 202
203 add_item((UiMenuItemI*)item); 203 add_item((UiMenuItemI*)item);
204 } 204 }
205 205
206 void ui_menu_checkitemlist_create(UiMenuItemListArgs args) { 206 void ui_menu_checkitemlist_create(UiMenuItemListArgs *args) {
207 UiMenuItemList* item = malloc(sizeof(UiMenuItemList)); 207 UiMenuItemList* item = malloc(sizeof(UiMenuItemList));
208 mitem_set_id(&item->item); 208 mitem_set_id(&item->item);
209 item->item.prev = NULL; 209 item->item.prev = NULL;
210 item->item.next = NULL; 210 item->item.next = NULL;
211 item->item.type = UI_MENU_CHECKITEM_LIST; 211 item->item.type = UI_MENU_CHECKITEM_LIST;
212 item->callback = args.onselect; 212 item->callback = args->onselect;
213 item->userdata = args.onselectdata; 213 item->userdata = args->onselectdata;
214 item->varname = nl_strdup(args.varname); 214 item->varname = nl_strdup(args->varname);
215 215
216 add_item((UiMenuItemI*)item); 216 add_item((UiMenuItemI*)item);
217 } 217 }
218 218
219 void ui_menu_radioitemlist_create(UiMenuItemListArgs args) { 219 void ui_menu_radioitemlist_create(UiMenuItemListArgs *args) {
220 UiMenuItemList* item = malloc(sizeof(UiMenuItemList)); 220 UiMenuItemList* item = malloc(sizeof(UiMenuItemList));
221 mitem_set_id(&item->item); 221 mitem_set_id(&item->item);
222 item->item.prev = NULL; 222 item->item.prev = NULL;
223 item->item.next = NULL; 223 item->item.next = NULL;
224 item->item.type = UI_MENU_RADIOITEM_LIST; 224 item->item.type = UI_MENU_RADIOITEM_LIST;
225 item->callback = args.onselect; 225 item->callback = args->onselect;
226 item->userdata = args.onselectdata; 226 item->userdata = args->onselectdata;
227 item->varname = nl_strdup(args.varname); 227 item->varname = nl_strdup(args->varname);
228 228
229 add_item((UiMenuItemI*)item); 229 add_item((UiMenuItemI*)item);
230 } 230 }
231 231
232 232

mercurial