ruby-iup 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (478) 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 +68 -80
  6. data/doc/build_install.txt +9 -12
  7. data/examples/ctrl/cbox.rb +14 -15
  8. data/examples/ctrl/checkboard.rb +1 -1
  9. data/examples/ctrl/example1.rb +53 -53
  10. data/examples/ctrl/example2.rb +39 -39
  11. data/examples/ctrl/iupcolorbar.rb +95 -95
  12. data/examples/ctrl/iupcolorbrowser.rb +45 -45
  13. data/examples/ctrl/iupdial.rb +117 -117
  14. data/examples/ctrl/iupgetcolor.rb +7 -7
  15. data/examples/ctrl/iupgetparam.rb +62 -62
  16. data/examples/ctrl/iupglcanvas.rb +172 -172
  17. data/examples/ctrl/iupmask.rb +1 -3
  18. data/examples/ctrl/iupmatrix.rb +39 -39
  19. data/examples/ctrl/iupplot2.rb +2 -1
  20. data/examples/ctrl/iuptabs.rb +22 -22
  21. data/examples/ctrl/iuptree.rb +190 -190
  22. data/examples/ctrl/iupval.rb +71 -71
  23. data/examples/ctrl/numbering.rb +46 -46
  24. data/examples/ctrl/sample.rb +166 -166
  25. data/examples/dlg/iupfiledlg.rb +19 -19
  26. data/examples/dlg/iupgetfile.rb +19 -19
  27. data/examples/dlg/iuplistdialog.rb +26 -26
  28. data/examples/dlg/iupmessage.rb +5 -5
  29. data/examples/dlg/iupscanf.rb +17 -17
  30. data/examples/elem/iupdialog2.rb +25 -25
  31. data/examples/elem/iupfill.rb +51 -51
  32. data/examples/elem/iupframe.rb +25 -25
  33. data/examples/elem/iuphbox.rb +68 -68
  34. data/examples/elem/iupimage.rb +113 -113
  35. data/examples/elem/iupitem.rb +60 -60
  36. data/examples/elem/iuplabel.rb +57 -57
  37. data/examples/elem/iuplist.rb +41 -41
  38. data/examples/elem/iuplist2.rb +125 -125
  39. data/examples/elem/iupmenu.rb +32 -32
  40. data/examples/elem/iupmultiline.rb +24 -24
  41. data/examples/elem/iupmultiline2.rb +156 -156
  42. data/examples/elem/iupradio.rb +32 -32
  43. data/examples/elem/iupseparator.rb +81 -81
  44. data/examples/elem/iupsubmenu.rb +85 -85
  45. data/examples/elem/iuptext.rb +61 -61
  46. data/examples/elem/iuptimer.rb +36 -36
  47. data/examples/elem/iuptoggle.rb +110 -110
  48. data/examples/elem/iupvbox.rb +87 -87
  49. data/examples/elem/iupzbox.rb +60 -60
  50. data/examples/elem/mdisample.rb +377 -376
  51. data/examples/elem/scrollbar.rb +66 -66
  52. data/examples/elem/tray.rb +90 -90
  53. data/examples/func/iupgetattribute.rb +32 -32
  54. data/examples/func/iupidle.rb +48 -48
  55. data/ext/extconf.rb +62 -27
  56. data/ext/iup-linux/include/cd.h +9 -5
  57. data/ext/iup-linux/include/cd_private.h +13 -6
  58. data/ext/iup-linux/include/cdsvg.h +22 -0
  59. data/ext/iup-linux/include/im.h +287 -282
  60. data/ext/iup-linux/include/im_attrib.h +120 -116
  61. data/ext/iup-linux/include/im_attrib_flat.h +39 -39
  62. data/ext/iup-linux/include/im_binfile.h +224 -214
  63. data/ext/iup-linux/include/im_capture.h +365 -365
  64. data/ext/iup-linux/include/im_color.h +465 -465
  65. data/ext/iup-linux/include/im_colorhsi.h +56 -61
  66. data/ext/iup-linux/include/im_complex.h +180 -160
  67. data/ext/iup-linux/include/im_convert.h +142 -127
  68. data/ext/iup-linux/include/im_counter.h +69 -69
  69. data/ext/iup-linux/include/im_dib.h +195 -195
  70. data/ext/iup-linux/include/im_file.h +115 -111
  71. data/ext/iup-linux/include/im_format.h +97 -79
  72. data/ext/iup-linux/include/im_format_all.h +575 -576
  73. data/ext/iup-linux/include/im_format_avi.h +88 -87
  74. data/ext/iup-linux/include/im_format_ecw.h +93 -93
  75. data/ext/iup-linux/include/im_format_jp2.h +79 -78
  76. data/ext/iup-linux/include/im_format_raw.h +74 -64
  77. data/ext/iup-linux/include/im_format_wmv.h +101 -100
  78. data/ext/iup-linux/include/im_image.h +425 -403
  79. data/ext/iup-linux/include/im_kernel.h +315 -315
  80. data/ext/iup-linux/include/im_lib.h +191 -191
  81. data/ext/iup-linux/include/im_math.h +368 -368
  82. data/ext/iup-linux/include/im_math_op.h +214 -219
  83. data/ext/iup-linux/include/im_palette.h +172 -172
  84. data/ext/iup-linux/include/im_plus.h +73 -73
  85. data/ext/iup-linux/include/im_process.h +36 -35
  86. data/ext/iup-linux/include/im_process_ana.h +222 -221
  87. data/ext/iup-linux/include/im_process_glo.h +170 -170
  88. data/ext/iup-linux/include/im_process_loc.h +608 -577
  89. data/ext/iup-linux/include/im_process_pon.h +734 -712
  90. data/ext/iup-linux/include/im_raw.h +34 -34
  91. data/ext/iup-linux/include/im_util.h +277 -277
  92. data/ext/iup-linux/include/imlua.h +75 -83
  93. data/ext/iup-linux/include/iup.h +86 -40
  94. data/ext/iup-linux/include/iupcb.h +1 -25
  95. data/ext/iup-linux/include/iupcbox.h +1 -0
  96. data/ext/iup-linux/include/iupcbs.h +1 -1
  97. data/ext/iup-linux/include/iupcells.h +1 -130
  98. data/ext/iup-linux/include/iupcolorbar.h +1 -126
  99. data/ext/iup-linux/include/iupcontrols.h +26 -16
  100. data/ext/iup-linux/include/iupdef.h +205 -0
  101. data/ext/iup-linux/include/iupdial.h +1 -63
  102. data/ext/iup-linux/include/iupgauge.h +1 -57
  103. data/ext/iup-linux/include/iupgc.h +1 -0
  104. data/ext/iup-linux/include/iupgetparam.h +1 -27
  105. data/ext/iup-linux/include/iupgl.h +2 -7
  106. data/ext/iup-linux/include/iupim.h +7 -1
  107. data/ext/iup-linux/include/iupkey.h +4 -4
  108. data/ext/iup-linux/include/iupmask.h +2 -1
  109. data/ext/iup-linux/include/iupmatrix.h +1 -63
  110. data/ext/iup-linux/include/iupsbox.h +1 -0
  111. data/ext/iup-linux/include/iupspin.h +1 -21
  112. data/ext/iup-linux/include/iuptabs.h +1 -75
  113. data/ext/iup-linux/include/iuptree.h +1 -93
  114. data/ext/iup-linux/include/iupval.h +1 -46
  115. data/ext/iup-linux/include/old_im.h +59 -59
  116. data/ext/iup-linux/include/wd.h +5 -0
  117. data/ext/iup-linux/libcd.a +0 -0
  118. data/ext/iup-linux/libcdcontextplus.a +0 -0
  119. data/ext/iup-linux/libcdgdk.a +0 -0
  120. data/ext/iup-linux/libcdpdf.a +0 -0
  121. data/ext/iup-linux/libfreetype.a +0 -0
  122. data/ext/iup-linux/libim.a +0 -0
  123. data/ext/iup-linux/libim_fftw.a +0 -0
  124. data/ext/iup-linux/libim_jp2.a +0 -0
  125. data/ext/iup-linux/libim_process.a +0 -0
  126. data/ext/iup-linux/libiup.a +0 -0
  127. data/ext/iup-linux/libiup_pplot.a +0 -0
  128. data/ext/iup-linux/libiupcd.a +0 -0
  129. data/ext/iup-linux/libiupcontrols.a +0 -0
  130. data/ext/iup-linux/libiupgl.a +0 -0
  131. data/ext/iup-linux/libiupim.a +0 -0
  132. data/ext/iup-linux/libiupimglib.a +0 -0
  133. data/ext/iup-linux/libiupmot.a +0 -0
  134. data/ext/iup-linux/libpdflib.a +0 -0
  135. data/ext/{iup-win32 → iup-mingw32}/include/cd.h +9 -5
  136. data/ext/{iup-win32 → iup-mingw32}/include/cd_canvas.hpp +0 -0
  137. data/ext/{iup-win32 → iup-mingw32}/include/cd_old.h +0 -0
  138. data/ext/{iup-win32 → iup-mingw32}/include/cd_private.h +13 -6
  139. data/ext/{iup-win32 → iup-mingw32}/include/cdcgm.h +0 -0
  140. data/ext/{iup-win32 → iup-mingw32}/include/cdclipbd.h +0 -0
  141. data/ext/{iup-win32 → iup-mingw32}/include/cddbuf.h +0 -0
  142. data/ext/{iup-win32 → iup-mingw32}/include/cddebug.h +0 -0
  143. data/ext/{iup-win32 → iup-mingw32}/include/cddgn.h +0 -0
  144. data/ext/{iup-win32 → iup-mingw32}/include/cddxf.h +0 -0
  145. data/ext/{iup-win32 → iup-mingw32}/include/cdemf.h +0 -0
  146. data/ext/{iup-win32 → iup-mingw32}/include/cdgdiplus.h +0 -0
  147. data/ext/{iup-win32 → iup-mingw32}/include/cdimage.h +0 -0
  148. data/ext/{iup-win32 → iup-mingw32}/include/cdirgb.h +0 -0
  149. data/ext/{iup-win32 → iup-mingw32}/include/cdiup.h +0 -0
  150. data/ext/{iup-win32 → iup-mingw32}/include/cdlua.h +0 -0
  151. data/ext/{iup-win32 → iup-mingw32}/include/cdlua3_private.h +0 -0
  152. data/ext/{iup-win32 → iup-mingw32}/include/cdlua5_private.h +0 -0
  153. data/ext/{iup-win32 → iup-mingw32}/include/cdluaim.h +0 -0
  154. data/ext/{iup-win32 → iup-mingw32}/include/cdluaiup.h +0 -0
  155. data/ext/{iup-win32 → iup-mingw32}/include/cdluapdf.h +0 -0
  156. data/ext/{iup-win32 → iup-mingw32}/include/cdmf.h +0 -0
  157. data/ext/{iup-win32 → iup-mingw32}/include/cdmf_private.h +0 -0
  158. data/ext/{iup-win32 → iup-mingw32}/include/cdnative.h +0 -0
  159. data/ext/{iup-win32 → iup-mingw32}/include/cdpdf.h +0 -0
  160. data/ext/{iup-win32 → iup-mingw32}/include/cdpicture.h +0 -0
  161. data/ext/{iup-win32 → iup-mingw32}/include/cdprint.h +0 -0
  162. data/ext/{iup-win32 → iup-mingw32}/include/cdps.h +0 -0
  163. data/ext/iup-mingw32/include/cdsvg.h +22 -0
  164. data/ext/{iup-win32 → iup-mingw32}/include/cdwmf.h +0 -0
  165. data/ext/iup-mingw32/include/im.h +287 -0
  166. data/ext/iup-mingw32/include/im_attrib.h +120 -0
  167. data/ext/iup-mingw32/include/im_attrib_flat.h +39 -0
  168. data/ext/iup-mingw32/include/im_binfile.h +224 -0
  169. data/ext/iup-mingw32/include/im_capture.h +365 -0
  170. data/ext/iup-mingw32/include/im_color.h +465 -0
  171. data/ext/iup-mingw32/include/im_colorhsi.h +56 -0
  172. data/ext/iup-mingw32/include/im_complex.h +180 -0
  173. data/ext/iup-mingw32/include/im_convert.h +142 -0
  174. data/ext/iup-mingw32/include/im_counter.h +69 -0
  175. data/ext/iup-mingw32/include/im_dib.h +195 -0
  176. data/ext/iup-mingw32/include/im_file.h +115 -0
  177. data/ext/iup-mingw32/include/im_format.h +97 -0
  178. data/ext/iup-mingw32/include/im_format_all.h +575 -0
  179. data/ext/iup-mingw32/include/im_format_avi.h +88 -0
  180. data/ext/iup-mingw32/include/im_format_ecw.h +93 -0
  181. data/ext/iup-mingw32/include/im_format_jp2.h +79 -0
  182. data/ext/iup-mingw32/include/im_format_raw.h +74 -0
  183. data/ext/iup-mingw32/include/im_format_wmv.h +101 -0
  184. data/ext/iup-mingw32/include/im_image.h +425 -0
  185. data/ext/iup-mingw32/include/im_kernel.h +315 -0
  186. data/ext/iup-mingw32/include/im_lib.h +191 -0
  187. data/ext/iup-mingw32/include/im_math.h +368 -0
  188. data/ext/iup-mingw32/include/im_math_op.h +214 -0
  189. data/ext/iup-mingw32/include/im_palette.h +172 -0
  190. data/ext/iup-mingw32/include/im_plus.h +73 -0
  191. data/ext/iup-mingw32/include/im_process.h +36 -0
  192. data/ext/iup-mingw32/include/im_process_ana.h +222 -0
  193. data/ext/iup-mingw32/include/im_process_glo.h +170 -0
  194. data/ext/iup-mingw32/include/im_process_loc.h +608 -0
  195. data/ext/iup-mingw32/include/im_process_pon.h +734 -0
  196. data/ext/iup-mingw32/include/im_raw.h +34 -0
  197. data/ext/iup-mingw32/include/im_util.h +277 -0
  198. data/ext/iup-mingw32/include/imlua.h +75 -0
  199. data/ext/{iup-win32 → iup-mingw32}/include/iup.h +86 -40
  200. data/ext/{iup-win32 → iup-mingw32}/include/iup_pplot.h +0 -0
  201. data/ext/iup-mingw32/include/iupcb.h +1 -0
  202. data/ext/iup-mingw32/include/iupcbox.h +1 -0
  203. data/ext/{iup-win32 → iup-mingw32}/include/iupcbs.h +1 -1
  204. data/ext/iup-mingw32/include/iupcells.h +1 -0
  205. data/ext/iup-mingw32/include/iupcolorbar.h +1 -0
  206. data/ext/iup-mingw32/include/iupcontrols.h +46 -0
  207. data/ext/{iup-win32 → iup-mingw32}/include/iupdef.h +205 -0
  208. data/ext/iup-mingw32/include/iupdial.h +1 -0
  209. data/ext/iup-mingw32/include/iupgauge.h +1 -0
  210. data/ext/iup-mingw32/include/iupgc.h +1 -0
  211. data/ext/iup-mingw32/include/iupgetparam.h +1 -0
  212. data/ext/{iup-win32 → iup-mingw32}/include/iupgl.h +2 -7
  213. data/ext/{iup-win32 → iup-mingw32}/include/iupim.h +7 -1
  214. data/ext/{iup-win32 → iup-mingw32}/include/iupkey.h +4 -4
  215. data/ext/{iup-win32 → iup-mingw32}/include/iuplua.h +0 -0
  216. data/ext/{iup-win32 → iup-mingw32}/include/iuplua_pplot.h +0 -0
  217. data/ext/{iup-win32 → iup-mingw32}/include/iupluacontrols.h +0 -0
  218. data/ext/{iup-win32 → iup-mingw32}/include/iupluagl.h +0 -0
  219. data/ext/{iup-win32 → iup-mingw32}/include/iupluaim.h +0 -0
  220. data/ext/{iup-win32 → iup-mingw32}/include/iupluaole.h +0 -0
  221. data/ext/{iup-win32 → iup-mingw32}/include/iupmask.h +2 -1
  222. data/ext/iup-mingw32/include/iupmatrix.h +1 -0
  223. data/ext/{iup-win32 → iup-mingw32}/include/iupole.h +0 -0
  224. data/ext/iup-mingw32/include/iupsbox.h +1 -0
  225. data/ext/iup-mingw32/include/iupspin.h +1 -0
  226. data/ext/iup-mingw32/include/iuptabs.h +1 -0
  227. data/ext/iup-mingw32/include/iuptree.h +1 -0
  228. data/ext/iup-mingw32/include/iupval.h +1 -0
  229. data/ext/iup-mingw32/include/old_im.h +59 -0
  230. data/ext/{iup-win32 → iup-mingw32}/include/wd.h +5 -0
  231. data/ext/{iup-win32 → iup-mingw32}/include/wd_old.h +0 -0
  232. data/ext/iup-mingw32/libcd.a +0 -0
  233. data/ext/iup-mingw32/libcdpdf.a +0 -0
  234. data/ext/iup-mingw32/libfreetype6.a +0 -0
  235. data/ext/iup-mingw32/libim.a +0 -0
  236. data/ext/iup-mingw32/libim_avi.a +0 -0
  237. data/ext/iup-mingw32/libim_fftw.a +0 -0
  238. data/ext/iup-mingw32/libim_jp2.a +0 -0
  239. data/ext/iup-mingw32/libim_process.a +0 -0
  240. data/ext/iup-mingw32/libiup.a +0 -0
  241. data/ext/iup-mingw32/libiup_pplot.a +0 -0
  242. data/ext/iup-mingw32/libiupcd.a +0 -0
  243. data/ext/iup-mingw32/libiupcontrols.a +0 -0
  244. data/ext/iup-mingw32/libiupgl.a +0 -0
  245. data/ext/iup-mingw32/libiupim.a +0 -0
  246. data/ext/iup-mingw32/libiupimglib.a +0 -0
  247. data/ext/iup-mingw32/libiupole.a +0 -0
  248. data/ext/iup-mingw32/libpdflib.a +0 -0
  249. data/ext/iup-mswin32/cd.lib +0 -0
  250. data/ext/iup-mswin32/cdcontextplus.lib +0 -0
  251. data/ext/iup-mswin32/cdgdk.lib +0 -0
  252. data/ext/iup-mswin32/cdpdf.lib +0 -0
  253. data/ext/iup-mswin32/freetype6.lib +0 -0
  254. data/ext/iup-mswin32/im.lib +0 -0
  255. data/ext/iup-mswin32/im_avi.lib +0 -0
  256. data/ext/iup-mswin32/im_capture.lib +0 -0
  257. data/ext/iup-mswin32/im_fftw.lib +0 -0
  258. data/ext/iup-mswin32/im_jp2.lib +0 -0
  259. data/ext/iup-mswin32/im_process.lib +0 -0
  260. data/ext/iup-mswin32/im_wmv.lib +0 -0
  261. data/ext/iup-mswin32/include/cd.h +498 -0
  262. data/ext/iup-mswin32/include/cd_canvas.hpp +358 -0
  263. data/ext/iup-mswin32/include/cd_old.h +158 -0
  264. data/ext/iup-mswin32/include/cd_private.h +369 -0
  265. data/ext/iup-mswin32/include/cdcgm.h +34 -0
  266. data/ext/iup-mswin32/include/cdclipbd.h +22 -0
  267. data/ext/iup-mswin32/include/cddbuf.h +23 -0
  268. data/ext/iup-mswin32/include/cddebug.h +24 -0
  269. data/ext/iup-mswin32/include/cddgn.h +23 -0
  270. data/ext/iup-mswin32/include/cddxf.h +22 -0
  271. data/ext/iup-mswin32/include/cdemf.h +22 -0
  272. data/ext/iup-mswin32/include/cdgdiplus.h +29 -0
  273. data/ext/iup-mswin32/include/cdimage.h +23 -0
  274. data/ext/iup-mswin32/include/cdirgb.h +30 -0
  275. data/ext/iup-mswin32/include/cdiup.h +22 -0
  276. data/ext/iup-mswin32/include/cdlua.h +39 -0
  277. data/ext/iup-mswin32/include/cdlua3_private.h +120 -0
  278. data/ext/iup-mswin32/include/cdlua5_private.h +141 -0
  279. data/ext/iup-mswin32/include/cdluaim.h +24 -0
  280. data/ext/iup-mswin32/include/cdluaiup.h +27 -0
  281. data/ext/iup-mswin32/include/cdluapdf.h +27 -0
  282. data/ext/iup-mswin32/include/cdmf.h +24 -0
  283. data/ext/iup-mswin32/include/cdmf_private.h +32 -0
  284. data/ext/iup-mswin32/include/cdnative.h +26 -0
  285. data/ext/iup-mswin32/include/cdpdf.h +38 -0
  286. data/ext/iup-mswin32/include/cdpicture.h +22 -0
  287. data/ext/iup-mswin32/include/cdprint.h +23 -0
  288. data/ext/iup-mswin32/include/cdps.h +37 -0
  289. data/ext/iup-mswin32/include/cdsvg.h +22 -0
  290. data/ext/iup-mswin32/include/cdwmf.h +22 -0
  291. data/ext/iup-mswin32/include/im.h +287 -0
  292. data/ext/iup-mswin32/include/im_attrib.h +120 -0
  293. data/ext/iup-mswin32/include/im_attrib_flat.h +39 -0
  294. data/ext/iup-mswin32/include/im_binfile.h +224 -0
  295. data/ext/iup-mswin32/include/im_capture.h +365 -0
  296. data/ext/iup-mswin32/include/im_color.h +465 -0
  297. data/ext/iup-mswin32/include/im_colorhsi.h +56 -0
  298. data/ext/iup-mswin32/include/im_complex.h +180 -0
  299. data/ext/iup-mswin32/include/im_convert.h +142 -0
  300. data/ext/iup-mswin32/include/im_counter.h +69 -0
  301. data/ext/iup-mswin32/include/im_dib.h +195 -0
  302. data/ext/iup-mswin32/include/im_file.h +115 -0
  303. data/ext/iup-mswin32/include/im_format.h +97 -0
  304. data/ext/iup-mswin32/include/im_format_all.h +575 -0
  305. data/ext/iup-mswin32/include/im_format_avi.h +88 -0
  306. data/ext/iup-mswin32/include/im_format_ecw.h +93 -0
  307. data/ext/iup-mswin32/include/im_format_jp2.h +79 -0
  308. data/ext/iup-mswin32/include/im_format_raw.h +74 -0
  309. data/ext/iup-mswin32/include/im_format_wmv.h +101 -0
  310. data/ext/iup-mswin32/include/im_image.h +425 -0
  311. data/ext/iup-mswin32/include/im_kernel.h +315 -0
  312. data/ext/iup-mswin32/include/im_lib.h +191 -0
  313. data/ext/iup-mswin32/include/im_math.h +368 -0
  314. data/ext/iup-mswin32/include/im_math_op.h +214 -0
  315. data/ext/iup-mswin32/include/im_palette.h +172 -0
  316. data/ext/iup-mswin32/include/im_plus.h +73 -0
  317. data/ext/iup-mswin32/include/im_process.h +36 -0
  318. data/ext/iup-mswin32/include/im_process_ana.h +222 -0
  319. data/ext/iup-mswin32/include/im_process_glo.h +170 -0
  320. data/ext/iup-mswin32/include/im_process_loc.h +608 -0
  321. data/ext/iup-mswin32/include/im_process_pon.h +734 -0
  322. data/ext/iup-mswin32/include/im_raw.h +34 -0
  323. data/ext/iup-mswin32/include/im_util.h +277 -0
  324. data/ext/iup-mswin32/include/imlua.h +75 -0
  325. data/ext/iup-mswin32/include/iup.h +364 -0
  326. data/ext/iup-mswin32/include/iup_pplot.h +40 -0
  327. data/ext/iup-mswin32/include/iupcb.h +1 -0
  328. data/ext/iup-mswin32/include/iupcbox.h +1 -0
  329. data/ext/iup-mswin32/include/iupcbs.h +43 -0
  330. data/ext/iup-mswin32/include/iupcells.h +1 -0
  331. data/ext/iup-mswin32/include/iupcolorbar.h +1 -0
  332. data/ext/iup-mswin32/include/iupcontrols.h +46 -0
  333. data/ext/iup-mswin32/include/iupdef.h +725 -0
  334. data/ext/iup-mswin32/include/iupdial.h +1 -0
  335. data/ext/iup-mswin32/include/iupgauge.h +1 -0
  336. data/ext/iup-mswin32/include/iupgc.h +1 -0
  337. data/ext/iup-mswin32/include/iupgetparam.h +1 -0
  338. data/ext/iup-mswin32/include/iupgl.h +96 -0
  339. data/ext/iup-mswin32/include/iupim.h +27 -0
  340. data/ext/iup-mswin32/include/iupkey.h +457 -0
  341. data/ext/iup-mswin32/include/iuplua.h +41 -0
  342. data/ext/iup-mswin32/include/iuplua_pplot.h +26 -0
  343. data/ext/iup-mswin32/include/iupluacontrols.h +27 -0
  344. data/ext/iup-mswin32/include/iupluagl.h +26 -0
  345. data/ext/iup-mswin32/include/iupluaim.h +26 -0
  346. data/ext/iup-mswin32/include/iupluaole.h +26 -0
  347. data/ext/iup-mswin32/include/iupmask.h +41 -0
  348. data/ext/iup-mswin32/include/iupmatrix.h +1 -0
  349. data/ext/iup-mswin32/include/iupole.h +24 -0
  350. data/ext/iup-mswin32/include/iupsbox.h +1 -0
  351. data/ext/iup-mswin32/include/iupspin.h +1 -0
  352. data/ext/iup-mswin32/include/iuptabs.h +1 -0
  353. data/ext/iup-mswin32/include/iuptree.h +1 -0
  354. data/ext/iup-mswin32/include/iupval.h +1 -0
  355. data/ext/iup-mswin32/include/old_im.h +59 -0
  356. data/ext/iup-mswin32/include/wd.h +83 -0
  357. data/ext/iup-mswin32/include/wd_old.h +85 -0
  358. data/ext/iup-mswin32/iup.lib +0 -0
  359. data/ext/iup-mswin32/iup_pplot.lib +0 -0
  360. data/ext/iup-mswin32/iupcd.lib +0 -0
  361. data/ext/iup-mswin32/iupcontrols.lib +0 -0
  362. data/ext/iup-mswin32/iupgl.lib +0 -0
  363. data/ext/iup-mswin32/iupgtk.lib +0 -0
  364. data/ext/iup-mswin32/iupim.lib +0 -0
  365. data/ext/{iup-win32/iupimglib.dll → iup-mswin32/iupimglib.lib} +0 -0
  366. data/ext/iup-mswin32/iupole.lib +0 -0
  367. data/ext/iup-mswin32/pdflib.lib +0 -0
  368. data/ext/iup.c +6 -37
  369. data/ext/{rb_cd.h → rb_cd.c} +300 -302
  370. data/ext/rb_iup.c +2485 -0
  371. data/ext/rb_iup.h +400 -2475
  372. data/ext/{rb_iup_pplot.h → rb_iup_pplot.c} +21 -22
  373. data/ext/{rb_iupcb.h → rb_iupcb.c} +2 -3
  374. data/ext/{rb_iupcells.h → rb_iupcells.c} +5 -5
  375. data/ext/{rb_iupcolorbar.h → rb_iupcolorbar.c} +2 -3
  376. data/ext/{rb_iupcontrols.h → rb_iupcontrols.c} +1 -1
  377. data/ext/{rb_iupdial.h → rb_iupdial.c} +3 -4
  378. data/ext/{rb_iupgauge.h → rb_iupgauge.c} +2 -3
  379. data/ext/{rb_iupgc.h → rb_iupgc.c} +1 -1
  380. data/ext/{rb_iupgetparam.h → rb_iupgetparam.c} +12 -10
  381. data/ext/{rb_iupgl.h → rb_iupgl.c} +10 -10
  382. data/ext/{rb_iupim.h → rb_iupim.c} +6 -6
  383. data/ext/{rb_iupmatrix.h → rb_iupmatrix.c} +15 -16
  384. data/ext/{rb_iupole.h → rb_iupole.c} +4 -4
  385. data/ext/{rb_iupsbox.h → rb_iupsbox.c} +3 -3
  386. data/ext/{rb_iupspin.h → rb_iupspin.c} +4 -5
  387. data/ext/{rb_iuptabs.h → rb_iuptabs.c} +5 -6
  388. data/ext/{rb_iuptree.h → rb_iuptree.c} +20 -21
  389. data/ext/{rb_iupval.h → rb_iupval.c} +3 -4
  390. data/ruby-iup.gemspec +26 -0
  391. data/test/test_ruby_iup.rb +25 -0
  392. metadata +395 -270
  393. data/ext/iup-linux/include/lauxlib.h +0 -174
  394. data/ext/iup-linux/include/lua.h +0 -388
  395. data/ext/iup-linux/include/lua.hpp +0 -9
  396. data/ext/iup-linux/include/luaconf.h +0 -763
  397. data/ext/iup-linux/include/lualib.h +0 -53
  398. data/ext/iup-linux/libcd.so +0 -0
  399. data/ext/iup-linux/libcdcontextplus.so +0 -0
  400. data/ext/iup-linux/libcdpdf.so +0 -0
  401. data/ext/iup-linux/libfreetype.so +0 -0
  402. data/ext/iup-linux/libim.so +0 -0
  403. data/ext/iup-linux/libim_fftw.so +0 -0
  404. data/ext/iup-linux/libim_jp2.so +0 -0
  405. data/ext/iup-linux/libim_process.so +0 -0
  406. data/ext/iup-linux/libiup.so +0 -0
  407. data/ext/iup-linux/libiup_pplot.so +0 -0
  408. data/ext/iup-linux/libiupcd.so +0 -0
  409. data/ext/iup-linux/libiupcontrols.so +0 -0
  410. data/ext/iup-linux/libiupgl.so +0 -0
  411. data/ext/iup-linux/libiupim.so +0 -0
  412. data/ext/iup-linux/libiupimglib.so +0 -0
  413. data/ext/iup-linux/libiupmot.so +0 -0
  414. data/ext/iup-linux/libpdflib.so +0 -0
  415. data/ext/iup-win32/cd.dll +0 -0
  416. data/ext/iup-win32/cd.lib +0 -0
  417. data/ext/iup-win32/cdcontextplus.dll +0 -0
  418. data/ext/iup-win32/cdcontextplus.lib +0 -0
  419. data/ext/iup-win32/cdpdf.dll +0 -0
  420. data/ext/iup-win32/cdpdf.lib +0 -0
  421. data/ext/iup-win32/freetype6.dll +0 -0
  422. data/ext/iup-win32/freetype6.lib +0 -0
  423. data/ext/iup-win32/im.dll +0 -0
  424. data/ext/iup-win32/im.lib +0 -0
  425. data/ext/iup-win32/im_avi.dll +0 -0
  426. data/ext/iup-win32/im_avi.lib +0 -0
  427. data/ext/iup-win32/im_capture.dll +0 -0
  428. data/ext/iup-win32/im_capture.lib +0 -0
  429. data/ext/iup-win32/im_ecw.dll +0 -0
  430. data/ext/iup-win32/im_fftw.dll +0 -0
  431. data/ext/iup-win32/im_fftw.lib +0 -0
  432. data/ext/iup-win32/im_jp2.dll +0 -0
  433. data/ext/iup-win32/im_jp2.lib +0 -0
  434. data/ext/iup-win32/im_process.dll +0 -0
  435. data/ext/iup-win32/im_process.lib +0 -0
  436. data/ext/iup-win32/im_wmv.dll +0 -0
  437. data/ext/iup-win32/im_wmv.lib +0 -0
  438. data/ext/iup-win32/imlua_capture51.dll +0 -0
  439. data/ext/iup-win32/imlua_capture51.lib +0 -0
  440. data/ext/iup-win32/imlua_wmv51.dll +0 -0
  441. data/ext/iup-win32/imlua_wmv51.lib +0 -0
  442. data/ext/iup-win32/include/iupcb.h +0 -25
  443. data/ext/iup-win32/include/iupcells.h +0 -130
  444. data/ext/iup-win32/include/iupcolorbar.h +0 -126
  445. data/ext/iup-win32/include/iupcontrols.h +0 -36
  446. data/ext/iup-win32/include/iupdial.h +0 -63
  447. data/ext/iup-win32/include/iupgauge.h +0 -57
  448. data/ext/iup-win32/include/iupgetparam.h +0 -27
  449. data/ext/iup-win32/include/iupmatrix.h +0 -63
  450. data/ext/iup-win32/include/iupspin.h +0 -21
  451. data/ext/iup-win32/include/iuptabs.h +0 -75
  452. data/ext/iup-win32/include/iuptree.h +0 -93
  453. data/ext/iup-win32/include/iupval.h +0 -46
  454. data/ext/iup-win32/iup.dll +0 -0
  455. data/ext/iup-win32/iup.lib +0 -0
  456. data/ext/iup-win32/iup_pplot.dll +0 -0
  457. data/ext/iup-win32/iup_pplot.lib +0 -0
  458. data/ext/iup-win32/iupcd.dll +0 -0
  459. data/ext/iup-win32/iupcd.lib +0 -0
  460. data/ext/iup-win32/iupcontrols.dll +0 -0
  461. data/ext/iup-win32/iupcontrols.lib +0 -0
  462. data/ext/iup-win32/iupgl.dll +0 -0
  463. data/ext/iup-win32/iupgl.lib +0 -0
  464. data/ext/iup-win32/iupgtk.dll +0 -0
  465. data/ext/iup-win32/iupgtk.lib +0 -0
  466. data/ext/iup-win32/iupim.dll +0 -0
  467. data/ext/iup-win32/iupim.lib +0 -0
  468. data/ext/iup-win32/iupimglib.lib +0 -0
  469. data/ext/iup-win32/iupole.dll +0 -0
  470. data/ext/iup-win32/iupole.lib +0 -0
  471. data/ext/iup-win32/iupstub.lib +0 -0
  472. data/ext/iup-win32/pdflib.dll +0 -0
  473. data/ext/iup-win32/pdflib.lib +0 -0
  474. data/ext/mkrf_conf.rb +0 -72
  475. data/ext/rb_iupcompat.h +0 -237
  476. data/ext/rb_iupdef.h +0 -3
  477. data/ext/rb_iupmask.h +0 -189
  478. data/lib/README +0 -1
