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,242 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ speed = 0.00001
5
+
6
+ pixmap_play = [
7
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
8
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
9
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
10
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
11
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
12
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
13
+ 2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
14
+ 2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
15
+ 2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
16
+ 2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
17
+ 2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
18
+ 2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
19
+ 2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
20
+ 2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
21
+ 2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
22
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
23
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
24
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
25
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
26
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,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,
28
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
29
+
30
+ pixmap_start = [
31
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
32
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
33
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
34
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
35
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
36
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
37
+ 2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,
38
+ 2,2,2,2,1,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,
39
+ 2,2,2,2,1,1,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,
40
+ 2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
41
+ 2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
42
+ 2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
43
+ 2,2,2,2,1,1,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,
44
+ 2,2,2,2,1,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,
45
+ 2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,
46
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
47
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
48
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
49
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
50
+ 2,2,2,2,2,2,2,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,2,2,2,2,2,2,
52
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
53
+
54
+ pixmap_rewind = [
55
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
56
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
57
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
58
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
59
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
60
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
61
+ 2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,
62
+ 2,2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,
63
+ 2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,
64
+ 2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2,
65
+ 2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
66
+ 2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2,
67
+ 2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,
68
+ 2,2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,
69
+ 2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,
70
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
71
+ 2,2,2,2,2,2,2,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,2,2,2,2,2,2,
73
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
74
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
75
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
76
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
77
+
78
+ pixmap_forward = [
79
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
80
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
81
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
82
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
83
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
84
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
85
+ 2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,
86
+ 2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,2,
87
+ 2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,
88
+ 2,2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,
89
+ 2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
90
+ 2,2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,
91
+ 2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,
92
+ 2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,2,
93
+ 2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,
94
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
95
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
96
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
97
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
98
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
99
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
100
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
101
+
102
+ pixmap_show = [
103
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
104
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
105
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
106
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
107
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
108
+ 2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,
109
+ 2,2,2,2,2,2,2,1,1,2,2,2,2,1,1,2,2,2,2,2,2,2,
110
+ 2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,
111
+ 2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,2,1,2,2,2,2,2,
112
+ 2,2,2,2,1,2,2,2,1,1,2,2,1,2,2,2,2,1,2,2,2,2,
113
+ 2,2,2,1,2,2,2,2,1,1,1,2,1,2,2,2,2,2,1,2,2,2,
114
+ 2,2,2,2,1,2,2,2,1,1,1,1,1,2,2,2,2,1,2,2,2,2,
115
+ 2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,2,1,2,2,2,2,2,
116
+ 2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,
117
+ 2,2,2,2,2,2,2,1,1,2,2,2,2,1,1,2,2,2,2,2,2,2,
118
+ 2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,
119
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
120
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
121
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
122
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
123
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
124
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
125
+
126
+
127
+
128
+ gauge = Iup.Gauge(:expand=>"YES")
129
+ # gauge.max = 3.5
130
+ # gauge.min = 0.7
131
+
132
+ img_start = Iup.Image(22,22, pixmap_start)
133
+ img_play = Iup.Image(22,22, pixmap_play)
134
+ img_forward = Iup.Image(22,22, pixmap_forward)
135
+ img_rewind = Iup.Image(22,22, pixmap_rewind)
136
+ img_show = Iup.Image(22,22, pixmap_show)
137
+
138
+ img_start["1"]= "0 0 0"
139
+ img_start["2"]= "BGCOLOR"
140
+ img_play["1"]= "0 0 0"
141
+ img_play["2"]= "BGCOLOR"
142
+ img_forward["1"]= "0 0 0"
143
+ img_forward["2"]= "BGCOLOR"
144
+ img_rewind["1"]= "0 0 0"
145
+ img_rewind["2"]= "BGCOLOR"
146
+ img_show["1"]= "0 0 0"
147
+ img_show["2"]= "BGCOLOR"
148
+
149
+ btn_start = Iup.Button(:title=>"start",:image => img_start,:tip => "Start")
150
+ btn_pause = Iup.Button(:title=>"pause",:image => img_play,:tip => "Pause")
151
+ btn_accelerate = Iup.Button(:title=>"accelerate",:image => img_forward,:tip => "Accelerate")
152
+ btn_decelerate = Iup.Button(:title=>"decelerate",:image => img_rewind,:tip => "Decelerate" )
153
+ btn_show = Iup.Button(:title=>"show",:image => img_show,:tip => "Show" )
154
+
155
+
156
+ idle_cb = lambda do
157
+ value = gauge.value.to_f
158
+ value += speed
159
+ if(value > gauge.max.to_f)
160
+ value = gauge.min.to_f
161
+ end
162
+ gauge.value = "%.7f" % value
163
+
164
+ Iup::DEFAULT
165
+ end
166
+
167
+ btn_pause_cb = lambda do |h|
168
+ if(Iup.GetIdle==nil)
169
+ Iup.SetIdle(idle_cb)
170
+ else
171
+ Iup.SetIdle(nil)
172
+ end
173
+
174
+ Iup::DEFAULT
175
+ end
176
+
177
+ btn_start_cb = lambda do |h|
178
+ gauge.value = gauge.min
179
+ Iup::DEFAULT
180
+ end
181
+
182
+ btn_accelerate_cb = lambda do |h|
183
+ speed *= 2
184
+ if(speed > 1.0)
185
+ speed = 1.0
186
+ end
187
+ Iup::DEFAULT
188
+ end
189
+
190
+ btn_decelerate_cb = lambda do |h|
191
+ speed /= 2
192
+ Iup::DEFAULT
193
+ end
194
+
195
+ btn_show_cb = lambda do |h|
196
+ if(gauge.show_text=="NO")
197
+ gauge.show_text = "YES"
198
+ gauge.dashed = "NO"
199
+ else
200
+ gauge.show_text = "NO"
201
+ gauge.dashed = "YES"
202
+ end
203
+
204
+ Iup::DEFAULT
205
+ end
206
+
207
+
208
+ hbox = Iup.Hbox([
209
+ Iup.Fill(),
210
+ btn_pause,
211
+ btn_start,
212
+ btn_decelerate,
213
+ btn_accelerate,
214
+ btn_show,
215
+ Iup.Fill()
216
+ ])
217
+
218
+ vbox = Iup.Vbox([ gauge , hbox],:margin=>"10x10",:gap=>5)
219
+
220
+ dlg = Iup.Dialog(vbox,:title=>"IupGauge")
221
+ btn_pause.action = btn_pause_cb
222
+ btn_start.action = btn_start_cb
223
+ btn_accelerate.action = btn_accelerate_cb
224
+ btn_decelerate.action = btn_decelerate_cb
225
+ btn_show.action = btn_show_cb
226
+
227
+ Iup.SetIdle(idle_cb)
228
+
229
+ # Shows dialog in the center of the screen */
230
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER)
231
+
232
+ # Initializes IUP main loop */
233
+ Iup.MainLoop
234
+
235
+ dlg.Destroy
236
+
237
+ img_start.Destroy
238
+ img_play.Destroy
239
+ img_forward.Destroy
240
+ img_rewind.Destroy
241
+ img_show.Destroy
242
+
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ r,g,b=Iup.GetColor(100,100)
5
+ if r
6
+ puts "RGB = %.2X%.2X%.2X" % [r,g,b]
7
+ end
8
+
@@ -0,0 +1,62 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ def param_action(dialog,param_index,user_data)
5
+ case(param_index)
6
+ when -1
7
+ puts("OK")
8
+ when -2
9
+ puts("Map")
10
+ when -3
11
+ puts("Cancel")
12
+ else
13
+ param_str = "PARAM#{param_index}"
14
+ param = dialog.GetNode(param_str)
15
+ puts "#{param_str} = #{param.value}"
16
+ end
17
+ return 1
18
+ end
19
+
20
+ pboolean = 1
21
+ pinteger = 3456
22
+ preal = 3.543
23
+ pinteger2 = 192
24
+ preal2 = 0.5
25
+ pangle = 90.0
26
+ pstring = "string text"
27
+ plist = 2
28
+ pstring2 = "second text\nsecond line"
29
+ file_name = "test.jpg"
30
+
31
+
32
+ pboolean, pinteger, preal, pinteger2, preal2, pangle, pstring, plist, file_name, pstring2 =
33
+ Iup.GetParam("Title", 'param_action', 0,
34
+ "Boolean: %b[No,Yes]\n"+
35
+ "Integer: %i\n"+
36
+ "Real 1: %r\n"+
37
+ "Sep1 %t\n"+
38
+ "Integer: %i[0,255]\n"+
39
+ "Real 2: %r[-1.5,1.5]\n"+
40
+ "Sep2 %t\n"+
41
+ "Angle: %a[0,360]\n"+
42
+ "String: %s\n"+
43
+ "List: %l|item1|item2|item3|\n" +
44
+ "File: %f[OPEN|*.bmp;*.jpg|CURRENT|NO|NO]\n"+
45
+ "Sep3 %t\n"+
46
+ "Multiline: %m\n",
47
+ pboolean, pinteger, preal, pinteger2, preal2, pangle, pstring, plist, file_name, pstring2)
48
+
49
+ Iup.Messagef("IupGetParam",
50
+ "Boolean Value: %d\n"+
51
+ "Integer: %d\n"+
52
+ "Real 1: %g\n"+
53
+ "Integer: %d\n"+
54
+ "Real 2: %g\n"+
55
+ "Angle: %g\n"+
56
+ "String: %s\n"+
57
+ "List Index: %d\n"+
58
+ "FileName: %s\n"+
59
+ "Multiline: %s",
60
+ pboolean, pinteger, preal, pinteger2, preal2, pangle, pstring, plist, file_name, pstring2);
61
+
62
+
@@ -0,0 +1,172 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+ require 'opengl'
4
+
5
+ include Gl
6
+
7
+ redraw = lambda do |ih,x,y|
8
+ size = ih.rastersize
9
+ w,h = size.scan(/\d+/).map{|x|x.to_i}
10
+
11
+ Iup.GLMakeCurrent(ih)
12
+ glViewport(0, 0, w, h)
13
+
14
+ glMatrixMode(GL_PROJECTION)
15
+ glLoadIdentity()
16
+ glOrtho(0, 1, 1, 0, -1.0, 1.0)
17
+ glMatrixMode(GL_MODELVIEW)
18
+ glLoadIdentity()
19
+ glPushMatrix()
20
+ glTranslate(0.25,0.5, 0)
21
+ glScale(0.2, 0.2, 1)
22
+
23
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
24
+
25
+ glClearColor(0,0,0,1)
26
+ glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
27
+ glEnable(GL_BLEND)
28
+
29
+ # draw rectangle
30
+ glColor(1, 1, 0, 0.8)
31
+ glRect(-1,-1,1,1)
32
+
33
+ # Create List That Draws the Circle
34
+ planet = glGenLists(1)
35
+ orbit = glGenLists(2)
36
+
37
+ glNewList(planet, GL_COMPILE)
38
+ glBegin(GL_POLYGON)
39
+ for i in 0..100
40
+ cosine = Math.cos(i * 2 * Math::PI/100.0)
41
+ sine = Math.sin(i * 2 * Math::PI/100.0)
42
+ glVertex(cosine,sine)
43
+ end
44
+ glEnd()
45
+ glEndList()
46
+
47
+ glNewList(orbit, GL_COMPILE)
48
+ glBegin(GL_LINE_LOOP)
49
+ for i in 0..100
50
+ cosine = Math.cos(i * 2 * Math::PI/100.0)
51
+ sine = Math.sin(i * 2 * Math::PI/100.0)
52
+ glVertex(cosine, sine)
53
+ end
54
+ glEnd()
55
+ glEndList()
56
+
57
+ glColor( 0, 0.5, 0, 0.8)
58
+ glCallList(planet)
59
+
60
+ glColor( 0, 0, 0, 1 )
61
+ glCallList(orbit)
62
+
63
+ glEnableClientState(GL_VERTEX_ARRAY)
64
+
65
+ vertices = [[-3**(0.5)/2, 1.0/2], [3**(0.5)/2, 0.5], [0.0, -1.0], [-3**(0.5)/2, -1.0/2], [3**(0.5)/2, -1.0/2], [0.0, 1.0] ]
66
+
67
+ glVertexPointer(2,GL_FLOAT,0,vertices.flatten.pack("f*"))
68
+
69
+ # draw first triangle
70
+ glColor( 0, 0, 1, 0.5 )
71
+
72
+ glBegin(GL_TRIANGLES)
73
+ glArrayElement(0)
74
+ glArrayElement(1)
75
+ glArrayElement(2)
76
+ glEnd()
77
+
78
+ # draw second triangle
79
+ glColor( 1, 0, 0, 0.5 )
80
+ glVertexPointer(2,GL_FLOAT,0,vertices.flatten.pack("f*"))
81
+ glDrawArrays(GL_TRIANGLES, 3, 3)
82
+
83
+ # draw triangles outline
84
+ glColor(1,1,1,1)
85
+ elements = [ 0, 1, 2].pack("I*")
86
+ glDrawElements(GL_LINE_LOOP,3,GL_UNSIGNED_INT,elements)
87
+ elements = [ 3, 4, 5].pack("I*")
88
+ glDrawElements(GL_LINE_LOOP,3,GL_UNSIGNED_INT,elements)
89
+
90
+ glDisableClientState(GL_VERTEX_ARRAY)
91
+
92
+ glPopMatrix()
93
+ glTranslate(0.75,0.5, 0)
94
+ glScale(0.2, 0.2, 1)
95
+
96
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
97
+
98
+ # draw rectangle
99
+ glColor( 1, 1, 0, 0.8 )
100
+
101
+ glBegin(GL_QUADS)
102
+ glVertex(-1,-1)
103
+ glVertex( 1,-1)
104
+ glVertex( 1, 1)
105
+ glVertex(-1, 1)
106
+ glEnd()
107
+
108
+ glColor( 0, 0.5, 0, 0.8 )
109
+ glBegin(GL_POLYGON)
110
+ for i in 0..100
111
+ cosine = Math.cos(i * 2.0 * Math::PI/100.0)
112
+ sine = Math.sin(i * 2.0 * Math::PI/100.0)
113
+ glVertex(cosine,sine)
114
+ end
115
+ glEnd()
116
+
117
+ glColor( 0, 0, 0, 1 )
118
+ glBegin(GL_LINE_LOOP)
119
+ for i in 0..100
120
+ cosine = Math.cos(i * 2.0 * Math::PI/100.0)
121
+ sine = Math.sin(i * 2.0 * Math::PI/100.0)
122
+ glVertex(cosine, sine)
123
+ end
124
+ glEnd()
125
+
126
+ # draw first triangle
127
+ glColor( 0, 0, 1, 0.5 )
128
+ glBegin(GL_TRIANGLES)
129
+ glVertex(*vertices[0])
130
+ glVertex(*vertices[1])
131
+ glVertex(*vertices[2])
132
+ glEnd()
133
+ # draw second triangle
134
+ glColor( 1, 0, 0, 0.5 )
135
+ glBegin(GL_TRIANGLES)
136
+ glVertex(*vertices[3])
137
+ glVertex(*vertices[4])
138
+ glVertex(*vertices[5])
139
+ glEnd()
140
+ # draw triangles outline
141
+ glColor(1,1,1,1)
142
+ glBegin(GL_LINE_LOOP)
143
+ glVertex(*vertices[0])
144
+ glVertex(*vertices[1])
145
+ glVertex(*vertices[2])
146
+ glEnd()
147
+ glBegin(GL_LINE_LOOP)
148
+ glVertex(*vertices[3])
149
+ glVertex(*vertices[4])
150
+ glVertex(*vertices[5])
151
+ glEnd()
152
+
153
+ Iup.GLSwapBuffers(ih)
154
+
155
+ Iup::DEFAULT
156
+ end
157
+
158
+
159
+ canvas = Iup.GLCanvas()
160
+ canvas.action = redraw
161
+ canvas.buffer = "DOUBLE"
162
+ canvas.rastersize = "123x200"
163
+
164
+ finale = Iup.Hbox([Iup.Fill(),
165
+ canvas,
166
+ Iup.Fill()])
167
+
168
+ dg = Iup.Dialog(finale,:title=>"IupGLCanvas")
169
+
170
+ dg.Show()
171
+ Iup.MainLoop
172
+ dg.Destroy()