ruby-iup 0.1.0-x86-mswin32-60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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