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

Sign up to get free protection for your applications and to get access to all the features.
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
  }