| 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
| 27 */ |
27 */ |
| 28 |
28 |
| 29 #import "Toolbar.h" |
29 #import "Toolbar.h" |
| |
30 #import "EventData.h" |
| |
31 #import <objc/runtime.h> |
| 30 |
32 |
| 31 #include "../common/toolbar.h" |
33 #include "../common/toolbar.h" |
| |
34 |
| 32 |
35 |
| 33 void ui_toolbar_init(void) { |
36 void ui_toolbar_init(void) { |
| 34 |
37 |
| 35 } |
38 } |
| 36 |
39 |
| 93 } |
96 } |
| 94 |
97 |
| 95 switch(item->type) { |
98 switch(item->type) { |
| 96 default: return nil; |
99 default: return nil; |
| 97 case UI_TOOLBAR_ITEM: { |
100 case UI_TOOLBAR_ITEM: { |
| 98 NSToolbarItem *tbItem = [[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier]; |
101 return ui_nstoolbaritem_create_item(_obj, (UiToolbarItem*)item, itemIdentifier); |
| 99 [tbItem setLabel: @"Test"]; |
102 } |
| 100 return tbItem; |
103 case UI_TOOLBAR_TOGGLEITEM: { |
| 101 break; |
104 return ui_nstoolbaritem_create_toggle(_obj, (UiToolbarToggleItem*)item, itemIdentifier); |
| 102 } |
105 } |
| 103 } |
106 } |
| 104 |
107 |
| 105 return nil; |
108 return nil; |
| 106 } |
109 } |
| 107 |
110 |
| 108 @end |
111 @end |
| |
112 |
| |
113 NSToolbarItem* ui_nstoolbaritem_create_item(UiObject *obj, UiToolbarItem *item, NSString *identifier) { |
| |
114 NSToolbarItem *tbItem = [[NSToolbarItem alloc] initWithItemIdentifier: identifier]; |
| |
115 |
| |
116 NSButton *button = [[NSButton alloc] init]; |
| |
117 tbItem.view = button; |
| |
118 |
| |
119 if(item->args.label) { |
| |
120 NSString *label = [[NSString alloc] initWithUTF8String:item->args.label]; |
| |
121 [tbItem setLabel:label]; |
| |
122 if(!item->args.icon) { |
| |
123 button.title = label; |
| |
124 } |
| |
125 } |
| |
126 if(item->args.icon) { |
| |
127 button.image = [NSImage imageNamed: [[NSString alloc] initWithUTF8String:item->args.icon]]; |
| |
128 } |
| |
129 |
| |
130 if(item->args.onclick) { |
| |
131 EventData *event = [[EventData alloc] init:item->args.onclick userdata:item->args.onclickdata]; |
| |
132 event.obj = obj; |
| |
133 button.target = event; |
| |
134 button.action = @selector(handleEvent:); |
| |
135 objc_setAssociatedObject(button, "eventdata", event, OBJC_ASSOCIATION_RETAIN); |
| |
136 } |
| |
137 return tbItem; |
| |
138 } |
| |
139 |
| |
140 NSToolbarItem* ui_nstoolbaritem_create_toggle(UiObject *obj, UiToolbarToggleItem *item, NSString *identifier) { |
| |
141 NSToolbarItem *tbItem = [[NSToolbarItem alloc] initWithItemIdentifier: identifier]; |
| |
142 if(item->args.label) { |
| |
143 NSString *label = [[NSString alloc] initWithUTF8String:item->args.label]; |
| |
144 [tbItem setLabel:label]; |
| |
145 } |
| |
146 return tbItem; |
| |
147 } |