fxruby 1.6.39-x64-mingw32 → 1.6.44-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +3 -14
  3. data/.yardopts +1 -1
  4. data/Gemfile +4 -5
  5. data/History.md +1345 -22
  6. data/README.rdoc +5 -5
  7. data/Rakefile +100 -68
  8. data/appveyor.yml +11 -16
  9. data/docs/Fox.html +11184 -0
  10. data/docs/Fox/Canvas.html +141 -0
  11. data/docs/Fox/Canvas/CanvasError.html +124 -0
  12. data/docs/Fox/Canvas/CircleShape.html +477 -0
  13. data/docs/Fox/Canvas/ImageShape.html +477 -0
  14. data/docs/Fox/Canvas/LineShape.html +1005 -0
  15. data/docs/Fox/Canvas/PolygonShape.html +145 -0
  16. data/docs/Fox/Canvas/RectangleShape.html +439 -0
  17. data/docs/Fox/Canvas/SelectionPolicy.html +352 -0
  18. data/docs/Fox/Canvas/Shape.html +1955 -0
  19. data/docs/Fox/Canvas/ShapeCanvas.html +2031 -0
  20. data/docs/Fox/Canvas/ShapeGroup.html +527 -0
  21. data/docs/Fox/Canvas/SingleSelectionPolicy.html +291 -0
  22. data/docs/Fox/Canvas/TextShape.html +609 -0
  23. data/docs/Fox/FTNonModal.html +550 -0
  24. data/docs/Fox/FX4Splitter.html +1336 -0
  25. data/docs/Fox/FX7Segment.html +1010 -0
  26. data/docs/Fox/FXAccelTable.html +715 -0
  27. data/docs/Fox/FXApp.html +7998 -0
  28. data/docs/Fox/FXArc.html +562 -0
  29. data/docs/Fox/FXArrowButton.html +865 -0
  30. data/docs/Fox/FXBMPIcon.html +450 -0
  31. data/docs/Fox/FXBMPImage.html +434 -0
  32. data/docs/Fox/FXBitmap.html +1362 -0
  33. data/docs/Fox/FXBitmapFrame.html +595 -0
  34. data/docs/Fox/FXBitmapView.html +1451 -0
  35. data/docs/Fox/FXButton.html +534 -0
  36. data/docs/Fox/FXCURCursor.html +261 -0
  37. data/docs/Fox/FXCalendar.html +880 -0
  38. data/docs/Fox/FXCanvas.html +311 -0
  39. data/docs/Fox/FXCheckButton.html +949 -0
  40. data/docs/Fox/FXChoiceBox.html +472 -0
  41. data/docs/Fox/FXColor.html +1519 -0
  42. data/docs/Fox/FXColorBar.html +759 -0
  43. data/docs/Fox/FXColorDialog.html +591 -0
  44. data/docs/Fox/FXColorItem.html +323 -0
  45. data/docs/Fox/FXColorList.html +712 -0
  46. data/docs/Fox/FXColorRing.html +817 -0
  47. data/docs/Fox/FXColorSelector.html +796 -0
  48. data/docs/Fox/FXColorWell.html +850 -0
  49. data/docs/Fox/FXColorWheel.html +770 -0
  50. data/docs/Fox/FXComboBox.html +2939 -0
  51. data/docs/Fox/FXComboTableItem.html +544 -0
  52. data/docs/Fox/FXCommand.html +526 -0
  53. data/docs/Fox/FXComposite.html +433 -0
  54. data/docs/Fox/FXCursor.html +779 -0
  55. data/docs/Fox/FXDC.html +5231 -0
  56. data/docs/Fox/FXDCPrint.html +696 -0
  57. data/docs/Fox/FXDCWindow.html +358 -0
  58. data/docs/Fox/FXDataTarget.html +573 -0
  59. data/docs/Fox/FXDebugTarget.html +305 -0
  60. data/docs/Fox/FXDelegator.html +305 -0
  61. data/docs/Fox/FXDial.html +1133 -0
  62. data/docs/Fox/FXDialogBox.html +413 -0
  63. data/docs/Fox/FXDict.html +1063 -0
  64. data/docs/Fox/FXDirBox.html +752 -0
  65. data/docs/Fox/FXDirDialog.html +914 -0
  66. data/docs/Fox/FXDirItem.html +989 -0
  67. data/docs/Fox/FXDirList.html +1554 -0
  68. data/docs/Fox/FXDirSelector.html +995 -0
  69. data/docs/Fox/FXDockBar.html +1451 -0
  70. data/docs/Fox/FXDockHandler.html +468 -0
  71. data/docs/Fox/FXDockSite.html +678 -0
  72. data/docs/Fox/FXDockTitle.html +606 -0
  73. data/docs/Fox/FXDocument.html +536 -0
  74. data/docs/Fox/FXDragCorner.html +440 -0
  75. data/docs/Fox/FXDrawable.html +478 -0
  76. data/docs/Fox/FXDriveBox.html +746 -0
  77. data/docs/Fox/FXEvent.html +1736 -0
  78. data/docs/Fox/FXExtentd.html +1374 -0
  79. data/docs/Fox/FXExtentf.html +1374 -0
  80. data/docs/Fox/FXFileAssoc.html +850 -0
  81. data/docs/Fox/FXFileDialog.html +2688 -0
  82. data/docs/Fox/FXFileDict.html +1058 -0
  83. data/docs/Fox/FXFileItem.html +1141 -0
  84. data/docs/Fox/FXFileList.html +2259 -0
  85. data/docs/Fox/FXFileSelector.html +2529 -0
  86. data/docs/Fox/FXFileStream.html +503 -0
  87. data/docs/Fox/FXFoldingItem.html +2822 -0
  88. data/docs/Fox/FXFoldingList.html +5189 -0
  89. data/docs/Fox/FXFont.html +2998 -0
  90. data/docs/Fox/FXFontDesc.html +710 -0
  91. data/docs/Fox/FXFontDialog.html +420 -0
  92. data/docs/Fox/FXFontSelector.html +576 -0
  93. data/docs/Fox/FXFrame.html +1012 -0
  94. data/docs/Fox/FXGIFCursor.html +337 -0
  95. data/docs/Fox/FXGIFIcon.html +450 -0
  96. data/docs/Fox/FXGIFImage.html +434 -0
  97. data/docs/Fox/FXGLCanvas.html +700 -0
  98. data/docs/Fox/FXGLCone.html +785 -0
  99. data/docs/Fox/FXGLContext.html +649 -0
  100. data/docs/Fox/FXGLCube.html +703 -0
  101. data/docs/Fox/FXGLCylinder.html +791 -0
  102. data/docs/Fox/FXGLGroup.html +1385 -0
  103. data/docs/Fox/FXGLLine.html +653 -0
  104. data/docs/Fox/FXGLObject.html +759 -0
  105. data/docs/Fox/FXGLPoint.html +561 -0
  106. data/docs/Fox/FXGLShape.html +714 -0
  107. data/docs/Fox/FXGLSphere.html +626 -0
  108. data/docs/Fox/FXGLViewer.html +3506 -0
  109. data/docs/Fox/FXGLVisual.html +2147 -0
  110. data/docs/Fox/FXGradient.html +562 -0
  111. data/docs/Fox/FXGradientBar.html +2479 -0
  112. data/docs/Fox/FXGroupBox.html +688 -0
  113. data/docs/Fox/FXHeader.html +3040 -0
  114. data/docs/Fox/FXHeaderItem.html +1353 -0
  115. data/docs/Fox/FXHiliteStyle.html +804 -0
  116. data/docs/Fox/FXHorizontalFrame.html +359 -0
  117. data/docs/Fox/FXHorizontalSeparator.html +349 -0
  118. data/docs/Fox/FXICOIcon.html +450 -0
  119. data/docs/Fox/FXICOImage.html +434 -0
  120. data/docs/Fox/FXIcon.html +384 -0
  121. data/docs/Fox/FXIconDict.html +752 -0
  122. data/docs/Fox/FXIconItem.html +1518 -0
  123. data/docs/Fox/FXIconList.html +4676 -0
  124. data/docs/Fox/FXIconSource.html +963 -0
  125. data/docs/Fox/FXId.html +712 -0
  126. data/docs/Fox/FXImage.html +2328 -0
  127. data/docs/Fox/FXImageFrame.html +489 -0
  128. data/docs/Fox/FXImageView.html +504 -0
  129. data/docs/Fox/FXInputDialog.html +894 -0
  130. data/docs/Fox/FXIrb.html +942 -0
  131. data/docs/Fox/FXJPGIcon.html +607 -0
  132. data/docs/Fox/FXJPGImage.html +591 -0
  133. data/docs/Fox/FXKnob.html +1048 -0
  134. data/docs/Fox/FXLabel.html +1013 -0
  135. data/docs/Fox/FXLight.html +920 -0
  136. data/docs/Fox/FXList.html +3717 -0
  137. data/docs/Fox/FXListBox.html +2518 -0
  138. data/docs/Fox/FXListItem.html +1459 -0
  139. data/docs/Fox/FXMDIChild.html +2175 -0
  140. data/docs/Fox/FXMDIClient.html +781 -0
  141. data/docs/Fox/FXMDIDeleteButton.html +334 -0
  142. data/docs/Fox/FXMDIMaximizeButton.html +334 -0
  143. data/docs/Fox/FXMDIMenu.html +335 -0
  144. data/docs/Fox/FXMDIMinimizeButton.html +334 -0
  145. data/docs/Fox/FXMDIRestoreButton.html +334 -0
  146. data/docs/Fox/FXMDIWindowButton.html +334 -0
  147. data/docs/Fox/FXMainWindow.html +337 -0
  148. data/docs/Fox/FXMaterial.html +570 -0
  149. data/docs/Fox/FXMatrix.html +734 -0
  150. data/docs/Fox/FXMemoryBuffer.html +472 -0
  151. data/docs/Fox/FXMemoryStream.html +632 -0
  152. data/docs/Fox/FXMenuBar.html +347 -0
  153. data/docs/Fox/FXMenuButton.html +829 -0
  154. data/docs/Fox/FXMenuCaption.html +1080 -0
  155. data/docs/Fox/FXMenuCascade.html +388 -0
  156. data/docs/Fox/FXMenuCheck.html +721 -0
  157. data/docs/Fox/FXMenuCommand.html +400 -0
  158. data/docs/Fox/FXMenuPane.html +333 -0
  159. data/docs/Fox/FXMenuRadio.html +721 -0
  160. data/docs/Fox/FXMenuSeparator.html +440 -0
  161. data/docs/Fox/FXMenuTitle.html +405 -0
  162. data/docs/Fox/FXMessageBox.html +658 -0
  163. data/docs/Fox/FXObject.html +545 -0
  164. data/docs/Fox/FXOption.html +491 -0
  165. data/docs/Fox/FXOptionMenu.html +885 -0
  166. data/docs/Fox/FXPCXIcon.html +450 -0
  167. data/docs/Fox/FXPCXImage.html +434 -0
  168. data/docs/Fox/FXPNGIcon.html +524 -0
  169. data/docs/Fox/FXPNGImage.html +508 -0
  170. data/docs/Fox/FXPPMIcon.html +450 -0
  171. data/docs/Fox/FXPPMImage.html +373 -0
  172. data/docs/Fox/FXPSBounds.html +500 -0
  173. data/docs/Fox/FXPacker.html +1229 -0
  174. data/docs/Fox/FXPicker.html +345 -0
  175. data/docs/Fox/FXPopup.html +1099 -0
  176. data/docs/Fox/FXPrintDialog.html +485 -0
  177. data/docs/Fox/FXPrinter.html +1330 -0
  178. data/docs/Fox/FXProgressBar.html +1150 -0
  179. data/docs/Fox/FXProgressDialog.html +715 -0
  180. data/docs/Fox/FXPseudoKeyboard.html +428 -0
  181. data/docs/Fox/FXPseudoMouse.html +800 -0
  182. data/docs/Fox/FXPseudoTarget.html +472 -0
  183. data/docs/Fox/FXQuatd.html +1377 -0
  184. data/docs/Fox/FXQuatf.html +1392 -0
  185. data/docs/Fox/FXRGBIcon.html +450 -0
  186. data/docs/Fox/FXRGBImage.html +434 -0
  187. data/docs/Fox/FXRadioButton.html +885 -0
  188. data/docs/Fox/FXRanged.html +1522 -0
  189. data/docs/Fox/FXRangef.html +1522 -0
  190. data/docs/Fox/FXRealSlider.html +1187 -0
  191. data/docs/Fox/FXRealSpinner.html +2175 -0
  192. data/docs/Fox/FXRecentFiles.html +841 -0
  193. data/docs/Fox/FXRectangle.html +802 -0
  194. data/docs/Fox/FXRegion.html +841 -0
  195. data/docs/Fox/FXRegistry.html +682 -0
  196. data/docs/Fox/FXReplaceDialog.html +648 -0
  197. data/docs/Fox/FXRootWindow.html +312 -0
  198. data/docs/Fox/FXRuler.html +2000 -0
  199. data/docs/Fox/FXRulerView.html +3997 -0
  200. data/docs/Fox/FXScintilla.html +49117 -0
  201. data/docs/Fox/FXScrollArea.html +1363 -0
  202. data/docs/Fox/FXScrollBar.html +1019 -0
  203. data/docs/Fox/FXScrollCorner.html +290 -0
  204. data/docs/Fox/FXScrollPane.html +499 -0
  205. data/docs/Fox/FXScrollWindow.html +409 -0
  206. data/docs/Fox/FXSearchDialog.html +382 -0
  207. data/docs/Fox/FXSegment.html +422 -0
  208. data/docs/Fox/FXSeparator.html +402 -0
  209. data/docs/Fox/FXSettings.html +1861 -0
  210. data/docs/Fox/FXShell.html +233 -0
  211. data/docs/Fox/FXShutter.html +472 -0
  212. data/docs/Fox/FXShutterItem.html +669 -0
  213. data/docs/Fox/FXSize.html +592 -0
  214. data/docs/Fox/FXSlider.html +1129 -0
  215. data/docs/Fox/FXSphered.html +906 -0
  216. data/docs/Fox/FXSpheref.html +906 -0
  217. data/docs/Fox/FXSpinner.html +2102 -0
  218. data/docs/Fox/FXSplashScreen.html +497 -0
  219. data/docs/Fox/FXSplashWindow.html +494 -0
  220. data/docs/Fox/FXSplitter.html +643 -0
  221. data/docs/Fox/FXSpring.html +517 -0
  222. data/docs/Fox/FXStatusBar.html +593 -0
  223. data/docs/Fox/FXStatusLine.html +754 -0
  224. data/docs/Fox/FXStream.html +1372 -0
  225. data/docs/Fox/FXStreamAllocError.html +148 -0
  226. data/docs/Fox/FXStreamEndError.html +148 -0
  227. data/docs/Fox/FXStreamError.html +259 -0
  228. data/docs/Fox/FXStreamFailureError.html +148 -0
  229. data/docs/Fox/FXStreamFormatError.html +148 -0
  230. data/docs/Fox/FXStreamFullError.html +148 -0
  231. data/docs/Fox/FXStreamNoReadError.html +148 -0
  232. data/docs/Fox/FXStreamNoWriteError.html +148 -0
  233. data/docs/Fox/FXStreamUnknownError.html +148 -0
  234. data/docs/Fox/FXStringDict.html +552 -0
  235. data/docs/Fox/FXSwitcher.html +619 -0
  236. data/docs/Fox/FXTGAIcon.html +450 -0
  237. data/docs/Fox/FXTGAImage.html +434 -0
  238. data/docs/Fox/FXTIFIcon.html +604 -0
  239. data/docs/Fox/FXTIFImage.html +588 -0
  240. data/docs/Fox/FXTabBar.html +644 -0
  241. data/docs/Fox/FXTabBook.html +373 -0
  242. data/docs/Fox/FXTabItem.html +478 -0
  243. data/docs/Fox/FXTable.html +10107 -0
  244. data/docs/Fox/FXTableItem.html +2195 -0
  245. data/docs/Fox/FXTablePos.html +360 -0
  246. data/docs/Fox/FXTableRange.html +360 -0
  247. data/docs/Fox/FXText.html +6870 -0
  248. data/docs/Fox/FXTextChange.html +492 -0
  249. data/docs/Fox/FXTextField.html +2016 -0
  250. data/docs/Fox/FXToggleButton.html +844 -0
  251. data/docs/Fox/FXToolBar.html +452 -0
  252. data/docs/Fox/FXToolBarGrip.html +584 -0
  253. data/docs/Fox/FXToolBarShell.html +788 -0
  254. data/docs/Fox/FXToolBarTab.html +729 -0
  255. data/docs/Fox/FXToolTip.html +761 -0
  256. data/docs/Fox/FXTopWindow.html +1716 -0
  257. data/docs/Fox/FXTranslator.html +481 -0
  258. data/docs/Fox/FXTreeItem.html +2813 -0
  259. data/docs/Fox/FXTreeList.html +5095 -0
  260. data/docs/Fox/FXTreeListBox.html +3080 -0
  261. data/docs/Fox/FXTriStateButton.html +681 -0
  262. data/docs/Fox/FXUndoList.html +2560 -0
  263. data/docs/Fox/FXVec2d.html +1450 -0
  264. data/docs/Fox/FXVec2f.html +1442 -0
  265. data/docs/Fox/FXVec3d.html +1649 -0
  266. data/docs/Fox/FXVec3f.html +1649 -0
  267. data/docs/Fox/FXVec4d.html +1858 -0
  268. data/docs/Fox/FXVec4f.html +1858 -0
  269. data/docs/Fox/FXVerticalFrame.html +359 -0
  270. data/docs/Fox/FXVerticalSeparator.html +349 -0
  271. data/docs/Fox/FXViewport.html +780 -0
  272. data/docs/Fox/FXVisual.html +1023 -0
  273. data/docs/Fox/FXWindow.html +9948 -0
  274. data/docs/Fox/FXWizard.html +1052 -0
  275. data/docs/Fox/FXXBMIcon.html +453 -0
  276. data/docs/Fox/FXXBMImage.html +437 -0
  277. data/docs/Fox/FXXPMIcon.html +450 -0
  278. data/docs/Fox/FXXPMImage.html +434 -0
  279. data/docs/Fox/NotifyHeader.html +286 -0
  280. data/docs/Fox/SCNotification.html +1438 -0
  281. data/docs/Fox/TextRange.html +281 -0
  282. data/docs/IRB.html +204 -0
  283. data/docs/Responder.html +693 -0
  284. data/docs/Responder2.html +225 -0
  285. data/docs/_index.html +2101 -0
  286. data/docs/class_list.html +51 -0
  287. data/docs/css/common.css +1 -0
  288. data/docs/css/full_list.css +58 -0
  289. data/docs/css/style.css +496 -0
  290. data/docs/file.History.html +869 -0
  291. data/docs/file.README.html +104 -0
  292. data/docs/file_list.html +66 -0
  293. data/docs/frames.html +17 -0
  294. data/docs/index.html +614 -0
  295. data/docs/js/app.js +314 -0
  296. data/docs/js/full_list.js +216 -0
  297. data/docs/js/jquery.js +4 -0
  298. data/docs/method_list.html +31043 -0
  299. data/docs/top-level-namespace.html +214 -0
  300. data/examples/canvasdemo.rb +5 -1
  301. data/examples/gltest.rb +162 -106
  302. data/examples/glviewer.rb +12 -8
  303. data/examples/inputs.rb +9 -4
  304. data/examples/pig.rb +2 -2
  305. data/examples/unicode.rb +6 -27
  306. data/ext/fox16_c/FXRbApp.cpp +3 -17
  307. data/ext/fox16_c/FXRuby.cpp +36 -46
  308. data/ext/fox16_c/extconf.rb +50 -34
  309. data/ext/fox16_c/impl.cpp +1 -1
  310. data/ext/fox16_c/include/FXRbApp.h +2 -2
  311. data/ext/fox16_c/include/FXRbCommon.h +0 -2
  312. data/ext/fox16_c/include/FXRbText.h +82 -2
  313. data/ext/fox16_c/include/FXRbTextVirtuals.h +22 -0
  314. data/ext/fox16_c/include/FXRuby.h +21 -3
  315. data/ext/fox16_c/include/gvl_wrappers.h +29 -11
  316. data/ext/fox16_c/make_impl.rb +1 -1
  317. data/fxruby.gemspec +2 -1
  318. data/lib/fox16/aliases.rb +3 -0
  319. data/lib/fox16/bitmapview.rb +0 -0
  320. data/lib/fox16/calendar.rb +6 -8
  321. data/lib/fox16/canvas.rb +93 -62
  322. data/lib/fox16/chore.rb +0 -0
  323. data/lib/fox16/colors.rb +0 -0
  324. data/lib/fox16/core.rb +18 -18
  325. data/lib/fox16/dict.rb +0 -0
  326. data/lib/fox16/glgroup.rb +5 -5
  327. data/lib/fox16/glshapes.rb +111 -99
  328. data/lib/fox16/input.rb +9 -7
  329. data/lib/fox16/irb.rb +0 -0
  330. data/lib/fox16/iterators.rb +0 -0
  331. data/lib/fox16/keys.rb +0 -0
  332. data/lib/fox16/missingdep.rb +0 -0
  333. data/lib/fox16/pseudokeyboard.rb +0 -0
  334. data/lib/fox16/pseudomouse.rb +0 -0
  335. data/lib/fox16/responder.rb +0 -0
  336. data/lib/fox16/responder2.rb +0 -0
  337. data/lib/fox16/scintilla.rb +0 -0
  338. data/lib/fox16/settings.rb +0 -0
  339. data/lib/fox16/signal.rb +0 -0
  340. data/lib/fox16/timeout.rb +0 -0
  341. data/lib/fox16/tkcompat.rb +0 -0
  342. data/lib/fox16/undolist.rb +8 -8
  343. data/lib/fox16/version.rb +1 -1
  344. data/rdoc-sources/FXGLVisual.rb +1 -1
  345. data/rdoc-sources/FXIconList.rb +2 -0
  346. data/rdoc-sources/FXImage.rb +5 -0
  347. data/rdoc-sources/FXList.rb +2 -0
  348. data/rdoc-sources/FXListBox.rb +1 -1
  349. data/rdoc-sources/FXText.rb +4 -2
  350. data/swig-interfaces/FXImage.i +9 -4
  351. data/swig-interfaces/FXMemoryBuffer.i +2 -2
  352. data/swig-interfaces/FXText.i +10 -8
  353. data/swig-interfaces/macros.i +9 -0
  354. data/test/TC_FXImage.rb +8 -0
  355. data/test/TC_FXList.rb +8 -8
  356. data/test/TC_FXText.rb +19 -0
  357. data/test/TC_FXVec4f.rb +26 -12
  358. metadata +300 -10