@@ -1,2479 +1,404 @@
1
1
  #include <ruby.h>
2
+ #include <ctype.h>
2
3
  #include "iup.h"
3
4
  #include "iupcontrols.h"
4
- #include "cd.h"
5
-
5
+ #include "cd.h"
6
+ #include "cdiup.h"
7
+ #include "cdpdf.h"
8
+ #include "iup_pplot.h"
9
+ #include "iupcb.h"
10
+ #include "iupcells.h"
11
+ #include "iupcolorbar.h"
12
+ #include "iupcontrols.h"
13
+ #include "iupgl.h"
14
+ #include "iupim.h"
15
+ #include "iupole.h"
16
+
17
+ // Ruby 1.9.x
18
+ #ifndef RSTRING_PTR
19
+ #define RSTRING_PTR(s) (RSTRING(s)->ptr)
20
+ #endif
21
+ #ifndef RSTRING_LEN
22
+ #define RSTRING_LEN(s) (RSTRING(s)->len)
23
+ #endif
24
+ #ifndef RARRAY_PTR
25
+ #define RARRAY_PTR(a) (RARRAY(a)->ptr)
26
+ #endif
27
+ #ifndef RARRAY_LEN
28
+ #define RARRAY_LEN(a) (RARRAY(a)->len)
29
+ #endif
30
+ #ifndef RFLOAT_VALUE
31
+ #define RFLOAT_VALUE(v) (RFLOAT(v)->value)
32
+ #endif
33
+
34
+ #ifdef WIN32
35
+ #define DLLEXPORT __declspec(dllexport)
36
+ #else
37
+ #define DLLEXPORT
38
+ #endif
39
+
40
+ VALUE rb_IupVal(int argc,VALUE *argv,VALUE self);
41
+
42
+ VALUE rb_IupTree(int argc,VALUE *argv,VALUE self);
43
+ VALUE rb_IupTreeGetAttribute(VALUE node,VALUE v_a,VALUE v_id);
44
+ VALUE rb_IupTreeGetFloat(VALUE node,VALUE v_a,VALUE v_id);
45
+ VALUE rb_IupTreeGetId(VALUE node,VALUE v_userid);
46
+ VALUE rb_IupTreeGetInt(VALUE node,VALUE v_a,VALUE v_id);
47
+ VALUE rb_IupTreeGetUserId(VALUE node,VALUE v_id);
48
+ VALUE rb_IupTreeSetAttribute(VALUE node,VALUE v_a,VALUE v_id,VALUE v_v);
49
+ VALUE rb_IupTreeSetUserId(VALUE node,VALUE v_id,VALUE v_userid);
50
+ VALUE rb_IupTreeStoreAttribute(VALUE node,VALUE v_a,VALUE v_id,VALUE v_v);
51
+
52
+ VALUE rb_IupTabsv(int argc,VALUE *argv,VALUE self);
53
+
54
+ VALUE rb_IupSpin(VALUE self);
55
+ VALUE rb_IupSpinbox(int argc,VALUE *argv,VALUE self);
56
+
57
+ VALUE rb_IupSbox(int argc,VALUE *argv,VALUE self);
58
+
59
+ VALUE rb_IupOleControl(VALUE self,VALUE v_ProgID);
60
+ //VALUE rb_IupOleControl_getclass(VALUE self);
61
+ VALUE rb_IupOleControlOpen(VALUE self);
62
+
63
+ VALUE rb_IupMatGetAttribute(VALUE node,VALUE v_a,VALUE v_l,VALUE v_c);
64
+ VALUE rb_IupMatGetFloat(VALUE node,VALUE v_a,VALUE v_l,VALUE v_c);
65
+ VALUE rb_IupMatGetInt(VALUE node,VALUE v_a,VALUE v_l,VALUE v_c);
66
+ VALUE rb_IupMatrix(int argc,VALUE *argv,VALUE self);
67
+ VALUE rb_IupMatSetAttribute(VALUE node,VALUE v_a,VALUE v_l,VALUE v_c,VALUE v_v);
68
+ VALUE rb_IupMatStoreAttribute(VALUE node,VALUE v_a,VALUE v_l,VALUE v_c,VALUE v_v);
69
+
70
+ VALUE rb_IupLoadImage(VALUE self,VALUE v_file_name);
71
+ VALUE rb_IupSaveImage(VALUE self,VALUE node,VALUE v_file_name,VALUE v_format);
72
+
73
+ VALUE rb_IupGLCanvas(int argc,VALUE *argv,VALUE self);
74
+ VALUE rb_IupGLCanvasOpen(VALUE self);
75
+ VALUE rb_IupGLIsCurrent(VALUE self,VALUE node);
76
+ VALUE rb_IupGLMakeCurrent(VALUE self,VALUE node);
77
+ VALUE rb_IupGLPalette(VALUE self,VALUE node,VALUE v_index,VALUE v_r,VALUE v_g,VALUE v_b);
78
+ VALUE rb_IupGLSwapBuffers(VALUE self,VALUE node);
79
+
80
+ VALUE rb_IupGetParam(int argc,VALUE *argv,VALUE self);
81
+
82
+ VALUE rb_IupGetColor(VALUE self,VALUE v_x,VALUE v_y);
83
+
84
+ VALUE rb_IupDial(int argc,VALUE *argv,VALUE self);
85
+
86
+ VALUE rb_IupGauge(int argc,VALUE *argv,VALUE self);
87
+
88
+ VALUE rb_IupControlsClose(VALUE self);
89
+ VALUE rb_IupControlsOpen(VALUE self);
90
+ VALUE rb_IupImageLibOpen(VALUE self);
91
+
92
+ VALUE rb_IupColorbar(VALUE self);
93
+
94
+ VALUE rb_IupCells(int argc,VALUE *argv, VALUE self);
95
+
96
+ VALUE rb_IupColorBrowser(VALUE self);
97
+
98
+ VALUE rb_IupPPlot(VALUE self);
99
+ VALUE rb_IupPPlotAdd(VALUE node,VALUE v_x,VALUE v_y);
100
+ VALUE rb_IupPPlotAddStr(VALUE node,VALUE v_x,VALUE v_y);
101
+ VALUE rb_IupPPlotBegin(VALUE node,VALUE v_strXdata);
102
+ VALUE rb_IupPPlotEnd(VALUE node);
103
+ VALUE rb_IupPPlotInsert(VALUE node,VALUE v_index,VALUE v_sample_index,VALUE v_x,VALUE v_y);
104
+ VALUE rb_IupPPlotInsertStr(VALUE node,VALUE v_index,VALUE v_sample_index,VALUE v_x,VALUE v_y);
105
+ VALUE rb_IupPPlotOpen(VALUE self);
106
+ VALUE rb_IupPPlotPaintTo(VALUE node,VALUE v_cnv);
107
+ VALUE rb_IupPPlotTransform(VALUE node,VALUE v_x,VALUE v_y);
108
+
109
+ VALUE rb_cCdCanvas_initialize(VALUE self,VALUE v_canvas);
110
+ VALUE rb_cdActivate(VALUE self);
111
+ VALUE rb_cdActiveCanvas(VALUE self);
112
+ VALUE rb_cdAlpha(VALUE self,VALUE v_color);
113
+ VALUE rb_cdBitmapGetData(VALUE self,VALUE v_bitmap,VALUE v_dataptr);
114
+ VALUE rb_cdBitmapRGB2Map(VALUE self,VALUE v_bitmap_rgb,VALUE v_bitmap_map);
115
+ VALUE rb_cdBitmapSetRect(VALUE self,VALUE v_bitmap,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
116
+ VALUE rb_cdBlue(VALUE self,VALUE v_color);
117
+ VALUE rb_cdCanvasActivate(VALUE self);
118
+ VALUE rb_cdCanvasArc(VALUE self,VALUE v_xc,VALUE v_yc,VALUE v_w,VALUE v_h,VALUE v_angle1,VALUE v_angle2);
119
+ VALUE rb_cdCanvasBackground(VALUE self,VALUE v_color);
120
+ VALUE rb_cdCanvasBackOpacity(VALUE self,VALUE v_opacity);
121
+ VALUE rb_cdCanvasBegin(VALUE self,VALUE v_mode);
122
+ VALUE rb_cdCanvasBox(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
123
+ VALUE rb_cdCanvasChord(VALUE self,VALUE v_xc,VALUE v_yc,VALUE v_w,VALUE v_h,VALUE v_angle1,VALUE v_angle2);
124
+ VALUE rb_cdCanvasClear(VALUE self);
125
+ VALUE rb_cdCanvasClip(VALUE self,VALUE v_mode);
126
+ VALUE rb_cdCanvasClipArea(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
127
+ VALUE rb_cdCanvasCreateImage(VALUE self,VALUE v_w,VALUE v_h);
128
+ VALUE rb_cdCanvasDeactivate(VALUE self);
129
+ VALUE rb_cdCanvasEnd(VALUE self);
130
+ VALUE rb_cdCanvasFillMode(VALUE self,VALUE v_mode);
131
+ VALUE rb_cdCanvasFlush(VALUE self);
132
+ VALUE rb_cdCanvasFont(VALUE self,VALUE v_type_face,VALUE v_style,VALUE v_size);
133
+ VALUE rb_cdCanvasForeground(VALUE self,VALUE v_color);
134
+ VALUE rb_cdCanvasGetAttribute(VALUE self,VALUE v_name);
135
+ VALUE rb_cdCanvasGetBitmap(VALUE self,VALUE v_bitmap,VALUE v_x,VALUE v_y);
136
+ VALUE rb_cdCanvasGetClipArea(VALUE self);
137
+ VALUE rb_cdCanvasGetColorPlanes(VALUE self);
138
+ VALUE rb_cdCanvasGetContext(VALUE self);
139
+ VALUE rb_cdCanvasGetFont(VALUE self);
140
+ VALUE rb_cdCanvasGetFontDim(VALUE self);
141
+ VALUE rb_cdCanvasGetImage(VALUE self,VALUE v_image,VALUE v_x,VALUE v_y);
142
+ VALUE rb_cdCanvasGetImageRGB(VALUE self,VALUE v_x,VALUE v_y,VALUE v_w,VALUE v_h);
143
+ VALUE rb_cdCanvasGetOrigin(VALUE self);
144
+ VALUE rb_cdCanvasGetPattern(VALUE self);
145
+ VALUE rb_cdCanvasGetRegionBox(VALUE self);
146
+ VALUE rb_cdCanvasGetSize(VALUE self,VALUE v_width,VALUE v_height,VALUE v_width_mm,VALUE v_height_mm);
147
+ VALUE rb_cdCanvasGetStipple(VALUE self);
148
+ VALUE rb_cdCanvasGetTextBounds(VALUE self,VALUE v_x,VALUE v_y,VALUE v_s);
149
+ VALUE rb_cdCanvasGetTextBox(VALUE self,VALUE v_x,VALUE v_y,VALUE v_s);
150
+ VALUE rb_cdCanvasGetTextSize(VALUE self,VALUE v_s);
151
+ VALUE rb_cdCanvasGetTransform(VALUE self);
152
+ VALUE rb_cdCanvasGetVectorTextBounds(VALUE self,VALUE v_s,VALUE v_x,VALUE v_y);
153
+ VALUE rb_cdCanvasGetVectorTextSize(VALUE self,VALUE v_s);
154
+ VALUE rb_cdCanvasHatch(VALUE self,VALUE v_style);
155
+ VALUE rb_cdCanvasInteriorStyle(VALUE self,VALUE v_style);
156
+ VALUE rb_cdCanvasInvertYAxis(VALUE self,VALUE v_y);
157
+ VALUE rb_cdCanvasIsPointInRegion(VALUE self,VALUE v_x,VALUE v_y);
158
+ VALUE rb_cdCanvasLine(VALUE self,VALUE v_x1,VALUE v_y1,VALUE v_x2,VALUE v_y2);
159
+ VALUE rb_cdCanvasLineCap(VALUE self,VALUE v_cap);
160
+ VALUE rb_cdCanvasLineJoin(VALUE self,VALUE v_join);
161
+ VALUE rb_cdCanvasLineStyle(VALUE self,VALUE v_style);
162
+ VALUE rb_cdCanvasLineStyleDashes(VALUE self,VALUE v_dashes);
163
+ VALUE rb_cdCanvasLineWidth(VALUE self,VALUE v_width);
164
+ VALUE rb_cdCanvasMark(VALUE self,VALUE v_x,VALUE v_y);
165
+ VALUE rb_cdCanvasMarkSize(VALUE self,VALUE v_size);
166
+ VALUE rb_cdCanvasMarkType(VALUE self,VALUE v_type);
167
+ VALUE rb_cdCanvasMM2Pixel(VALUE self,VALUE v_mm_dx,VALUE v_mm_dy);
168
+ VALUE rb_cdCanvasMultiLineVectorText(VALUE self,VALUE v_x,VALUE v_y,VALUE v_s);
169
+ VALUE rb_cdCanvasNativeFont(VALUE self,VALUE v_font);
170
+ VALUE rb_cdCanvasOffsetRegion(VALUE self,VALUE v_x,VALUE v_y);
171
+ VALUE rb_cdCanvasOrigin(VALUE self,VALUE v_x,VALUE v_y);
172
+ VALUE rb_cdCanvasPalette(VALUE self,VALUE v_palette,VALUE v_mode);
173
+ VALUE rb_cdCanvasPattern(VALUE self,VALUE v_w,VALUE v_h,VALUE v_pattern);
174
+ VALUE rb_cdCanvasPixel(VALUE self,VALUE v_x,VALUE v_y,VALUE v_color);
175
+ VALUE rb_cdCanvasPixel2MM(VALUE self,VALUE v_dx,VALUE v_dy);
176
+ VALUE rb_cdCanvasPlay(VALUE self,VALUE v_context,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax,VALUE v_data);
177
+ VALUE rb_cdCanvasPutBitmap(VALUE self,VALUE v_bitmap,VALUE v_x,VALUE v_y,VALUE v_w,VALUE v_h);
178
+ VALUE rb_cdCanvasPutImageRect(VALUE self,VALUE v_image,VALUE v_x,VALUE v_y,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
179
+ VALUE rb_cdCanvasPutImageRectMap(VALUE self,VALUE v_iw,VALUE v_ih,VALUE v_index,VALUE v_colors,VALUE v_x,VALUE v_y,VALUE v_w,VALUE v_h,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
180
+ VALUE rb_cdCanvasPutImageRectRGB(VALUE self,VALUE v_iw,VALUE v_ih,VALUE v_r,VALUE v_g,VALUE v_b,VALUE v_x,VALUE v_y,VALUE v_w,VALUE v_h,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
181
+ VALUE rb_cdCanvasPutImageRectRGBA(VALUE self,VALUE v_iw,VALUE v_ih,VALUE v_r,VALUE v_g,VALUE v_b,VALUE v_a,VALUE v_x,VALUE v_y,VALUE v_w,VALUE v_h,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
182
+ VALUE rb_cdCanvasRect(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
183
+ VALUE rb_cdCanvasRegionCombineMode(VALUE self,VALUE v_mode);
184
+ VALUE rb_cdCanvasRestoreState(VALUE self,VALUE v_state);
185
+ VALUE rb_cdCanvasSaveState(VALUE self);
186
+ VALUE rb_cdCanvasScrollArea(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax,VALUE v_dx,VALUE v_dy);
187
+ VALUE rb_cdCanvasSector(VALUE self,VALUE v_xc,VALUE v_yc,VALUE v_w,VALUE v_h,VALUE v_angle1,VALUE v_angle2);
188
+ VALUE rb_cdCanvasSetAttribute(VALUE self,VALUE v_name,VALUE v_data);
189
+ VALUE rb_cdCanvasSetBackground(VALUE self,VALUE v_color);
190
+ VALUE rb_cdCanvasSetForeground(VALUE self,VALUE v_color);
191
+ VALUE rb_cdCanvasSimulate(VALUE self,VALUE v_mode);
192
+ VALUE rb_cdCanvasStipple(VALUE self,VALUE v_w,VALUE v_h,VALUE v_stipple);
193
+ VALUE rb_cdCanvasText(VALUE self,VALUE v_x,VALUE v_y,VALUE v_s);
194
+ VALUE rb_cdCanvasTextAlignment(VALUE self,VALUE v_alignment);
195
+ VALUE rb_cdCanvasTextOrientation(VALUE self,VALUE v_angle);
196
+ VALUE rb_cdCanvasTransform(VALUE self,VALUE v_matrix);
197
+ VALUE rb_cdCanvasTransformMultiply(VALUE self,VALUE v_matrix);
198
+ VALUE rb_cdCanvasTransformPoint(VALUE self,VALUE v_x,VALUE v_y);
199
+ VALUE rb_cdCanvasTransformRotate(VALUE self,VALUE v_angle);
200
+ VALUE rb_cdCanvasTransformScale(VALUE self,VALUE v_sx,VALUE v_sy);
201
+ VALUE rb_cdCanvasTransformTranslate(VALUE self,VALUE v_dx,VALUE v_dy);
202
+ VALUE rb_cdCanvasUpdateYAxis(VALUE self,VALUE v_y);
203
+ VALUE rb_cdCanvasVectorCharSize(VALUE self,VALUE v_size);
204
+ VALUE rb_cdCanvasVectorFont(VALUE self,VALUE v_filename);
205
+ VALUE rb_cdCanvasVectorText(VALUE self,VALUE v_x,VALUE v_y,VALUE v_s);
206
+ VALUE rb_cdCanvasVectorTextDirection(VALUE self,VALUE v_x1,VALUE v_y1,VALUE v_x2,VALUE v_y2);
207
+ VALUE rb_cdCanvasVectorTextSize(VALUE self,VALUE v_size_x,VALUE v_size_y,VALUE v_s);
208
+ VALUE rb_cdCanvasVectorTextTransform(VALUE self,VALUE v_matrix);
209
+ VALUE rb_cdCanvasVertex(VALUE self,VALUE v_x,VALUE v_y);
210
+ VALUE rb_cdCanvasWriteMode(VALUE self,VALUE v_mode);
211
+ VALUE rb_cdContextCaps(VALUE self,VALUE v_context);
212
+ VALUE rb_cdContextIup();
213
+ VALUE rb_cdContextPDF();
214
+ VALUE rb_cdContextRegisterCallback(VALUE self,VALUE v_context,VALUE v_cb,VALUE v_func);
215
+ VALUE rb_cdCreateBitmap(VALUE self,VALUE v_w,VALUE v_h,VALUE v_type);
216
+ VALUE rb_cdCreateCanvas(VALUE self,VALUE v_context,VALUE v_data);
217
+ VALUE rb_cdDecodeAlpha(VALUE self,VALUE v_color);
218
+ VALUE rb_cdDecodeColor(VALUE self,VALUE v_color);
219
+ VALUE rb_cdEncodeAlpha(VALUE self,VALUE v_color,VALUE v_alpha);
220
+ VALUE rb_cdEncodeColor(VALUE self,VALUE v_red,VALUE v_green,VALUE v_blue);
221
+ VALUE rb_cdfCanvasArc(VALUE self,VALUE v_xc,VALUE v_yc,VALUE v_w,VALUE v_h,VALUE v_angle1,VALUE v_angle2);
222
+ VALUE rb_cdfCanvasBox(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
223
+ VALUE rb_cdfCanvasChord(VALUE self,VALUE v_xc,VALUE v_yc,VALUE v_w,VALUE v_h,VALUE v_angle1,VALUE v_angle2);
224
+ VALUE rb_cdfCanvasClipArea(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
225
+ VALUE rb_cdfCanvasGetClipArea(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
226
+ VALUE rb_cdfCanvasGetOrigin(VALUE self,VALUE v_x,VALUE v_y);
227
+ VALUE rb_cdfCanvasInvertYAxis(VALUE self,VALUE v_y);
228
+ VALUE rb_cdfCanvasLine(VALUE self,VALUE v_x1,VALUE v_y1,VALUE v_x2,VALUE v_y2);
229
+ VALUE rb_cdfCanvasMM2Pixel(VALUE self,VALUE v_mm_dx,VALUE v_mm_dy,VALUE v_dx,VALUE v_dy);
230
+ VALUE rb_cdfCanvasOrigin(VALUE self,VALUE v_x,VALUE v_y);
231
+ VALUE rb_cdfCanvasPixel2MM(VALUE self,VALUE v_dx,VALUE v_dy);
232
+ VALUE rb_cdfCanvasRect(VALUE self,VALUE v_xmin,VALUE v_xmax,VALUE v_ymin,VALUE v_ymax);
233
+ VALUE rb_cdfCanvasSector(VALUE self,VALUE v_xc,VALUE v_yc,VALUE v_w,VALUE v_h,VALUE v_angle1,VALUE v_angle2);
234
+ VALUE rb_cdfCanvasText(VALUE self,VALUE v_x,VALUE v_y,VALUE v_s);
235
+ VALUE rb_cdfCanvasTransformPoint(VALUE self,VALUE v_x,VALUE v_y);
236
+ VALUE rb_cdfCanvasUpdateYAxis(VALUE self,VALUE v_y);
237
+ VALUE rb_cdfCanvasVertex(VALUE self,VALUE v_x,VALUE v_y);
238
+ VALUE rb_cdGreen(VALUE self,VALUE v_color);
239
+ VALUE rb_cdInitBitmap(int argc,VALUE *argv,VALUE self);
240
+ VALUE rb_cdKillBitmap(VALUE self,VALUE v_bitmap);
241
+ VALUE rb_cdKillCanvas(VALUE self);
242
+ VALUE rb_cdKillImage(VALUE self,VALUE v_image);
243
+ VALUE rb_cdRed(VALUE self,VALUE v_color);
244
+ VALUE rb_cdReleaseState(VALUE self,VALUE v_state);
245
+ VALUE rb_cdReserved(VALUE self,VALUE v_color);
246
+ VALUE rb_cdRGB2Map(VALUE self,VALUE v_width,VALUE v_height,VALUE v_red,VALUE v_green,VALUE v_blue,VALUE v_index,VALUE v_pal_size,VALUE v_color);
247
+ VALUE rb_cdUseContextPlus(VALUE self,VALUE v_use);
248
+ VALUE rb_cdVersion(VALUE self);
249
+ VALUE rb_cdVersionDate(VALUE self);
250
+
251
+ VALUE rb_IupListDialog (VALUE self,VALUE v_type, VALUE v_title, VALUE v_size, VALUE v_lst,VALUE v_op, VALUE v_col, VALUE v_line, VALUE v_marks);
252
+ VALUE rb_isalt(VALUE self,VALUE s);
253
+ VALUE rb_isbutton1(VALUE self,VALUE s);
254
+ VALUE rb_isbutton2(VALUE self,VALUE s);
255
+ VALUE rb_isbutton3(VALUE self,VALUE s);
256
+ VALUE rb_isbutton4(VALUE self,VALUE s);
257
+ VALUE rb_isbutton5(VALUE self,VALUE s);
258
+ VALUE rb_iscontrol(VALUE self,VALUE s);
259
+ VALUE rb_isdouble(VALUE self,VALUE s);
260
+ VALUE rb_isshift(VALUE self,VALUE s);
261
+ VALUE rb_issys(VALUE self,VALUE s);
262
+ VALUE rb_isxkey(VALUE self,VALUE s);
263
+ VALUE rb_IupAlarm(VALUE self,VALUE v_title,VALUE v_msg,VALUE v_b1,VALUE v_b2,VALUE v_b3);
264
+ VALUE rb_IupAppend(VALUE self,VALUE node,VALUE vchild);
265
+ VALUE rb_IupButton(int argc,VALUE *argv,VALUE self);
266
+ VALUE rb_IupCanvas(int argc,VALUE *argv,VALUE self);
267
+ VALUE rb_IupCboxv(int argc,VALUE *argv,VALUE self);
268
+ VALUE rb_IupClose(VALUE self);
269
+ VALUE rb_IupCreate(VALUE self,VALUE v_name);
270
+ VALUE rb_IupCreatev(int argc,VALUE *argv,VALUE self);
271
+ VALUE rb_IupDestroy(VALUE node);
272
+ VALUE rb_IupDetach(VALUE self,VALUE vchild);
273
+ VALUE rb_IupDialog(int argc,VALUE *argv,VALUE self);
274
+ VALUE rb_IupExitLoop(VALUE self);
275
+ VALUE rb_IupFileDlg(int argc,VALUE *argv,VALUE self);
276
+ VALUE rb_IupFill(int argc,VALUE *argv,VALUE self);
277
+ VALUE rb_IupFlush(VALUE self);
278
+ VALUE rb_IupFrame(int argc,VALUE *argv,VALUE self);
279
+ VALUE rb_IupGetActionName(VALUE self);
280
+ VALUE rb_IupGetAllDialogs(VALUE self,VALUE v_n);
281
+ VALUE rb_IupGetAllNames(VALUE self,VALUE v_n);
282
+ VALUE rb_IupGetAttribute(VALUE node,VALUE v_name);
283
+ VALUE rb_IupGetAttributeHandle(VALUE node,VALUE v_name);
284
+ VALUE rb_IupGetAttributePtr(VALUE node,VALUE v_name);
285
+ VALUE rb_IupGetAttributes(VALUE node);
286
+ VALUE rb_IupGetBrother(VALUE self,VALUE node);
287
+ VALUE rb_IupGetCallback(VALUE node,VALUE v_name);
288
+ VALUE rb_IupGetClassName(VALUE node);
289
+ VALUE rb_IupGetDialog(VALUE self,VALUE node);
290
+ VALUE rb_IupGetFile(VALUE self,VALUE v_arq);
291
+ VALUE rb_IupGetFloat(VALUE node,VALUE v_name);
292
+ VALUE rb_IupGetFocus(VALUE self);
293
+ VALUE rb_IupGetFunction(VALUE self,VALUE v_name);
294
+ VALUE rb_IupGetGlobal(VALUE self,VALUE v_name);
295
+ VALUE rb_IupGetHandle(VALUE self,VALUE v_name);
296
+ VALUE rb_IupGetIdle(VALUE self);
297
+ VALUE rb_IupGetInt(VALUE node,VALUE v_name);
298
+ VALUE rb_IupGetLanguage(VALUE self);
299
+ VALUE rb_IupGetName(VALUE self,VALUE node);
300
+ VALUE rb_IupGetNextChild(VALUE self,VALUE node,VALUE vchild);
301
+ VALUE rb_IupGetParent(VALUE self,VALUE node);
302
+ VALUE rb_IupGetText(VALUE self,VALUE v_title,VALUE v_text);
303
+ VALUE rb_IupHboxv(int argc,VALUE *argv,VALUE self);
304
+ VALUE rb_IupHelp(VALUE self,VALUE v_url);
305
+ VALUE rb_IupHide(VALUE node);
306
+ VALUE rb_IupImage(int argc,VALUE *argv,VALUE self);
307
+ VALUE rb_IupItem(int argc,VALUE *argv,VALUE self);
308
+ VALUE rb_IupLabel(int argc,VALUE *argv,VALUE self);
309
+ VALUE rb_IupList(int argc,VALUE *argv,VALUE self);
310
+ VALUE rb_IupLoopStep(VALUE self);
311
+ VALUE rb_IupMainLoop(VALUE self);
312
+ VALUE rb_IupMap(VALUE node);
313
+ VALUE rb_IupMapFont(VALUE self,VALUE v_iupfont);
314
+ VALUE rb_IupMenuv(VALUE self,VALUE v_children);
315
+ VALUE rb_IupMessage(VALUE self,VALUE v_title,VALUE v_msg);
316
+ VALUE rb_IupMessagef(int argc,VALUE *argv,VALUE self);
317
+ VALUE rb_IupMultiLine(int argc,VALUE *argv,VALUE self);
318
+ VALUE rb_IupNextField(VALUE self,VALUE node);
319
+ VALUE rb_IupNode_initialize(int argc,VALUE *argv,VALUE self);
320
+ VALUE rb_IupOpen(VALUE self);
321
+ VALUE rb_IupPopup(VALUE node,VALUE v_x,VALUE v_y);
322
+ VALUE rb_IupPreviousField(VALUE self,VALUE node);
323
+ VALUE rb_IupProgressBar(VALUE self);
324
+ VALUE rb_IupRadio(int argc,VALUE *argv,VALUE self);
325
+ VALUE rb_IupRefresh(VALUE self,VALUE node);
326
+ VALUE rb_IupScanf(int argc,VALUE *argv,VALUE self);
327
+ VALUE rb_IupSeparator(VALUE self);
328
+ VALUE rb_IupSetAttribute(VALUE node,VALUE v_name,VALUE v_value);
329
+ VALUE rb_IupSetAttributeHandle(VALUE node,VALUE v_name,VALUE v_node_named);
330
+ VALUE rb_IupSetAttributePtr(VALUE node,VALUE v_name,VALUE v_value);
331
+ VALUE rb_IupSetAttributes(VALUE node,VALUE v_str);
332
+ VALUE rb_IupSetCallback(VALUE node,VALUE v_name,VALUE v_func);
333
+ VALUE rb_IupSetFocus(VALUE self,VALUE node);
334
+ VALUE rb_IupSetFunction(VALUE self,VALUE v_name,VALUE v_func);
335
+ VALUE rb_IupSetGlobal(VALUE self,VALUE v_name,VALUE v_value);
336
+ VALUE rb_IupSetHandle(VALUE self,VALUE v_name,VALUE node);
337
+ VALUE rb_IupSetIdle(VALUE self,VALUE v_func);
338
+ VALUE rb_IupSetLanguage(VALUE self,VALUE v_lng);
339
+ VALUE rb_IupShow(VALUE node);
340
+ VALUE rb_IupShowXY(VALUE node,VALUE v_x,VALUE v_y);
341
+ VALUE rb_IupStoreAttribute(VALUE node,VALUE v_name,VALUE v_value);
342
+ VALUE rb_IupStoreGlobal(VALUE self,VALUE v_name,VALUE v_value);
343
+ VALUE rb_IupSubmenu(int argc,VALUE *argv,VALUE self);
344
+ VALUE rb_IupText(int argc,VALUE *argv,VALUE self);
345
+ VALUE rb_IupTimer(VALUE self);
346
+ VALUE rb_IupToggle(int argc,VALUE *argv,VALUE self);
347
+ VALUE rb_IupUnMapFont(VALUE self,VALUE v_driverfont);
348
+ VALUE rb_IupUpdate(VALUE self,VALUE node);
349
+ VALUE rb_IupUser(VALUE self);
350
+ VALUE rb_IupVboxv(int argc,VALUE *argv,VALUE self);
351
+ VALUE rb_IupVersion(VALUE self);
352
+ VALUE rb_IupVersionDate(VALUE self);
353
+ VALUE rb_IupVersionNumber(VALUE self);
354
+ VALUE rb_IupZboxv(int argc,VALUE *argv,VALUE self);
355
+ VALUE rb_method_missing(int argc,VALUE *argv, VALUE self);
356
+ void exit_handler(void);
357
+ char* rb_str_upper(char* s);
358
+ void rb_set_attribute(Ihandle *v,VALUE arg);
359
+
360
+ extern VALUE rb_mIup;
361
+ extern VALUE rb_mCd;
6
362
  extern VALUE rb_eIupError;
7
- static char IdleAction[100];
8
- static VALUE IdleProc = Qnil;
9
-
10
- VALUE rb_mIup;
11
- VALUE rb_mCd;
12
- VALUE rb_eIupError;
13
- VALUE rb_cIupImage;
14
- VALUE rb_cIupButton;
15
- VALUE rb_cIupCanvas;
16
- VALUE rb_cIupDialog;
17
- VALUE rb_cIupFill;
18
- VALUE rb_cIupFrame;
19
- VALUE rb_cIupHbox;
20
- VALUE rb_cIupItem;
21
- VALUE rb_cIupSeparator;
22
- VALUE rb_cIupSubmenu;
23
- VALUE rb_cIupLabel;
24
- VALUE rb_cIupList;
25
- VALUE rb_cIupMenu;
26
- VALUE rb_cIupRadio;
27
- VALUE rb_cIupText;
28
- VALUE rb_cIupToggle;
29
- VALUE rb_cIupToggle;
30
- VALUE rb_cIupVbox;
31
- VALUE rb_cIupZbox;
32
- VALUE rb_cIupMultiLine;
33
- VALUE rb_cIupUser;
34
- VALUE rb_cIupControl;
35
- VALUE rb_cIupTimer;
36
- VALUE rb_cIupProgressBar;
37
- VALUE rb_cIupFileDlg;
38
- VALUE rb_cIupTree;
39
- VALUE rb_cIupNode;
40
- VALUE rb_cIupTabs;
41
- VALUE rb_cIupGLCanvas;
42
- VALUE rb_cIupSpin;
43
- VALUE rb_cIupSpinbox;
44
- VALUE rb_cIupSbox;
45
- VALUE rb_cIupCbox;
46
- VALUE rb_cIupMatrix;
47
- VALUE rb_cIupGauge;
48
- VALUE rb_cIupDial;
49
- VALUE rb_cIupColorbar;
50
- VALUE rb_cIupColorBrowser;
51
- VALUE rb_cIupCells;
52
- VALUE rb_cIupPPlot;
53
- VALUE rb_cIupVal;
54
- VALUE rb_cCdCanvas;
55
-
56
- extern VALUE rb_IupSetCallback(VALUE node,VALUE v_name,VALUE v_func);
57
-
58
- void exit_handler(void)
59
- {
60
- IupControlsClose();
61
- IupClose();
62
- }
63
-
64
- char* rb_str_upper(char* s)
65
- {
66
- char* temp=s;
67
- if(isupper(*temp)) return s;
68
- for(;*temp;temp++)
69
- *temp=toupper(*temp);
70
- return s;
71
- }
72
-
73
- VALUE rb_method_missing(int argc,VALUE *argv, VALUE self)
74
- {
75
- static char mname[100];
76
- static char pname[100];
77
- int n;
78
- char *value = NULL;
79
- ID id = rb_to_id(argv[0]);
80
- VALUE v_ih = rb_iv_get(self,"@ihandle");
81
- strcpy(mname,rb_id2name(id));
82
- rb_str_upper(mname);
83
- if(!*mname) {
84
- rb_raise(rb_eRuntimeError, "fail: unknown method or property");
85
- }
86
- n = strlen(mname);
87
- if(mname[n-1] == '=')
88
- mname[n-1] = 0;
89
- if(argc==2) {
90
- if(TYPE(argv[1])==T_OBJECT) {
91
- VALUE v_ih_named = rb_iv_get(argv[1],"@ihandle");
92
- IupSetAttributeHandle((Ihandle*)NUM2UINT(v_ih),mname,(Ihandle*)NUM2UINT(v_ih_named));
93
- }
94
- else if(TYPE(argv[1])==T_DATA) {
95
- rb_IupSetCallback(self,rb_str_new2(mname),rb_str_new2("Proc"));
96
- sprintf(pname,"RB_PROC_%s",mname);
97
- IupSetAttribute((Ihandle*)NUM2UINT(v_ih),pname,(char*)argv[1]);
98
- } else {
99
- if(strcmp(mname,"ATTR")==0) {
100
- VALUE v_arr;
101
- int j;
102
- v_arr = rb_funcall(argv[1],rb_intern("split"),1,rb_reg_new("[,=]",4,0));
103
- for(j=0;j<RARRAY(v_arr)->len;j+=2) {
104
- rb_funcall(RARRAY(v_arr)->ptr[j],rb_intern("strip!"),0,0);
105
- rb_funcall(RARRAY(v_arr)->ptr[j+1],rb_intern("strip!"),0,0);
106
- strcpy(mname,RSTRING(RARRAY(v_arr)->ptr[j])->ptr);
107
- rb_str_upper(mname);
108
- value = RSTRING(RARRAY(v_arr)->ptr[j+1])->ptr;
109
- if(value[0]=='"') {
110
- value[strlen(value)-1]=0;
111
- strcpy(pname,&value[1]);
112
- value = pname;
113
- }
114
- IupStoreAttribute((Ihandle*)NUM2UINT(v_ih),mname,value);
115
- }
116
- }
117
- else {
118
- if(argv[1]!=Qnil && TYPE(argv[1])!=T_STRING) {
119
- VALUE v_value = rb_funcall(argv[1],rb_intern("to_s"),0);
120
- value = RSTRING(v_value)->ptr;
121
- } else if(argv[1]!=Qnil)
122
- value = RSTRING(argv[1])->ptr;
123
- IupStoreAttribute((Ihandle*)NUM2UINT(v_ih),mname,value);
124
- }
125
- }
126
- return Qnil;
127
- }
128
- else {
129
- Ihandle *ih = IupGetAttributeHandle((Ihandle*)NUM2UINT(v_ih),mname);
130
- if(ih) {
131
- return (VALUE)IupGetAttribute(ih,"RB_CLASS");
132
- }
133
- else {
134
- value = IupGetAttribute((Ihandle*)NUM2UINT(v_ih),mname);
135
- if(value==NULL) return Qnil;
136
- return rb_str_new2(value);
137
- }
138
- }
139
- }
140
-
141
- void rb_set_attribute(Ihandle *v,VALUE arg)
142
- {
143
- static char key[100];
144
- static char pkey[100];
145
- char *value;
146
- int i;
147
- VALUE v_value;
148
- VALUE klass;
149
- VALUE v_keys = rb_funcall(arg,rb_intern("keys"),0);
150
- for(i=0;i<RARRAY(v_keys)->len;i++) {
151
- if(TYPE(RARRAY(v_keys)->ptr[i])==T_SYMBOL) {
152
- strcpy(key,rb_id2name(SYM2ID(RARRAY(v_keys)->ptr[i])));
153
- rb_str_upper(key);
154
- } else if(TYPE(RARRAY(v_keys)->ptr[i])==T_STRING) {
155
- strcpy(key,RSTRING(RARRAY(v_keys)->ptr[i])->ptr);
156
- rb_str_upper(key);
157
- }
158
- v_value = rb_hash_aref(arg,RARRAY(v_keys)->ptr[i]);
159
- if(TYPE(v_value)==T_OBJECT) {
160
- VALUE v_ih_named = rb_iv_get(v_value,"@ihandle");
161
- IupSetAttributeHandle(v,key,(Ihandle*)NUM2UINT(v_ih_named));
162
- }
163
- else if(TYPE(v_value)==T_DATA) {
164
- klass = (VALUE)IupGetAttribute(v,"RB_CLASS");
165
- if(klass) {
166
- IupSetAttribute(v,key,(char*)v_value);
167
- rb_IupSetCallback(klass,rb_str_new2(key),rb_str_new2("Proc"));
168
- }
169
- } else {
170
- if(TYPE(v_value)!=T_STRING)
171
- v_value = rb_funcall(v_value,rb_intern("to_s"),0);
172
- value = RSTRING(v_value)->ptr;
173
- if(strcmp(key,"ATTR")==0) {
174
- VALUE v_arr;
175
- int j;
176
- v_arr = rb_funcall(v_value,rb_intern("split"),1,rb_reg_new("[,=\\s]+",7,0));
177
- for(j=0;j<RARRAY(v_arr)->len;j+=2) {
178
- rb_funcall(RARRAY(v_arr)->ptr[j],rb_intern("strip!"),0,0);
179
- rb_funcall(RARRAY(v_arr)->ptr[j+1],rb_intern("strip!"),0,0);
180
- strcpy(key,RSTRING(RARRAY(v_arr)->ptr[j])->ptr);
181
- rb_str_upper(key);
182
- value = RSTRING(RARRAY(v_arr)->ptr[j+1])->ptr;
183
- if(value[0]=='"') {
184
- value[strlen(value)-1]=0;
185
- strcpy(pkey,&value[1]);
186
- value = pkey;
187
- }
188
- IupStoreAttribute(v,key,value);
189
- }
190
- }
191
- else
192
- IupStoreAttribute(v,key,value);
193
- }
194
- }
195
- }
196
-
197
- VALUE rb_isxkey(VALUE self,VALUE s)
198
- {
199
- return isxkey(NUM2INT(s))?Qtrue:Qfalse;
200
- }
201
-
202
- VALUE rb_isshift(VALUE self,VALUE s)
203
- {
204
- return isshift(RSTRING(s)->ptr)?Qtrue:Qfalse;
205
- }
206
-
207
- VALUE rb_iscontrol(VALUE self,VALUE s)
208
- {
209
- return iscontrol(RSTRING(s)->ptr)?Qtrue:Qfalse;
210
- }
211
-
212
- VALUE rb_isbutton1(VALUE self,VALUE s)
213
- {
214
- return isbutton1(RSTRING(s)->ptr)?Qtrue:Qfalse;
215
- }
216
-
217
- VALUE rb_isbutton2(VALUE self,VALUE s)
218
- {
219
- return isbutton2(RSTRING(s)->ptr)?Qtrue:Qfalse;
220
- }
221
-
222
- VALUE rb_isbutton3(VALUE self,VALUE s)
223
- {
224
- return isbutton3(RSTRING(s)->ptr)?Qtrue:Qfalse;
225
- }
226
-
227
- VALUE rb_isdouble(VALUE self,VALUE s)
228
- {
229
- return isdouble(RSTRING(s)->ptr)?Qtrue:Qfalse;
230
- }
231
-
232
- VALUE rb_isalt(VALUE self,VALUE s)
233
- {
234
- return isalt(RSTRING(s)->ptr)?Qtrue:Qfalse;
235
- }
236
-
237
- VALUE rb_issys(VALUE self,VALUE s)
238
- {
239
- return issys(RSTRING(s)->ptr)?Qtrue:Qfalse;
240
- }
241
-
242
- VALUE rb_isbutton4(VALUE self,VALUE s)
243
- {
244
- return isbutton4(RSTRING(s)->ptr)?Qtrue:Qfalse;
245
- }
246
-
247
- VALUE rb_isbutton5(VALUE self,VALUE s)
248
- {
249
- return isbutton5(RSTRING(s)->ptr)?Qtrue:Qfalse;
250
- }
251
-
252
- VALUE rb_IupFileDlg(int argc,VALUE *argv,VALUE self)
253
- {
254
- Ihandle* v;
255
- v = IupFileDlg();
256
- if(argc==1 && TYPE(argv[0])==T_HASH)
257
- rb_set_attribute(v,argv[0]);
258
- if(v)
259
- return rb_funcall(rb_cIupFileDlg,rb_intern("new"),1,UINT2NUM((unsigned)v));
260
- return Qnil;
261
- }
262
-
263
- VALUE rb_IupGetFile(VALUE self,VALUE v_arq)
264
- {
265
- char *arq = RSTRING(v_arq)->ptr;
266
- char filename[256];
267
- int v;
268
- VALUE v_r;
269
- strcpy(filename,arq);
270
- v = IupGetFile(filename);
271
- v_r = rb_ary_new3(2,rb_str_new2(filename),UINT2NUM((unsigned)v));
272
- return v_r;
273
- }
274
-
275
- VALUE rb_IupNode_initialize(int argc,VALUE *argv,VALUE self)
276
- {
277
- VALUE v_ih,v_action;
278
- rb_scan_args(argc,argv,"11",&v_ih,&v_action);
279
- IupSetAttribute((Ihandle*)NUM2UINT(v_ih),"RB_CLASS",(char*)self);
280
- rb_iv_set(self,"@ihandle",v_ih);
281
- if(TYPE(v_action)==T_DATA) {
282
- IupSetAttribute((Ihandle*)NUM2UINT(v_ih),"RB_PROC_ACTION",(char*)v_action);
283
- rb_IupSetCallback(self,rb_str_new2("ACTION"),rb_str_new2("Proc"));
284
- }
285
- return self;
286
- }
287
-
288
- VALUE rb_IupMessage(VALUE self,VALUE v_title,VALUE v_msg)
289
- {
290
- const char *title = RSTRING(v_title)->ptr;
291
- const char *msg = RSTRING(v_msg)->ptr;
292
- IupMessage(title,msg);
293
- return Qnil;
294
- }
295
-
296
- VALUE rb_IupMessagef(int argc,VALUE *argv,VALUE self)
297
- {
298
- VALUE v;
299
- const char *title = RSTRING(argv[0])->ptr;
300
- const char *msg = RSTRING(argv[1])->ptr;
301
- if(argc==2) {
302
- IupMessage(title,msg);
303
- return Qnil;
304
- }
305
- v = rb_f_sprintf(argc-1,argv+1);
306
- msg = RSTRING(v)->ptr;
307
- IupMessage(title,msg);
308
- return Qnil;
309
- }
310
-
311
- VALUE rb_IupAlarm(VALUE self,VALUE v_title,VALUE v_msg,VALUE v_b1,VALUE v_b2,VALUE v_b3)
312
- {
313
- const char *title = RSTRING(v_title)->ptr;
314
- const char *msg = RSTRING(v_msg)->ptr;
315
- const char *b1 = RSTRING(v_b1)->ptr;
316
- const char *b2 = RSTRING(v_b2)->ptr;
317
- const char *b3 = RSTRING(v_b3)->ptr;
318
- int v;
319
- v = IupAlarm(title,msg,b1,b2,b3);
320
- return UINT2NUM((unsigned)v);
321
- }
322
-
323
- VALUE rb_IupScanf(int argc,VALUE *argv,VALUE self)
324
- {
325
- VALUE v_format = argv[0];
326
- char args[5][256];
327
- const char *format = RSTRING(v_format)->ptr;
328
- int v;
329
- int i;
330
- int t_n;
331
- float t_f;
332
- char *t_s;
333
- VALUE v_r = Qnil;
334
- for(i=1;i<argc && i<=5;i++) {
335
- switch(TYPE(argv[i])) {
336
- case T_FIXNUM:
337
- t_n = NUM2INT(argv[i]);
338
- memcpy(args[i-1],&t_n,sizeof(t_n));
339
- break;
340
- case T_STRING:
341
- t_s = RSTRING(argv[i])->ptr;
342
- memcpy(args[i-1],t_s,RSTRING(argv[i])->len+1);
343
- break;
344
- case T_FLOAT:
345
- t_f = RFLOAT(argv[i])->value;
346
- memcpy(args[i-1],&t_f,sizeof(t_f));
347
- break;
348
- default:
349
- rb_raise(rb_eIupError,"Invalid Type");
350
- }
351
- }
352
- switch(argc) {
353
- case 2:
354
- v = IupScanf(format,args[0]);
355
- break;
356
- case 3:
357
- v = IupScanf(format,args[0],args[1]);
358
- break;
359
- case 4:
360
- v = IupScanf(format,args[0],args[1],args[2]);
361
- break;
362
- case 5:
363
- v = IupScanf(format,args[0],args[1],args[2],args[3]);
364
- break;
365
- case 6:
366
- v = IupScanf(format,args[0],args[1],args[2],args[3],args[4]);
367
- break;
368
- default:
369
- rb_raise(rb_eIupError,"Too many arguments");
370
- }
371
- v_r = rb_ary_new();
372
- for(i=1;i<argc && i<=v;i++) {
373
- switch(TYPE(argv[i])) {
374
- case T_FIXNUM:
375
- case T_BIGNUM:
376
- memcpy(&t_n,args[i-1],sizeof(t_n));
377
- rb_ary_push(v_r,INT2NUM(t_n));
378
- break;
379
- case T_STRING:
380
- rb_ary_push(v_r,rb_str_new2(args[i-1]));
381
- break;
382
- case T_FLOAT:
383
- memcpy(&t_f,args[i-1],sizeof(t_f));
384
- sprintf(args[i-1],"%g",t_f);
385
- rb_ary_push(v_r,rb_float_new(atof(args[i-1])));
386
- break;
387
- default:
388
- rb_raise(rb_eIupError,"Invalid Type");
389
- }
390
- }
391
- return v_r;
392
- }
393
-
394
- VALUE rb_IupListDialog (VALUE self,VALUE v_type, VALUE v_title, VALUE v_size, VALUE v_lst,
395
- VALUE v_op, VALUE v_col, VALUE v_line, VALUE v_marks)
396
- {
397
- int type = NUM2INT(v_type);
398
- const char* title = RSTRING(v_title)->ptr;
399
- int size = NUM2INT(v_size);
400
- char *lst[256];
401
- int op = NUM2INT(v_op);
402
- int col = NUM2INT(v_col);
403
- int line = NUM2INT(v_line);
404
- int marks[256];
405
- int v;
406
- int i;
407
- VALUE v_r;
408
- for(i=0;i<size;i++) {
409
- lst[i] = RSTRING(RARRAY(v_lst)->ptr[i])->ptr;
410
- marks[i] = NUM2INT(RARRAY(v_marks)->ptr[i]);
411
- }
412
- v = IupListDialog(type,title,size,(const char**)lst,op,col,line,marks);
413
- v_marks = rb_ary_new();
414
- if(type==2) {
415
- for(i=0;i<size;i++) {
416
- rb_ary_push(v_marks,INT2FIX(marks[i]));
417
- }
418
- } else {
419
- for(i=0;i<size;i++) {
420
- if(v==i)
421
- rb_ary_push(v_marks,INT2FIX(1));
422
- else
423
- rb_ary_push(v_marks,INT2FIX(0));
424
- }
425
- }
426
- v_r = rb_ary_new3(2,v_marks,INT2FIX(v));
427
- return v_r;
428
- }
429
-
430
- VALUE rb_IupGetText(VALUE self,VALUE v_title,VALUE v_text)
431
- {
432
- const char* title = RSTRING(v_title)->ptr;
433
- char* text = RSTRING(v_text)->ptr;
434
- int v;
435
- v = IupGetText(title,text);
436
- return UINT2NUM((unsigned)v);
437
- }
438
-
439
- VALUE rb_IupOpen(VALUE self)
440
- {
441
- int argc = 1;
442
- char *name = "iupruby";
443
- char **argv = &name;
444
- int v;
445
- v = IupOpen(&argc,&argv);
446
-
447
- if(v==IUP_ERROR)
448
- rb_raise(rb_eIupError, "Error Opening IUP.");
449
- IupControlsOpen();
450
- return UINT2NUM((unsigned)v);
451
- }
452
-
453
- VALUE rb_IupClose(VALUE self)
454
- {
455
- IupClose();
456
- return Qnil;
457
- }
458
-
459
- VALUE rb_IupMainLoop(VALUE self)
460
- {
461
- int v;
462
- v = IupMainLoop();
463
- return UINT2NUM((unsigned)v);
464
- }
465
-
466
- VALUE rb_IupLoopStep(VALUE self)
467
- {
468
- int v;
469
- v = IupLoopStep();
470
- return UINT2NUM((unsigned)v);
471
- }
472
-
473
- VALUE rb_IupFlush(VALUE self)
474
- {
475
- IupFlush();
476
- return Qnil;
477
- }
478
-
479
- VALUE rb_IupExitLoop(VALUE self)
480
- {
481
- IupExitLoop();
482
- return Qnil;
483
- }
484
-
485
- VALUE rb_IupUpdate(VALUE self,VALUE node)
486
- {
487
- VALUE v_ih = rb_iv_get(node,"@ihandle");
488
- IupUpdate((Ihandle*)NUM2UINT(v_ih));
489
- return Qnil;
490
- }
491
-
492
- VALUE rb_IupRefresh(VALUE self,VALUE node)
493
- {
494
- VALUE v_ih = rb_iv_get(node,"@ihandle");
495
- IupRefresh((Ihandle*)NUM2UINT(v_ih));
496
- return Qnil;
497
- }
498
-
499
- VALUE rb_IupMapFont(VALUE self,VALUE v_iupfont)
500
- {
501
- const char *iupfont = RSTRING(v_iupfont)->ptr;
502
- char* v;
503
- v = IupMapFont(iupfont);
504
- return rb_str_new2(v);
505
- }
506
-
507
- VALUE rb_IupUnMapFont(VALUE self,VALUE v_driverfont)
508
- {
509
- const char *driverfont = RSTRING(v_driverfont)->ptr;
510
- char* v;
511
- v = IupUnMapFont(driverfont);
512
- return rb_str_new2(v);
513
- }
514
-
515
- VALUE rb_IupHelp(VALUE self,VALUE v_url)
516
- {
517
- const char* url = RSTRING(v_url)->ptr;
518
- int v;
519
- v = IupHelp(url);
520
- return UINT2NUM((unsigned)v);
521
- }
522
-
523
- VALUE rb_IupVersion(VALUE self)
524
- {
525
- char* v;
526
- v = IupVersion();
527
- return rb_str_new2(v);
528
- }
529
-
530
- VALUE rb_IupVersionDate(VALUE self)
531
- {
532
- char* v;
533
- v = IupVersionDate();
534
- return rb_str_new2(v);
535
- }
536
-
537
- VALUE rb_IupVersionNumber(VALUE self)
538
- {
539
- int v;
540
- v = IupVersionNumber();
541
- return UINT2NUM((unsigned)v);
542
- }
543
-
544
- VALUE rb_IupSetLanguage(VALUE self,VALUE v_lng)
545
- {
546
- const char *lng = RSTRING(v_lng)->ptr;
547
- IupSetLanguage(lng);
548
- return Qnil;
549
- }
550
-
551
- VALUE rb_IupGetLanguage(VALUE self)
552
- {
553
- char* v;
554
- v = IupGetLanguage();
555
- return rb_str_new2(v);
556
- }
557
-
558
- VALUE rb_IupDestroy(VALUE node)
559
- {
560
- VALUE v_ih = rb_iv_get(node,"@ihandle");
561
- IupDestroy((Ihandle*)NUM2UINT(v_ih));
562
- return Qnil;
563
- }
564
-
565
- VALUE rb_IupDetach(VALUE self,VALUE vchild)
566
- {
567
- VALUE v_child = rb_iv_get(vchild,"@ihandle");
568
- IupDetach((Ihandle*)NUM2UINT(v_child));
569
- return Qnil;
570
- }
571
-
572
- VALUE rb_IupAppend(VALUE self,VALUE node,VALUE vchild)
573
- {
574
- Ihandle* v;
575
- VALUE v_ih = rb_iv_get(node,"@ihandle");
576
- VALUE v_child = rb_iv_get(vchild,"@ihandle");
577
- v = IupAppend((Ihandle*)NUM2UINT(v_ih),(Ihandle*)NUM2UINT(v_child));
578
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
579
- }
580
-
581
- VALUE rb_IupGetNextChild(VALUE self,VALUE node,VALUE vchild)
582
- {
583
- Ihandle* child = NULL;
584
- Ihandle* v;
585
- VALUE v_ih = rb_iv_get(node,"@ihandle");
586
- VALUE v_child = rb_iv_get(vchild,"@ihandle");
587
- if(v_child!=Qnil) child = (Ihandle*)NUM2UINT(v_child);
588
- v = IupGetNextChild((Ihandle*)NUM2UINT(v_ih),child);
589
- if(v==NULL) return Qnil;
590
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
591
- }
592
-
593
- VALUE rb_IupGetBrother(VALUE self,VALUE node)
594
- {
595
- Ihandle* v;
596
- VALUE v_ih = rb_iv_get(node,"@ihandle");
597
- v = IupGetBrother((Ihandle*)NUM2UINT(v_ih));
598
- if(v==NULL) return Qnil;
599
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
600
- }
601
-
602
- VALUE rb_IupGetParent(VALUE self,VALUE node)
603
- {
604
- Ihandle* v;
605
- VALUE v_ih = rb_iv_get(node,"@ihandle");
606
- v = IupGetParent((Ihandle*)NUM2UINT(v_ih));
607
- if(v==NULL) return Qnil;
608
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
609
- }
610
-
611
- VALUE rb_IupGetDialog(VALUE self,VALUE node)
612
- {
613
- Ihandle* v;
614
- VALUE v_ih = rb_iv_get(node,"@ihandle");
615
- v = IupGetDialog((Ihandle*)NUM2UINT(v_ih));
616
- if(v==NULL) return Qnil;
617
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
618
- }
619
-
620
- VALUE rb_IupPopup(VALUE node,VALUE v_x,VALUE v_y)
621
- {
622
- int x = NUM2INT(v_x);
623
- int y = NUM2INT(v_y);
624
- int v;
625
- VALUE v_ih = rb_iv_get(node,"@ihandle");
626
- v = IupPopup((Ihandle*)NUM2UINT(v_ih),x,y);
627
- return UINT2NUM((unsigned)v);
628
- }
629
-
630
- VALUE rb_IupShow(VALUE node)
631
- {
632
- int v;
633
- VALUE v_ih = rb_iv_get(node,"@ihandle");
634
- v = IupShow((Ihandle*)NUM2UINT(v_ih));
635
- return UINT2NUM((unsigned)v);
636
- }
637
-
638
- VALUE rb_IupShowXY(VALUE node,VALUE v_x,VALUE v_y)
639
- {
640
- int x = NUM2INT(v_x);
641
- int y = NUM2INT(v_y);
642
- int v;
643
- VALUE v_ih = rb_iv_get(node,"@ihandle");
644
- v = IupShowXY((Ihandle*)NUM2UINT(v_ih),x,y);
645
- return UINT2NUM((unsigned)v);
646
- }
647
-
648
- VALUE rb_IupHide(VALUE node)
649
- {
650
- int v;
651
- VALUE v_ih = rb_iv_get(node,"@ihandle");
652
- v = IupHide((Ihandle*)NUM2UINT(v_ih));
653
- return UINT2NUM((unsigned)v);
654
- }
655
-
656
- VALUE rb_IupMap(VALUE node)
657
- {
658
- int v;
659
- VALUE v_ih = rb_iv_get(node,"@ihandle");
660
- v = IupMap((Ihandle*)NUM2UINT(v_ih));
661
- return UINT2NUM((unsigned)v);
662
- }
663
-
664
- VALUE rb_IupSetAttribute(VALUE node,VALUE v_name,VALUE v_value)
665
- {
666
- static char name[100];
667
- static char pname[100];
668
- const char* value = NULL;
669
- VALUE v_ih = rb_iv_get(node,"@ihandle");
670
- strcpy(name,RSTRING(v_name)->ptr);
671
- rb_str_upper(name);
672
- if(v_value!=Qnil) {
673
- if(TYPE(v_value)==T_OBJECT) {
674
- VALUE v_ih_named = rb_iv_get(v_value,"@ihandle");
675
- IupSetAttributeHandle((Ihandle*)NUM2UINT(v_ih),name,(Ihandle*)NUM2UINT(v_ih_named));
676
- }
677
- else if(TYPE(v_value)==T_DATA) {
678
- rb_IupSetCallback(node,rb_str_new2(name),rb_str_new2("Proc"));
679
- sprintf(pname,"RB_PROC_%s",name);
680
- IupSetAttribute((Ihandle*)NUM2UINT(v_ih),pname,(char*)v_value);
681
- return Qnil;
682
- } else {
683
- if(TYPE(v_value)!=T_STRING)
684
- v_value = rb_funcall(v_value,rb_intern("to_s"),0);
685
- value = RSTRING(v_value)->ptr;
686
- }
687
- }
688
- IupStoreAttribute((Ihandle*)NUM2UINT(v_ih),name,value);
689
- return Qnil;
690
- }
691
-
692
- VALUE rb_IupSetAttributePtr(VALUE node,VALUE v_name,VALUE v_value)
693
- {
694
- extern VALUE rb_IupSetCallback(VALUE node,VALUE v_name,VALUE v_func);
695
- char name[100];
696
- const char* value = NULL;
697
- VALUE v_ih = rb_iv_get(node,"@ihandle");
698
- strcpy(name,RSTRING(v_name)->ptr);
699
- rb_str_upper(name);
700
- if(v_value!=Qnil) {
701
- if(TYPE(v_value)==T_DATA) {
702
- IupSetAttribute((Ihandle*)NUM2UINT(v_ih),name,(char*)v_value);
703
- rb_IupSetCallback(node,rb_str_new2(name),rb_str_new2("Proc"));
704
- return Qnil;
705
- } else {
706
- if(TYPE(v_value)==T_FIXNUM)
707
- value = (char*)NUM2INT(v_value);
708
- }
709
- }
710
- IupSetAttribute((Ihandle*)NUM2UINT(v_ih),name,value);
711
- return Qnil;
712
- }
713
-
714
- VALUE rb_IupStoreAttribute(VALUE node,VALUE v_name,VALUE v_value)
715
- {
716
- const char* name = RSTRING(v_name)->ptr;
717
- const char* value = NULL;
718
- VALUE v_ih = rb_iv_get(node,"@ihandle");
719
- if(v_value!=Qnil)
720
- value = RSTRING(v_value)->ptr;
721
- IupStoreAttribute((Ihandle*)NUM2UINT(v_ih),name,value);
722
- return Qnil;
723
- }
724
-
725
- VALUE rb_IupSetAttributes(VALUE node,VALUE v_str)
726
- {
727
- const char *str = RSTRING(v_str)->ptr;
728
- Ihandle* v;
729
- VALUE v_ih = rb_iv_get(node,"@ihandle");
730
- v = IupSetAttributes((Ihandle*)NUM2UINT(v_ih),str);
731
- if(v==NULL) return Qnil;
732
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
733
- }
734
-
735
- VALUE rb_IupGetAttribute(VALUE node,VALUE v_name)
736
- {
737
- char name[100];
738
- char* v;
739
- Ihandle *ih;
740
- VALUE v_ih = rb_iv_get(node,"@ihandle");
741
- strcpy(name,RSTRING(v_name)->ptr);
742
- rb_str_upper(name);
743
- ih = IupGetAttributeHandle((Ihandle*)NUM2UINT(v_ih),name);
744
- if(ih) {
745
- return (VALUE)IupGetAttribute(ih,"RB_CLASS");
746
- }
747
- v = IupGetAttribute((Ihandle*)NUM2UINT(v_ih),name);
748
- if(v==NULL)
749
- return Qnil;
750
- else
751
- return rb_str_new2(v);
752
- }
753
-
754
- VALUE rb_IupGetAttributePtr(VALUE node,VALUE v_name)
755
- {
756
- char name[100];
757
- char* v;
758
- VALUE klass;
759
- VALUE v_ih = rb_iv_get(node,"@ihandle");
760
- strcpy(name,RSTRING(v_name)->ptr);
761
- rb_str_upper(name);
762
- v = IupGetAttribute((Ihandle*)NUM2UINT(v_ih),name);
763
- klass = rb_funcall(rb_cIupNode,rb_intern("new"),1,UINT2NUM((unsigned)v));
764
- if(v==NULL)
765
- return Qnil;
766
- else
767
- return klass;
768
- }
769
-
770
- VALUE rb_IupGetAttributes(VALUE node)
771
- {
772
- char* v;
773
- VALUE v_ih = rb_iv_get(node,"@ihandle");
774
- v = IupGetAttributes((Ihandle*)NUM2UINT(v_ih));
775
- return rb_str_new2(v);
776
- }
777
-
778
- VALUE rb_IupGetInt(VALUE node,VALUE v_name)
779
- {
780
- const char* name = RSTRING(v_name)->ptr;
781
- int v;
782
- VALUE v_ih = rb_iv_get(node,"@ihandle");
783
- v = IupGetInt((Ihandle*)NUM2UINT(v_ih),name);
784
- return UINT2NUM((unsigned)v);
785
- }
786
-
787
- VALUE rb_IupGetFloat(VALUE node,VALUE v_name)
788
- {
789
- const char* name = RSTRING(v_name)->ptr;
790
- float v;
791
- VALUE v_ih = rb_iv_get(node,"@ihandle");
792
- v = IupGetFloat((Ihandle*)NUM2UINT(v_ih),name);
793
- return rb_float_new(v);
794
- }
795
-
796
- VALUE rb_IupSetGlobal(VALUE self,VALUE v_name,VALUE v_value)
797
- {
798
- const char* name = RSTRING(v_name)->ptr;
799
- const char* value = RSTRING(v_value)->ptr;
800
- IupSetGlobal(name,value);
801
- return Qnil;
802
- }
803
-
804
- VALUE rb_IupStoreGlobal(VALUE self,VALUE v_name,VALUE v_value)
805
- {
806
- const char* name = RSTRING(v_name)->ptr;
807
- const char* value = RSTRING(v_value)->ptr;
808
- IupStoreGlobal(name,value);
809
- return Qnil;
810
- }
811
-
812
- VALUE rb_IupGetGlobal(VALUE self,VALUE v_name)
813
- {
814
- const char* name = RSTRING(v_name)->ptr;
815
- char* v;
816
- v = IupGetGlobal(name);
817
- return rb_str_new2(v);
818
- }
819
-
820
- VALUE rb_IupSetFocus(VALUE self,VALUE node)
821
- {
822
- Ihandle* v;
823
- VALUE v_ih = rb_iv_get(node,"@ihandle");
824
- v = IupSetFocus((Ihandle*)NUM2UINT(v_ih));
825
- return UINT2NUM((unsigned)v);
826
- }
827
-
828
- VALUE rb_IupGetFocus(VALUE self)
829
- {
830
- Ihandle* v;
831
- v = IupGetFocus();
832
- if(v==NULL) return Qnil;
833
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
834
- }
835
-
836
- VALUE rb_IupPreviousField(VALUE self,VALUE node)
837
- {
838
- Ihandle* v;
839
- VALUE v_ih = rb_iv_get(node,"@ihandle");
840
- v = IupPreviousField((Ihandle*)NUM2UINT(v_ih));
841
- if(v==NULL) return Qnil;
842
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
843
- }
844
-
845
- VALUE rb_IupNextField(VALUE self,VALUE node)
846
- {
847
- Ihandle* v;
848
- VALUE v_ih = rb_iv_get(node,"@ihandle");
849
- v = IupNextField((Ihandle*)NUM2UINT(v_ih));
850
- if(v==NULL) return Qnil;
851
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
852
- }
853
-
854
- static int _canvas_action(Ihandle* ih, float posx, float posy)
855
- {
856
- char* func = (char*)IupGetAttribute(ih,"RB_ACTION");
857
- VALUE v;
858
- if(func) {
859
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
860
- if(strcmp(func,"Proc")==0) {
861
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_ACTION");
862
- v = rb_funcall(proc,rb_intern("call"),3,node,rb_float_new(posx),rb_float_new(posy));
863
- } else {
864
- v = rb_funcall(Qnil,rb_intern(func),3,node,rb_float_new(posx),rb_float_new(posy));
865
- }
866
- return NUM2INT(v);
867
- }
868
- return IUP_DEFAULT;
869
- }
870
-
871
- static int _toggle_action(Ihandle* ih, int state)
872
- {
873
- char* func = (char*)IupGetAttribute(ih,"RB_ACTION");
874
- VALUE v;
875
- if(func) {
876
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
877
- if(strcmp(func,"Proc")==0) {
878
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_ACTION");
879
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(state));
880
- } else {
881
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(state));
882
- }
883
- return NUM2INT(v);
884
- }
885
- return IUP_DEFAULT;
886
- }
887
-
888
- static int _button_action(Ihandle* ih)
889
- {
890
- char* func = (char*)IupGetAttribute(ih,"RB_ACTION");
891
- VALUE v;
892
- if(func) {
893
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
894
- if(strcmp(func,"Proc")==0) {
895
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_ACTION");
896
- v = rb_funcall(proc,rb_intern("call"),1,node);
897
- } else {
898
- v = rb_funcall(rb_cObject,rb_intern(func),1,node);
899
- }
900
- return NUM2INT(v);
901
- }
902
- return IUP_DEFAULT;
903
- }
904
-
905
- static int _list_action(Ihandle* ih, char *text, int pos, int state)
906
- {
907
- char* func = (char*)IupGetAttribute(ih,"RB_ACTION");
908
- VALUE v;
909
- if(func) {
910
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
911
- if(strcmp(func,"Proc")==0) {
912
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_ACTION");
913
- v = rb_funcall(proc,rb_intern("call"),4,node,rb_str_new2(text),INT2FIX(pos),INT2FIX(state));
914
- } else {
915
- v = rb_funcall(rb_cObject,rb_intern(func),4,node,rb_str_new2(text),INT2FIX(pos),INT2FIX(state));
916
- }
917
- return NUM2INT(v);
918
- }
919
- return IUP_DEFAULT;
920
- }
921
-
922
- static int _idle_cb()
923
- {
924
- VALUE v;
925
- if(IdleProc!=Qnil) {
926
- v = rb_funcall(IdleProc,rb_intern("call"),0);
927
- return NUM2INT(v);
928
- }
929
- else if(*IdleAction) {
930
- v = rb_funcall(rb_cObject,rb_intern(IdleAction),0);
931
- return NUM2INT(v);
932
- }
933
- return IUP_DEFAULT;
934
- }
935
-
936
- static int _postdraw_cb(Ihandle* ih,void *cnv)
937
- {
938
- char* func = (char*)IupGetAttribute(ih,"RB_POSTDRAW_CB");
939
- VALUE v;
940
- if(func) {
941
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
942
- if(strcmp(func,"Proc")==0) {
943
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_POSTDRAW_CB");
944
- v = rb_funcall(proc,rb_intern("call"),2,node,rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
945
- } else {
946
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
947
- }
948
- return NUM2INT(v);
949
- }
950
- return IUP_DEFAULT;
951
- }
952
-
953
- static int _predraw_cb(Ihandle* ih,void *cnv)
954
- {
955
- char* func = (char*)IupGetAttribute(ih,"RB_PREDRAW_CB");
956
- VALUE v;
957
- if(func) {
958
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
959
- if(strcmp(func,"Proc")==0) {
960
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_PREDRAW_CB");
961
- v = rb_funcall(proc,rb_intern("call"),2,node,rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
962
- } else {
963
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
964
- }
965
- return NUM2INT(v);
966
- }
967
- return IUP_DEFAULT;
968
- }
969
-
970
- static int _change_cb(Ihandle* ih, unsigned char r, unsigned char g, unsigned char b)
971
- {
972
- char* func = (char*)IupGetAttribute(ih,"RB_CHANGE_CB");
973
- VALUE v;
974
- if(func) {
975
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
976
- if(strcmp(func,"Proc")==0) {
977
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_CHANGE_CB");
978
- v = rb_funcall(proc,rb_intern("call"),4,node,INT2FIX(r),INT2FIX(g),INT2FIX(b));
979
- } else {
980
- v = rb_funcall(rb_cObject,rb_intern(func),4,node,INT2FIX(r),INT2FIX(g),INT2FIX(b));
981
- }
982
- return NUM2INT(v);
983
- }
984
- return IUP_DEFAULT;
985
- }
986
-
987
- static int _drag_cb(Ihandle* ih, unsigned char r, unsigned char g, unsigned char b)
988
- {
989
- char* func = (char*)IupGetAttribute(ih,"RB_DRAG_CB");
990
- VALUE v;
991
- if(func) {
992
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
993
- if(strcmp(func,"Proc")==0) {
994
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_DRAG_CB");
995
- v = rb_funcall(proc,rb_intern("call"),4,node,INT2FIX(r),INT2FIX(g),INT2FIX(b));
996
- } else {
997
- v = rb_funcall(rb_cObject,rb_intern(func),4,node,INT2FIX(r),INT2FIX(g),INT2FIX(b));
998
- }
999
- return NUM2INT(v);
1000
- }
1001
- return IUP_DEFAULT;
1002
- }
1003
-
1004
- static int _tabchange_cb(Ihandle* ih, Ihandle* newtab, Ihandle* oldtab)
1005
- {
1006
- char* func = (char*)IupGetAttribute(ih,"RB_TABCHANGE_CB");
1007
- VALUE v;
1008
- if(func) {
1009
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1010
- VALUE node_old = (VALUE)IupGetAttribute(oldtab,"RB_CLASS");
1011
- VALUE node_new = (VALUE)IupGetAttribute(newtab,"RB_CLASS");
1012
- if(strcmp(func,"Proc")==0) {
1013
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_TABCHANGE_CB");
1014
- v = rb_funcall(proc,rb_intern("call"),3,node,node_new,node_old);
1015
- } else {
1016
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,node_new,node_old);
1017
- }
1018
- return NUM2INT(v);
1019
- }
1020
- return IUP_DEFAULT;
1021
- }
1022
-
1023
- static int _button_press_cb(Ihandle* ih, double angle)
1024
- {
1025
- char* func = (char*)IupGetAttribute(ih,"RB_BUTTON_PRESS_CB");
1026
- VALUE v;
1027
- if(func) {
1028
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1029
- if(strcmp(func,"Proc")==0) {
1030
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_BUTTON_PRESS_CB");
1031
- v = rb_funcall(proc,rb_intern("call"),2,node,rb_float_new(angle));
1032
- } else {
1033
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,rb_float_new(angle));
1034
- }
1035
- return NUM2INT(v);
1036
- }
1037
- return IUP_DEFAULT;
1038
- }
1039
-
1040
- static int _button_release_cb(Ihandle* ih, double angle)
1041
- {
1042
- char* func = (char*)IupGetAttribute(ih,"RB_BUTTON_RELEASE_CB");
1043
- VALUE v;
1044
- if(func) {
1045
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1046
- if(strcmp(func,"Proc")==0) {
1047
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_BUTTON_RELEASE_CB");
1048
- v = rb_funcall(proc,rb_intern("call"),2,node,rb_float_new(angle));
1049
- } else {
1050
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,rb_float_new(angle));
1051
- }
1052
- return NUM2INT(v);
1053
- }
1054
- return IUP_DEFAULT;
1055
- }
1056
-
1057
- static int _mousemove_cb(Ihandle* ih, double angle)
1058
- {
1059
- char* func = (char*)IupGetAttribute(ih,"RB_MOUSEMOVE_CB");
1060
- VALUE v;
1061
- if(func) {
1062
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1063
- if(strcmp(func,"Proc")==0) {
1064
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_MOUSEMOVE_CB");
1065
- v = rb_funcall(proc,rb_intern("call"),2,node,rb_float_new(angle));
1066
- } else {
1067
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,rb_float_new(angle));
1068
- }
1069
- return NUM2INT(v);
1070
- }
1071
- return IUP_DEFAULT;
1072
- }
1073
-
1074
- static int _draw_cb(Ihandle* ih, void* cnv)
1075
- {
1076
- char* func = (char*)IupGetAttribute(ih,"RB_DRAW_CB");
1077
- VALUE v;
1078
- if(func) {
1079
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1080
- if(strcmp(func,"Proc")==0) {
1081
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_DRAW_CB");
1082
- v = rb_funcall(proc,rb_intern("call"),2,node,
1083
- rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
1084
- } else {
1085
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,
1086
- rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
1087
- }
1088
- return NUM2INT(v);
1089
- }
1090
- return IUP_DEFAULT;
1091
- }
1092
-
1093
- static char* _cell_cb(Ihandle* ih, int cell)
1094
- {
1095
- char* func = (char*)IupGetAttribute(ih,"RB_CELL_CB");
1096
- VALUE v;
1097
- if(func) {
1098
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1099
- if(strcmp(func,"Proc")==0) {
1100
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_CELL_CB");
1101
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(cell));
1102
- } else {
1103
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(cell));
1104
- }
1105
- if(v==Qnil)
1106
- return NULL;
1107
- else
1108
- return RSTRING(v)->ptr;
1109
- }
1110
- return NULL;
1111
- }
1112
-
1113
- static int _extended_cb(Ihandle* ih, int cell)
1114
- {
1115
- char* func = (char*)IupGetAttribute(ih,"RB_EXTENDED_CB");
1116
- VALUE v;
1117
- if(func) {
1118
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1119
- if(strcmp(func,"Proc")==0) {
1120
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_EXTENDED_CB");
1121
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(cell));
1122
- } else {
1123
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(cell));
1124
- }
1125
- return NUM2INT(v);
1126
- }
1127
- return IUP_DEFAULT;
1128
- }
1129
-
1130
- static int _colorbar_select_cb(Ihandle* ih, int cell,int type)
1131
- {
1132
- char* func = (char*)IupGetAttribute(ih,"RB_SELECT_CB");
1133
- VALUE v;
1134
- if(func) {
1135
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1136
- if(strcmp(func,"Proc")==0) {
1137
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_SELECT_CB");
1138
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(cell),INT2FIX(type));
1139
- } else {
1140
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(cell),INT2FIX(type));
1141
- }
1142
- return NUM2INT(v);
1143
- }
1144
- return IUP_DEFAULT;
1145
- }
1146
-
1147
- static int _switch_cb(Ihandle* ih, int prim_cell,int sec_cell)
1148
- {
1149
- char* func = (char*)IupGetAttribute(ih,"RB_SWITCH_CB");
1150
- VALUE v;
1151
- if(func) {
1152
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1153
- if(strcmp(func,"Proc")==0) {
1154
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_SWITCH_CB");
1155
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(prim_cell),INT2FIX(sec_cell));
1156
- } else {
1157
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(prim_cell),INT2FIX(sec_cell));
1158
- }
1159
- return NUM2INT(v);
1160
- }
1161
- return IUP_DEFAULT;
1162
- }
1163
-
1164
- static int _height_cb(Ihandle* ih, int line)
1165
- {
1166
- char* func = (char*)IupGetAttribute(ih,"RB_HEIGHT_CB");
1167
- VALUE v;
1168
- if(func) {
1169
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1170
- if(strcmp(func,"Proc")==0) {
1171
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_HEIGHT_CB");
1172
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(line));
1173
- } else {
1174
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(line));
1175
- }
1176
- return NUM2INT(v);
1177
- }
1178
- return IUP_DEFAULT;
1179
- }
1180
-
1181
- static int _width_cb(Ihandle* ih, int column)
1182
- {
1183
- char* func = (char*)IupGetAttribute(ih,"RB_WIDTH_CB");
1184
- VALUE v;
1185
- if(func) {
1186
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1187
- if(strcmp(func,"Proc")==0) {
1188
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_WIDTH_CB");
1189
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(column));
1190
- } else {
1191
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(column));
1192
- }
1193
- return NUM2INT(v);
1194
- }
1195
- return IUP_DEFAULT;
1196
- }
1197
-
1198
- static int _hspan_cb(Ihandle* ih, int line, int column)
1199
- {
1200
- char* func = (char*)IupGetAttribute(ih,"RB_HSPAN_CB");
1201
- VALUE v;
1202
- if(func) {
1203
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1204
- if(strcmp(func,"Proc")==0) {
1205
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_HSPAN_CB");
1206
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(line),INT2FIX(column));
1207
- } else {
1208
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(line),INT2FIX(column));
1209
- }
1210
- return NUM2INT(v);
1211
- }
1212
- return IUP_DEFAULT;
1213
- }
1214
-
1215
- static int _scrolling_cb(Ihandle* ih, int line, int column)
1216
- {
1217
- char* func = (char*)IupGetAttribute(ih,"RB_SCROLLING_CB");
1218
- VALUE v;
1219
- if(func) {
1220
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1221
- if(strcmp(func,"Proc")==0) {
1222
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_SCROLLING_CB");
1223
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(line),INT2FIX(column));
1224
- } else {
1225
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(line),INT2FIX(column));
1226
- }
1227
- return NUM2INT(v);
1228
- }
1229
- return IUP_DEFAULT;
1230
- }
1231
-
1232
- static int _vspan_cb(Ihandle* ih, int line, int column)
1233
- {
1234
- char* func = (char*)IupGetAttribute(ih,"RB_VSPAN_CB");
1235
- VALUE v;
1236
- if(func) {
1237
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1238
- if(strcmp(func,"Proc")==0) {
1239
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_VSPAN_CB");
1240
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(line),INT2FIX(column));
1241
- } else {
1242
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(line),INT2FIX(column));
1243
- }
1244
- return NUM2INT(v);
1245
- }
1246
- return IUP_DEFAULT;
1247
- }
1248
-
1249
- static int _ncols_cb(Ihandle* ih)
1250
- {
1251
- char* func = (char*)IupGetAttribute(ih,"RB_NCOLS_CB");
1252
- VALUE v;
1253
- if(func) {
1254
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1255
- if(strcmp(func,"Proc")==0) {
1256
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_NCOLS_CB");
1257
- v = rb_funcall(proc,rb_intern("call"),1,node);
1258
- } else {
1259
- v = rb_funcall(rb_cObject,rb_intern(func),1,node);
1260
- }
1261
- return NUM2INT(v);
1262
- }
1263
- return IUP_DEFAULT;
1264
- }
1265
-
1266
- static int _nlines_cb(Ihandle* ih)
1267
- {
1268
- char* func = (char*)IupGetAttribute(ih,"RB_NLINES_CB");
1269
- VALUE v;
1270
- if(func) {
1271
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1272
- if(strcmp(func,"Proc")==0) {
1273
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_NLINES_CB");
1274
- v = rb_funcall(proc,rb_intern("call"),1,node);
1275
- } else {
1276
- v = rb_funcall(rb_cObject,rb_intern(func),1,node);
1277
- }
1278
- return NUM2INT(v);
1279
- }
1280
- return IUP_DEFAULT;
1281
- }
1282
-
1283
- static int _mouseclick_cb(Ihandle* ih,int button, int pressed, int line, int column, int x, int y, char* status)
1284
- {
1285
- char* func = (char*)IupGetAttribute(ih,"RB_MOUSECLICK_CB");
1286
- VALUE v;
1287
- if(func) {
1288
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1289
- if(strcmp(func,"Proc")==0) {
1290
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_MOUSECLICK_CB");
1291
- v = rb_funcall(proc,rb_intern("call"),8,node,INT2FIX(button),INT2FIX(pressed),
1292
- INT2FIX(line),INT2FIX(column),INT2FIX(x),INT2FIX(y),rb_str_new2(status));
1293
- } else {
1294
- v = rb_funcall(rb_cObject,rb_intern(func),8,node,INT2FIX(button),INT2FIX(pressed),
1295
- INT2FIX(line),INT2FIX(column),INT2FIX(x),INT2FIX(y),rb_str_new2(status));
1296
- }
1297
- return NUM2INT(v);
1298
- }
1299
- return IUP_DEFAULT;
1300
- }
1301
-
1302
- static int _mousemotion_cb(Ihandle* ih,int line, int column, int x, int y, char* r)
1303
- {
1304
- char* func = (char*)IupGetAttribute(ih,"RB_MOUSEMOTION_CB");
1305
- VALUE v;
1306
- if(func) {
1307
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1308
- if(strcmp(func,"Proc")==0) {
1309
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_MOUSEMOTION_CB");
1310
- v = rb_funcall(proc,rb_intern("call"),8,node,
1311
- INT2FIX(line),INT2FIX(column),INT2FIX(x),INT2FIX(y),rb_str_new2(r));
1312
- } else {
1313
- v = rb_funcall(rb_cObject,rb_intern(func),8,node,
1314
- INT2FIX(line),INT2FIX(column),INT2FIX(x),INT2FIX(y),rb_str_new2(r));
1315
- }
1316
- return NUM2INT(v);
1317
- }
1318
- return IUP_DEFAULT;
1319
- }
1320
-
1321
- static int _motion_cb(Ihandle* ih,int x, int y, char* status)
1322
- {
1323
- char* func = (char*)IupGetAttribute(ih,"RB_MOTION_CB");
1324
- VALUE v;
1325
- if(func) {
1326
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1327
- if(strcmp(func,"Proc")==0) {
1328
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_MOTION_CB");
1329
- v = rb_funcall(proc,rb_intern("call"),4,node,
1330
- INT2FIX(x),INT2FIX(y),rb_str_new2(status));
1331
- } else {
1332
- v = rb_funcall(rb_cObject,rb_intern(func),4,node,
1333
- INT2FIX(x),INT2FIX(y),rb_str_new2(status));
1334
- }
1335
- return NUM2INT(v);
1336
- }
1337
- return IUP_DEFAULT;
1338
- }
1339
-
1340
- static int _cell_draw_cb(Ihandle* ih,int line, int column, int xmin, int xmax, int ymin, int ymax)
1341
- {
1342
- char* func = (char*)IupGetAttribute(ih,"RB_DRAW_CB");
1343
- VALUE v;
1344
- void *cnv = (void*)cdActiveCanvas();
1345
- if(func) {
1346
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1347
- if(strcmp(func,"Proc")==0) {
1348
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_DRAW_CB");
1349
- v = rb_funcall(proc,rb_intern("call"),8,node,
1350
- INT2FIX(line),INT2FIX(column),INT2FIX(xmin),INT2FIX(xmax),INT2FIX(ymin),INT2FIX(ymax),
1351
- rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
1352
- } else {
1353
- v = rb_funcall(rb_cObject,rb_intern(func),8,node,
1354
- INT2FIX(line),INT2FIX(column),INT2FIX(xmin),INT2FIX(xmax),INT2FIX(ymin),INT2FIX(ymax),rb_funcall(rb_cCdCanvas,rb_intern("new"),1,UINT2NUM((unsigned)cnv)));
1355
- }
1356
- return NUM2INT(v);
1357
- }
1358
- return IUP_DEFAULT;
1359
- }
1360
-
1361
- static int _delete_cb(Ihandle* ih, int index, int sample_index, float x, float y)
1362
- {
1363
- char* func = (char*)IupGetAttribute(ih,"RB_DELETE_CB");
1364
- VALUE v;
1365
- if(func) {
1366
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1367
- if(strcmp(func,"Proc")==0) {
1368
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_DELETE_CB");
1369
- v = rb_funcall(proc,rb_intern("call"),5,node,INT2FIX(index),
1370
- INT2FIX(sample_index),rb_float_new(x),rb_float_new(y));
1371
- } else {
1372
- v = rb_funcall(rb_cObject,rb_intern(func),5,node,INT2FIX(index),
1373
- INT2FIX(sample_index),rb_float_new(x),rb_float_new(y));
1374
- }
1375
- return NUM2INT(v);
1376
- }
1377
- return IUP_DEFAULT;
1378
- }
1379
-
1380
- static int _select_cb(Ihandle* ih, int index, int sample_index, float x, float y, int select)
1381
- {
1382
- char* func = (char*)IupGetAttribute(ih,"RB_SELECT_CB");
1383
- VALUE v;
1384
- if(func) {
1385
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1386
- if(strcmp(func,"Proc")==0) {
1387
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_SELECT_CB");
1388
- v = rb_funcall(proc,rb_intern("call"),6,node,INT2FIX(index),
1389
- INT2FIX(sample_index),rb_float_new(x),rb_float_new(y),INT2FIX(select));
1390
- } else {
1391
- v = rb_funcall(rb_cObject,rb_intern(func),6,node,INT2FIX(index),
1392
- INT2FIX(sample_index),rb_float_new(x),rb_float_new(y),INT2FIX(select));
1393
- }
1394
- return NUM2INT(v);
1395
- }
1396
- return IUP_DEFAULT;
1397
- }
1398
-
1399
- static int _edit_cb(Ihandle* ih, int index, int sample_index, float x, float y, float* new_x, float* new_y)
1400
- {
1401
- char* func = (char*)IupGetAttribute(ih,"RB_EDIT_CB");
1402
- VALUE v;
1403
- if(func) {
1404
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1405
- if(strcmp(func,"Proc")==0) {
1406
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_EDIT_CB");
1407
- v = rb_funcall(proc,rb_intern("call"),7,node,INT2FIX(index),
1408
- INT2FIX(sample_index),rb_float_new(x),rb_float_new(y),rb_float_new(*new_x),rb_float_new(*new_y));
1409
- } else {
1410
- v = rb_funcall(rb_cObject,rb_intern(func),7,node,INT2FIX(index),
1411
- INT2FIX(sample_index),rb_float_new(x),rb_float_new(y),rb_float_new(*new_x),rb_float_new(*new_y));
1412
- }
1413
- return NUM2INT(v);
1414
- }
1415
- return IUP_DEFAULT;
1416
- }
1417
-
1418
- static int _list_edit_cb(Ihandle *ih, int c, char *new_value)
1419
- {
1420
- char* func = (char*)IupGetAttribute(ih,"RB_EDIT_CB");
1421
- VALUE v;
1422
- if(func) {
1423
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1424
- if(strcmp(func,"Proc")==0) {
1425
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_EDIT_CB");
1426
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(c),rb_str_new2(new_value));
1427
- } else {
1428
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(c),rb_str_new2(new_value));
1429
- }
1430
- return NUM2INT(v);
1431
- }
1432
- return IUP_DEFAULT;
1433
- }
1434
-
1435
- static int _text_action(Ihandle *ih, int c, char *new_value)
1436
- {
1437
- char* func = (char*)IupGetAttribute(ih,"RB_ACTION");
1438
- VALUE v;
1439
- if(func) {
1440
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1441
- if(strcmp(func,"Proc")==0) {
1442
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_ACTION");
1443
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(c),rb_str_new2(new_value));
1444
- } else {
1445
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(c),rb_str_new2(new_value));
1446
- }
1447
- return NUM2INT(v);
1448
- }
1449
- return IUP_DEFAULT;
1450
- }
1451
-
1452
- static int _button_cb(Ihandle* ih, int button, int pressed, int x, int y, char* status)
1453
- {
1454
- char* func = (char*)IupGetAttribute(ih,"RB_BUTTON_CB");
1455
- VALUE v;
1456
- if(func) {
1457
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1458
- if(strcmp(func,"Proc")==0) {
1459
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_BUTTON_CB");
1460
- v = rb_funcall(proc,rb_intern("call"),6,node,INT2FIX(button),INT2FIX(pressed),
1461
- INT2FIX(x),INT2FIX(y),rb_str_new2(status));
1462
- } else {
1463
- v = rb_funcall(rb_cObject,rb_intern(func),6,node,INT2FIX(button),INT2FIX(pressed),
1464
- INT2FIX(x),INT2FIX(y),rb_str_new2(status));
1465
- }
1466
- return NUM2INT(v);
1467
- }
1468
- return IUP_DEFAULT;
1469
- }
1470
-
1471
- static int _executeleaf_cb(Ihandle* ih, int id)
1472
- {
1473
- char* func = (char*)IupGetAttribute(ih,"RB_EXECUTELEAF_CB");
1474
- VALUE v;
1475
- if(func) {
1476
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1477
- if(strcmp(func,"Proc")==0) {
1478
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_EXECUTELEAF_CB");
1479
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(id));
1480
- } else {
1481
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(id));
1482
- }
1483
- return NUM2INT(v);
1484
- }
1485
- return IUP_DEFAULT;
1486
- }
1487
-
1488
- static int _branchopen_cb(Ihandle* ih, int id)
1489
- {
1490
- char* func = (char*)IupGetAttribute(ih,"RB_BRANCHOPEN_CB");
1491
- VALUE v;
1492
- if(func) {
1493
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1494
- if(strcmp(func,"Proc")==0) {
1495
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_BRANCHOPEN_CB");
1496
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(id));
1497
- } else {
1498
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(id));
1499
- }
1500
- return NUM2INT(v);
1501
- }
1502
- return IUP_DEFAULT;
1503
- }
1504
-
1505
- static int _branchclose_cb(Ihandle* ih, int id)
1506
- {
1507
- char* func = (char*)IupGetAttribute(ih,"RB_BRANCHCLOSE_CB");
1508
- VALUE v;
1509
- if(func) {
1510
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1511
- if(strcmp(func,"Proc")==0) {
1512
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_BRANCHCLOSE_CB");
1513
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(id));
1514
- } else {
1515
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(id));
1516
- }
1517
- return NUM2INT(v);
1518
- }
1519
- return IUP_DEFAULT;
1520
- }
1521
-
1522
- static int _rightclick_cb(Ihandle* ih, int id)
1523
- {
1524
- char* func = (char*)IupGetAttribute(ih,"RB_RIGHTCLICK_CB");
1525
- VALUE v;
1526
- if(func) {
1527
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1528
- if(strcmp(func,"Proc")==0) {
1529
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_RIGHTCLICK_CB");
1530
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(id));
1531
- } else {
1532
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(id));
1533
- }
1534
- return NUM2INT(v);
1535
- }
1536
- return IUP_DEFAULT;
1537
- }
1538
-
1539
- static int _k_any_cb(Ihandle* ih, int c)
1540
- {
1541
- extern char *iupKeyCodeToName(int c);
1542
- char* func = NULL;
1543
- VALUE v;
1544
- static char key[100];
1545
- static char pkey[100];
1546
- sprintf(key,"RB_%s",(char*)iupKeyCodeToName(c));
1547
- func = (char*)IupGetAttribute(ih,key);
1548
- if(func==NULL) {
1549
- func = (char*)IupGetAttribute(ih,"RB_K_ANY");
1550
- strcpy(key,"RB_K_ANY");
1551
- }
1552
- if(func) {
1553
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1554
- if(strcmp(func,"Proc")==0) {
1555
- VALUE proc;
1556
- sprintf(pkey,"RB_PROC_%s",&key[3]);
1557
- proc = (VALUE)IupGetAttribute(ih,pkey);
1558
- v = rb_funcall(proc,rb_intern("call"),2,node,INT2FIX(c));
1559
- } else {
1560
- v = rb_funcall(rb_cObject,rb_intern(func),2,node,INT2FIX(c));
1561
- }
1562
- return NUM2INT(v);
1563
- }
1564
- return IUP_DEFAULT;
1565
- }
1566
-
1567
- static int _renamenode_cb(Ihandle* ih, int id, char *name)
1568
- {
1569
- char* func = (char*)IupGetAttribute(ih,"RB_RENAMENODE_CB");
1570
- VALUE v;
1571
- if(func) {
1572
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1573
- if(strcmp(func,"Proc")==0) {
1574
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_RENAMENODE_CB");
1575
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(id),rb_str_new2(name));
1576
- } else {
1577
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(id),rb_str_new2(name));
1578
- }
1579
- return NUM2INT(v);
1580
- }
1581
- return IUP_DEFAULT;
1582
- }
1583
-
1584
- static int _rename_cb(Ihandle* ih, int id, char *name)
1585
- {
1586
- char* func = (char*)IupGetAttribute(ih,"RB_RENAME_CB");
1587
- VALUE v;
1588
- if(func) {
1589
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1590
- if(strcmp(func,"Proc")==0) {
1591
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_RENAME_CB");
1592
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(id),rb_str_new2(name));
1593
- } else {
1594
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(id),rb_str_new2(name));
1595
- }
1596
- return NUM2INT(v);
1597
- }
1598
- return IUP_DEFAULT;
1599
- }
1600
-
1601
- static int _dragdrop_cb(Ihandle *ih, int drag_id, int drop_id, int isshift, int iscontrol)
1602
- {
1603
- char* func = (char*)IupGetAttribute(ih,"RB_DRAGDROP_CB");
1604
- VALUE v;
1605
- if(func) {
1606
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1607
- if(strcmp(func,"Proc")==0) {
1608
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_DRAGDROP_CB");
1609
- v = rb_funcall(proc,rb_intern("call"),5,node,
1610
- INT2FIX(drag_id),INT2FIX(drop_id),INT2FIX(isshift),INT2FIX(iscontrol));
1611
- } else {
1612
- v = rb_funcall(rb_cObject,rb_intern(func),5,node,
1613
- INT2FIX(drag_id),INT2FIX(drop_id),INT2FIX(isshift),INT2FIX(iscontrol));
1614
- }
1615
- return NUM2INT(v);
1616
- }
1617
- return IUP_DEFAULT;
1618
- }
1619
-
1620
- static int _action_cb(Ihandle* ih)
1621
- {
1622
- char *key = "RB_PROC_ACTION";
1623
- char* func = (char*)IupGetAttribute(ih,"RB_ACTION");
1624
- VALUE v;
1625
- if(func==NULL) {
1626
- func = (char*)IupGetAttribute(ih,"RB_ACTION_CB");
1627
- key = "RB_PROC_ACTION_CB";
1628
- }
1629
- if(func) {
1630
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1631
- if(strcmp(func,"Proc")==0) {
1632
- VALUE proc = (VALUE)IupGetAttribute(ih,key);
1633
- v = rb_funcall(proc,rb_intern("call"),1,node);
1634
- } else {
1635
- v = rb_funcall(rb_cObject,rb_intern(func),1,node);
1636
- }
1637
- return NUM2INT(v);
1638
- }
1639
- return IUP_DEFAULT;
1640
- }
1641
-
1642
- static int _mdiactivate_cb(Ihandle* ih)
1643
- {
1644
- char* func = (char*)IupGetAttribute(ih,"RB_MDIACTIVATE_CB");
1645
- VALUE v;
1646
- if(func) {
1647
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1648
- if(strcmp(func,"Proc")==0) {
1649
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_MDIACTIVATE_CB");
1650
- v = rb_funcall(proc,rb_intern("call"),1,node);
1651
- } else {
1652
- v = rb_funcall(rb_cObject,rb_intern(func),1,node);
1653
- }
1654
- return NUM2INT(v);
1655
- }
1656
- return IUP_DEFAULT;
1657
- }
1658
-
1659
- static int _getfocus_cb(Ihandle* ih)
1660
- {
1661
- char* func = (char*)IupGetAttribute(ih,"RB_GETFOCUS_CB");
1662
- VALUE v;
1663
- if(func) {
1664
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1665
- if(strcmp(func,"Proc")==0) {
1666
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_GETFOCUS_CB");
1667
- v = rb_funcall(proc,rb_intern("call"),1,node);
1668
- } else {
1669
- v = rb_funcall(rb_cObject,rb_intern(func),1,node);
1670
- }
1671
- return NUM2INT(v);
1672
- }
1673
- return IUP_DEFAULT;
1674
- }
1675
-
1676
- static int _killfocus_cb(Ihandle* ih)
1677
- {
1678
- char* func = (char*)IupGetAttribute(ih,"RB_KILLFOCUS_CB");
1679
- VALUE v;
1680
- if(func) {
1681
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1682
- if(strcmp(func,"Proc")==0) {
1683
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_KILLFOCUS_CB");
1684
- v = rb_funcall(proc,rb_intern("call"),1,node);
1685
- } else {
1686
- v = rb_funcall(rb_cObject,rb_intern(func),1,node);
1687
- }
1688
- return NUM2INT(v);
1689
- }
1690
- return IUP_DEFAULT;
1691
- }
1692
-
1693
- static int _trayclick_cb(Ihandle* ih, int b, int press, int dclick)
1694
- {
1695
- char* func = (char*)IupGetAttribute(ih,"RB_TRAYCLICK_CB");
1696
- VALUE v;
1697
- if(func) {
1698
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1699
- if(strcmp(func,"Proc")==0) {
1700
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_TRAYCLICK_CB");
1701
- v = rb_funcall(proc,rb_intern("call"),4,node,INT2FIX(b),rb_float_new(press),rb_float_new(dclick));
1702
- } else {
1703
- v = rb_funcall(rb_cObject,rb_intern(func),4,node,INT2FIX(b),rb_float_new(press),rb_float_new(dclick));
1704
- }
1705
- return NUM2INT(v);
1706
- }
1707
- return IUP_DEFAULT;
1708
- }
1709
-
1710
- static int _scroll_cb(Ihandle* ih, int op, float posx, float posy)
1711
- {
1712
- char* func = (char*)IupGetAttribute(ih,"RB_SCROLL_CB");
1713
- VALUE v;
1714
- if(func) {
1715
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1716
- if(strcmp(func,"Proc")==0) {
1717
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_SCROLL_CB");
1718
- v = rb_funcall(proc,rb_intern("call"),4,node,INT2FIX(op),rb_float_new(posx),rb_float_new(posy));
1719
- } else {
1720
- v = rb_funcall(rb_cObject,rb_intern(func),4,node,INT2FIX(op),rb_float_new(posx),rb_float_new(posy));
1721
- }
1722
- return NUM2INT(v);
1723
- }
1724
- return IUP_DEFAULT;
1725
- }
1726
-
1727
- static int _resize_cb(Ihandle* ih, int width, int height)
1728
- {
1729
- char* func = (char*)IupGetAttribute(ih,"RB_RESIZE_CB");
1730
- VALUE v;
1731
- if(func) {
1732
- VALUE node = (VALUE)IupGetAttribute(ih,"RB_CLASS");
1733
- if(strcmp(func,"Proc")==0) {
1734
- VALUE proc = (VALUE)IupGetAttribute(ih,"RB_PROC_RESIZE_CB");
1735
- v = rb_funcall(proc,rb_intern("call"),3,node,INT2FIX(width),INT2FIX(height));
1736
- } else {
1737
- v = rb_funcall(rb_cObject,rb_intern(func),3,node,INT2FIX(width),INT2FIX(height));
1738
- }
1739
- return NUM2INT(v);
1740
- }
1741
- return IUP_DEFAULT;
1742
- }
1743
-
1744
- VALUE rb_IupGetCallback(VALUE node,VALUE v_name)
1745
- {
1746
- const char *name = RSTRING(v_name)->ptr;
1747
- Icallback v;
1748
- VALUE v_ih = rb_iv_get(node,"@ihandle");
1749
- v = IupGetCallback((Ihandle*)NUM2UINT(v_ih),name);
1750
- return UINT2NUM((unsigned)v);
1751
- }
1752
-
1753
- VALUE rb_IupSetCallback(VALUE node,VALUE v_name,VALUE v_func)
1754
- {
1755
- const char *name = RSTRING(v_name)->ptr;
1756
- const char *func = NULL;
1757
- char cb_name[100] = "RB_";
1758
- VALUE klass = Qnil;
1759
- Icallback v = (Icallback)NULL;
1760
- VALUE v_ih = rb_iv_get(node,"@ihandle");
1761
- if(v_func!=Qnil) func = RSTRING(v_func)->ptr;
1762
- strcat(cb_name,name);
1763
- IupStoreAttribute((Ihandle*)NUM2UINT(v_ih),cb_name,func);
1764
- klass = rb_funcall(node,rb_intern("class"),0,0);
1765
- if(strcmp(name,"DRAW_CB")==0)
1766
- if(klass==rb_cIupCells)
1767
- v = (Icallback)_cell_draw_cb;
1768
- else
1769
- v = (Icallback)_draw_cb;
1770
- else if(strcmp(name,"HEIGHT_CB")==0)
1771
- v = (Icallback)_height_cb;
1772
- else if(strcmp(name,"HSPAN_CB")==0)
1773
- v = (Icallback)_hspan_cb;
1774
- else if(strcmp(name,"MOUSECLICK_CB")==0)
1775
- v = (Icallback)_mouseclick_cb;
1776
- else if(strcmp(name,"MOUSEMOTION_CB")==0)
1777
- v = (Icallback)_mousemotion_cb;
1778
- else if(strcmp(name,"MOTION_CB")==0)
1779
- v = (Icallback)_motion_cb;
1780
- else if(strcmp(name,"NCOLS_CB")==0)
1781
- v = (Icallback)_ncols_cb;
1782
- else if(strcmp(name,"NLINES_CB")==0)
1783
- v = (Icallback)_nlines_cb;
1784
- else if(strcmp(name,"SCROLLING_CB")==0)
1785
- v = (Icallback)_scrolling_cb;
1786
- else if(strcmp(name,"VSPAN_CB")==0)
1787
- v = (Icallback)_vspan_cb;
1788
- else if(strcmp(name,"WIDTH_CB")==0)
1789
- v = (Icallback)_width_cb;
1790
- else if(strcmp(name,"DELETE_CB")==0)
1791
- v = (Icallback)_delete_cb;
1792
- else if(strcmp(name,"SELECT_CB")==0) {
1793
- if(klass==rb_cIupColorbar)
1794
- v = (Icallback)_colorbar_select_cb;
1795
- else
1796
- v = (Icallback)_select_cb;
1797
- }
1798
- else if(strcmp(name,"EDIT_CB")==0) {
1799
- if(klass==rb_cIupList)
1800
- v = (Icallback)_list_edit_cb;
1801
- else
1802
- v = (Icallback)_edit_cb;
1803
- }
1804
- else if(strcmp(name,"BUTTON_CB")==0)
1805
- v = (Icallback)_button_cb;
1806
- else if(strcmp(name,"BUTTON_PRESS_CB")==0)
1807
- v = (Icallback)_button_press_cb;
1808
- else if(strcmp(name,"BUTTON_RELEASE_CB")==0)
1809
- v = (Icallback)_button_release_cb;
1810
- else if(strcmp(name,"MOUSEMOVE_CB")==0)
1811
- v = (Icallback)_mousemove_cb;
1812
- else if(strcmp(name,"SCROLL_CB")==0)
1813
- v = (Icallback)_scroll_cb;
1814
- else if(strcmp(name,"RESIZE_CB")==0)
1815
- v = (Icallback)_resize_cb;
1816
- else if(strcmp(name,"ACTION")==0) {
1817
- if(rb_class_inherited_p(klass,rb_cIupCanvas)==Qtrue)
1818
- v = (Icallback)_canvas_action;
1819
- else if(klass==rb_cIupToggle)
1820
- v = (Icallback)_toggle_action;
1821
- else if(klass==rb_cIupButton)
1822
- v = (Icallback)_button_action;
1823
- else if(klass==rb_cIupText||klass==rb_cIupMultiLine)
1824
- v = (Icallback)_text_action;
1825
- else if(klass==rb_cIupList)
1826
- v = (Icallback)_list_action;
1827
- else
1828
- v = (Icallback)_action_cb;
1829
- }
1830
- else if(strcmp(name,"ACTION_CB")==0)
1831
- v = (Icallback)_action_cb;
1832
- else if(strcmp(name,"MDIACTIVATE_CB")==0)
1833
- v = (Icallback)_mdiactivate_cb;
1834
- else if(strcmp(name,"GETFOCUS_CB")==0)
1835
- v = (Icallback)_getfocus_cb;
1836
- else if(strcmp(name,"KILLFOCUS_CB")==0)
1837
- v = (Icallback)_killfocus_cb;
1838
- else if(strcmp(name,"TRAYCLICK_CB")==0)
1839
- v = (Icallback)_trayclick_cb;
1840
- else if(strcmp(name,"DRAG_CB")==0)
1841
- v = (Icallback)_drag_cb;
1842
- else if(strcmp(name,"CHANGE_CB")==0)
1843
- v = (Icallback)_change_cb;
1844
- else if(strcmp(name,"TABCHANGE_CB")==0)
1845
- v = (Icallback)_tabchange_cb;
1846
- else if(strcmp(name,"POSTDRAW_CB")==0)
1847
- v = (Icallback)_postdraw_cb;
1848
- else if(strcmp(name,"PREDRAW_CB")==0)
1849
- v = (Icallback)_predraw_cb;
1850
- else if(strcmp(name,"CELL_CB")==0)
1851
- v = (Icallback)_cell_cb;
1852
- else if(strcmp(name,"EXTENDED_CB")==0)
1853
- v = (Icallback)_extended_cb;
1854
- else if(strcmp(name,"SWITCH_CB")==0)
1855
- v = (Icallback)_switch_cb;
1856
- else if(strcmp(name,"EXECUTELEAF_CB")==0)
1857
- v = (Icallback)_executeleaf_cb;
1858
- else if(strcmp(name,"RENAMENODE_CB")==0)
1859
- v = (Icallback)_renamenode_cb;
1860
- else if(strcmp(name,"RENAME_CB")==0)
1861
- v = (Icallback)_rename_cb;
1862
- else if(strcmp(name,"BRANCHCLOSE_CB")==0)
1863
- v = (Icallback)_branchclose_cb;
1864
- else if(strcmp(name,"BRANCHOPEN_CB")==0)
1865
- v = (Icallback)_branchopen_cb;
1866
- else if(strcmp(name,"DRAGDROP_CB")==0)
1867
- v = (Icallback)_dragdrop_cb;
1868
- else if(strcmp(name,"RIGHTCLICK_CB")==0)
1869
- v = (Icallback)_rightclick_cb;
1870
- else if(strcmp(name,"K_ANY")==0)
1871
- v = (Icallback)_k_any_cb;
1872
- else if(strncmp(name,"K_",2)==0)
1873
- v = (Icallback)_k_any_cb;
1874
- v = IupSetCallback((Ihandle*)NUM2UINT(v_ih),name,v);
1875
- return UINT2NUM((unsigned)v);
1876
- }
1877
-
1878
- VALUE rb_IupGetIdle(VALUE self)
1879
- {
1880
- Icallback v;
1881
- v = IupGetFunction("IDLE_ACTION");
1882
- if(v)
1883
- return UINT2NUM((unsigned)v);
1884
- return Qnil;
1885
- }
1886
-
1887
- VALUE rb_IupGetFunction(VALUE self,VALUE v_name)
1888
- {
1889
- const char *name = RSTRING(v_name)->ptr;
1890
- Icallback v;
1891
- v = IupGetFunction(name);
1892
- return UINT2NUM((unsigned)v);
1893
- }
1894
-
1895
- VALUE rb_IupSetIdle(VALUE self,VALUE v_func)
1896
- {
1897
- Icallback func = NULL;
1898
- Icallback v;
1899
- if(v_func==Qnil) {
1900
- *IdleAction=0;
1901
- IdleProc = Qnil;
1902
- }
1903
- else if(TYPE(v_func)==T_DATA) {
1904
- IdleProc = v_func;
1905
- func = (Icallback)_idle_cb;
1906
- }
1907
- else if(TYPE(v_func)==T_STRING) {
1908
- strcpy(IdleAction,RSTRING(v_func)->ptr);
1909
- func = (Icallback)_idle_cb;
1910
- }
1911
- v = IupSetFunction("IDLE_ACTION",func);
1912
- return UINT2NUM((unsigned)v);
1913
- }
1914
-
1915
- VALUE rb_IupSetFunction(VALUE self,VALUE v_name,VALUE v_func)
1916
- {
1917
- const char *name = RSTRING(v_name)->ptr;
1918
- Icallback func = NULL;
1919
- Icallback v;
1920
- if(strcmp(name,"IDLE_ACTION")==0) {
1921
- if(v_func==Qnil) {
1922
- *IdleAction=0;
1923
- IdleProc = Qnil;
1924
- }
1925
- else if(TYPE(v_func)==T_DATA) {
1926
- IdleProc = v_func;
1927
- func = (Icallback)_idle_cb;
1928
- }
1929
- else if(TYPE(v_func)==T_STRING) {
1930
- strcpy(IdleAction,RSTRING(v_func)->ptr);
1931
- func = (Icallback)_idle_cb;
1932
- }
1933
- } else {
1934
- func = (Icallback)_action_cb;
1935
- }
1936
- v = IupSetFunction(name,func);
1937
- return UINT2NUM((unsigned)v);
1938
- }
1939
-
1940
- VALUE rb_IupGetActionName(VALUE self)
1941
- {
1942
- const char* v;
1943
- v = IupGetActionName();
1944
- return rb_str_new2(v);
1945
- }
1946
-
1947
- VALUE rb_IupGetHandle(VALUE self,VALUE v_name)
1948
- {
1949
- const char *name = RSTRING(v_name)->ptr;
1950
- Ihandle* v;
1951
- v = IupGetHandle(name);
1952
- if(v==NULL) return Qnil;
1953
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
1954
- }
1955
-
1956
- VALUE rb_IupSetHandle(VALUE self,VALUE v_name,VALUE node)
1957
- {
1958
- const char *name = RSTRING(v_name)->ptr;
1959
- Ihandle* v;
1960
- VALUE v_ih = rb_iv_get(node,"@ihandle");
1961
- v = IupSetHandle(name,(Ihandle*)NUM2UINT(v_ih));
1962
- if(v==NULL) return Qnil;
1963
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
1964
- }
1965
-
1966
- VALUE rb_IupGetAllNames(VALUE self,VALUE v_n)
1967
- {
1968
- int n = NUM2INT(v_n);
1969
- int i;
1970
- VALUE v_r;
1971
- int v;
1972
- char **names = xmalloc(n*(sizeof(char*)));
1973
- v_r = rb_ary_new();
1974
- v = IupGetAllNames(names,n);
1975
- for(i=0;i<n && i<v;i++)
1976
- rb_ary_push(v_r,rb_str_new2(names[i]));
1977
- free(names);
1978
- return v_r;
1979
- }
1980
-
1981
- VALUE rb_IupGetAllDialogs(VALUE self,VALUE v_n)
1982
- {
1983
- int n = NUM2INT(v_n);
1984
- int i;
1985
- VALUE v_r;
1986
- int v;
1987
- char **names = xmalloc(n*(sizeof(char*)));
1988
- v_r = rb_ary_new();
1989
- v = IupGetAllDialogs(names,n);
1990
- for(i=0;i<n && i<v;i++)
1991
- rb_ary_push(v_r,rb_str_new2(names[i]));
1992
- free(names);
1993
- return v_r;
1994
- }
1995
-
1996
- VALUE rb_IupGetName(VALUE self,VALUE node)
1997
- {
1998
- char* v;
1999
- VALUE v_ih = rb_iv_get(node,"@ihandle");
2000
- v = IupGetName((Ihandle*)NUM2UINT(v_ih));
2001
- return rb_str_new2(v);
2002
- }
2003
-
2004
- VALUE rb_IupSetAttributeHandle(VALUE node,VALUE v_name,VALUE v_node_named)
2005
- {
2006
- const char* name = RSTRING(v_name)->ptr;
2007
- VALUE v_ih = rb_iv_get(node,"@ihandle");
2008
- VALUE v_ih_named = rb_iv_get(v_node_named,"@ihandle");
2009
- IupSetAttributeHandle((Ihandle*)NUM2UINT(v_ih),name,(Ihandle*)NUM2UINT(v_ih_named));
2010
- return Qnil;
2011
- }
2012
-
2013
- VALUE rb_IupGetAttributeHandle(VALUE node,VALUE v_name)
2014
- {
2015
- const char* name = RSTRING(v_name)->ptr;
2016
- VALUE v_ih = rb_iv_get(node,"@ihandle");
2017
- Ihandle* v;
2018
- v = IupGetAttributeHandle((Ihandle*)NUM2UINT(v_ih),name);
2019
- if(v==NULL) return Qnil;
2020
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
2021
- }
2022
-
2023
- VALUE rb_IupGetClassName(VALUE node)
2024
- {
2025
- char* v;
2026
- VALUE v_ih = rb_iv_get(node,"@ihandle");
2027
- v = IupGetClassName((Ihandle*)NUM2UINT(v_ih));
2028
- return rb_str_new2(v);
2029
- }
2030
- /*
2031
- VALUE rb_IupCreate(VALUE self,VALUE v_name)
2032
- {
2033
- const char *name = RSTRING(v_name)->ptr;
2034
- Ihandle* v;
2035
- v = IupCreate(name);
2036
- if(v==NULL) return Qnil;
2037
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
2038
- }
2039
-
2040
- VALUE rb_IupCreatev(int argc,VALUE *argv,VALUE self)
2041
- {
2042
- const char *name = RSTRING(argv[0])->ptr;
2043
- Ihandle* v;
2044
- int i;
2045
- void **params = (void**)xmalloc(sizeof(void*)*(argc));
2046
- for(i=0;i<argc-1;i++)
2047
- params[i] = (void*)NUM2INT(argv[i+1]);
2048
- params[i] = NULL;
2049
- v = IupCreatev(name,params);
2050
- free(params);
2051
- if(v==NULL) return Qnil;
2052
- return (VALUE)IupGetAttribute(v,"RB_CLASS");
2053
- }
2054
- */
2055
- VALUE rb_IupFill(int argc,VALUE *argv,VALUE self)
2056
- {
2057
- Ihandle* v;
2058
- v = IupFill();
2059
- if(argc==1 && TYPE(argv[0])==T_HASH)
2060
- rb_set_attribute(v,argv[0]);
2061
- if(v)
2062
- return rb_funcall(rb_cIupFill,rb_intern("new"),1,UINT2NUM((unsigned)v));
2063
- return Qnil;
2064
- }
2065
-
2066
- VALUE rb_IupRadio(int argc,VALUE *argv,VALUE self)
2067
- {
2068
- Ihandle* v;
2069
- VALUE child_node,v_hash;
2070
- VALUE v_child;
2071
- rb_scan_args(argc,argv,"11",&child_node,&v_hash);
2072
- v_child = rb_iv_get(child_node,"@ihandle");
2073
- v = IupRadio((Ihandle*)NUM2UINT(v_child));
2074
- if(TYPE(v_hash)==T_HASH)
2075
- rb_set_attribute(v,v_hash);
2076
- if(v)
2077
- return rb_funcall(rb_cIupRadio,rb_intern("new"),1,UINT2NUM((unsigned)v));
2078
- return Qnil;
2079
- }
2080
-
2081
- VALUE rb_IupVboxv(int argc,VALUE *argv,VALUE self)
2082
- {
2083
- Ihandle* v;
2084
- int i;
2085
- Ihandle *children[100];
2086
- VALUE node;
2087
- VALUE v_children,v_hash;
2088
- rb_scan_args(argc,argv,"11",&v_children,&v_hash);
2089
- for(i=0;i<RARRAY(v_children)->len;i++) {
2090
- node = RARRAY(v_children)->ptr[i];
2091
- children[i] = (Ihandle*)NUM2UINT(rb_iv_get(node,"@ihandle"));
2092
- }
2093
- children[i] = NULL;
2094
-
2095
- v = IupVboxv(children);
2096
- if(TYPE(v_hash)==T_HASH)
2097
- rb_set_attribute(v,v_hash);
2098
- if(v)
2099
- return rb_funcall(rb_cIupVbox,rb_intern("new"),1,UINT2NUM((unsigned)v));
2100
- return Qnil;
2101
- }
2102
-
2103
- VALUE rb_IupZboxv(int argc,VALUE *argv,VALUE self)
2104
- {
2105
- Ihandle* v;
2106
- int i;
2107
- Ihandle *children[100];
2108
- VALUE node;
2109
- VALUE v_children,v_hash;
2110
- rb_scan_args(argc,argv,"11",&v_children,&v_hash);
2111
- for(i=0;i<RARRAY(v_children)->len;i++) {
2112
- node = RARRAY(v_children)->ptr[i];
2113
- children[i] = (Ihandle*)NUM2UINT(rb_iv_get(node,"@ihandle"));
2114
- }
2115
- children[i] = NULL;
2116
- v = IupZboxv(children);
2117
- if(TYPE(v_hash)==T_HASH)
2118
- rb_set_attribute(v,v_hash);
2119
- if(v)
2120
- return rb_funcall(rb_cIupZbox,rb_intern("new"),1,UINT2NUM((unsigned)v));
2121
- return Qnil;
2122
- }
2123
-
2124
- VALUE rb_IupHboxv(int argc,VALUE *argv,VALUE self)
2125
- {
2126
- Ihandle* v;
2127
- int i;
2128
- Ihandle *children[100];
2129
- VALUE node;
2130
- VALUE v_children,v_hash;
2131
- rb_scan_args(argc,argv,"11",&v_children,&v_hash);
2132
- for(i=0;i<RARRAY(v_children)->len;i++) {
2133
- node = RARRAY(v_children)->ptr[i];
2134
- children[i] = (Ihandle*)NUM2UINT(rb_iv_get(node,"@ihandle"));
2135
- }
2136
- children[i] = NULL;
2137
- v = IupHboxv(children);
2138
- if(TYPE(v_hash)==T_HASH)
2139
- rb_set_attribute(v,v_hash);
2140
- if(v)
2141
- return rb_funcall(rb_cIupHbox,rb_intern("new"),1,UINT2NUM((unsigned)v));
2142
- return Qnil;
2143
- }
2144
-
2145
- VALUE rb_IupFrame(int argc,VALUE *argv,VALUE self)
2146
- {
2147
- Ihandle* v;
2148
- VALUE child_node,v_hash,v_child;
2149
- rb_scan_args(argc,argv,"11",&child_node,&v_hash);
2150
- v_child = rb_iv_get(child_node,"@ihandle");
2151
- v = IupFrame((Ihandle*)NUM2UINT(v_child));
2152
- if(TYPE(v_hash)==T_HASH)
2153
- rb_set_attribute(v,v_hash);
2154
- if(v)
2155
- return rb_funcall(rb_cIupFrame,rb_intern("new"),1,UINT2NUM((unsigned)v));
2156
- return Qnil;
2157
- }
2158
-
2159
- VALUE rb_IupImage(int argc,VALUE *argv,VALUE self)
2160
- {
2161
- int width;
2162
- int height;
2163
- int i;
2164
- Ihandle* v;
2165
- VALUE v_width;
2166
- VALUE v_height;
2167
- VALUE v_pixmap;
2168
- unsigned char *pixmap = NULL;
2169
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2170
- v_width = rb_hash_delete(argv[0],ID2SYM(rb_intern("width")));
2171
- v_height = rb_hash_delete(argv[0],ID2SYM(rb_intern("height")));
2172
- v_pixmap = rb_hash_delete(argv[0],ID2SYM(rb_intern("pixmap")));
2173
- } else {
2174
- rb_scan_args(argc,argv,"30",&v_width,&v_height,&v_pixmap);
2175
- }
2176
- if(v_width==Qnil||v_height==Qnil||v_pixmap==Qnil) {
2177
- rb_raise(rb_eIupError,"Invalid Argument");
2178
- }
2179
- width = NUM2INT(v_width);
2180
- height = NUM2INT(v_height);
2181
- pixmap = xmalloc(RARRAY(v_pixmap)->len);
2182
- for(i=0;i<RARRAY(v_pixmap)->len;i++)
2183
- pixmap[i] = NUM2INT(RARRAY(v_pixmap)->ptr[i]);
2184
- v = IupImage(width,height,pixmap);
2185
- free(pixmap);
2186
- if(argc==1 && TYPE(argv[0])==T_HASH)
2187
- rb_set_attribute(v,argv[0]);
2188
- if(v)
2189
- return rb_funcall(rb_cIupImage,rb_intern("new"),1,UINT2NUM((unsigned)v));
2190
- return Qnil;
2191
- }
2192
-
2193
- VALUE rb_IupButton(int argc,VALUE *argv,VALUE self)
2194
- {
2195
- const char* title = NULL;
2196
- const char* action = NULL;
2197
- Ihandle* v;
2198
- VALUE v_title,v_action;
2199
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2200
- v_title = rb_hash_delete(argv[0],ID2SYM(rb_intern("title")));
2201
- v_action = rb_hash_delete(argv[0],ID2SYM(rb_intern("action")));
2202
- } else {
2203
- rb_scan_args(argc,argv,"11",&v_title,&v_action);
2204
- }
2205
- if(v_title!=Qnil)
2206
- title = RSTRING(v_title)->ptr;
2207
- if(v_action!=Qnil)
2208
- action = RSTRING(v_action)->ptr;
2209
- v = IupButton(title,action);
2210
- if(argc==1 && TYPE(argv[0])==T_HASH)
2211
- rb_set_attribute(v,argv[0]);
2212
- if(v)
2213
- return rb_funcall(rb_cIupButton,rb_intern("new"),2,UINT2NUM((unsigned)v),v_action);
2214
- return Qnil;
2215
- }
2216
-
2217
- VALUE rb_IupCanvas(int argc,VALUE *argv,VALUE self)
2218
- {
2219
- const char* action = NULL;
2220
- Ihandle* v;
2221
- VALUE v_action;
2222
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2223
- v_action = rb_hash_delete(argv[0],ID2SYM(rb_intern("action")));
2224
- } else {
2225
- rb_scan_args(argc,argv,"01",&v_action);
2226
- }
2227
- if(v_action!=Qnil)
2228
- action = RSTRING(v_action)->ptr;
2229
- v = IupCanvas(action);
2230
- if(argc==1 && TYPE(argv[0])==T_HASH)
2231
- rb_set_attribute(v,argv[0]);
2232
- if(v)
2233
- return rb_funcall(rb_cIupCanvas,rb_intern("new"),2,UINT2NUM((unsigned)v),v_action);
2234
- return Qnil;
2235
- }
2236
-
2237
- VALUE rb_IupDialog(int argc,VALUE *argv,VALUE self)
2238
- {
2239
- Ihandle* v;
2240
- VALUE child_node,v_hash;
2241
- VALUE v_child;
2242
- rb_scan_args(argc,argv,"11",&child_node,&v_hash);
2243
- v_child = rb_iv_get(child_node,"@ihandle");
2244
- v = IupDialog((Ihandle*)NUM2UINT(v_child));
2245
- if(TYPE(v_hash)==T_HASH)
2246
- rb_set_attribute(v,v_hash);
2247
- if(v)
2248
- return rb_funcall(rb_cIupDialog,rb_intern("new"),1,UINT2NUM((unsigned)v));
2249
- return Qnil;
2250
- }
2251
-
2252
- VALUE rb_IupUser(VALUE self)
2253
- {
2254
- Ihandle* v;
2255
- v = IupUser();
2256
- if(v)
2257
- return rb_funcall(rb_cIupUser,rb_intern("new"),1,UINT2NUM((unsigned)v));
2258
- return Qnil;
2259
- }
2260
-
2261
- VALUE rb_IupItem(int argc,VALUE *argv,VALUE self)
2262
- {
2263
- const char* title = NULL;
2264
- const char* action = NULL;
2265
- Ihandle* v;
2266
- VALUE v_title,v_action;
2267
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2268
- v_title = rb_hash_delete(argv[0],ID2SYM(rb_intern("title")));
2269
- v_action = rb_hash_delete(argv[0],ID2SYM(rb_intern("action")));
2270
- } else {
2271
- rb_scan_args(argc,argv,"11",&v_title,&v_action);
2272
- }
2273
- if(v_title!=Qnil)
2274
- title = RSTRING(v_title)->ptr;
2275
- if(v_action!=Qnil)
2276
- action = RSTRING(v_action)->ptr;
2277
- v = IupItem(title,action);
2278
- if(action)
2279
- IupStoreAttribute(v,"RB_ACTION",action);
2280
- if(argc==1 && TYPE(argv[0])==T_HASH)
2281
- rb_set_attribute(v,argv[0]);
2282
- if(v)
2283
- return rb_funcall(rb_cIupItem,rb_intern("new"),2,UINT2NUM((unsigned)v),v_action);
2284
- return Qnil;
2285
- }
2286
-
2287
- VALUE rb_IupSubmenu(int argc,VALUE *argv,VALUE self)
2288
- {
2289
- const char* title = NULL;
2290
- Ihandle* v;
2291
- VALUE v_title,child_node;
2292
- VALUE v_child;
2293
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2294
- v_title = rb_hash_delete(argv[0],ID2SYM(rb_intern("title")));
2295
- child_node = rb_hash_delete(argv[0],ID2SYM(rb_intern("menu")));
2296
- } else {
2297
- rb_scan_args(argc,argv,"20",&v_title,&child_node);
2298
- }
2299
- if(v_title!=Qnil)
2300
- title = RSTRING(v_title)->ptr;
2301
- v_child = rb_iv_get(child_node,"@ihandle");
2302
- v = IupSubmenu(title,(Ihandle*)NUM2UINT(v_child));
2303
- if(argc==1 && TYPE(argv[0])==T_HASH)
2304
- rb_set_attribute(v,argv[0]);
2305
- if(v)
2306
- return rb_funcall(rb_cIupSubmenu,rb_intern("new"),1,UINT2NUM((unsigned)v));
2307
- return Qnil;
2308
- }
2309
-
2310
- VALUE rb_IupSeparator(VALUE self)
2311
- {
2312
- Ihandle* v;
2313
- v = IupSeparator();
2314
- if(v)
2315
- return rb_funcall(rb_cIupSeparator,rb_intern("new"),1,UINT2NUM((unsigned)v));
2316
- return Qnil;
2317
- }
2318
-
2319
- VALUE rb_IupLabel(int argc,VALUE *argv,VALUE self)
2320
- {
2321
- const char* title = NULL;
2322
- Ihandle* v;
2323
- VALUE v_title;
2324
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2325
- v_title = rb_hash_delete(argv[0],ID2SYM(rb_intern("title")));
2326
- } else {
2327
- rb_scan_args(argc,argv,"10",&v_title);
2328
- }
2329
- title = RSTRING(v_title)->ptr;
2330
- v = IupLabel(title);
2331
- if(argc==1 && TYPE(argv[0])==T_HASH)
2332
- rb_set_attribute(v,argv[0]);
2333
- if(v)
2334
- return rb_funcall(rb_cIupLabel,rb_intern("new"),1,UINT2NUM((unsigned)v));
2335
- return Qnil;
2336
- }
2337
-
2338
- VALUE rb_IupList(int argc,VALUE *argv,VALUE self)
2339
- {
2340
- const char* action = NULL;
2341
- Ihandle* v;
2342
- VALUE v_action;
2343
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2344
- v_action = rb_hash_delete(argv[0],ID2SYM(rb_intern("action")));
2345
- } else {
2346
- rb_scan_args(argc,argv,"01",&v_action);
2347
- }
2348
- if(v_action!=Qnil)
2349
- action = RSTRING(v_action)->ptr;
2350
- v = IupList(action);
2351
- if(argc==1 && TYPE(argv[0])==T_HASH)
2352
- rb_set_attribute(v,argv[0]);
2353
- if(v)
2354
- return rb_funcall(rb_cIupList,rb_intern("new"),2,UINT2NUM((unsigned)v),v_action);
2355
- return Qnil;
2356
- }
2357
-
2358
- VALUE rb_IupMenuv(VALUE self,VALUE v_children)
2359
- {
2360
- Ihandle* v;
2361
- int i;
2362
- Ihandle *children[100];
2363
- VALUE node;
2364
- for(i=0;i<RARRAY(v_children)->len;i++) {
2365
- node = RARRAY(v_children)->ptr[i];
2366
- children[i] = (Ihandle*)NUM2UINT(rb_iv_get(node,"@ihandle"));
2367
- }
2368
- children[i] = NULL;
2369
- v = IupMenuv(children);
2370
- if(v)
2371
- return rb_funcall(rb_cIupMenu,rb_intern("new"),1,UINT2NUM((unsigned)v));
2372
- return Qnil;
2373
- }
2374
-
2375
- VALUE rb_IupText(int argc,VALUE *argv,VALUE self)
2376
- {
2377
- const char* action = NULL;
2378
- Ihandle* v;
2379
- VALUE v_action;
2380
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2381
- v_action = rb_hash_delete(argv[0],ID2SYM(rb_intern("action")));
2382
- } else {
2383
- rb_scan_args(argc,argv,"01",&v_action);
2384
- }
2385
- if(v_action!=Qnil)
2386
- action = RSTRING(v_action)->ptr;
2387
- v = IupText(action);
2388
- if(action)
2389
- IupStoreAttribute(v,"RB_ACTION",action);
2390
- if(argc==1 && TYPE(argv[0])==T_HASH)
2391
- rb_set_attribute(v,argv[0]);
2392
- if(v)
2393
- return rb_funcall(rb_cIupText,rb_intern("new"),2,UINT2NUM((unsigned)v),v_action);
2394
- return Qnil;
2395
- }
2396
-
2397
- VALUE rb_IupMultiLine(int argc,VALUE *argv,VALUE self)
2398
- {
2399
- const char* action = NULL;
2400
- Ihandle* v;
2401
- VALUE v_action;
2402
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2403
- v_action = rb_hash_delete(argv[0],ID2SYM(rb_intern("action")));
2404
- } else {
2405
- rb_scan_args(argc,argv,"01",&v_action);
2406
- }
2407
- if(v_action!=Qnil)
2408
- action = RSTRING(v_action)->ptr;
2409
- v = IupMultiLine(action);
2410
- if(argc==1 && TYPE(argv[0])==T_HASH)
2411
- rb_set_attribute(v,argv[0]);
2412
- if(v)
2413
- return rb_funcall(rb_cIupMultiLine,rb_intern("new"),2,UINT2NUM((unsigned)v),v_action);
2414
- return Qnil;
2415
- }
2416
-
2417
- VALUE rb_IupToggle(int argc,VALUE *argv,VALUE self)
2418
- {
2419
- const char* title = NULL;
2420
- const char* action = NULL;
2421
- Ihandle* v;
2422
- VALUE v_title,v_action;
2423
- if(argc==1 && TYPE(argv[0])==T_HASH) {
2424
- v_title = rb_hash_delete(argv[0],ID2SYM(rb_intern("title")));
2425
- v_action = rb_hash_delete(argv[0],ID2SYM(rb_intern("action")));
2426
- } else {
2427
- rb_scan_args(argc,argv,"02",&v_title,&v_action);
2428
- }
2429
- if(v_title!=Qnil)
2430
- title = RSTRING(v_title)->ptr;
2431
- if(v_action!=Qnil)
2432
- action = RSTRING(v_action)->ptr;
2433
- v = IupToggle(title,action);
2434
- if(argc==1 && TYPE(argv[0])==T_HASH)
2435
- rb_set_attribute(v,argv[0]);
2436
- if(v)
2437
- return rb_funcall(rb_cIupToggle,rb_intern("new"),2,UINT2NUM((unsigned)v),v_action);
2438
- return Qnil;
2439
- }
2440
-
2441
- VALUE rb_IupTimer(VALUE self)
2442
- {
2443
- Ihandle* v;
2444
- v = IupTimer();
2445
- if(v)
2446
- return rb_funcall(rb_cIupTimer,rb_intern("new"),1,UINT2NUM((unsigned)v));
2447
- return Qnil;
2448
- }
2449
-
2450
- VALUE rb_IupProgressBar(VALUE self)
2451
- {
2452
- Ihandle* v;
2453
- v = IupProgressBar();
2454
- if(v)
2455
- return rb_funcall(rb_cIupProgressBar,rb_intern("new"),1,UINT2NUM((unsigned)v));
2456
- return Qnil;
2457
- }
2458
-
2459
- VALUE rb_IupCboxv(int argc,VALUE *argv,VALUE self)
2460
- {
2461
- extern VALUE rb_cIupCbox;
2462
- Ihandle* v;
2463
- int i;
2464
- Ihandle *params[100];
2465
- VALUE v_params,v_hash;
2466
- VALUE node;
2467
- rb_scan_args(argc,argv,"11",&v_params,&v_hash);
2468
- for(i=0;i<RARRAY(v_params)->len;i++) {
2469
- node = RARRAY(v_params)->ptr[i];
2470
- params[i] = (Ihandle*)NUM2UINT(rb_iv_get(node,"@ihandle"));
2471
- }
2472
- params[i] = NULL;
2473
- v = IupCboxv(params);
2474
- if(TYPE(v_hash)==T_HASH)
2475
- rb_set_attribute(v,v_hash);
2476
- if(v)
2477
- return rb_funcall(rb_cIupCbox,rb_intern("new"),1,UINT2NUM((unsigned)v));
2478
- return Qnil;
2479
- }
363
+ extern VALUE rb_cIupImage;
364
+ extern VALUE rb_cIupButton;
365
+ extern VALUE rb_cIupCanvas;
366
+ extern VALUE rb_cIupDialog;
367
+ extern VALUE rb_cIupFill;
368
+ extern VALUE rb_cIupFrame;
369
+ extern VALUE rb_cIupHbox;
370
+ extern VALUE rb_cIupItem;
371
+ extern VALUE rb_cIupSeparator;
372
+ extern VALUE rb_cIupSubmenu;
373
+ extern VALUE rb_cIupLabel;
374
+ extern VALUE rb_cIupList;
375
+ extern VALUE rb_cIupMenu;
376
+ extern VALUE rb_cIupRadio;
377
+ extern VALUE rb_cIupText;
378
+ extern VALUE rb_cIupToggle;
379
+ extern VALUE rb_cIupToggle;
380
+ extern VALUE rb_cIupVbox;
381
+ extern VALUE rb_cIupZbox;
382
+ extern VALUE rb_cIupMultiLine;
383
+ extern VALUE rb_cIupUser;
384
+ extern VALUE rb_cIupControl;
385
+ extern VALUE rb_cIupTimer;
386
+ extern VALUE rb_cIupProgressBar;
387
+ extern VALUE rb_cIupFileDlg;
388
+ extern VALUE rb_cIupTree;
389
+ extern VALUE rb_cIupNode;
390
+ extern VALUE rb_cIupTabs;
391
+ extern VALUE rb_cIupGLCanvas;
392
+ extern VALUE rb_cIupSpin;
393
+ extern VALUE rb_cIupSpinbox;
394
+ extern VALUE rb_cIupSbox;
395
+ extern VALUE rb_cIupCbox;
396
+ extern VALUE rb_cIupMatrix;
397
+ extern VALUE rb_cIupGauge;
398
+ extern VALUE rb_cIupDial;
399
+ extern VALUE rb_cIupColorbar;
400
+ extern VALUE rb_cIupColorBrowser;
401
+ extern VALUE rb_cIupCells;
402
+ extern VALUE rb_cIupPPlot;
403
+ extern VALUE rb_cIupVal;
404
+ extern VALUE rb_cCdCanvas;