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.
Files changed (68) hide show
  1. data/CHANGES +3 -0
  2. data/MANIFEST +8 -0
  3. data/MIT-LICENSE +18 -0
  4. data/README +12 -0
  5. data/Rakefile +85 -0
  6. data/doc/README +10 -0
  7. data/doc/build_install.txt +74 -0
  8. data/examples/README +16 -0
  9. data/examples/ctrl/cbox.rb +220 -0
  10. data/examples/ctrl/checkboard.rb +33 -0
  11. data/examples/ctrl/degrade.rb +76 -0
  12. data/examples/ctrl/example1.rb +53 -0
  13. data/examples/ctrl/example2.rb +39 -0
  14. data/examples/ctrl/iupcolorbar.rb +95 -0
  15. data/examples/ctrl/iupcolorbrowser.rb +45 -0
  16. data/examples/ctrl/iupdial.rb +117 -0
  17. data/examples/ctrl/iupgauge.rb +242 -0
  18. data/examples/ctrl/iupgetcolor.rb +8 -0
  19. data/examples/ctrl/iupgetparam.rb +62 -0
  20. data/examples/ctrl/iupglcanvas.rb +172 -0
  21. data/examples/ctrl/iupmask.rb +13 -0
  22. data/examples/ctrl/iupmatrix.rb +39 -0
  23. data/examples/ctrl/iupplot2.rb +601 -0
  24. data/examples/ctrl/iuptabs.rb +22 -0
  25. data/examples/ctrl/iuptree.rb +190 -0
  26. data/examples/ctrl/iupval.rb +71 -0
  27. data/examples/ctrl/numbering.rb +46 -0
  28. data/examples/ctrl/sample.rb +166 -0
  29. data/examples/dlg/iupalarm.rb +16 -0
  30. data/examples/dlg/iupfiledlg.rb +19 -0
  31. data/examples/dlg/iupgetfile.rb +19 -0
  32. data/examples/dlg/iuplistdialog.rb +26 -0
  33. data/examples/dlg/iupmessage.rb +5 -0
  34. data/examples/dlg/iupscanf.rb +17 -0
  35. data/examples/elem/iupbutton.rb +180 -0
  36. data/examples/elem/iupcanvas.rb +29 -0
  37. data/examples/elem/iupcanvas2.rb +114 -0
  38. data/examples/elem/iupcanvas3.rb +52 -0
  39. data/examples/elem/iupdialog.rb +67 -0
  40. data/examples/elem/iupdialog2.rb +25 -0
  41. data/examples/elem/iupfill.rb +51 -0
  42. data/examples/elem/iupframe.rb +25 -0
  43. data/examples/elem/iuphbox.rb +68 -0
  44. data/examples/elem/iupimage.rb +113 -0
  45. data/examples/elem/iupitem.rb +60 -0
  46. data/examples/elem/iuplabel.rb +57 -0
  47. data/examples/elem/iuplist.rb +41 -0
  48. data/examples/elem/iuplist2.rb +125 -0
  49. data/examples/elem/iupmenu.rb +32 -0
  50. data/examples/elem/iupmultiline.rb +24 -0
  51. data/examples/elem/iupmultiline2.rb +156 -0
  52. data/examples/elem/iupradio.rb +32 -0
  53. data/examples/elem/iupseparator.rb +81 -0
  54. data/examples/elem/iupsubmenu.rb +85 -0
  55. data/examples/elem/iuptimer.rb +36 -0
  56. data/examples/elem/iuptoggle.rb +110 -0
  57. data/examples/elem/iupvbox.rb +87 -0
  58. data/examples/elem/iupzbox.rb +60 -0
  59. data/examples/elem/mdisample.rb +377 -0
  60. data/examples/elem/progressbar.rb +280 -0
  61. data/examples/elem/scrollbar.rb +66 -0
  62. data/examples/elem/tray.rb +90 -0
  63. data/examples/func/iupgetattribute.rb +32 -0
  64. data/examples/func/iupidle.rb +48 -0
  65. data/lib/iup.so +0 -0
  66. data/ruby-iup.gemspec +26 -0
  67. data/test/test_ruby_iup.rb +25 -0
  68. metadata +132 -0
