ruby-iup 0.1.0-x86-mswin32-60
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +3 -0
- data/MANIFEST +8 -0
- data/MIT-LICENSE +18 -0
- data/README +12 -0
- data/Rakefile +85 -0
- data/doc/README +10 -0
- data/doc/build_install.txt +74 -0
- data/examples/README +16 -0
- data/examples/ctrl/cbox.rb +220 -0
- data/examples/ctrl/checkboard.rb +33 -0
- data/examples/ctrl/degrade.rb +76 -0
- data/examples/ctrl/example1.rb +53 -0
- data/examples/ctrl/example2.rb +39 -0
- data/examples/ctrl/iupcolorbar.rb +95 -0
- data/examples/ctrl/iupcolorbrowser.rb +45 -0
- data/examples/ctrl/iupdial.rb +117 -0
- data/examples/ctrl/iupgauge.rb +242 -0
- data/examples/ctrl/iupgetcolor.rb +8 -0
- data/examples/ctrl/iupgetparam.rb +62 -0
- data/examples/ctrl/iupglcanvas.rb +172 -0
- data/examples/ctrl/iupmask.rb +13 -0
- data/examples/ctrl/iupmatrix.rb +39 -0
- data/examples/ctrl/iupplot2.rb +601 -0
- data/examples/ctrl/iuptabs.rb +22 -0
- data/examples/ctrl/iuptree.rb +190 -0
- data/examples/ctrl/iupval.rb +71 -0
- data/examples/ctrl/numbering.rb +46 -0
- data/examples/ctrl/sample.rb +166 -0
- data/examples/dlg/iupalarm.rb +16 -0
- data/examples/dlg/iupfiledlg.rb +19 -0
- data/examples/dlg/iupgetfile.rb +19 -0
- data/examples/dlg/iuplistdialog.rb +26 -0
- data/examples/dlg/iupmessage.rb +5 -0
- data/examples/dlg/iupscanf.rb +17 -0
- data/examples/elem/iupbutton.rb +180 -0
- data/examples/elem/iupcanvas.rb +29 -0
- data/examples/elem/iupcanvas2.rb +114 -0
- data/examples/elem/iupcanvas3.rb +52 -0
- data/examples/elem/iupdialog.rb +67 -0
- data/examples/elem/iupdialog2.rb +25 -0
- data/examples/elem/iupfill.rb +51 -0
- data/examples/elem/iupframe.rb +25 -0
- data/examples/elem/iuphbox.rb +68 -0
- data/examples/elem/iupimage.rb +113 -0
- data/examples/elem/iupitem.rb +60 -0
- data/examples/elem/iuplabel.rb +57 -0
- data/examples/elem/iuplist.rb +41 -0
- data/examples/elem/iuplist2.rb +125 -0
- data/examples/elem/iupmenu.rb +32 -0
- data/examples/elem/iupmultiline.rb +24 -0
- data/examples/elem/iupmultiline2.rb +156 -0
- data/examples/elem/iupradio.rb +32 -0
- data/examples/elem/iupseparator.rb +81 -0
- data/examples/elem/iupsubmenu.rb +85 -0
- data/examples/elem/iuptimer.rb +36 -0
- data/examples/elem/iuptoggle.rb +110 -0
- data/examples/elem/iupvbox.rb +87 -0
- data/examples/elem/iupzbox.rb +60 -0
- data/examples/elem/mdisample.rb +377 -0
- data/examples/elem/progressbar.rb +280 -0
- data/examples/elem/scrollbar.rb +66 -0
- data/examples/elem/tray.rb +90 -0
- data/examples/func/iupgetattribute.rb +32 -0
- data/examples/func/iupidle.rb +48 -0
- data/lib/iup.so +0 -0
- data/ruby-iup.gemspec +26 -0
- data/test/test_ruby_iup.rb +25 -0
- metadata +132 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require "iup"
|
3
|
+
|
4
|
+
list_multiple_cb = lambda do |hi,t,i,v|
|
5
|
+
message = "Item #{i} - #{t} - #{v == 0 ? 'deselected' : 'selected'}"
|
6
|
+
Iup.Message("Competed in", message)
|
7
|
+
|
8
|
+
Iup::DEFAULT
|
9
|
+
end
|
10
|
+
|
11
|
+
list = Iup.List("list_act")
|
12
|
+
list.attr = "1=Gold, 2=Silver, 3=Bronze, 4=None,"+
|
13
|
+
"VALUE=4, SIZE=EIGHTHxEIGHTH"
|
14
|
+
|
15
|
+
frm_medal = Iup.Frame(list)
|
16
|
+
frm_medal.title = "Best medal"
|
17
|
+
|
18
|
+
list_multiple = Iup.List()
|
19
|
+
|
20
|
+
list_multiple.attr = "1=\"100m dash\", 2=\"Long jump\", 3=\"Javelin throw\", 4=\"110m hurdlers\", 5=\"Hammer throw\",6=\"High jump\","+
|
21
|
+
"MULTIPLE=YES, VALUE=\"+--+--\", SIZE=EIGHTHxEIGHTH"
|
22
|
+
|
23
|
+
list_multiple.action = list_multiple_cb
|
24
|
+
|
25
|
+
frm_sport = Iup.Frame(list_multiple)
|
26
|
+
frm_sport.title = "Competed in"
|
27
|
+
|
28
|
+
list_dropdown = Iup.List()
|
29
|
+
list_dropdown.attr = "1=\"Less than US$ 1000\", 2=\"US$ 2000\", 3=\"US$ 5000\", 4=\"US$ 10000\", 5=\"US$ 20000\", 6=\"US$ 50000\", 7=\"More than US$ 100000\","+
|
30
|
+
"DROPDOWN=YES, VISIBLE_ITEMS=5"
|
31
|
+
|
32
|
+
frm_prize = Iup.Frame(list_dropdown)
|
33
|
+
frm_prize.title = "Prizes won"
|
34
|
+
|
35
|
+
dlg = Iup.Dialog(Iup.Hbox([frm_medal, frm_sport, frm_prize]))
|
36
|
+
dlg.title = "IupList Example"
|
37
|
+
dlg.ShowXY(Iup::CENTER, Iup::CENTER)
|
38
|
+
|
39
|
+
Iup.MainLoop()
|
40
|
+
dlg.Destroy()
|
41
|
+
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
require 'iup'
|
4
|
+
|
5
|
+
list_cb = lambda do |ih, t, i, v|
|
6
|
+
lbl = ih._label
|
7
|
+
lbl.title = t
|
8
|
+
Iup::DEFAULT
|
9
|
+
end
|
10
|
+
|
11
|
+
edit_cb = lambda do |ih, c, after|
|
12
|
+
lbl = ih._label
|
13
|
+
if(Iup.isxkey(c) && c != Iup::K_DEL)
|
14
|
+
return Iup::DEFAULT
|
15
|
+
end
|
16
|
+
lbl.title = after
|
17
|
+
Iup::DEFAULT
|
18
|
+
end
|
19
|
+
|
20
|
+
btclose_cb = lambda do |ih|
|
21
|
+
return Iup::CLOSE
|
22
|
+
end
|
23
|
+
|
24
|
+
bt_cb = lambda do |ih|
|
25
|
+
list = ih._list
|
26
|
+
Iup.Message("List", "Value=#{list.value}")
|
27
|
+
Iup::DEFAULT
|
28
|
+
end
|
29
|
+
|
30
|
+
getfocus_cb = lambda do |ih|
|
31
|
+
bt = ih._button
|
32
|
+
bt.bgcolor = "255 0 128"
|
33
|
+
Iup::DEFAULT
|
34
|
+
end
|
35
|
+
|
36
|
+
killfocus_cb = lambda do |ih|
|
37
|
+
bt = ih._button
|
38
|
+
bt.bgcolor = nil
|
39
|
+
Iup::DEFAULT
|
40
|
+
end
|
41
|
+
|
42
|
+
bt1 = Iup.Button("Drop+Edit")
|
43
|
+
bt1.action = bt_cb
|
44
|
+
bt2 = Iup.Button("Drop")
|
45
|
+
bt2.action = bt_cb
|
46
|
+
bt3 = Iup.Button("List+Edit")
|
47
|
+
bt3.action = bt_cb
|
48
|
+
bt4 = Iup.Button("List")
|
49
|
+
bt4.action = bt_cb
|
50
|
+
|
51
|
+
list1 = Iup.List()
|
52
|
+
list1.action = list_cb
|
53
|
+
list2 = Iup.List()
|
54
|
+
list2.action = list_cb
|
55
|
+
list3 = Iup.List()
|
56
|
+
list3.action = list_cb
|
57
|
+
list4 = Iup.List()
|
58
|
+
list4.action = list_cb
|
59
|
+
|
60
|
+
list1.attr = "1=\"US$ 1000\", 2=\"US$ 2000\", 3=\"US$ 30000000\", 4=\"US$ 4000\", 5=\"US$ 5000\", 6=\"US$ 6000\", 7=\"US$ 7000\","+
|
61
|
+
"EXPAND=HORIZONTAL, EDITBOX=YES, DROPDOWN=YES, VISIBLE_ITEMS=5"
|
62
|
+
list2.attr = "1=\"R$ 1000\", 2=\"R$ 2000\", 3=\"R$ 3000\", 4=\"R$ 4000\", 5=\"R$ 5000\", 6=\"R$ 6000\", 7=\"R$ 7000\","+
|
63
|
+
"EXPAND=HORIZONTAL, DROPDOWN=YES, VISIBLE_ITEMS=5"
|
64
|
+
list3.attr = "1=\"Char A\", 2=\"Char B\", 3=\"Char CCCCC\", 4=\"Char D\", 5=\"Char F\", 6=\"Char G\", 7=\"Char H\","+
|
65
|
+
"EXPAND=YES, EDITBOX=YES"
|
66
|
+
list4.attr = "1=\"Number 1\", 2=\"Number 2\", 3=\"Number 3\", 4=\"Number 4\", 5=\"Number 5\", 6=\"Number 6\", 7=\"Number 7\","+
|
67
|
+
"EXPAND=YES"
|
68
|
+
|
69
|
+
bt1._list = list1
|
70
|
+
bt2._list = list2
|
71
|
+
bt3._list = list3
|
72
|
+
bt4._list = list4
|
73
|
+
|
74
|
+
list1._button = bt1
|
75
|
+
list2._button = bt2
|
76
|
+
list3._button = bt3
|
77
|
+
list4._button = bt4
|
78
|
+
|
79
|
+
bt1.bgcolor = "192 192 192"
|
80
|
+
bt2.bgcolor = "192 192 192"
|
81
|
+
bt3.bgcolor = "192 192 192"
|
82
|
+
bt4.bgcolor = "192 192 192"
|
83
|
+
|
84
|
+
list1.getfocus_cb = getfocus_cb
|
85
|
+
list1.killfocus_cb = killfocus_cb
|
86
|
+
list2.getfocus_cb = getfocus_cb
|
87
|
+
list2.killfocus_cb = killfocus_cb
|
88
|
+
list3.getfocus_cb = getfocus_cb
|
89
|
+
list3.killfocus_cb = killfocus_cb
|
90
|
+
list4.getfocus_cb = getfocus_cb
|
91
|
+
list4.killfocus_cb = killfocus_cb
|
92
|
+
|
93
|
+
list1.list_edit_cb = edit_cb
|
94
|
+
list3.list_edit_cb = edit_cb
|
95
|
+
|
96
|
+
# list3.readonly = "YES"
|
97
|
+
|
98
|
+
box1 = Iup.Vbox([list1, bt1])
|
99
|
+
box2 = Iup.Vbox([list2, bt2])
|
100
|
+
box3 = Iup.Vbox([list3, bt3])
|
101
|
+
box4 = Iup.Vbox([list4, bt4])
|
102
|
+
|
103
|
+
lbl = Iup.Label("")
|
104
|
+
lbl.expand = "HORIZONTAL"
|
105
|
+
|
106
|
+
btok = Iup.Button(:title=>"OK",:action=>btclose_cb)
|
107
|
+
|
108
|
+
btcancel = Iup.Button(:title=>"Cancel",:action=>btclose_cb)
|
109
|
+
|
110
|
+
btok._list1 = list1
|
111
|
+
btok._list2 = list2
|
112
|
+
btok._list3 = list3
|
113
|
+
btok._list4 = list4
|
114
|
+
|
115
|
+
dlg = Iup.Dialog(Iup.Vbox([Iup.Hbox([box1, box2, box3, box4]), lbl, btok, btcancel]),:attr=>"MARGIN=10x10, GAP=10")
|
116
|
+
dlg.title = "IupList Example"
|
117
|
+
dlg._label = lbl
|
118
|
+
dlg.defaultenter = btok
|
119
|
+
dlg.defaultesc = btcancel
|
120
|
+
|
121
|
+
dlg.ShowXY(Iup::CENTER, Iup::CENTER)
|
122
|
+
|
123
|
+
Iup.MainLoop()
|
124
|
+
dlg.Destroy()
|
125
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
exit_cb = lambda do |ih|
|
5
|
+
Iup::CLOSE
|
6
|
+
end
|
7
|
+
|
8
|
+
item_open = Iup.Item("&Open")
|
9
|
+
|
10
|
+
item_save = Iup.Item("&Save")
|
11
|
+
|
12
|
+
item_undo = Iup.Item("&Undo")
|
13
|
+
item_undo.active = "NO"
|
14
|
+
|
15
|
+
item_exit = Iup.Item("E&xit")
|
16
|
+
item_exit.action = exit_cb
|
17
|
+
|
18
|
+
file_menu = Iup.Menu([item_open,
|
19
|
+
item_save,
|
20
|
+
Iup.Separator(),
|
21
|
+
item_undo,
|
22
|
+
item_exit])
|
23
|
+
|
24
|
+
sub1_menu = Iup.Submenu("&File", file_menu)
|
25
|
+
|
26
|
+
menu = Iup.Menu([sub1_menu])
|
27
|
+
dg = Iup.Dialog(Iup.Canvas(""))
|
28
|
+
dg.menu = menu
|
29
|
+
|
30
|
+
dg.Show()
|
31
|
+
Iup.MainLoop()
|
32
|
+
dg.Destroy()
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
require 'iup'
|
4
|
+
|
5
|
+
mlaction = lambda do |ih,c,after|
|
6
|
+
if(c==Iup::K_DEL)
|
7
|
+
return Iup::IGNORE
|
8
|
+
else
|
9
|
+
return Iup::DEFAULT
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
ml = Iup.MultiLine(:action=>mlaction)
|
14
|
+
ml.expand = "YES"
|
15
|
+
ml.value = "I ignore the DEL key!"
|
16
|
+
ml.border = "YES"
|
17
|
+
|
18
|
+
dlg = Iup.Dialog(ml)
|
19
|
+
dlg.title = "IupMultiline"
|
20
|
+
dlg.size = "QUARTERxQUARTER"
|
21
|
+
|
22
|
+
dlg.Show()
|
23
|
+
Iup.MainLoop()
|
24
|
+
dlg.Destroy()
|
@@ -0,0 +1,156 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
require 'iup'
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
# Creates a multiline, a text and a list*/
|
8
|
+
mltline = Iup.MultiLine()
|
9
|
+
text = Iup.Text()
|
10
|
+
list = Iup.List()
|
11
|
+
|
12
|
+
# Turns on multiline expand ans text horizontal expand */
|
13
|
+
mltline.expand = "YES"
|
14
|
+
text.expand = "HORIZONTAL"
|
15
|
+
|
16
|
+
# Sets list items and dropdown */
|
17
|
+
list.attr = "1 = SET, 2 = GET, DROPDOWN = YES"
|
18
|
+
|
19
|
+
|
20
|
+
set_attribute = lambda do |attribute|
|
21
|
+
mltline[attribute] = text.value
|
22
|
+
|
23
|
+
string_message = "Attribute #{attribute} set with value #{text.value}"
|
24
|
+
Iup.Message("Set attribute", string_message)
|
25
|
+
Iup::DEFAULT
|
26
|
+
end
|
27
|
+
|
28
|
+
get_attribute = lambda do |attribute|
|
29
|
+
text.value = mltline[attribute]
|
30
|
+
|
31
|
+
string_message = "Attribute #{attribute} get with value #{text.value}"
|
32
|
+
Iup.Message("Get attribute", string_message)
|
33
|
+
Iup::DEFAULT
|
34
|
+
end
|
35
|
+
|
36
|
+
btn_append_cb = lambda do |ih|
|
37
|
+
if(list.value == '1')
|
38
|
+
set_attribute.call(Iup::APPEND)
|
39
|
+
else
|
40
|
+
get_attribute.call(Iup::APPEND)
|
41
|
+
end
|
42
|
+
|
43
|
+
Iup::DEFAULT
|
44
|
+
end
|
45
|
+
|
46
|
+
btn_insert_cb = lambda do |ih|
|
47
|
+
if(list.value == '1')
|
48
|
+
set_attribute.call(Iup::INSERT)
|
49
|
+
else
|
50
|
+
get_attribute.call(Iup::INSERT)
|
51
|
+
end
|
52
|
+
|
53
|
+
Iup::DEFAULT
|
54
|
+
end
|
55
|
+
|
56
|
+
btn_border_cb = lambda do |ih|
|
57
|
+
if(list.value == '1')
|
58
|
+
set_attribute.call(Iup::BORDER)
|
59
|
+
else
|
60
|
+
get_attribute.call(Iup::BORDER)
|
61
|
+
end
|
62
|
+
Iup::DEFAULT
|
63
|
+
end
|
64
|
+
|
65
|
+
btn_caret_cb = lambda do |ih|
|
66
|
+
if(list.value == '1')
|
67
|
+
set_attribute.call(Iup::CARET)
|
68
|
+
else
|
69
|
+
get_attribute.call(Iup::CARET)
|
70
|
+
end
|
71
|
+
Iup::DEFAULT
|
72
|
+
end
|
73
|
+
|
74
|
+
btn_readonly_cb = lambda do |ih|
|
75
|
+
if(list.value == '1')
|
76
|
+
set_attribute.call(Iup::READONLY)
|
77
|
+
else
|
78
|
+
get_attribute.call(Iup::READONLY)
|
79
|
+
end
|
80
|
+
Iup::DEFAULT
|
81
|
+
end
|
82
|
+
|
83
|
+
btn_selection_cb = lambda do |ih|
|
84
|
+
if(list.value == '1')
|
85
|
+
set_attribute.call(Iup::SELECTION)
|
86
|
+
else
|
87
|
+
get_attribute.call(Iup::SELECTION)
|
88
|
+
end
|
89
|
+
Iup::DEFAULT
|
90
|
+
end
|
91
|
+
|
92
|
+
btn_selectedtext_cb = lambda do |ih|
|
93
|
+
if(list.value == '1')
|
94
|
+
set_attribute.call(Iup::SELECTEDTEXT)
|
95
|
+
else
|
96
|
+
get_attribute.call(Iup::SELECTEDTEXT)
|
97
|
+
end
|
98
|
+
Iup::DEFAULT
|
99
|
+
end
|
100
|
+
|
101
|
+
btn_nc_cb = lambda do |ih|
|
102
|
+
if(list.value == '1')
|
103
|
+
set_attribute.call(Iup::NC)
|
104
|
+
else
|
105
|
+
get_attribute.call(Iup::NC)
|
106
|
+
end
|
107
|
+
Iup::DEFAULT
|
108
|
+
end
|
109
|
+
|
110
|
+
btn_value_cb = lambda do |ih|
|
111
|
+
if(list.value == '1')
|
112
|
+
set_attribute.call(Iup::VALUE)
|
113
|
+
else
|
114
|
+
get_attribute.call(Iup::VALUE)
|
115
|
+
end
|
116
|
+
Iup::DEFAULT
|
117
|
+
end
|
118
|
+
|
119
|
+
# Creates buttons */
|
120
|
+
btn_append = Iup.Button("Append")
|
121
|
+
btn_insert = Iup.Button("Insert")
|
122
|
+
btn_border = Iup.Button("Border")
|
123
|
+
btn_caret = Iup.Button("Caret")
|
124
|
+
btn_readonly = Iup.Button("Read only")
|
125
|
+
btn_selection = Iup.Button("Selection")
|
126
|
+
btn_selectedtext = Iup.Button("Selected Text")
|
127
|
+
btn_nc = Iup.Button("Number of characters")
|
128
|
+
btn_value = Iup.Button("Value")
|
129
|
+
|
130
|
+
# Registers callbacks */
|
131
|
+
btn_append.action = btn_append_cb
|
132
|
+
btn_insert.action = btn_insert_cb
|
133
|
+
btn_border.action = btn_border_cb
|
134
|
+
btn_caret.action = btn_caret_cb
|
135
|
+
btn_readonly.action = btn_readonly_cb
|
136
|
+
btn_selection.action = btn_selection_cb
|
137
|
+
btn_selectedtext.action = btn_selectedtext_cb
|
138
|
+
btn_nc.action = btn_nc_cb
|
139
|
+
btn_value.action = btn_value_cb
|
140
|
+
|
141
|
+
# Creates dialog */
|
142
|
+
dlg = Iup.Dialog(Iup.Vbox([mltline,
|
143
|
+
Iup.Hbox([text, list]),
|
144
|
+
Iup.Hbox([btn_append, btn_insert, btn_border, btn_caret, btn_readonly, btn_selection]),
|
145
|
+
Iup.Hbox([btn_selectedtext, btn_nc, btn_value])]))
|
146
|
+
|
147
|
+
# Sets title and size of the dialog */
|
148
|
+
dlg.attr = "TITLE=\"Iup.MultiLine Example\", SIZE=HALFxQUARTER"
|
149
|
+
|
150
|
+
# Shows dialog in the center of the screen */
|
151
|
+
dlg.ShowXY(Iup::CENTER, Iup::CENTER)
|
152
|
+
|
153
|
+
# Initializes IUP main loop */
|
154
|
+
Iup.MainLoop()
|
155
|
+
|
156
|
+
dlg.Destroy()
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
require 'iup'
|
4
|
+
|
5
|
+
male = Iup.Toggle("Male")
|
6
|
+
female = Iup.Toggle("Female")
|
7
|
+
|
8
|
+
exclusive = Iup.Radio(
|
9
|
+
Iup.Vbox([
|
10
|
+
male,
|
11
|
+
female])
|
12
|
+
)
|
13
|
+
exclusive.value = female
|
14
|
+
exclusive.tip = "Two state button - Exclusive - RADIO"
|
15
|
+
|
16
|
+
frame = Iup.Frame(
|
17
|
+
exclusive
|
18
|
+
)
|
19
|
+
frame.title = "Gender"
|
20
|
+
|
21
|
+
dialog = Iup.Dialog(
|
22
|
+
Iup.Hbox([
|
23
|
+
Iup.Fill(),
|
24
|
+
frame,
|
25
|
+
Iup.Fill()])
|
26
|
+
)
|
27
|
+
|
28
|
+
dialog.attr = "SIZE=140, TITLE=IupRadio, RESIZE=NO, MINBOX=NO, MAXBOX=NO"
|
29
|
+
|
30
|
+
dialog.Show()
|
31
|
+
Iup.MainLoop()
|
32
|
+
dialog.Destroy()
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'iup'
|
3
|
+
|
4
|
+
def show_message()
|
5
|
+
Iup.Message("Warning", "This item performs no operation\nIt is here only to compose")
|
6
|
+
end
|
7
|
+
|
8
|
+
item_new_cb = lambda do |ih|
|
9
|
+
show_message()
|
10
|
+
Iup::DEFAULT
|
11
|
+
end
|
12
|
+
|
13
|
+
item_open_cb = lambda do |ih|
|
14
|
+
show_message()
|
15
|
+
Iup::DEFAULT
|
16
|
+
end
|
17
|
+
|
18
|
+
item_close_cb = lambda do |ih|
|
19
|
+
show_message()
|
20
|
+
Iup::DEFAULT
|
21
|
+
end
|
22
|
+
|
23
|
+
item_pagesetup_cb = lambda do |ih|
|
24
|
+
show_message()
|
25
|
+
Iup::DEFAULT
|
26
|
+
end
|
27
|
+
|
28
|
+
item_print_cb = lambda do |ih|
|
29
|
+
show_message()
|
30
|
+
Iup::DEFAULT
|
31
|
+
end
|
32
|
+
|
33
|
+
item_exit_cb = lambda do |ih|
|
34
|
+
Iup::CLOSE
|
35
|
+
end
|
36
|
+
|
37
|
+
# Creates a text */
|
38
|
+
text = Iup.Text()
|
39
|
+
|
40
|
+
# Sets value of the text and turns on expand */
|
41
|
+
text.attr = "VALUE = \"This text is here only to compose\", EXPAND = YES"
|
42
|
+
|
43
|
+
# Creates six items */
|
44
|
+
item_new = Iup.Item("New")
|
45
|
+
item_open = Iup.Item("Open")
|
46
|
+
item_close = Iup.Item("Close")
|
47
|
+
item_pagesetup = Iup.Item("Page Setup")
|
48
|
+
item_print = Iup.Item("Page Setup")
|
49
|
+
item_exit = Iup.Item("Exit")
|
50
|
+
|
51
|
+
# Registers callbacks */
|
52
|
+
item_new.action = item_new_cb
|
53
|
+
item_open.action = item_open_cb
|
54
|
+
item_close.action = item_close_cb
|
55
|
+
item_pagesetup.action = item_pagesetup_cb
|
56
|
+
item_print.action = item_print_cb
|
57
|
+
item_exit.action = item_exit_cb
|
58
|
+
|
59
|
+
# Creates file menu */
|
60
|
+
menu_file = Iup.Menu([item_new, item_open, item_close, Iup.Separator(), item_pagesetup, item_print, Iup.Separator(), item_exit])
|
61
|
+
|
62
|
+
# Creates file submenu */
|
63
|
+
submenu_file = Iup.Submenu("File", menu_file)
|
64
|
+
|
65
|
+
# Creates main menu with file menu */
|
66
|
+
menu = Iup.Menu([submenu_file])
|
67
|
+
|
68
|
+
# Creates dialog with a text */
|
69
|
+
dlg = Iup.Dialog(text,:menu=>menu)
|
70
|
+
|
71
|
+
# Sets title and size of the dialog and associates a menu to it */
|
72
|
+
dlg.attr = "TITLE=\"Iup.Separator Example\", SIZE = QUARTERxEIGHTH"
|
73
|
+
|
74
|
+
# Shows dialog in the center of the screen */
|
75
|
+
dlg.ShowXY(Iup::CENTER, Iup::CENTER)
|
76
|
+
|
77
|
+
# Initializes IUP main loop */
|
78
|
+
Iup.MainLoop()
|
79
|
+
|
80
|
+
dlg.Destroy()
|
81
|
+
|