ui/qt/menu.cpp

changeset 115
e57ca2747782
parent 108
77254bd6dccb
equal deleted inserted replaced
114:3da24640513a 115:e57ca2747782
36 #include "toolkit.h" 36 #include "toolkit.h"
37 #include "../common/context.h" 37 #include "../common/context.h"
38 #include "../common/menu.h" 38 #include "../common/menu.h"
39 #include "../ui/properties.h" 39 #include "../ui/properties.h"
40 #include "../ui/window.h" 40 #include "../ui/window.h"
41 #include "stock.h"
42 #include "container.h" 41 #include "container.h"
43 42
44 43
45 static ui_menu_add_f createMenuItem[] = { 44 static ui_menu_add_f createMenuItem[] = {
46 /* UI_MENU */ add_menu_widget, 45 /* UI_MENU */ add_menu_widget,
86 action->setIcon(QIcon::fromTheme(icon)); 85 action->setIcon(QIcon::fromTheme(icon));
87 action->setIconVisibleInMenu(true); 86 action->setIconVisibleInMenu(true);
88 } 87 }
89 88
90 if(states) { 89 if(states) {
91 size_t nstates = uic_group_array_size(states); 90 size_t nstates = uic_state_array_size(states);
92 uic_add_group_widget_i(obj->ctx, action, (ui_enablefunc)ui_action_enable, states, nstates); 91 uic_add_state_widget_i(obj->ctx, action, (ui_enablefunc)ui_action_enable, states, nstates);
93 action->setEnabled(false); 92 action->setEnabled(false);
94 } 93 }
95 94
96 return action; 95 return action;
97 } 96 }
98 97
99 void add_menuitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) { 98 void add_menuitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) {
100 UiMenuItem *it = (UiMenuItem*)item; 99 UiMenuItem *it = (UiMenuItem*)item;
101 UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->groups); 100 UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->states);
102 parent->addAction(action); 101 parent->addAction(action);
103 QObject::connect(action, SIGNAL(triggered()), action, SLOT(trigger())); 102 QObject::connect(action, SIGNAL(triggered()), action, SLOT(trigger()));
104 } 103 }
105 104
106 void add_menuseparator_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) { 105 void add_menuseparator_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) {
108 } 107 }
109 108
110 void add_checkitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) { 109 void add_checkitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) {
111 UiMenuCheckItem *it = (UiMenuCheckItem*)item; 110 UiMenuCheckItem *it = (UiMenuCheckItem*)item;
112 111
113 UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->groups); 112 UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->states);
114 parent->addAction(action); 113 parent->addAction(action);
115 action->setCheckable(true); 114 action->setCheckable(true);
116 action->prepare_event = ui_checkableaction_prepare_event; 115 action->prepare_event = ui_checkableaction_prepare_event;
117 116
118 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, it->varname, UI_VAR_INTEGER); 117 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, it->varname, UI_VAR_INTEGER);
128 } 127 }
129 128
130 void add_radioitem_widget(QMenu *parent, int index, UiMenuItemI *item, UiObject *obj) { 129 void add_radioitem_widget(QMenu *parent, int index, UiMenuItemI *item, UiObject *obj) {
131 UiMenuRadioItem *it = (UiMenuRadioItem*)item; 130 UiMenuRadioItem *it = (UiMenuRadioItem*)item;
132 131
133 UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->groups); 132 UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->states);
134 parent->addAction(action); 133 parent->addAction(action);
135 action->setCheckable(true); 134 action->setCheckable(true);
136 action->prepare_event = ui_actiongroup_prepare_event; 135 action->prepare_event = ui_actiongroup_prepare_event;
137 136
138 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, it->varname, UI_VAR_INTEGER); 137 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, it->varname, UI_VAR_INTEGER);

mercurial