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,16 @@
1
+ # Shows a dialog similar to the one shown when you exit a program without saving.
2
+
3
+ require 'rubygems'
4
+ require 'iup'
5
+
6
+ case(Iup.Alarm("IupAlarm Example","File not saved! Save it now?", "Yes", "No", "Cancel"))
7
+ when 1
8
+ Iup.Message("Save file", "File saved sucessfully - leaving program")
9
+ when 2
10
+ Iup.Message("Save file", "File not saved - leaving program anyway")
11
+ when 3
12
+ Iup.Message("Save file", "Operation canceled")
13
+ end
14
+
15
+
16
+
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+
5
+ filedlg = Iup.FileDlg(:dialogtype=>"SAVE",:title=>"File Save",:filter=>"*.jpg",:filterinfo=>"JPEG Files")
6
+
7
+ filedlg.Popup(Iup::CENTER, Iup::CENTER)
8
+
9
+ case(filedlg.status)
10
+ when '1'
11
+ Iup.Message("New file",filedlg.value)
12
+ when '0'
13
+ Iup.Message("File already exists",filedlg.value)
14
+ when '-1'
15
+ Iup.Message("IupFileDlg","Operation Canceled")
16
+ end
17
+
18
+ filedlg.Destroy()
19
+
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ file = "./*.txt"
5
+ file,err = Iup.GetFile(file)
6
+ case(err)
7
+ when 1
8
+ Iup.Message("New file",file)
9
+ when 0
10
+ Iup.Message("File already exists",file)
11
+ when -1
12
+ Iup.Message("IupFileDlg","Operation canceled")
13
+ when -2
14
+ Iup.Message("IupFileDlg","Allocation error")
15
+ when -3
16
+ Iup.Message("IupFileDlg","Invalid parameter")
17
+ end
18
+
19
+
@@ -0,0 +1,26 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ marks = [0,0,0,0,1,1,0,0]
5
+ options = ["Blue","Red","Green" ,"Yellow","Black","White","Gray","Brown"]
6
+ size = options.size
7
+
8
+ marks,error = Iup.ListDialog(2,"Color Selection",size,options,0,16,5,marks)
9
+
10
+ if(error == -1)
11
+ Iup.Message("IupListDialog","Operation canceled");
12
+ else
13
+ selection = ""
14
+
15
+ marks.each_index {|i|
16
+ selection += options[i]+"\n" if(marks[i]==1)
17
+ }
18
+
19
+ if(selection!="")
20
+ Iup.Message("Options selected",selection)
21
+ else
22
+ Iup.Message("IupListDialog","No option selected")
23
+ end
24
+ end
25
+
26
+
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ # Executes IupMessage
5
+ Iup.Message("IupMessage Example", "Press the button")
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ text = "This is a vector of characters"
5
+ real = 0.0012
6
+ integer = 12
7
+ fmt = "Data entering example\n" +
8
+ "text = %300.40%s\n" +
9
+ "real = %20.10%g\n" +
10
+ "integer = %20.10%d\n"
11
+ text,real,integer = Iup.Scanf(fmt,text,real,integer)
12
+ if text.nil? then
13
+ Iup.Message("IupScanf","Operation canceled")
14
+ else
15
+ string = "Text: #{text}\nReal: #{real}\nInteger: #{integer}\n"
16
+ Iup.Message("IupScanf",string)
17
+ end
@@ -0,0 +1,180 @@
1
+ #
2
+ # IupButton example
3
+ # Description : Creates four buttons. The first uses images, the second
4
+ # turns the first on and off, the third exits the
5
+ # application and the last does nothing
6
+ #
7
+
8
+ require 'rubygems'
9
+ require 'iup'
10
+
11
+ #* Defines released button's image
12
+
13
+ pixmap_release = [
14
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
15
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
16
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
17
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
18
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
19
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
20
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
21
+ 1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
22
+ 1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
23
+ 1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
24
+ 1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
25
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
26
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
27
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
28
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
29
+ 1,2,2,2,2,2,2,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
31
+ ]
32
+
33
+ #* Defines pressed button's image
34
+ pixmap_press = [
35
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
36
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
37
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
38
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
39
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
40
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
41
+ 1,1,3,3,3,3,3,4,4,3,3,3,3,3,2,2,
42
+ 1,1,3,3,3,3,4,4,4,4,3,3,3,3,2,2,
43
+ 1,1,3,3,3,3,4,4,4,4,3,3,3,3,2,2,
44
+ 1,1,3,3,3,3,3,4,4,3,3,3,3,3,2,2,
45
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
46
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
47
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
48
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
49
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
50
+ 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
51
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
52
+ ]
53
+
54
+ #* Defines inactive button's image
55
+ pixmap_inactive = [
56
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
57
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
58
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
59
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
60
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
61
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
62
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
63
+ 1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
64
+ 1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
65
+ 1,1,3,3,3,3,3,4,4,4,4,3,3,3,2,2,
66
+ 1,1,3,3,3,3,3,3,4,4,3,3,3,3,2,2,
67
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
68
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
69
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
70
+ 1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,
71
+ 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
72
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
73
+ ]
74
+
75
+ # Creates a text
76
+ text = Iup.Text(:readonly=>"YES")
77
+
78
+ # Defines released button's image size
79
+ img_release = Iup.Image(16, 16, pixmap_release)
80
+
81
+ # Defines released button's image colors
82
+ img_release["1"] = "215 215 215"
83
+ img_release["2"] = "40 40 40"
84
+ img_release["3"] = "30 50 210"
85
+ img_release["4"] = "240 0 0"
86
+
87
+ # Defines pressed button's image size
88
+ img_press = Iup.Image( 16, 16, pixmap_press )
89
+
90
+ # Defines pressed button's image colors
91
+ img_press["1"] = "40 40 40"
92
+ img_press["2"] = "215 215 215"
93
+ img_press["3"] = "0 20 180"
94
+ img_press["4"] = "210 0 0"
95
+
96
+ # Defines inactive button's image size
97
+ img_inactive = Iup.Image( 16, 16, pixmap_inactive )
98
+
99
+ # Defines inactive button's image colors
100
+ img_inactive["1"] = "215 215 215"
101
+ img_inactive["2"] = "40 40 40"
102
+ img_inactive["3"] = "100 100 100"
103
+ img_inactive["4"] = "200 200 200"
104
+
105
+ # Creates a button
106
+ btn_image = Iup.Button(:title=>"Button with image",:image=>img_release,:impress=>img_press,:iminactive=>img_inactive)
107
+
108
+ # Creates a button
109
+ btn_big = Iup.Button(:title=>"Big useless button",:size=>"EIGHTHxEIGHTH")
110
+
111
+ # Creates a button entitled Exit associated with action exit_act
112
+ btn_exit = Iup.Button("Exit")
113
+
114
+ # Creates a button entitled on/off associated with action onoff_act
115
+ btn_on_off = Iup.Button("on/off")
116
+
117
+ # Creates dialog with the four buttons and the text
118
+ dlg = Iup.Dialog(
119
+ Iup.Vbox([
120
+ Iup.Hbox([
121
+ btn_image,
122
+ btn_on_off,
123
+ btn_exit]),
124
+ text,
125
+ btn_big]),
126
+ :expand=>"YES",:title=>"IupButton",:resize=>"NO",
127
+ :menubox=>"NO",:maxbox=>"NO",:minbox=>"NO")
128
+
129
+
130
+ btn_on_off_cb = lambda do |ih|
131
+ # If the button with with image is active...
132
+ if(btn_image.active=="YES")
133
+ # Deactivates the button with image
134
+ btn_image.active = "NO"
135
+ # else it is inactive
136
+ else
137
+ # Activates the button with image
138
+ btn_image.active = "YES"
139
+ end
140
+
141
+ # Executed function sucessfully
142
+ Iup::DEFAULT
143
+ end
144
+
145
+ btn_image_button_cb = lambda do |ih,b,e,x,y,status|
146
+ # If the left button changed its state...
147
+ if b == Iup::BUTTON1
148
+ # If the button was pressed...
149
+ if e == 1
150
+ # Sets text's value
151
+ text.value = "Red button pressed"
152
+ # else the button was released
153
+ else
154
+ # Sets text's value
155
+ text.value = "Red button released"
156
+ end
157
+ end
158
+
159
+ # Executed function sucessfully
160
+ Iup::DEFAULT
161
+ end
162
+
163
+ btn_exit_cb = lambda do |ih|
164
+ # Exits the program
165
+ Iup::CLOSE
166
+ end
167
+
168
+
169
+ # Registers callbacks
170
+ btn_exit.action = btn_exit_cb
171
+ btn_on_off.action = btn_on_off_cb
172
+ btn_image.button_cb = btn_image_button_cb
173
+
174
+ # Shows dialog on the center of the screen
175
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER )
176
+
177
+ # Initializes IUP main loop
178
+ Iup.MainLoop()
179
+
180
+ dlg.Destroy()
@@ -0,0 +1,29 @@
1
+ # IupCanvas example
2
+ # Description : Creates a IUP canvas and uses CD to draw on it
3
+ # Remark : IUP must be linked to the CD library
4
+
5
+ require 'rubygems'
6
+ require 'iup'
7
+
8
+
9
+ cdcanvas = nil
10
+
11
+ repaint_cb = lambda do |ih,x,y|
12
+ cdcanvas.CanvasActivate()
13
+ cdcanvas.CanvasBackground(Cd::BLACK)
14
+ cdcanvas.CanvasClear()
15
+ cdcanvas.CanvasForeground(Cd::BLUE)
16
+ cdcanvas.CanvasBox(0, 100, 0, 100)
17
+ Iup::DEFAULT
18
+ end
19
+
20
+ cnvs = Iup.Canvas(:action=>repaint_cb,:size=>"300x100")
21
+ dlg = Iup.Dialog(Iup.Frame(cnvs),:title=>"IupCanvas + Canvas Draw" )
22
+ dlg.Map
23
+
24
+ cdcanvas = Cd.CreateCanvas( Cd.CD_IUP, cnvs )
25
+
26
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER )
27
+
28
+ Iup.MainLoop()
29
+ dlg.Destroy()
@@ -0,0 +1,114 @@
1
+ # Advanced IupCanvas example
2
+ # Description : This example shows how several canvas callbacks are used and how the scrollbar works.
3
+ # Remark : IUP must be linked to the CD library
4
+
5
+ require 'rubygems'
6
+ require 'iup'
7
+
8
+
9
+ image = []
10
+ for x in 0...640
11
+ image[x] = []
12
+ for y in 0...400
13
+ image[x][y]=0
14
+ end
15
+ end
16
+
17
+ label = Iup.Label("IupCanvas")
18
+
19
+ iupcanvas = Iup.Canvas()
20
+ iupcanvas.attr = "CURSOR=CROSS, RASTERSIZE=320x200, EXPAND=NO, SCROLLBAR=YES, DX=0.5, DY=0.5"
21
+
22
+ repaint_cb = lambda do |ih,x,y|
23
+ sx = ih.posx.to_f
24
+ sy = -ih.posy.to_f
25
+
26
+ cdcanvas = Cd.ActiveCanvas()
27
+ return Iup::DEFAULT if cdcanvas == nil
28
+
29
+ cdcanvas.CanvasClear()
30
+
31
+ for x in 0...320
32
+ for y in 0...200
33
+ cdcanvas.CanvasMark(x,y) if(image[(320.0*sx).to_i+x][(200.0*sy).to_i+y]!=0)
34
+ end
35
+ end
36
+ Iup::DEFAULT
37
+ end
38
+
39
+ button_cb = lambda do |ih, botao, estado, x, y,status|
40
+ sx = ih.posx.to_f
41
+ sy = -ih.posy.to_f
42
+
43
+ cdcanvas = Cd.ActiveCanvas()
44
+ y = cdcanvas.CanvasUpdateYAxis(y)
45
+ if(botao == Iup::BUTTON1 && estado!=0)
46
+ cdcanvas.CanvasMark(x,y)
47
+ image[(320.0*sx).to_i+x][(200.0*sy).to_i+y] = 1
48
+ end
49
+
50
+ Iup::DEFAULT
51
+ end
52
+
53
+ motion_cb = lambda do |ih, x, y,status|
54
+ sx = ih.posx.to_f
55
+
56
+ sy = -ih.posy.to_f
57
+
58
+ buffer = "(#{(320.0*sx).to_i+x}, #{(200.0*sy).to_i+y})"
59
+
60
+ label.title = buffer
61
+
62
+ Iup::DEFAULT
63
+ end
64
+
65
+ scroll_cb = lambda do |ih,op,posx,posy|
66
+ repaint_cb.call(ih,0.0,0.0)
67
+
68
+ Iup::DEFAULT
69
+ end
70
+
71
+ enter_cb = lambda do |ih|
72
+ Cd.Background(Cd::WHITE)
73
+ repaint_cb.call(ih,0.0,0.0)
74
+
75
+ Iup::DEFAULT
76
+ end
77
+
78
+ leave_cb = lambda do |ih|
79
+ Cd.Background(Cd::GRAY)
80
+ repaint_cb.call(ih,0.0,0.0)
81
+ label = Iup.GetHandle("label")
82
+ label.title = "IupCanvas"
83
+
84
+ Iup::DEFAULT
85
+ end
86
+
87
+ iupcanvas.action = repaint_cb
88
+ iupcanvas.button_cb = button_cb
89
+ iupcanvas.scroll_cb = scroll_cb
90
+ iupcanvas.motion_cb = motion_cb
91
+ iupcanvas.enterwindow_cb = enter_cb
92
+ iupcanvas.leavewindow_cb = leave_cb
93
+
94
+ dlg = Iup.Dialog(Iup.Vbox([iupcanvas,Iup.Hbox([Iup.Fill(), label, Iup.Fill()])]))
95
+ dlg.attr = "TITLE=IupCanvas, RESIZE=NO, MAXBOX=NO"
96
+
97
+ dlg.ShowXY(Iup::CENTER,Iup::CENTER)
98
+
99
+ cdcanvas = Cd.CreateCanvas(Cd.CD_IUP, iupcanvas)
100
+ if(cdcanvas==nil)
101
+ Iup.Message("IupCanvas","Error creating canvas")
102
+ dlg.Destroy
103
+ exit
104
+ end
105
+
106
+ if(cdcanvas.Activate() == Cd::ERROR)
107
+ Iup.Message("IupCanvas","Error creating canvas")
108
+ dlg.Destroy
109
+ exit
110
+ end
111
+
112
+ cdcanvas.CanvasClear
113
+ Iup.MainLoop
114
+ dlg.Destroy
@@ -0,0 +1,52 @@
1
+ # IupCanvas Redraw example
2
+
3
+ require 'rubygems'
4
+ require 'iup'
5
+
6
+ need_redraw = 0
7
+ redraw_count = 0
8
+ cdcanvas = nil
9
+
10
+
11
+ gauge = Iup.ProgressBar()
12
+ cv = Iup.Canvas()
13
+ bt = Iup.Button("Start/Stop")
14
+ bt.size = "50x50"
15
+ gauge.size = "200x15"
16
+ cv.size = "200x200"
17
+ dlg = Iup.Dialog(Iup.Vbox([cv, Iup.Hbox([gauge, bt])]),:title=>"Redraw test")
18
+
19
+ toggle_redraw = lambda do |ih|
20
+ cdcanvas.CanvasActivate() if cdcanvas
21
+ need_redraw = 1 - need_redraw
22
+ Iup::DEFAULT
23
+ end
24
+
25
+ redraw = lambda do
26
+ if(need_redraw == 1)
27
+ cdcanvas.CanvasBox(0, 300, 0, redraw_count/100)
28
+ gauge.value = redraw_count/30000.0
29
+ redraw_count += 1
30
+ if(redraw_count==30000)
31
+ cdcanvas.CanvasClear()
32
+ redraw_count = 0
33
+ need_redraw = 0
34
+ end
35
+ end
36
+ Iup::DEFAULT
37
+ end
38
+
39
+
40
+ Iup.SetIdle(redraw)
41
+
42
+ dlg.Map()
43
+
44
+ cdcanvas = Cd.CreateCanvas(Cd.CD_IUP, cv)
45
+ cdcanvas.CanvasForeground(Cd::BLUE)
46
+ cdcanvas.CanvasClear()
47
+
48
+ bt.action = toggle_redraw
49
+
50
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER)
51
+ Iup.MainLoop()
52
+ dlg.Destroy()