-
Notifications
You must be signed in to change notification settings - Fork 1
/
control_gallery.cr
151 lines (119 loc) · 2.86 KB
/
control_gallery.cr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# This is the standard control gallery, based off of the one
# at https://github.com/Fusion/libui.cr/blob/master/examples/controlgallery/main.cr
require "../src/cru"
include Cru
# Bootstrap the app
app = App.new
app.should_quit.on do
exit(0)
end
file_menu = Menu.new "File"
open_item = file_menu.append_item "Open"
open_item.clicked.on do |window|
filename = window.open_file
if !filename
window.show_error("No file selected!", "This is an error.")
else
window.show_message("File selected", filename)
end
end
save_item = file_menu.append_item "Save"
save_item.clicked.on do |window|
filename = window.save_file
if !filename
window.show_error("No file selected!", "This is an error.")
else
window.show_message("File selected", filename)
end
end
file_menu.append_quit_item
edit_meu = Menu.new "Edit"
edit_meu.append_check_item "Checkable Item"
disabled_item = edit_meu.append_item "Disabled Item"
disabled_item.disable
edit_meu.append_preferences_item
help_menu = Menu.new "Help"
help_menu.append_item "Help"
help_menu.append_about_item
window = Window.new "Cru Control Gallery", 640, 480, true
window.margined = true
box = VerticalBox.new
box.padded = true
window.child = box
hbox = HorizontalBox.new
hbox.padded = true
box.append hbox, true
group = Group.new "Basic Controls"
group.margined = true
hbox.append group
inner = VerticalBox.new
inner.padded = true
group.child = inner
inner.append Button.new("Button")
inner.append Checkbox.new("Checkbox")
entry = Entry.new
entry.text = "Entry"
inner.append entry
inner.append Label.new("Label")
inner.append HorizontalSeparator.new
inner.append DatePicker.new
inner.append TimePicker.new
inner.append DateTimePicker.new
inner.append FontButton.new
inner.append ColorButton.new
inner2 = VerticalBox.new
inner2.padded = true
hbox.append inner2, true
group = Group.new "Numbers"
group.margined = true
inner2.append group
inner = VerticalBox.new
inner.padded = true
group.child = inner
progress_bar = ProgressBar.new
spinbox = Spinbox.new 0, 100
slider = Slider.new 0, 100
spinbox.changed.on do
value = spinbox.value.to_i
slider.value = value
progress_bar.value = value
end
slider.changed.on do
value = slider.value.to_i
spinbox.value = value
progress_bar.value = value
end
inner.append spinbox
inner.append slider
inner.append progress_bar
group = Group.new "Lists"
group.margined = true
inner2.append group
inner = VerticalBox.new
inner.padded = true
group.child = inner
cbox = ComboBox.new([
"Item 1",
"Item 2",
"Item 3",
])
inner.append cbox
ecbox = EditableComboBox.new([
"Item 1",
"Item 2",
"Item 3",
])
inner.append ecbox
rb = RadioButtons.new([
"Button 1",
"Button 2",
"Button 3",
])
inner.append rb, true
tab = Tab.new
tab.append "Page 1", HorizontalBox.new
tab.append "Page 2", HorizontalBox.new
tab.append "Page 3", HorizontalBox.new
inner2.append tab, true
window.show
app.start