ui/common/toolbar.c

changeset 108
77254bd6dccb
parent 76
641dcc79e0ef
child 110
c00e968d018b
equal deleted inserted replaced
107:b34bd1557c6c 108:77254bd6dccb
47 47
48 static char* nl_strdup(const char* str) { 48 static char* nl_strdup(const char* str) {
49 return str ? strdup(str) : NULL; 49 return str ? strdup(str) : NULL;
50 } 50 }
51 51
52 static UiToolbarItemArgs itemargs_copy(UiToolbarItemArgs args, size_t *ngroups) { 52 static UiToolbarItemArgs itemargs_copy(UiToolbarItemArgs *args, size_t *ngroups) {
53 UiToolbarItemArgs newargs; 53 UiToolbarItemArgs newargs;
54 newargs.label = nl_strdup(args.label); 54 newargs.label = nl_strdup(args->label);
55 newargs.stockid = nl_strdup(args.stockid); 55 newargs.stockid = nl_strdup(args->stockid);
56 newargs.icon = nl_strdup(args.icon); 56 newargs.icon = nl_strdup(args->icon);
57 newargs.onclick = args.onclick; 57 newargs.onclick = args->onclick;
58 newargs.onclickdata = args.onclickdata; 58 newargs.onclickdata = args->onclickdata;
59 newargs.groups = uic_copy_groups(args.groups, ngroups); 59 newargs.groups = uic_copy_groups(args->groups, ngroups);
60 return newargs; 60 return newargs;
61 } 61 }
62 62
63 void ui_toolbar_item_create(const char* name, UiToolbarItemArgs args) { 63 void ui_toolbar_item_create(const char* name, UiToolbarItemArgs *args) {
64 UiToolbarItem* item = malloc(sizeof(UiToolbarItem)); 64 UiToolbarItem* item = malloc(sizeof(UiToolbarItem));
65 item->item.type = UI_TOOLBAR_ITEM; 65 item->item.type = UI_TOOLBAR_ITEM;
66 item->args = itemargs_copy(args, &item->ngroups); 66 item->args = itemargs_copy(args, &item->ngroups);
67 cxMapPut(toolbar_items, name, item); 67 cxMapPut(toolbar_items, name, item);
68 } 68 }
69 69
70 70
71 static UiToolbarToggleItemArgs toggleitemargs_copy(UiToolbarToggleItemArgs args, size_t *ngroups) { 71 static UiToolbarToggleItemArgs toggleitemargs_copy(UiToolbarToggleItemArgs *args, size_t *ngroups) {
72 UiToolbarToggleItemArgs newargs; 72 UiToolbarToggleItemArgs newargs;
73 newargs.label = nl_strdup(args.label); 73 newargs.label = nl_strdup(args->label);
74 newargs.stockid = nl_strdup(args.stockid); 74 newargs.stockid = nl_strdup(args->stockid);
75 newargs.icon = nl_strdup(args.icon); 75 newargs.icon = nl_strdup(args->icon);
76 newargs.varname = nl_strdup(args.varname); 76 newargs.varname = nl_strdup(args->varname);
77 newargs.onchange = args.onchange; 77 newargs.onchange = args->onchange;
78 newargs.onchangedata = args.onchangedata; 78 newargs.onchangedata = args->onchangedata;
79 newargs.groups = uic_copy_groups(args.groups, ngroups); 79 newargs.groups = uic_copy_groups(args->groups, ngroups);
80 return newargs; 80 return newargs;
81 } 81 }
82 82
83 void ui_toolbar_toggleitem_create(const char* name, UiToolbarToggleItemArgs args) { 83 void ui_toolbar_toggleitem_create(const char* name, UiToolbarToggleItemArgs *args) {
84 UiToolbarToggleItem* item = malloc(sizeof(UiToolbarToggleItem)); 84 UiToolbarToggleItem* item = malloc(sizeof(UiToolbarToggleItem));
85 item->item.type = UI_TOOLBAR_TOGGLEITEM; 85 item->item.type = UI_TOOLBAR_TOGGLEITEM;
86 item->args = toggleitemargs_copy(args, &item->ngroups); 86 item->args = toggleitemargs_copy(args, &item->ngroups);
87 cxMapPut(toolbar_items, name, item); 87 cxMapPut(toolbar_items, name, item);
88 } 88 }
89 89
90 static UiToolbarMenuArgs menuargs_copy(UiToolbarMenuArgs args) { 90 static UiToolbarMenuArgs menuargs_copy(UiToolbarMenuArgs *args) {
91 UiToolbarMenuArgs newargs; 91 UiToolbarMenuArgs newargs;
92 newargs.label = nl_strdup(args.label); 92 newargs.label = nl_strdup(args->label);
93 newargs.stockid = nl_strdup(args.stockid); 93 newargs.stockid = nl_strdup(args->stockid);
94 newargs.icon = nl_strdup(args.icon); 94 newargs.icon = nl_strdup(args->icon);
95 return newargs; 95 return newargs;
96 } 96 }
97 97
98 UIEXPORT void ui_toolbar_menu_create(const char* name, UiToolbarMenuArgs args) { 98 UIEXPORT void ui_toolbar_menu_create(const char* name, UiToolbarMenuArgs *args) {
99 UiToolbarMenuItem* item = malloc(sizeof(UiToolbarMenuItem)); 99 UiToolbarMenuItem* item = malloc(sizeof(UiToolbarMenuItem));
100 item->item.type = UI_TOOLBAR_MENU; 100 item->item.type = UI_TOOLBAR_MENU;
101 memset(&item->menu, 0, sizeof(UiMenu)); 101 memset(&item->menu, 0, sizeof(UiMenu));
102 item->args = menuargs_copy(args); 102 item->args = menuargs_copy(args);
103 103

mercurial