Sun, 24 Aug 2025 11:14:31 +0200
add combobox (Cocoa)
|
404
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
1 | /* |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
3 | * |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
4 | * Copyright 2024 Olaf Wintermann. All rights reserved. |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
5 | * |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
6 | * Redistribution and use in source and binary forms, with or without |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
7 | * modification, are permitted provided that the following conditions are met: |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
8 | * |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
9 | * 1. Redistributions of source code must retain the above copyright |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
10 | * notice, this list of conditions and the following disclaimer. |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
11 | * |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
12 | * 2. Redistributions in binary form must reproduce the above copyright |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
13 | * notice, this list of conditions and the following disclaimer in the |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
14 | * documentation and/or other materials provided with the distribution. |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
15 | * |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
26 | * POSSIBILITY OF SUCH DAMAGE. |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
27 | */ |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
28 | |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
29 | #import <Cocoa/Cocoa.h> |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
30 | |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
31 | #include <ui/ui.h> |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
32 | |
|
707
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
33 | typedef struct WindowData { |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
34 | UiInteger *tbtoggle; |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
35 | } WindowData; |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
36 | |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
37 | typedef struct MyDocument { |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
38 | UiInteger *tbtoggle; |
|
711
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
39 | UiList *list1; |
|
717
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
40 | UiList *list2; |
|
707
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
41 | } MyDocument; |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
42 | |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
43 | MyDocument* create_doc(void) { |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
44 | MyDocument *doc = ui_document_new(sizeof(MyDocument)); |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
45 | UiContext *ctx = ui_document_context(doc); |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
46 | doc->tbtoggle = ui_int_new(ctx, "tbtoggle"); |
|
711
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
47 | doc->list1 = ui_list_new(ctx, "list1"); |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
48 | ui_list_append(doc->list1, "Item 1"); |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
49 | ui_list_append(doc->list1, "Item 2"); |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
50 | ui_list_append(doc->list1, "Item 3"); |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
51 | ui_list_append(doc->list1, "Item 4"); |
|
717
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
52 | |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
53 | doc->list2 = ui_list_new(ctx, "list2"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
54 | ui_list_append(doc->list2, "Option 1"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
55 | ui_list_append(doc->list2, "Option 2"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
56 | ui_list_append(doc->list2, "Option 3"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
57 | ui_list_append(doc->list2, "Option 4"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
58 | ui_list_append(doc->list2, "Option 5"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
59 | ui_list_append(doc->list2, "Option 6"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
60 | |
|
707
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
61 | return doc; |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
62 | } |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
63 | |
|
404
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
64 | static void action_button(UiEvent *event, void *userdata) { |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
65 | printf("button click\n"); |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
66 | } |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
67 | |
|
687
d43b4fcd3d8c
add support for toolbar icons (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
677
diff
changeset
|
68 | static void toolbar_action(UiEvent *event, void *userdata) { |
|
d43b4fcd3d8c
add support for toolbar icons (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
677
diff
changeset
|
69 | printf("toolbar item\n"); |
|
d43b4fcd3d8c
add support for toolbar icons (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
677
diff
changeset
|
70 | } |
|
d43b4fcd3d8c
add support for toolbar icons (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
677
diff
changeset
|
71 | |
|
707
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
72 | static void toolbar_toggle(UiEvent *event, void *userdata) { |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
73 | MyDocument *doc = event->document; |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
74 | int i = (int)(doc ? ui_get(doc->tbtoggle) : -1); |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
75 | printf("toolbar toggle button %d %d\n", event->intval, i); |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
76 | } |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
77 | |
|
708
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
78 | static void action_menuitem(UiEvent *event, void *userdata) { |
|
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
79 | printf("menuitem\n"); |
|
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
80 | } |
|
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
81 | |
|
711
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
82 | static void action_list_selection(UiEvent *event, void *userdata) { |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
83 | printf("selection\n"); |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
84 | } |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
85 | |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
86 | static void action_list_activate(UiEvent *event, void *userdata) { |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
87 | printf("activate\n"); |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
88 | } |
|
673e7e41c93e
add minimally working listview (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
710
diff
changeset
|
89 | |
|
715
2082c80fb010
add table widget (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
713
diff
changeset
|
90 | static void* table_getvalue(void *elm, int col) { |
|
2082c80fb010
add table widget (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
713
diff
changeset
|
91 | return elm; |
|
2082c80fb010
add table widget (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
713
diff
changeset
|
92 | } |
|
2082c80fb010
add table widget (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
713
diff
changeset
|
93 | |
|
404
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
94 | void application_startup(UiEvent *event, void *data) { |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
95 | UiObject *obj = ui_window("My Window", NULL); |
|
707
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
96 | //WindowData *wdata = ui_malloc(obj->ctx, sizeof(WindowData)); |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
97 | //wdata->tbtoggle = ui_int_new(obj->ctx, "tbtoggle"); |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
98 | //obj->window = wdata; |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
99 | MyDocument *doc = create_doc(); |
|
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
100 | ui_attach_document(obj->ctx, doc); |
|
404
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
101 | |
|
716
99386f34efc9
improve table columnsize handling (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
715
diff
changeset
|
102 | UiModel *model = ui_model(obj->ctx, UI_STRING, "Column 0", UI_STRING, "Column 1", UI_STRING, "Column 2", -1); |
|
99386f34efc9
improve table columnsize handling (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
715
diff
changeset
|
103 | model->columnsize[1] = -1; |
|
539
96f466ceaf23
fix textview creation (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
538
diff
changeset
|
104 | ui_grid(obj, .columnspacing = 10, .rowspacing = 10) { |
|
715
2082c80fb010
add table widget (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
713
diff
changeset
|
105 | ui_table(obj, .fill = UI_ON, .varname = "list1", .model = model, .getvalue = table_getvalue, .onactivate = action_list_activate, .onselection = action_list_selection, .multiselection = TRUE); |
|
454
57a2c6c04966
implement togglebutton, checkbox, switch and unfinished radiobutton (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
449
diff
changeset
|
106 | } |
|
538
5004b4a9b16d
use view.fittingSize as backup to intrisicContentSize in GridLayout (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
500
diff
changeset
|
107 | |
|
5004b4a9b16d
use view.fittingSize as backup to intrisicContentSize in GridLayout (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
500
diff
changeset
|
108 | |
|
5004b4a9b16d
use view.fittingSize as backup to intrisicContentSize in GridLayout (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
500
diff
changeset
|
109 | ui_vbox(obj, .spacing = 0, .fill = UI_OFF) { |
|
717
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
110 | ui_combobox(obj, .varname = "list2"); |
|
c35b2f18841c
add combobox (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
716
diff
changeset
|
111 | |
|
590
07ecff1fa805
add textfield (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
584
diff
changeset
|
112 | ui_textfield(obj, .varname = "textfield1"); |
|
562
88ed463e5433
implement radio button (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
541
diff
changeset
|
113 | ui_radiobutton(obj, .label = "V Button 1", .varname = "radio1"); |
|
88ed463e5433
implement radio button (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
541
diff
changeset
|
114 | ui_radiobutton(obj, .label = "V Button 2", .varname = "radio1"); |
|
88ed463e5433
implement radio button (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
541
diff
changeset
|
115 | ui_radiobutton(obj, .label = "V Button 3", .varname = "radio1"); |
|
88ed463e5433
implement radio button (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
541
diff
changeset
|
116 | |
|
88ed463e5433
implement radio button (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
541
diff
changeset
|
117 | ui_radiobutton(obj, .label = "V Button 1 R2", .varname = "radio2"); |
|
88ed463e5433
implement radio button (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
541
diff
changeset
|
118 | ui_radiobutton(obj, .label = "V Button 2 R2", .varname = "radio2"); |
|
88ed463e5433
implement radio button (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
541
diff
changeset
|
119 | ui_radiobutton(obj, .label = "V Button 3 R2", .varname = "radio2"); |
|
538
5004b4a9b16d
use view.fittingSize as backup to intrisicContentSize in GridLayout (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
500
diff
changeset
|
120 | } |
|
404
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
121 | |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
122 | ui_show(obj); |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
123 | } |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
124 | |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
125 | int main(int argc, char * argv[]) { |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
126 | ui_init("app1", argc, argv); |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
127 | ui_onstartup(application_startup, NULL); |
|
541
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
128 | |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
129 | // menu |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
130 | ui_menu("File") { |
|
708
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
131 | ui_menuitem(.label = "Test", .onclick = action_menuitem); |
|
541
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
132 | } |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
133 | |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
134 | ui_menu("Edit") { |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
135 | ui_menuitem(.label = "Undo"); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
136 | ui_menu_toggleitem(.label = "Checkbox"); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
137 | ui_menuseparator(); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
138 | ui_menu_radioitem(.label = "Option 1", .varname = "menuoption"); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
139 | ui_menu_radioitem(.label = "Option 2", .varname = "menuoption"); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
140 | ui_menu_radioitem(.label = "Option 3", .varname = "menuoption"); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
141 | ui_menu_radioitem(.label = "Option 4", .varname = "menuoption"); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
142 | ui_menuseparator(); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
143 | ui_menu("Submenu") { |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
144 | ui_menuitem(.label = "Subitem"); |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
145 | } |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
146 | } |
|
63289f61fb7f
add basic code structure for cocoa menu implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
539
diff
changeset
|
147 | |
|
687
d43b4fcd3d8c
add support for toolbar icons (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
677
diff
changeset
|
148 | ui_toolbar_item("item1", .label = "Test 1", .icon = "NSImageNameGoBackTemplate", .onclick = toolbar_action); |
|
d43b4fcd3d8c
add support for toolbar icons (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
677
diff
changeset
|
149 | ui_toolbar_item("item2", .label = "Test 2", .icon = "NSImageNameGoForwardTemplate", .onclick = toolbar_action); |
|
707
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
150 | ui_toolbar_toggleitem("item3", .label = "Toggle", .icon = "NSImageNameActionTemplate", .varname = "tbtoggle", .onchange = toolbar_toggle); |
|
708
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
151 | ui_toolbar_menu("item4", .label = "Add", .icon = "NSImageNameAddTemplate") { |
|
710
6c7f700e4900
handle toggle menu items separately when not created as AppMenu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
708
diff
changeset
|
152 | ui_menuitem(.label = "Test1", .onclick = action_menuitem); |
|
6c7f700e4900
handle toggle menu items separately when not created as AppMenu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
708
diff
changeset
|
153 | ui_menu_toggleitem(.label = "Check"); |
|
708
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
154 | } |
|
677
04bcb1930fbf
semi functional toolbar (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
590
diff
changeset
|
155 | |
|
708
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
156 | ui_toolbar_add_default("item4", UI_TOOLBAR_LEFT); |
|
707
e9f63774b0e0
implement toolbar toggle itmem (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
687
diff
changeset
|
157 | ui_toolbar_add_default("item3", UI_TOOLBAR_LEFT); |
|
677
04bcb1930fbf
semi functional toolbar (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
590
diff
changeset
|
158 | ui_toolbar_add_default("item1", UI_TOOLBAR_LEFT); |
|
687
d43b4fcd3d8c
add support for toolbar icons (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
677
diff
changeset
|
159 | ui_toolbar_add_default("item2", UI_TOOLBAR_RIGHT); |
|
677
04bcb1930fbf
semi functional toolbar (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
590
diff
changeset
|
160 | |
|
708
0598e70c6489
add toolbar menu item (Cocoa)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
707
diff
changeset
|
161 | |
|
404
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
162 | ui_main(); |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
163 | return 0; |
|
384f6d1f5784
add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
164 | } |