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