ruby-iup 0.0.1-i386-mswin32

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 (138) hide show
  1. data/doc/README +10 -0
  2. data/doc/build_install.txt +77 -0
  3. data/examples/README +16 -0
  4. data/examples/ctrl/cbox.rb +221 -0
  5. data/examples/ctrl/checkboard.rb +33 -0
  6. data/examples/ctrl/degrade.rb +73 -0
  7. data/examples/ctrl/example1.rb +53 -0
  8. data/examples/ctrl/example2.rb +39 -0
  9. data/examples/ctrl/iupcolorbar.rb +95 -0
  10. data/examples/ctrl/iupcolorbrowser.rb +45 -0
  11. data/examples/ctrl/iupdial.rb +117 -0
  12. data/examples/ctrl/iupgauge.rb +242 -0
  13. data/examples/ctrl/iupgetcolor.rb +8 -0
  14. data/examples/ctrl/iupgetparam.rb +62 -0
  15. data/examples/ctrl/iupglcanvas.rb +172 -0
  16. data/examples/ctrl/iupmask.rb +15 -0
  17. data/examples/ctrl/iupmatrix.rb +39 -0
  18. data/examples/ctrl/iupplot2.rb +603 -0
  19. data/examples/ctrl/iuptabs.rb +22 -0
  20. data/examples/ctrl/iuptree.rb +190 -0
  21. data/examples/ctrl/iupval.rb +71 -0
  22. data/examples/ctrl/numbering.rb +46 -0
  23. data/examples/ctrl/sample.rb +166 -0
  24. data/examples/dlg/iupalarm.rb +14 -0
  25. data/examples/dlg/iupfiledlg.rb +19 -0
  26. data/examples/dlg/iupgetfile.rb +19 -0
  27. data/examples/dlg/iuplistdialog.rb +26 -0
  28. data/examples/dlg/iupmessage.rb +5 -0
  29. data/examples/dlg/iupscanf.rb +17 -0
  30. data/examples/elem/iupbutton.rb +197 -0
  31. data/examples/elem/iupcanvas.rb +27 -0
  32. data/examples/elem/iupcanvas2.rb +113 -0
  33. data/examples/elem/iupcanvas3.rb +62 -0
  34. data/examples/elem/iupdialog.rb +71 -0
  35. data/examples/elem/iupdialog2.rb +25 -0
  36. data/examples/elem/iupfill.rb +51 -0
  37. data/examples/elem/iupframe.rb +25 -0
  38. data/examples/elem/iuphbox.rb +68 -0
  39. data/examples/elem/iupimage.rb +113 -0
  40. data/examples/elem/iupitem.rb +60 -0
  41. data/examples/elem/iuplabel.rb +57 -0
  42. data/examples/elem/iuplist.rb +41 -0
  43. data/examples/elem/iuplist2.rb +125 -0
  44. data/examples/elem/iupmenu.rb +32 -0
  45. data/examples/elem/iupmultiline.rb +24 -0
  46. data/examples/elem/iupmultiline2.rb +156 -0
  47. data/examples/elem/iupradio.rb +32 -0
  48. data/examples/elem/iupseparator.rb +81 -0
  49. data/examples/elem/iupsubmenu.rb +85 -0
  50. data/examples/elem/iuptext.rb +61 -0
  51. data/examples/elem/iuptimer.rb +36 -0
  52. data/examples/elem/iuptoggle.rb +110 -0
  53. data/examples/elem/iupvbox.rb +87 -0
  54. data/examples/elem/iupzbox.rb +60 -0
  55. data/examples/elem/mdisample.rb +376 -0
  56. data/examples/elem/progressbar.rb +294 -0
  57. data/examples/elem/scrollbar.rb +66 -0
  58. data/examples/elem/tray.rb +90 -0
  59. data/examples/func/iupgetattribute.rb +32 -0
  60. data/examples/func/iupidle.rb +48 -0
  61. data/ext/extconf.rb +27 -0
  62. data/ext/iup-win32/cd.dll +0 -0
  63. data/ext/iup-win32/cd.lib +0 -0
  64. data/ext/iup-win32/cdcontextplus.dll +0 -0
  65. data/ext/iup-win32/cdcontextplus.lib +0 -0
  66. data/ext/iup-win32/cdlua51.lib +0 -0
  67. data/ext/iup-win32/cdluacontextplus51.lib +0 -0
  68. data/ext/iup-win32/cdluaim51.lib +0 -0
  69. data/ext/iup-win32/cdluapdf51.lib +0 -0
  70. data/ext/iup-win32/cdpdf.dll +0 -0
  71. data/ext/iup-win32/cdpdf.lib +0 -0
  72. data/ext/iup-win32/freetype6.dll +0 -0
  73. data/ext/iup-win32/freetype6.lib +0 -0
  74. data/ext/iup-win32/im.dll +0 -0
  75. data/ext/iup-win32/im_avi.dll +0 -0
  76. data/ext/iup-win32/im_capture.dll +0 -0
  77. data/ext/iup-win32/im_ecw.dll +0 -0
  78. data/ext/iup-win32/im_fftw.dll +0 -0
  79. data/ext/iup-win32/im_jp2.dll +0 -0
  80. data/ext/iup-win32/im_process.dll +0 -0
  81. data/ext/iup-win32/im_wmv.dll +0 -0
  82. data/ext/iup-win32/iup.dll +0 -0
  83. data/ext/iup-win32/iup.lib +0 -0
  84. data/ext/iup-win32/iup_pplot.dll +0 -0
  85. data/ext/iup-win32/iup_pplot.lib +0 -0
  86. data/ext/iup-win32/iupcd.dll +0 -0
  87. data/ext/iup-win32/iupcd.lib +0 -0
  88. data/ext/iup-win32/iupcontrols.dll +0 -0
  89. data/ext/iup-win32/iupcontrols.lib +0 -0
  90. data/ext/iup-win32/iupgl.dll +0 -0
  91. data/ext/iup-win32/iupgl.lib +0 -0
  92. data/ext/iup-win32/iupim.dll +0 -0
  93. data/ext/iup-win32/iupim.lib +0 -0
  94. data/ext/iup-win32/iupimglib.dll +0 -0
  95. data/ext/iup-win32/iupimglib.lib +0 -0
  96. data/ext/iup-win32/iuplua51.lib +0 -0
  97. data/ext/iup-win32/iuplua_pplot51.lib +0 -0
  98. data/ext/iup-win32/iupluacd51.lib +0 -0
  99. data/ext/iup-win32/iupluacontrols51.lib +0 -0
  100. data/ext/iup-win32/iupluagl51.lib +0 -0
  101. data/ext/iup-win32/iupluaim51.lib +0 -0
  102. data/ext/iup-win32/iupluaimglib51.lib +0 -0
  103. data/ext/iup-win32/iupluaole51.lib +0 -0
  104. data/ext/iup-win32/iupole.dll +0 -0
  105. data/ext/iup-win32/iupole.lib +0 -0
  106. data/ext/iup-win32/iupstub.lib +0 -0
  107. data/ext/iup-win32/pdflib.dll +0 -0
  108. data/ext/iup-win32/pdflib.lib +0 -0
  109. data/ext/iup.c +1261 -0
  110. data/ext/mkrf_conf.rb +72 -0
  111. data/ext/rb_cd.h +1525 -0
  112. data/ext/rb_iup.h +2446 -0
  113. data/ext/rb_iup_pplot.h +129 -0
  114. data/ext/rb_iupcb.h +13 -0
  115. data/ext/rb_iupcbox.h +40 -0
  116. data/ext/rb_iupcells.h +15 -0
  117. data/ext/rb_iupcolorbar.h +17 -0
  118. data/ext/rb_iupcompat.h +237 -0
  119. data/ext/rb_iupcontrols.h +28 -0
  120. data/ext/rb_iupdef.h +3 -0
  121. data/ext/rb_iupdial.h +24 -0
  122. data/ext/rb_iupgauge.h +15 -0
  123. data/ext/rb_iupgc.h +18 -0
  124. data/ext/rb_iupgetparam.h +72 -0
  125. data/ext/rb_iupgl.h +58 -0
  126. data/ext/rb_iupim.h +25 -0
  127. data/ext/rb_iupmask.h +189 -0
  128. data/ext/rb_iupmatrix.h +80 -0
  129. data/ext/rb_iupole.h +24 -0
  130. data/ext/rb_iupsbox.h +23 -0
  131. data/ext/rb_iupspeech.h +25 -0
  132. data/ext/rb_iupspin.h +29 -0
  133. data/ext/rb_iuptabs.h +29 -0
  134. data/ext/rb_iuptree.h +94 -0
  135. data/ext/rb_iupval.h +24 -0
  136. data/lib/README +1 -0
  137. data/lib/iup.so +0 -0
  138. metadata +187 -0
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+ case(Iup.Alarm("IupAlarm Example","File not saved! Save it now?", "Yes", "No", "Cancel"))
5
+ when 1
6
+ Iup.Message("Save file", "File saved sucessfully - leaving program")
7
+ when 2
8
+ Iup.Message("Save file", "File not saved - leaving program anyway")
9
+ when 3
10
+ Iup.Message("Save file", "Operation canceled")
11
+ end
12
+
13
+ Iup.MainLoop()
14
+
@@ -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,197 @@
1
+ require 'rubygems'
2
+ #*****************************************************************************
3
+ #* Iup.Button example *
4
+ #* Author : Claudio Coutinho de Biasi *
5
+ #* Description : Creates four buttons. The first uses images, the second *
6
+ #* turns the first on and off, the third exits the *
7
+ #* application and the last does nothing *
8
+ #*****************************************************************************/
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
+ # Associates img_release with handle "img_release" */
88
+ Iup.SetHandle( "img_release", img_release )
89
+
90
+ # Defines pressed button's image size */
91
+ img_press = Iup.Image( 16, 16, pixmap_press )
92
+
93
+ # Defines pressed button's image colors */
94
+ img_press["1"] = "40 40 40"
95
+ img_press["2"] = "215 215 215"
96
+ img_press["3"] = "0 20 180"
97
+ img_press["4"] = "210 0 0"
98
+
99
+ # Associates img_press with handle "img_press" */
100
+ Iup.SetHandle( "img_press", img_press )
101
+
102
+ # Defines inactive button's image size */
103
+ img_inactive = Iup.Image( 16, 16, pixmap_inactive )
104
+
105
+ # Defines inactive button's image colors */
106
+ img_inactive["1"] = "215 215 215"
107
+ img_inactive["2"] = "40 40 40"
108
+ img_inactive["3"] = "100 100 100"
109
+ img_inactive["4"] = "200 200 200"
110
+
111
+ # Associates img_inactive with handle "img_inactive" */
112
+ Iup.SetHandle("img_inactive", img_inactive )
113
+
114
+ # Creates a button */
115
+ btn_image = Iup.Button(:title=>"Button with image",:image=>"img_release",:impress=>"img_press",:iminactive=>"img_inactive")
116
+
117
+ # Creates a button */
118
+ btn_big = Iup.Button(:title=>"Big useless button",:size=>"EIGHTHxEIGHTH")
119
+
120
+ # Creates a button entitled Exit associated with action exit_act */
121
+ btn_exit = Iup.Button("Exit")
122
+
123
+ # Creates a button entitled on/off associated with action onoff_act */
124
+ btn_on_off = Iup.Button("on/off")
125
+
126
+ # Creates dialog with the four buttons and the text*/
127
+ dlg = Iup.Dialog(
128
+ Iup.Vbox([
129
+ Iup.Hbox([
130
+ Iup.Fill(),
131
+ btn_image,
132
+ btn_on_off,
133
+ btn_exit,
134
+ Iup.Fill()]
135
+ ),
136
+ text,
137
+ btn_big]
138
+ ),
139
+ :expand=>"YES",:title=>"IupButton",:resize=>"NO",
140
+ :menubox=>"NO",:maxbox=>"NO",:minbox=>"NO")
141
+
142
+
143
+ btn_on_off_cb = lambda do |ih|
144
+ # If the button with with image is active...*/
145
+ if(btn_image.active=="YES")
146
+ # Deactivates the button with image */
147
+ btn_image.active = "NO"
148
+ # else it is inactive */
149
+ else
150
+ # Activates the button with image */
151
+ btn_image.active = "YES"
152
+ end
153
+
154
+ # Executed function sucessfully */
155
+ Iup::DEFAULT
156
+ end
157
+
158
+ btn_image_button_cb = lambda do |ih,b,e,x,y,status|
159
+ # If the left button changed its state... */
160
+ if( b == Iup::BUTTON1 )
161
+ # If the button was pressed... */
162
+ if(e == 1)
163
+ # Sets text's value */
164
+ text.value = "Red button pressed"
165
+ # else the button was released */
166
+ else
167
+ # Sets text's value */
168
+ text.value = "Red button released"
169
+ end
170
+ end
171
+
172
+ # Executed function sucessfully */
173
+ Iup::DEFAULT
174
+ end
175
+
176
+ btn_exit_cb = lambda do |ih|
177
+ # Exits the program */
178
+ Iup::CLOSE
179
+ end
180
+
181
+
182
+ # Registers callbacks */
183
+ btn_exit.action = btn_exit_cb
184
+ btn_on_off.action = btn_on_off_cb
185
+ btn_image.button_cb = btn_image_button_cb
186
+
187
+ # Shows dialog on the center of the screen */
188
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER )
189
+
190
+ # Initializes IUP main loop */
191
+ Iup.MainLoop()
192
+
193
+ dlg.Destroy()
194
+ img_release.Destroy()
195
+ img_inactive.Destroy()
196
+ img_press.Destroy()
197
+
@@ -0,0 +1,27 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+
5
+ cdcanvas = nil
6
+
7
+ repaint_cb = lambda do |ih,x,y|
8
+ cdcanvas.CanvasActivate()
9
+ cdcanvas.CanvasBackground(Cd::BLACK)
10
+ cdcanvas.CanvasClear()
11
+ cdcanvas.CanvasForeground(Cd::BLUE)
12
+ cdcanvas.CanvasBox(0, 100, 0, 100)
13
+ Iup::DEFAULT
14
+ end
15
+
16
+ cnvs = Iup.Canvas(:action=>repaint_cb,:size=>"300x100")
17
+ dlg = Iup.Dialog(Iup.Frame(cnvs),:title=>"IupCanvas + Canvas Draw" )
18
+ dlg.Map
19
+
20
+ cdcanvas = Cd.CreateCanvas( Cd.CD_IUP, cnvs )
21
+
22
+ # Shows dialog on the center of the screen */
23
+ dlg.ShowXY(Iup::CENTER, Iup::CENTER )
24
+
25
+ # Initializes IUP main loop */
26
+ Iup.MainLoop()
27
+ dlg.Destroy()
@@ -0,0 +1,113 @@
1
+ require 'rubygems'
2
+ require 'iup'
3
+
4
+
5
+ image = []
6
+ for x in 0...640
7
+ image[x] = []
8
+ for y in 0...400
9
+ image[x][y]=0
10
+ end
11
+ end
12
+
13
+ label = Iup.Label("IupCanvas")
14
+
15
+ iupcanvas = Iup.Canvas()
16
+ iupcanvas.attr = "CURSOR=CROSS, RASTERSIZE=320x200, EXPAND=NO, SCROLLBAR=YES, DX=0.5, DY=0.5"
17
+
18
+ repaint_cb = lambda do |ih,x,y|
19
+ sx = ih.posx.to_f
20
+ sy = -ih.posy.to_f
21
+
22
+ cdcanvas = Cd.ActiveCanvas()
23
+ return Iup::DEFAULT if cdcanvas == nil
24
+
25
+ cdcanvas.CanvasClear()
26
+
27
+ for x in 0...320
28
+ for y in 0...200
29
+ cdcanvas.CanvasMark(x,y) if(image[(320.0*sx).to_i+x][(200.0*sy).to_i+y]!=0)
30
+ end
31
+ end
32
+ Iup::DEFAULT
33
+ end
34
+
35
+ button_cb = lambda do |ih, botao, estado, x, y,status|
36
+ sx = ih.posx.to_f
37
+ sy = -ih.posy.to_f
38
+
39
+ cdcanvas = Cd.ActiveCanvas()
40
+ y = cdcanvas.CanvasUpdateYAxis(y)
41
+ if(botao == Iup::BUTTON1 && estado!=0)
42
+ cdcanvas.CanvasMark(x,y)
43
+ image[(320.0*sx).to_i+x][(200.0*sy).to_i+y] = 1
44
+ end
45
+
46
+ Iup::DEFAULT
47
+ end
48
+
49
+ motion_cb = lambda do |ih, x, y,status|
50
+ sx = ih.posx.to_f
51
+
52
+ sy = -ih.posy.to_f
53
+
54
+ buffer = "(#{(320.0*sx).to_i+x}, #{(200.0*sy).to_i+y})"
55
+
56
+ label.title = buffer
57
+
58
+ Iup::DEFAULT
59
+ end
60
+
61
+ scroll_cb = lambda do |ih,op,posx,posy|
62
+ repaint_cb.call(ih,0.0,0.0)
63
+
64
+ Iup::DEFAULT
65
+ end
66
+
67
+ enter_cb = lambda do |ih|
68
+ Cd.Background(Cd::WHITE)
69
+ repaint_cb.call(ih,0.0,0.0)
70
+
71
+ Iup::DEFAULT
72
+ end
73
+
74
+ leave_cb = lambda do |ih|
75
+ Cd.Background(Cd::GRAY)
76
+ repaint_cb.call(ih,0.0,0.0)
77
+ label = Iup.GetHandle("label")
78
+ label.title = "IupCanvas"
79
+
80
+ Iup::DEFAULT
81
+ end
82
+
83
+ iupcanvas.action = repaint_cb
84
+ iupcanvas.button_cb = button_cb
85
+ iupcanvas.scroll_cb = scroll_cb
86
+ iupcanvas.motion_cb = motion_cb
87
+ iupcanvas.enterwindow_cb = enter_cb
88
+ iupcanvas.leavewindow_cb = leave_cb
89
+
90
+ dlg = Iup.Dialog(Iup.Vbox([iupcanvas,Iup.Hbox([Iup.Fill(), label, Iup.Fill()])]))
91
+ dlg.attr = "TITLE=IupCanvas, RESIZE=NO, MAXBOX=NO"
92
+
93
+ dlg.ShowXY(Iup::CENTER,Iup::CENTER)
94
+
95
+ cdcanvas = Cd.CreateCanvas(Cd.CD_IUP, iupcanvas)
96
+
97
+ if(cdcanvas==nil)
98
+ Iup.Message("IupCanvas","Error creating canvas")
99
+ dlg.Destroy()
100
+ exit
101
+ end
102
+
103
+ if(cdcanvas.Activate() == Cd::ERROR)
104
+ Iup.Message("IupCanvas","Error creating canvas")
105
+ dlg.Destroy()
106
+ exit
107
+ end
108
+
109
+ cdcanvas.CanvasClear()
110
+
111
+ # Initializes IUP main loop */
112
+ Iup.MainLoop()
113
+ dlg.Destroy()