@@ -7,16 +7,15 @@ begin
7
7
  rescue LoadError
8
8
  require 'fox16/missingdep'
9
9
  MSG = <<EOM
10
- Sorry, this example depends on the OpenGL extension. Please
11
- check the Ruby Application Archives for an appropriate
12
- download site.
10
+ Sorry, this example depends on the opengl-bindings gems. Please execute:
11
+ gem install opengl-bindings
13
12
  EOM
14
13
  missingDependency(MSG)
15
14
  end
16
15
 
17
- include Fox
16
+ class TabBook < Fox::FXTabBook
17
+ include Fox
18
18
 
19
- class TabBook < FXTabBook
20
19
  def createAnglesPage(panels, mdiclient)
21
20
  # Angles tab
22
21
  FXTabItem.new(panels,
@@ -143,8 +142,8 @@ class TabBook < FXTabBook
143
142
  end
144
143
  end
145
144
 
146
- class GLViewWindow < FXMainWindow
147
-
145
+ class GLViewWindow < Fox::FXMainWindow
146
+ include Fox
148
147
  include Responder
149
148
 
150
149
  ID_QUERY_MODE = FXMainWindow::ID_LAST
@@ -162,6 +161,9 @@ class GLViewWindow < FXMainWindow
162
161
  # Initialize base class first
163
162
  super(app, "OpenGL Example Application", :opts => DECOR_ALL, :width => 800, :height => 600)
164
163
 
164
+ OpenGL.load_lib
165
+ GLU.load_lib
166
+
165
167
  # Define message identifiers for this class
166
168
 
167
169
  # Set up the message map
@@ -481,6 +483,8 @@ class GLViewWindow < FXMainWindow
481
483
  sphere = FXGLSphere.new(1.0, 1.0, 0.0, 0.5)
482
484
  sphere2 = FXGLSphere.new(0.0, 0.0, 0.0, 0.8)
483
485
  sphere.tipText = "Sphere"
486
+ gp2.append(FXGLLine.new(-2.0, 0.0, 0.0, -1.0, 1.0, 1.0))
487
+ gp2.append(FXGLPoint.new(-2.0, 0.0, 0.0))
484
488
  gp2.append(FXGLCube.new(-1.0, 0.0, 0.0, 1.0, 1.0, 1.0))
485
489
  gp2.append(FXGLCube.new( 1.0, 0.0, 0.0, 1.0, 1.0, 1.0))
486
490
  gp2.append(FXGLCube.new( 0.0,-1.0, 0.0, 1.0, 1.0, 1.0))
@@ -556,7 +560,7 @@ end
556
560
 
557
561
  if __FILE__ == $0
558
562
  # Make application
559
- application = FXApp.new("GLViewer", "FoxTest")
563
+ application = Fox::FXApp.new("GLViewer", "FoxTest")
560
564
  application.threadsEnabled = false
561
565
 
562
566
  # Make window
@@ -21,6 +21,7 @@ class InputHandlerWindow < FXMainWindow
21
21
 
22
22
  # Output will be displayed in a multiline text area
23
23
  @cmdOutput = FXText.new(textFrame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
24
+ @cmdInput.text = "ping rubyinstaller.org"
24
25
 
25
26
  # Initialize the pipe
26
27
  @pipe = nil
@@ -30,6 +31,7 @@ class InputHandlerWindow < FXMainWindow
30
31
  def create
31
32
  super
32
33
  show(PLACEMENT_SCREEN)
34
+ @cmdInput.setFocus
33
35
  end
34
36
 
35
37
  # Remove previous input (if any)
@@ -54,11 +56,14 @@ class InputHandlerWindow < FXMainWindow
54
56
  getApp().addInput(@pipe, INPUT_READ|INPUT_EXCEPT) do |sender, sel, ptr|
55
57
  case FXSELTYPE(sel)
56
58
  when SEL_IO_READ
57
- text = @pipe.read_nonblock(256)
58
- if text && text.length > 0
59
- @cmdOutput.appendText(text)
60
- else
59
+ begin
60
+ text = @pipe.read_nonblock(256)
61
+ rescue IO::WaitReadable
62
+ rescue EOFError
63
+ @cmdOutput.appendText("[EOF]")
61
64
  closePipe
65
+ else
66
+ @cmdOutput.appendText(text)
62
67
  end
63
68
  when SEL_IO_EXCEPT
64
69
  # puts 'onPipeExcept'
@@ -47,9 +47,8 @@ class PigBox < FXMainWindow
47
47
  theLabel.layoutHints = LAYOUT_FILL_X
48
48
  end
49
49
 
50
- FXTextField.new(top, 20, @text, FXDataTarget::ID_VALUE) do |theTextField|
50
+ @theTextField = FXTextField.new(top, 20, @text, FXDataTarget::ID_VALUE) do |theTextField|
51
51
  theTextField.layoutHints = LAYOUT_FILL_X
52
- theTextField.setFocus()
53
52
  end
54
53
 
55
54
  FXButton.new(top, 'Pig It') do |pigButton|
@@ -66,6 +65,7 @@ class PigBox < FXMainWindow
66
65
  def create
67
66
  super
68
67
  show(PLACEMENT_SCREEN)
68
+ @theTextField.setFocus
69
69
  end
70
70
  end
71
71
 
@@ -1,36 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
+ # -*- encoding: UTF-8 -*-
2
3
 
3
4
  require 'fox16'
4
- require 'jcode'
5
-
6
- $KCODE = 'UTF8'
7
-
8
- class UString < String
9
- # Show u-prefix as in Python
10
- def inspect; "u#{ super }" end
11
-
12
- # Count multibyte characters
13
- def length; self.scan(/./).length end
14
-
15
- # Reverse the string
16
- def reverse; self.scan(/./).reverse.join end
17
- end
18
-
19
- module Kernel
20
- def u( str )
21
- UString.new str.gsub(/U\+([0-9a-fA-F]{4,4})/u){["#$1".hex ].pack('U*')}
22
- end
23
- end
24
-
25
- include Fox
26
5
 
27
6
  # Pass UTF-8 encoded Unicode strings to FXRuby.
28
- label = u"Les enfants vont U+00E0 l'U+00E9cole.\nLa boulangU+00E8re vend-elle le pain en aoU+00FBt?"
7
+ label = "Les enfants vont \u00E0 l'\u00E9cole.\nLa boulang\u00E8re vend-elle le pain en ao\u00FBt?"
29
8
 
30
- FXApp.new("Unicode Example", "FoxTest") do |app|
31
- main = FXMainWindow.new(app, "Unicode Text", nil, nil, DECOR_ALL)
32
- FXLabel.new(main, label)
9
+ Fox::FXApp.new("Unicode Example", "FoxTest") do |app|
10
+ main = Fox::FXMainWindow.new(app, "Unicode Text", nil, nil, Fox::DECOR_ALL)
11
+ Fox::FXLabel.new(main, label)
33
12
  app.create
34
- main.show(PLACEMENT_SCREEN)
13
+ main.show(Fox::PLACEMENT_SCREEN)
35
14
  app.run
36
15
  end
@@ -26,12 +26,6 @@
26
26
 
27
27
  #include "FXRbCommon.h"
28
28
 
29
- #if defined(RUBY_1_8)
30
- extern "C" {
31
- #include "rubysig.h" /* For CHECK_INTS */
32
- }
33
- #endif
34
-
35
29
  #ifdef HAVE_SYS_TIME_H
36
30
  #include <sys/time.h> /* For struct timeval */
37
31
  #endif
@@ -85,7 +79,7 @@ void FXRbApp::setThreadsEnabled(FXbool enabled){
85
79
  interrupt_event = CreateEvent(NULL, TRUE, FALSE, NULL);
86
80
  addInput(interrupt_event,INPUT_READ,this,ID_CHORE_THREADS);
87
81
  #else
88
- pipe(interrupt_fds);
82
+ if(pipe(interrupt_fds) == -1) rb_fatal("failed to allocate pipe for interrupt events");
89
83
  fcntl(interrupt_fds[0], F_SETFL, O_NONBLOCK);
90
84
  addInput(interrupt_fds[0],INPUT_READ,this,ID_CHORE_THREADS);
91
85
  #endif
@@ -130,7 +124,7 @@ long FXRbApp::onChoreThreads(FXObject *obj,FXSelector sel,void *p){
130
124
  #else
131
125
  char byte;
132
126
  // clear the pipe
133
- read(interrupt_fds[0], &byte, 1);
127
+ if(read(interrupt_fds[0], &byte, 1) != 1) rb_fatal("failed to read from pipe for interrupt events");
134
128
  #endif
135
129
  #endif
136
130
  return FXRbApp_onChoreThreads(this, obj, sel, p);
@@ -149,15 +143,7 @@ long FXRbApp::onChoreThreads_gvlcb(FXObject*,FXSelector,void*){
149
143
  wait.tv_sec=0;
150
144
  wait.tv_usec=100*sleepTime;
151
145
 
152
- // Confirm that this thread can be interrupted, then go to sleep
153
- #if defined(RUBY_1_8)
154
- CHECK_INTS;
155
- if(!rb_thread_critical)
156
- rb_thread_wait_for(wait);
157
- #else
158
- // if(!rb_thread_critical) rb_thread_wait_for(wait);
159
146
  rb_thread_wait_for(wait);
160
- #endif /* RUBY_1_8 */
161
147
 
162
148
  // Re-register this chore for next time
163
149
  addChore(this,ID_CHORE_THREADS);
@@ -172,7 +158,7 @@ void fxrb_wakeup_fox(void *){
172
158
  #ifdef WIN32
173
159
  SetEvent(FXRbApp::interrupt_event);
174
160
  #else
175
- write(FXRbApp::interrupt_fds[1], "X", 1);
161
+ if(write(FXRbApp::interrupt_fds[1], "X", 1) != 1) rb_fatal("failed to write to pipe for interrupt events");
176
162
  #endif
177
163
  }
178
164
  #endif
@@ -43,20 +43,9 @@
43
43
  #include <signal.h> // for definitions of SIGINT, etc.
44
44
  #endif
45
45
 
46
- #if defined(RUBY_1_8)
47
-
48
- extern "C" {
49
- #include "st.h"
50
- #include "rubyio.h" // for GetOpenFile(), etc.
51
- }
52
-
53
- #else
54
-
55
46
  #include "ruby/io.h"
56
47
  #include "ruby/st.h"
57
48
 
58
- #endif /* RUBY_1_8 */
59
-
60
49
 
61
50
  // Opaque type declaration from SWIG runtime
62
51
  struct swig_type_info;
@@ -130,7 +119,7 @@ void FXRbUnregisterRubyObj(const void* foxObj){
130
119
  * These objects are allocated by FXRuby on the heap.
131
120
  * They are free'd when the FXRuby wrapper is GC'ed and no other reference to the object exists.
132
121
  * They are registered in FXRbObjRegistry as owned object.
133
- * Tey are built per FXRbRegisterRubyObj().
122
+ * They are built per FXRbRegisterRubyObj().
134
123
  *
135
124
  * Borrowed objects :
136
125
  * These objects are allocated by libfox on the heap.
@@ -145,7 +134,7 @@ void FXRbUnregisterRubyObj(const void* foxObj){
145
134
  * They are wrapped for the time of one callback only, because stack memory is free'd afterwards.
146
135
  * They are not registered in FXRbObjRegistry, but stored on the stack only.
147
136
  * Therefore callback objects aren't re-used, but newly wrapped for each call.
148
- * This is for arguments to ruby blocks.
137
+ * The same goes for arguments to ruby blocks.
149
138
  * They are built per FXGetRubyObjCb().
150
139
  */
151
140
 
@@ -929,7 +918,6 @@ void* FXRbGetExpectedData(VALUE recv,FXSelector key,VALUE value){
929
918
  case SEL_CLICKED:
930
919
  case SEL_DOUBLECLICKED:
931
920
  case SEL_TRIPLECLICKED:
932
- case SEL_CHANGED:
933
921
  case SEL_DESELECTED:
934
922
  case SEL_SELECTED:
935
923
  case SEL_INSERTED:
@@ -1045,7 +1033,7 @@ void* FXRbGetExpectedData(VALUE recv,FXSelector key,VALUE value){
1045
1033
  return NULL;
1046
1034
  case FXWindow::ID_HSCROLLED:
1047
1035
  case FXWindow::ID_VSCROLLED:
1048
- return reinterpret_cast<void*>(static_cast<unsigned long>(NUM2UINT(value)));
1036
+ return reinterpret_cast<void*>(static_cast<long>(NUM2INT(value)));
1049
1037
  case FXWindow::ID_SETINTVALUE:
1050
1038
  if(obj->isMemberOf(FXMETACLASS(FXColorWell))){
1051
1039
  colorValue=NUM2UINT(value);
@@ -1086,9 +1074,16 @@ void* FXRbGetExpectedData(VALUE recv,FXSelector key,VALUE value){
1086
1074
  if(obj->isMemberOf(FXMETACLASS(FXPicker))){
1087
1075
  SWIG_ConvertPtr(value,&ptr,FXRbTypeQuery("FXPoint *"),1);
1088
1076
  return ptr;
1089
- }
1090
- return 0;
1091
1077
  }
1078
+ if(obj->isMemberOf(FXMETACLASS(FXWindow))){
1079
+ switch(id){
1080
+ case FXWindow::ID_HSCROLLED:
1081
+ case FXWindow::ID_VSCROLLED:
1082
+ return reinterpret_cast<void*>(static_cast<long>(NUM2INT(value)));
1083
+ }
1084
+ }
1085
+ return 0;
1086
+ }
1092
1087
 
1093
1088
  if(type==SEL_DRAGGED){
1094
1089
  SWIG_ConvertPtr(value,&ptr,FXRbTypeQuery("FXEvent *"),1);
@@ -1190,8 +1185,8 @@ long FXRbHandleMessage_gvlcb(FXObject* recv,ID func,FXObject* sender,FXSelector
1190
1185
  FXTRACE((100,"FXRbHandleMessage(recv=%p(%s),FXSEL(%s,%d)\n",recv,recv->getClassName(),FXDebugTarget::messageTypeName[FXSELTYPE(key)],FXSELID(key)));
1191
1186
 
1192
1187
  if(FXRbCatchExceptions){
1193
- retval=rb_rescue2((VALUE(*)(ANYARGS)) handle_body, reinterpret_cast<VALUE>(&hArgs),
1194
- (VALUE(*)(ANYARGS)) handle_rescue, Qnil,
1188
+ retval=rb_rescue2(RUBY_VALUE_METHOD_FUNC(handle_body), reinterpret_cast<VALUE>(&hArgs),
1189
+ RUBY_VALUE_METHOD_FUNC(handle_rescue), Qnil,
1195
1190
  rb_eStandardError, rb_eNameError, 0);
1196
1191
  }
1197
1192
  else{
@@ -1237,9 +1232,9 @@ void FXRbRange2LoHi(VALUE range,FXint& lo,FXint& hi){
1237
1232
  rb_raise(rb_eTypeError,"wrong argument type %s (expected %s)",rb_class2name(CLASS_OF(range)),rb_class2name(rb_cRange));
1238
1233
  }
1239
1234
  else{
1240
- VALUE beg=rb_funcall(range,id_begin,0,NULL);
1241
- VALUE end=rb_funcall(range,id_end,0,NULL);
1242
- VALUE excl=rb_funcall(range,id_exclude_endp,0,NULL);
1235
+ VALUE beg=rb_funcall(range,id_begin,0);
1236
+ VALUE end=rb_funcall(range,id_end,0);
1237
+ VALUE excl=rb_funcall(range,id_exclude_endp,0);
1243
1238
  lo=NUM2INT(beg);
1244
1239
  hi=NUM2INT(end);
1245
1240
  if(excl==Qtrue){
@@ -1253,9 +1248,9 @@ void FXRbRange2LoHi(VALUE range,FXdouble& lo,FXdouble& hi){
1253
1248
  rb_raise(rb_eTypeError,"wrong argument type %s (expected %s)",rb_class2name(CLASS_OF(range)),rb_class2name(rb_cRange));
1254
1249
  }
1255
1250
  else{
1256
- VALUE beg=rb_funcall(range,id_begin,0,NULL);
1257
- VALUE end=rb_funcall(range,id_end,0,NULL);
1258
- VALUE excl=rb_funcall(range,id_exclude_endp,0,NULL);
1251
+ VALUE beg=rb_funcall(range,id_begin,0);
1252
+ VALUE end=rb_funcall(range,id_end,0);
1253
+ VALUE excl=rb_funcall(range,id_exclude_endp,0);
1259
1254
  lo=NUM2DBL(beg);
1260
1255
  hi=NUM2DBL(end);
1261
1256
  if(excl==Qtrue){
@@ -1270,13 +1265,13 @@ void FXRbCallVoidMethod_gvlcb(FXObject* recv, const char *func) {
1270
1265
  VALUE obj=FXRbGetRubyObj(recv,false);
1271
1266
  FXASSERT(!NIL_P(obj));
1272
1267
  FXASSERT(!FXRbIsInGC(recv));
1273
- rb_funcall(obj,rb_intern(func),0,NULL);
1268
+ rb_funcall(obj,rb_intern(func),0);
1274
1269
  }
1275
1270
 
1276
1271
  void FXRbCallVoidMethod_gvlcb(FXDC* recv,const char *func) {
1277
1272
  VALUE obj=FXRbGetRubyObj(recv,false);
1278
1273
  FXASSERT(!NIL_P(obj));
1279
- rb_funcall(obj,rb_intern(func),0,NULL);
1274
+ rb_funcall(obj,rb_intern(func),0);
1280
1275
  }
1281
1276
 
1282
1277
  //----------------------------------------------------------------------
@@ -1284,7 +1279,7 @@ void FXRbCallVoidMethod_gvlcb(FXDC* recv,const char *func) {
1284
1279
  bool FXRbCallBoolMethod_gvlcb(const FXObject* recv,const char *func){
1285
1280
  VALUE obj=FXRbGetRubyObj(recv,false);
1286
1281
  FXASSERT(!NIL_P(obj));
1287
- VALUE v=rb_funcall(obj,rb_intern(func),0,NULL);
1282
+ VALUE v=rb_funcall(obj,rb_intern(func),0);
1288
1283
  return (v==Qtrue);
1289
1284
  }
1290
1285
 
@@ -1294,7 +1289,7 @@ bool FXRbCallBoolMethod_gvlcb(const FXObject* recv,const char *func){
1294
1289
  FXint FXRbCallIntMethod_gvlcb(const FXObject* recv,const char *func){
1295
1290
  VALUE obj=FXRbGetRubyObj(recv,false);
1296
1291
  FXASSERT(!NIL_P(obj));
1297
- VALUE result=rb_funcall(obj,rb_intern(func),0,NULL);
1292
+ VALUE result=rb_funcall(obj,rb_intern(func),0);
1298
1293
  return static_cast<FXint>(NUM2INT(result));
1299
1294
  }
1300
1295
 
@@ -1304,7 +1299,7 @@ FXint FXRbCallIntMethod_gvlcb(const FXObject* recv,const char *func){
1304
1299
  FXGLObject* FXRbCallGLObjectMethod_gvlcb(FXGLObject* recv,const char *func){
1305
1300
  VALUE obj=FXRbGetRubyObj(recv,false);
1306
1301
  FXASSERT(!NIL_P(obj));
1307
- VALUE result=rb_funcall(obj,rb_intern(func),0,NULL);
1302
+ VALUE result=rb_funcall(obj,rb_intern(func),0);
1308
1303
  return NIL_P(result) ? 0 : reinterpret_cast<FXGLObject*>(DATA_PTR(result));
1309
1304
  }
1310
1305
 
@@ -1392,7 +1387,7 @@ FXIcon* FXRbCallIconMethod_gvlcb(const FXTableItem* recv,const char *func){
1392
1387
  VALUE obj=FXRbGetRubyObj(recv,false);
1393
1388
  FXASSERT(!NIL_P(obj));
1394
1389
  if(!NIL_P(obj)){
1395
- VALUE result=rb_funcall(obj,rb_intern(func),0,NULL);
1390
+ VALUE result=rb_funcall(obj,rb_intern(func),0);
1396
1391
  return NIL_P(result) ? 0 : reinterpret_cast<FXIcon*>(DATA_PTR(result));
1397
1392
  }
1398
1393
  else{
@@ -1415,7 +1410,7 @@ FXWindow* FXRbCallWindowMethod_gvlcb(const FXTableItem* recv,const char *func,FX
1415
1410
  FXRangef FXRbCallRangeMethod_gvlcb(FXObject* recv,const char *func){
1416
1411
  VALUE obj=FXRbGetRubyObj(recv,false);
1417
1412
  FXASSERT(!NIL_P(obj));
1418
- VALUE result=rb_funcall(obj,rb_intern(func),0,NULL);
1413
+ VALUE result=rb_funcall(obj,rb_intern(func),0);
1419
1414
  return *reinterpret_cast<FXRangef*>(DATA_PTR(result));
1420
1415
  }
1421
1416
 
@@ -1425,7 +1420,7 @@ FXRangef FXRbCallRangeMethod_gvlcb(FXObject* recv,const char *func){
1425
1420
  FXString FXRbCallStringMethod_gvlcb(const FXObject* recv, const char *func){
1426
1421
  VALUE obj=FXRbGetRubyObj(recv,false);
1427
1422
  FXASSERT(!NIL_P(obj));
1428
- VALUE result=rb_funcall(obj,rb_intern(func),0,NULL);
1423
+ VALUE result=rb_funcall(obj,rb_intern(func),0);
1429
1424
  return FXString(StringValuePtr(result));
1430
1425
  }
1431
1426
 
@@ -1452,7 +1447,7 @@ const FXchar* FXRbCallCStringMethod_gvlcb(const FXObject* recv, const char *func
1452
1447
  FXwchar FXRbCallWCharMethod_gvlcb(const FXObject* recv, const char *func){
1453
1448
  VALUE obj=FXRbGetRubyObj(recv,false);
1454
1449
  FXASSERT(!NIL_P(obj));
1455
- VALUE result=rb_funcall(obj,rb_intern(func),0,NULL);
1450
+ VALUE result=rb_funcall(obj,rb_intern(func),0);
1456
1451
  return static_cast<FXwchar>(NUM2ULONG(result));
1457
1452
  }
1458
1453
 
@@ -1483,7 +1478,7 @@ FXRbMenuCommand::~FXRbMenuCommand(){
1483
1478
  }
1484
1479
  }
1485
1480
  }
1486
- acckey=(FXHotKey)NULL;
1481
+ acckey=(FXHotKey)0;
1487
1482
  FXRbUnregisterRubyObj(this);
1488
1483
  }
1489
1484
 
@@ -1499,7 +1494,7 @@ FXRbMenuCheck::~FXRbMenuCheck(){
1499
1494
  }
1500
1495
  }
1501
1496
  }
1502
- acckey=(FXHotKey)NULL;
1497
+ acckey=(FXHotKey)0;
1503
1498
  FXRbUnregisterRubyObj(this);
1504
1499
  }
1505
1500
 
@@ -1515,7 +1510,7 @@ FXRbMenuRadio::~FXRbMenuRadio(){
1515
1510
  }
1516
1511
  }
1517
1512
  }
1518
- acckey=(FXHotKey)NULL;
1513
+ acckey=(FXHotKey)0;
1519
1514
  FXRbUnregisterRubyObj(this);
1520
1515
  }
1521
1516
 
@@ -1656,11 +1651,6 @@ FXInputHandle FXRbGetWriteFileHandle(VALUE obj,FXuint mode) {
1656
1651
  VALUE vwrite = rb_intern("@write");
1657
1652
  if(rb_ivar_defined(obj, vwrite)) obj = rb_ivar_get(obj, vwrite);
1658
1653
  fd = FIX2INT(rb_funcall(obj, rb_intern("fileno"), 0));
1659
- #elif defined(RUBY_1_8)
1660
- OpenFile *fptr;
1661
- GetOpenFile(obj, fptr);
1662
- FILE *fpw=GetWriteFile(fptr);
1663
- fd = fileno(fpw);
1664
1654
  #else
1665
1655
  rb_io_t *fptr;
1666
1656
  GetOpenFile(obj, fptr);
@@ -1897,7 +1887,7 @@ void FXRbUnregisterAppSensitiveObject(FXDC* dc){
1897
1887
  FXASSERT(st_lookup(appSensitiveDCs,reinterpret_cast<st_data_t>(dc),reinterpret_cast<st_data_t *>(0))==0);
1898
1888
  }
1899
1889
 
1900
- static int st_cbfunc_obj(st_data_t key,st_data_t,st_data_t arg,int){
1890
+ static int st_cbfunc_obj(st_data_t key,st_data_t,st_data_t arg){
1901
1891
  FXASSERT(key!=0);
1902
1892
  FXASSERT(arg!=0);
1903
1893
  FXObjectListOf<FXObject> *pObjectList=reinterpret_cast<FXObjectListOf<FXObject>*>(arg);
@@ -1906,7 +1896,7 @@ static int st_cbfunc_obj(st_data_t key,st_data_t,st_data_t arg,int){
1906
1896
  return 0;
1907
1897
  }
1908
1898
 
1909
- static int st_cbfunc_dc(st_data_t key,st_data_t,st_data_t arg,int){
1899
+ static int st_cbfunc_dc(st_data_t key,st_data_t,st_data_t arg){
1910
1900
  FXASSERT(key!=0);
1911
1901
  FXASSERT(arg!=0);
1912
1902
  FXArray<FXDC*> *pDCArray=reinterpret_cast<FXArray<FXDC*>*>(arg);
@@ -1919,7 +1909,7 @@ void FXRbDestroyAppSensitiveObjects(){
1919
1909
  FXTRACE((100,"%s:%d: Begin destroying objects that hold references to the FXApp...\n",__FILE__,__LINE__));
1920
1910
 
1921
1911
  FXObjectListOf<FXObject> objs;
1922
- st_foreach(appSensitiveObjs,reinterpret_cast<int (*)(ANYARGS)>(st_cbfunc_obj),reinterpret_cast<st_data_t>(&objs));
1912
+ st_foreach(appSensitiveObjs,RUBY_INT_METHOD_FUNC(st_cbfunc_obj),reinterpret_cast<st_data_t>(&objs));
1923
1913
  for(FXint i=0;i<objs.no();i++){
1924
1914
  if(objs[i]->isMemberOf(FXMETACLASS(FXRbCursor))){
1925
1915
  if(dynamic_cast<FXRbCursor*>(objs[i])->ownedByApp)
@@ -1949,7 +1939,7 @@ void FXRbDestroyAppSensitiveObjects(){
1949
1939
  }
1950
1940
 
1951
1941
  FXArray<FXDC*> dcs;
1952
- st_foreach(appSensitiveDCs,reinterpret_cast<int (*)(ANYARGS)>(st_cbfunc_dc),reinterpret_cast<st_data_t>(&dcs));
1942
+ st_foreach(appSensitiveDCs,RUBY_INT_METHOD_FUNC(st_cbfunc_dc),reinterpret_cast<st_data_t>(&dcs));
1953
1943
  for(FXint j=0;j<dcs.no();j++){
1954
1944
  delete dcs[j];
1955
1945
  }