@@ -0,0 +1,85 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ item_help_cb = lambda do |ih|
5
+ Iup.Message("Warning", "Only Help and Exit items performs an operation")
6
+
7
+ Iup::DEFAULT
8
+ end
9
+
10
+
11
+ item_exit_cb = lambda do |ih|
12
+ Iup::CLOSE
13
+ end
14
+
15
+ # Creates a multiline */
16
+ text = Iup.Text()
17
+
18
+ # Sets value of the text and turns on expand */
19
+ text.attr = "VALUE = \"This text is here only to compose\", EXPAND = YES"
20
+
21
+ # Creates items of menu file */
22
+ item_new = Iup.Item("New")
23
+ item_open = Iup.Item("Open")
24
+ item_close = Iup.Item("Close")
25
+ item_exit = Iup.Item("Exit", "item_exit_act")
26
+
27
+ # Creates items of menu edit */
28
+ item_copy = Iup.Item("Copy")
29
+ item_paste = Iup.Item("Paste")
30
+
31
+ # Creates items for menu triangle */
32
+ item_scalenus = Iup.Item("Scalenus")
33
+ item_isoceles = Iup.Item("Isoceles")
34
+ item_equilateral = Iup.Item("Equilateral")
35
+
36
+ # Create menu triangle */
37
+ menu_triangle = Iup.Menu([item_equilateral, item_isoceles, item_scalenus])
38
+
39
+ # Creates submenu triangle */
40
+ submenu_triangle = Iup.Submenu("Triangle", menu_triangle)
41
+
42
+ # Creates items for menu create */
43
+ item_line = Iup.Item("Line")
44
+ item_circle = Iup.Item("Circle")
45
+
46
+ # Creates menu create */
47
+ menu_create = Iup.Menu([item_line, item_circle, submenu_triangle])
48
+
49
+ # Creates submenu create */
50
+ submenu_create = Iup.Submenu("Create", menu_create)
51
+
52
+ # Creates items of menu help */
53
+ item_help = Iup.Item("Help", "item_help_act")
54
+
55
+ # Creates three menus */
56
+ menu_file = Iup.Menu([item_new, item_open, item_close, Iup.Separator(), item_exit])
57
+ menu_edit = Iup.Menu([item_copy, item_paste, Iup.Separator(), submenu_create])
58
+ menu_help = Iup.Menu([item_help])
59
+
60
+ # Creates three submenus */
61
+ submenu_file = Iup.Submenu("File", menu_file)
62
+ submenu_edit = Iup.Submenu("Edit", menu_edit)
63
+ submenu_help = Iup.Submenu("Help", menu_help)
64
+
65
+ # Creates main menu with file menu */
66
+ menu = Iup.Menu([submenu_file, submenu_edit, submenu_help])
67
+
68
+ # Registers callbacks */
69
+ item_help.action = item_help_cb
70
+ item_exit.action = item_exit_cb
71
+
72
+ # Creates dialog with a text */
73
+ dlg = Iup.Dialog(text,:menu=>menu)
74
+
75
+ # Sets title and size of the dialog and associates a menu to it */
76
+ dlg.attr = "TITLE=\"Iup.Submenu Example\", SIZE = QUARTERxEIGHTH"
77
+
78
+ # Shows dialog in the center of the screen */
79
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER)
80
+
81
+ # Initializes IUP main loop */
82
+ Iup.MainLoop()
83
+
84
+ dlg.Destroy()
85
+
@@ -0,0 +1,36 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+
5
+ text = Iup.Label("Timer example")
6
+
7
+ # Creating main dialog */
8
+ dialog = Iup.Dialog(Iup.Vbox([text]),:title=>"timer example",:size=>"200x200")
9
+ dialog.ShowXY(Iup::CENTER, Iup::CENTER)
10
+
11
+ timer1 = Iup.Timer()
12
+ timer2 = Iup.Timer()
13
+
14
+ timer_cb = lambda do |n|
15
+ if(n == timer1)
16
+ puts("timer 1 called")
17
+ end
18
+ if(n == timer2)
19
+ puts("timer 2 called")
20
+ return Iup::CLOSE
21
+ end
22
+
23
+ Iup::DEFAULT
24
+ end
25
+
26
+ timer1.time = 100
27
+ timer1.run = "YES"
28
+ timer1.action_cb = timer_cb
29
+
30
+ timer2.time = 400
31
+ timer2.run = "YES"
32
+ timer2.action_cb = timer_cb
33
+
34
+ Iup.MainLoop()
35
+ timer1.Destroy()
36
+ timer2.Destroy()
@@ -0,0 +1,110 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ img_1 = [
5
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
6
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
7
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
8
+ 1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,
9
+ 1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,
10
+ 1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,
11
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
12
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
13
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
14
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
15
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
16
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
17
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
18
+ 1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,
19
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
20
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
21
+ ]
22
+
23
+ img_2 = [
24
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
25
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
26
+ 1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,
27
+ 1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,
28
+ 1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,
29
+ 1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,
30
+ 1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,
31
+ 1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,
32
+ 1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,
33
+ 1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
34
+ 1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,
35
+ 1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,
36
+ 1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,
37
+ 1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,
38
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
39
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
40
+ ]
41
+
42
+
43
+
44
+ toggle1cb = lambda do |ih,v|
45
+ if(v == 1)
46
+ Iup.Message("Toggle 1","pressed")
47
+ else
48
+ Iup.Message("Toggle 1","released")
49
+ end
50
+
51
+ Iup::DEFAULT
52
+ end
53
+
54
+ img1 = Iup.Image(16,16, img_1)
55
+ img2 = Iup.Image(16,16, img_2)
56
+ img1["1"] = "255 255 255"
57
+ img1["2"] = "0 192 0"
58
+ img2["1"] = "255 255 255"
59
+ img2["2"] = "0 192 0"
60
+
61
+ toggle1 = Iup.Toggle("toggle with image")
62
+ toggle2 = Iup.Toggle("deactivated toggle with image")
63
+ toggle3 = Iup.Toggle("regular toggle")
64
+ toggle4 = Iup.Toggle("toggle with blue foreground color")
65
+ toggle5 = Iup.Toggle("toggle with red background color")
66
+ toggle6 = Iup.Toggle("toggle with black background color and green foreground color")
67
+ toggle7 = Iup.Toggle("deactivated toggle")
68
+ toggle8 = Iup.Toggle("toggle with Courier 14 Bold font")
69
+ toggle9 = Iup.Toggle("toggle with size EIGHTxEIGHT")
70
+
71
+ toggle1.action = toggle1cb
72
+
73
+ toggle1.image = img1 # Toggle 1 uses image
74
+ toggle2.image = img2 # Toggle 2 uses image
75
+ toggle2.active = "NO" # Toggle 2 inactive
76
+ toggle4.fgcolor = "0 0 255" # Toggle 4 has blue foreground color
77
+ toggle5.bgcolor = "255 0 0" # Toggle 5 has red background color
78
+ toggle6.fgcolor = "0 255 0" # Toggle 6 has green foreground color
79
+ toggle6.bgcolor = "0 0 0" # Toggle 6 has black background color
80
+ toggle7.active = "NO" # Toggle 7 inactive
81
+ toggle8.font = "COURIER_BOLD_14" # Toggle 8 has Courier 14 Bold font
82
+ toggle9.size = "EIGHTHxEIGHTH" # Toggle 9 has size EIGHTxEIGHT
83
+
84
+ # Creating box that contains the toggles
85
+ caixa =
86
+ Iup.Vbox([
87
+ toggle1,
88
+ toggle2,
89
+ toggle3,
90
+ toggle4,
91
+ toggle5,
92
+ toggle6,
93
+ toggle7,
94
+ toggle8,
95
+ toggle9])
96
+
97
+ toggles = Iup.Radio( caixa ) # Grouping toggles
98
+ toggles.expand = "YES"
99
+
100
+ # Dialog
101
+ dlg = Iup.Dialog(toggles)
102
+ dlg.tile = "IupToggle"
103
+ dlg.attr = "MARGIN=5x5, GAP=5, RESIZE=NO"
104
+
105
+ # Associates a menu to the dialog
106
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER)
107
+ Iup.MainLoop()
108
+ dlg.Destroy()
109
+ img1.Destroy
110
+ img2.Destroy
@@ -0,0 +1,87 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ # Creates frame 1
5
+ frm_1 = Iup.Frame(
6
+ Iup.Hbox([
7
+ Iup.Fill(),
8
+ vbox_1 = Iup.Vbox([
9
+ btn_11=Iup.Button("1"),
10
+ btn_12=Iup.Button("2"),
11
+ btn_13=Iup.Button("3")]),
12
+ Iup.Fill()])
13
+ )
14
+
15
+ # Sets title of frame 1
16
+ frm_1.title = "ALIGNMENT = ALEFT, GAP = 10"
17
+
18
+ # Sets attributes of buttons inside frame 1
19
+ btn_11.size = "20x30"
20
+ btn_12.size = "30x30"
21
+ btn_13.size = "40x30"
22
+
23
+ # Sets attributes of vbox 1
24
+ vbox_1.attr = "ALIGNMENT = ALEFT, GAP = 10"
25
+
26
+ # Creates frame 2
27
+ frm_2 = Iup.Frame(
28
+ Iup.Hbox([
29
+ Iup.Fill(),
30
+ vbox_2 = Iup.Vbox([
31
+ btn_21 = Iup.Button("1"),
32
+ btn_22 = Iup.Button("2"),
33
+ btn_23 = Iup.Button("3")]),
34
+ Iup.Fill()])
35
+ )
36
+
37
+ # Sets title of frame 1
38
+ frm_2.title = "ALIGNMENT = ACENTER, MARGIN = 15"
39
+
40
+ # Sets attributes of buttons inside frame 2
41
+ btn_21.size = "20x30"
42
+ btn_22.size = "30x30"
43
+ btn_23.size = "40x30"
44
+
45
+ # Sets attributes of vbox 2
46
+ vbox_2.attr = "ALIGNMENT = ACENTER, MARGIN = 15"
47
+
48
+ # Creates frame 3
49
+ frm_3 = Iup.Frame(
50
+ Iup.Hbox([
51
+ Iup.Fill(),
52
+ vbox_3 = Iup.Vbox([
53
+ btn_31=Iup.Button("1"),
54
+ btn_32=Iup.Button("2"),
55
+ btn_33=Iup.Button("3")]),
56
+ Iup.Fill()])
57
+ )
58
+
59
+ # Sets title of frame 3
60
+ frm_3.title = "ALIGNMENT = ARIGHT, SIZE = 20"
61
+
62
+ # Sets attributes of buttons inside frame 3
63
+ btn_31.size = "20x30"
64
+ btn_32.size = "30x30"
65
+ btn_33.size = "40x30"
66
+
67
+ # Sets attributes of vbox 3
68
+ vbox_3.attr = "ALIGNMENT = ARIGHT, SIZE = 20"
69
+
70
+ # Creates dialog with three frames inside a vbo_
71
+ dlg = Iup.Dialog(
72
+ Iup.Vbox([
73
+ frm_1,
74
+ frm_2,
75
+ frm_3])
76
+ )
77
+
78
+ # Sets title and size of the dialog
79
+ dlg.attr = "TITLE = \"Iup.Vbox Example\", SIZE = QUARTER"
80
+
81
+ # Shows dialog in the center of the screen
82
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER)
83
+
84
+ # Initializes IUP main loop
85
+ Iup.MainLoop()
86
+
87
+ dlg.Destroy()
@@ -0,0 +1,60 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+
5
+ fill = Iup.Fill()
6
+
7
+ text = Iup.Text()
8
+
9
+ text.attr = "EXPAND = YES, VALUE = \"Enter your text here\""
10
+
11
+ # Creates a label
12
+ lbl = Iup.Label("This element is a label")
13
+
14
+ # Creatas a button
15
+ btn = Iup.Button("This button does nothing")
16
+
17
+
18
+ # Creates zbox with four elements
19
+ zbox = Iup.Zbox([fill, text, lbl, btn])
20
+
21
+ # Creates handles for manipulating the zbox VALUE
22
+ zbox.fill = fill
23
+ zbox.text = text
24
+ zbox.lbl = lbl
25
+ zbox.btn = btn
26
+
27
+ list_cb = lambda do |h,t, o, selected|
28
+ if(selected == 1)
29
+ zbox.value = zbox[t]
30
+ end
31
+ Iup::DEFAULT
32
+ end
33
+
34
+ # Sets zbox alignment
35
+ zbox.alignment = "ACENTER"
36
+
37
+ # Creates frame
38
+ frm = Iup.Frame(
39
+ Iup.Hbox([
40
+ Iup.Fill(),
41
+ list = Iup.List(),
42
+ Iup.Fill()])
43
+ )
44
+
45
+ # Creates dialog
46
+ dlg = Iup.Dialog(
47
+ Iup.Vbox([
48
+ frm,
49
+ zbox])
50
+ )
51
+
52
+ list.attr = "1 = fill, 2 = text, 3 = lbl, 4 = btn"
53
+ frm.title = "Select an element"
54
+ dlg.attr = "SIZE = QUARTER, TITLE = \"Iup.Zbox Example\""
55
+ list.action = list_cb
56
+
57
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER )
58
+ Iup.MainLoop()
59
+ dlg.Destroy()
60
+
@@ -0,0 +1,377 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ class MdiTest
5
+
6
+ def createImages()
7
+ img_bits1 = [
8
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
9
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,
10
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,
11
+ 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
12
+ 1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,
13
+ 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,
14
+ 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,
15
+ 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
16
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
17
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
18
+ 2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
19
+ 2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
20
+ 2,2,2,0,2,0,2,0,2,2,0,2,2,2,0,0,0,2,2,2,0,0,2,0,2,2,0,0,0,2,2,2,
21
+ 2,2,2,0,2,0,0,2,0,0,2,0,2,0,2,2,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2,
22
+ 2,2,2,0,2,0,2,2,0,2,2,0,2,2,2,2,2,0,2,0,2,2,2,0,2,0,2,2,2,0,2,2,
23
+ 2,2,2,0,2,0,2,2,0,2,2,0,2,2,0,0,0,0,2,0,2,2,2,0,2,0,0,0,0,0,2,2,
24
+ 2,2,2,0,2,0,2,2,0,2,2,0,2,0,2,2,2,0,2,0,2,2,2,0,2,0,2,2,2,2,2,2,
25
+ 2,2,2,0,2,0,2,2,0,2,2,0,2,0,2,2,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2,
26
+ 2,2,2,0,2,0,2,2,0,2,2,0,2,2,0,0,0,0,2,2,0,0,2,0,2,2,0,0,0,2,2,2,
27
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,
28
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,2,2,2,2,2,
29
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,
30
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
31
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
32
+ 1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,
33
+ 1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
34
+ 1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
35
+ 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
36
+ 1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
37
+ 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
38
+ 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
39
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
40
+ ]
41
+
42
+ img_bits2 = [
43
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,
44
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
45
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,
46
+ 2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,
47
+ 2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,
48
+ 2,2,2,2,2,2,2,2,2,2,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,
49
+ 2,2,2,2,2,2,2,2,2,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,
50
+ 2,2,2,2,2,2,2,2,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,
51
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
52
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
53
+ 3,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
54
+ 3,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
55
+ 3,3,3,0,3,0,3,0,3,3,0,3,3,3,1,1,0,3,3,3,0,0,3,0,3,3,0,0,0,3,3,3,
56
+ 3,3,3,0,3,0,0,3,0,0,3,0,3,0,1,1,3,0,3,0,3,3,0,0,3,0,3,3,3,0,3,3,
57
+ 3,3,3,0,3,0,3,3,0,3,3,0,3,3,1,1,3,0,3,0,3,3,3,0,3,0,3,3,3,0,3,3,
58
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
59
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
60
+ 3,3,3,0,3,0,3,3,0,3,3,0,3,0,1,1,3,0,3,0,3,3,0,0,3,0,3,3,3,0,3,3,
61
+ 3,3,3,0,3,0,3,3,0,3,3,0,3,3,1,1,0,0,3,3,0,0,3,0,3,3,0,0,0,3,3,3,
62
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,
63
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,0,3,3,3,0,3,3,3,3,3,3,3,3,
64
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,0,0,0,3,3,3,3,3,3,3,3,3,
65
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
66
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
67
+ 2,2,2,2,2,2,2,3,3,3,3,3,3,3,1,1,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,
68
+ 2,2,2,2,2,2,3,3,3,3,3,3,3,3,1,1,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,
69
+ 2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,
70
+ 2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
71
+ 2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
72
+ 2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
73
+ 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
74
+ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
75
+ ]
76
+
77
+ @img1 = Iup.Image(32,32, img_bits1)
78
+ @img1["0"] = "0 0 0"
79
+ @img1["1"] = "BGCOLOR"
80
+ @img1["2"] = "255 0 0"
81
+
82
+ @img2 = Iup.Image(32,32, img_bits2)
83
+ @img2["0"] = "0 0 0"
84
+ @img2["1"] = "0 255 0"
85
+ @img2["2"] = "BGCOLOR"
86
+ @img2["3"] = "255 0 0"
87
+ end
88
+
89
+ def set_callbacks(ctrl)
90
+
91
+ action = lambda do |ih|
92
+ printf("%2d-action(%s#%s) Value=%s\n", @line, ih.GetClassName(), ih.cindex, ih.value)
93
+ @line+=1
94
+ Iup::DEFAULT
95
+ end
96
+
97
+ getfocus_cb = lambda do |ih|
98
+ printf("%2d-getfocus(%s#%s)\n", @line, ih.GetClassName(), ih.cindex)
99
+ @line += 1
100
+ Iup::DEFAULT
101
+ end
102
+
103
+ killfocus_cb = lambda do |ih|
104
+ printf("%2d-killfocus(%s#%s)\n", @line, ih.GetClassName(), ih.cindex)
105
+ @line+=1
106
+ Iup::DEFAULT
107
+ end
108
+
109
+ ctrl.getfocus_cb = getfocus_cb
110
+ ctrl.killfocus_cb = killfocus_cb
111
+ # ctrl.action = action
112
+
113
+ child = Iup.GetNextChild(ctrl, nil)
114
+ while (child)
115
+ set_callbacks(child)
116
+ child = Iup.GetNextChild(ctrl, child)
117
+ end
118
+ end
119
+
120
+ def createDialog()
121
+
122
+ _frm_1 = Iup.Frame(
123
+ Iup.Vbox([
124
+ Iup.Button(:title=>"Button Text",:attr=>"CINDEX=1"),
125
+ Iup.Button(:attr=> "CINDEX=2, BGCOLOR=\"255 128 0\", RASTERSIZE=30x30"),
126
+ Iup.Button(:image=>@img1,:attr=> "CINDEX=3"),
127
+ Iup.Button(:image=>@img1,:attr=> "CINDEX=4, FLAT=YES"),
128
+ Iup.Button(:image=>@img1,:impress=>@img2,:attr=> "CINDEX=5")
129
+ ]),:title=>"IupButton")
130
+
131
+ _frm_2 = Iup.Frame(
132
+ Iup.Vbox([
133
+ Iup.Label(:title=>"Label Text\nLine 2\nLine 3",:attr=> "CINDEX=1"),
134
+ Iup.Label(:title=>"",:attr => "SEPARATOR=HORIZONTAL,CINDEX=2"),
135
+ Iup.Label(:title=>"",:image=>@img1,:attr => "CINDEX=3")
136
+ ]),:title=>"IupLabel")
137
+
138
+ _frm_3 = Iup.Frame(
139
+ Iup.Vbox([
140
+ Iup.Toggle(:title=>"Toggle Text",:attr=>"VALUE=ON,CINDEX=1"),
141
+ Iup.Toggle(:title=>"3State Text",:attr=>"VALUE=NOTDEF,CINDEX=2,3STATE=YES"),
142
+ Iup.Toggle(:title=>"",:image=>@img1,:impress=>@img2,:attr=> "CINDEX=3"),
143
+ Iup.Frame(Iup.Radio(Iup.Vbox([
144
+ Iup.Toggle(:title=>"Toggle Text",:cindex=>4),
145
+ Iup.Toggle(:title=>"Toggle Text",:cindex=>5)
146
+ ])), :title=>"IupRadio")
147
+ ]),:title=>"IupToggle")
148
+
149
+ _text_1 = Iup.Text( )
150
+ _text_1.value = "IupText Text"
151
+ # _text_1.size = "80x"
152
+ _text_1.cindex = 1
153
+
154
+ _ml_1 = Iup.MultiLine( )
155
+ _ml_1.value = "IupMultiline Text\nSecond line\nThird line"
156
+ # _ml_1.size = "50x30"
157
+ # _ml_1.expand = "YES"
158
+ # _ml_1.size = "80x60"
159
+ _ml_1.cindex = 1
160
+
161
+ _frm_4 = Iup.Frame(Iup.Vbox([
162
+ _text_1,
163
+ _ml_1,
164
+ ]),:title=>"IupText/IupMultiline")
165
+
166
+ _list_1 = Iup.List()
167
+ _list_1.expand = "YES"
168
+ # _list_1.size = "50x40"
169
+ _list_1.value = 1
170
+ _list_1.multiple = "YES"
171
+ _list_1["1"] = "Item 1 Text"
172
+ _list_1["2"] = "Item 2 Text"
173
+ _list_1["3"] = "Item 3 Text Big Item"
174
+ _list_1["4"] = "Item 4 Text"
175
+ _list_1["5"] = "Item 5 Text"
176
+ _list_1["6"] = "Item 6 Text"
177
+ _list_1.cindex = 1
178
+
179
+ _list_2 = Iup.List( )
180
+ _list_2.dropdown="YES"
181
+ _list_2.expand="YES"
182
+ _list_2.visible_items= 3
183
+ # _list_2.size= "50x"
184
+ _list_2.value=2
185
+ _list_2["1"]="Item 1 Text"
186
+ _list_2["2"]="Item 2 Text Big Item"
187
+ _list_2["3"]="Item 3 Text"
188
+ _list_2["4"]="Item 4 Text"
189
+ _list_2["5"]="Item 5 Text"
190
+ _list_2["6"]="Item 6 Text"
191
+ _list_2.cindex=2
192
+
193
+ _list_3 = Iup.List( )
194
+ _list_3.editbox="YES"
195
+ _list_3.xpand="YES"
196
+ # _list_3.size="50x40"
197
+ _list_3.value="Test Value"
198
+ _list_3["1"]="Item 1 Text"
199
+ _list_3["2"]="Item 2 Text Big Item"
200
+ _list_3["3"]="Item 3 Text"
201
+ _list_3["4"]="Item 4 Text"
202
+ _list_3["5"]="Item 5 Text"
203
+ _list_3["6"]="Item 6 Text"
204
+ _list_3.cindex = 3
205
+
206
+ _list_4 = Iup.List( )
207
+ _list_4.editbox = "YES"
208
+ _list_4.dropdown="YES"
209
+ _list_4.expand="YES"
210
+ _list_4.visible_items = 3
211
+ # _list_4.size = "50x10"
212
+ _list_4.value = "Test Value"
213
+ _list_4["1"] = "Item 1 Text"
214
+ _list_4["2"] = "Item 2 Text Big Item"
215
+ _list_4["3"] = "Item 3 Text"
216
+ _list_4["4"] = "Item 4 Text"
217
+ _list_4["5"] = "Item 5 Text"
218
+ _list_4["6"] = "Item 6 Text"
219
+ _list_4.cindex="4"
220
+
221
+ _frm_5 = Iup.Frame(Iup.Vbox([
222
+ _list_1,
223
+ _list_2,
224
+ _list_3,
225
+ _list_4
226
+ ]))
227
+ _frm_5.title = "IupList"
228
+
229
+ _hbox_1 = Iup.Hbox([
230
+ _frm_1,
231
+ _frm_2,
232
+ _frm_3,
233
+ _frm_4,
234
+ _frm_5
235
+ ])
236
+
237
+ _cnv_1 = Iup.Canvas( "do_nothing")
238
+ _cnv_1.bgcolor = "128 255 0"
239
+
240
+ _vbox_1 = Iup.Vbox([
241
+ # Iup.Tabs(_hbox_1, NULL),
242
+ _hbox_1,
243
+ _cnv_1
244
+ ])
245
+ _vbox_1.margin = "5x5"
246
+ _vbox_1.alignment = "ARIGHT"
247
+ _vbox_1.gap = "5"
248
+
249
+ set_callbacks(_vbox_1)
250
+
251
+ dlg = Iup.Dialog(_vbox_1)
252
+ dlg.title = "MDI Child"
253
+ # dlg.shrink = "YES"
254
+ # dlg.size = "500x200"
255
+
256
+ # dlg.bgcolor = "255 0 255"
257
+ # dlg.font","Times New Roman:ITALIC:10"
258
+ # dlg.font = "TIMES_BOLD_14"
259
+ # _vbox_1.active = "NO"
260
+
261
+ #dlg.composited = "YES"
262
+ #dlg.layered = "YES"
263
+ #dlg.layeralpha = 192
264
+
265
+ # dlg.Map()
266
+ # dlg.size = nil
267
+
268
+ return dlg
269
+ end
270
+
271
+
272
+ def createMenu()
273
+
274
+ mdi_tilehoriz = lambda do |ih|
275
+ Iup.GetDialog(ih).mdiarrange = "TILEHORIZONTAL"
276
+ Iup::DEFAULT
277
+ end
278
+
279
+ mdi_tilevert = lambda do |ih|
280
+ Iup.GetDialog(ih).mdiarrange= "TILEVERTICAL"
281
+ Iup::DEFAULT
282
+ end
283
+
284
+ mdi_cascade = lambda do |ih|
285
+ Iup.GetDialog(ih).mdiarrange= "CASCADE"
286
+ Iup::DEFAULT
287
+ end
288
+
289
+ mdi_icon = lambda do |ih|
290
+ Iup.GetDialog(ih).mdiarrange = "ICON"
291
+ Iup::DEFAULT
292
+ end
293
+
294
+ mdi_next = lambda do |ih|
295
+ Iup.GetDialog(ih).mdiactivate = "NEXT"
296
+ Iup::DEFAULT
297
+ end
298
+
299
+ mdi_previous = lambda do |ih|
300
+ Iup.GetDialog(ih).mdiactivate = "PREVIOUS"
301
+ return Iup::DEFAULT
302
+ end
303
+
304
+ mdi_closeall = lambda do |ih|
305
+ Iup.GetDialog(ih).mdicloseall = nil
306
+ Iup::DEFAULT
307
+ end
308
+
309
+ mdi_activate = lambda do |ih|
310
+ printf("%2d-mdi_activate(%s)\n", @line, Iup.GetName(ih))
311
+ @line+=1
312
+ Iup::DEFAULT
313
+ end
314
+
315
+ mdi_new = lambda do |ih|
316
+ dlg = createDialog()
317
+ dlg.mdichild = "YES"
318
+ dlg.parentdialog = "mdiFrame"
319
+ dlg.mdiclient = @mdiClient
320
+ #dlg.mdiactivate_cb = mdi_activate
321
+ #dlg.placement = "MAXIMIZED"
322
+ dlg.Show()
323
+
324
+ Iup::DEFAULT
325
+ end
326
+
327
+ mnu = Iup.Menu([
328
+ Iup.Submenu("MDI",Iup.Menu([
329
+ Iup.Item("New",mdi_new)])),
330
+ winmenu = Iup.Submenu("Window",
331
+ Iup.Menu([
332
+ Iup.Item("Tile Horizontal", mdi_tilehoriz),
333
+ Iup.Item("Tile Vertical", mdi_tilevert),
334
+ Iup.Item("Cascade", mdi_cascade),
335
+ Iup.Item("Icon Arrange", mdi_icon),
336
+ Iup.Item("Close All", mdi_closeall),
337
+ Iup.Separator(),
338
+ Iup.Item("Next", mdi_next),
339
+ Iup.Item("Previous", mdi_previous)
340
+ ]))
341
+ ])
342
+ @mdiMenu = winmenu
343
+ @mnu = mnu
344
+ end
345
+
346
+ def createFrame()
347
+ cnv = Iup.Canvas( "do_nothing")
348
+ cnv.mdiclient = "YES"
349
+ cnv.mdimenu = @mdiMenu
350
+ @mdiClient = cnv
351
+
352
+ dlg = Iup.Dialog(cnv)
353
+ dlg.title = "MDI Frame"
354
+ dlg.mdiframe = "YES"
355
+ dlg.rastersize = "800x600"
356
+ Iup.SetHandle("mdiFrame",dlg)
357
+
358
+ dlg
359
+ end
360
+
361
+ def initialize
362
+ @line = 0
363
+ createImages()
364
+ createMenu()
365
+ dlg = createFrame()
366
+ # dlg.placement = "MAXIMIZED"
367
+ dlg.menu = @mnu
368
+ dlg.ShowXY(Iup::CENTER,Iup::CENTER)
369
+ Iup.MainLoop()
370
+ @img1.Destroy
371
+ @img2.Destroy
372
+ dlg.Destroy
373
+ end
374
+
375
+ end
376
+
377
+ test = MdiTest.new