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
@@ -5,10 +5,13 @@ module Fox
5
5
  alias addInputOrig addInput # :nodoc:
6
6
 
7
7
  #
8
- # Add a file descriptor _fileDesc_ to be watched for activity as determined
9
- # by _mode_, where _mode_ is a bitwise OR (+INPUT_READ+, +INPUT_WRITE+, +INPUT_EXCEPT+).
10
- # A message of type +SEL_IO_READ+, +SEL_IO_WRITE+, or +SEL_IO_EXCEPT+ will be sent
11
- # to the target when the specified activity is detected on the file descriptor.
8
+ # Add an IO object as _io_ to be watched for activity as determined by _mode_, where _mode_ is a bitwise OR (+INPUT_READ+, +INPUT_WRITE+, +INPUT_EXCEPT+).
9
+ # A message of type +SEL_IO_READ+, +SEL_IO_WRITE+, or +SEL_IO_EXCEPT+ will be sent to the target when the specified activity is detected on the file descriptor.
10
+ #
11
+ # On POSIX operating systems all kinds of file descriptors can be watched.
12
+ # It works for +Socket.new+, +IO.popen+, +IO.pipe+, +IO.for_fd+, +File.open+, etc.
13
+ # Windows provides level triggered events only for network sockets.
14
+ # So on Windows only socket IO objects like +TCPSocket.new+ and +TCPServer.new+ are currently supported to be watched.
12
15
  #
13
16
  # There are several forms for #addInput; the original form (from FOX)
14
17
  # takes four arguments:
@@ -30,8 +33,7 @@ module Fox
30
33
  # ... handle the I/O event ...
31
34
  # }
32
35
  #
33
-
34
- def addInput(fd, mode, *args, &block)
36
+ def addInput(io, mode, *args, &block)
35
37
  params = {}
36
38
  params = args.pop if args.last.is_a? Hash
37
39
  tgt, sel = nil, 0
@@ -51,7 +53,7 @@ module Fox
51
53
  tgt.pconnect(SEL_IO_WRITE, block, params)
52
54
  tgt.pconnect(SEL_IO_EXCEPT, block, params)
53
55
  end
54
- addInputOrig(fd, mode, tgt, sel)
56
+ addInputOrig(io, mode, tgt, sel)
55
57
  end
56
58
 
57
59
  end # class FXApp
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -344,9 +344,9 @@ module Fox
344
344
 
345
345
  def onUpdUndo(sender, sel, ptr) # :nodoc:
346
346
  if canUndo?
347
- sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
347
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
348
348
  else
349
- sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
349
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
350
350
  end
351
351
  return 1
352
352
  end
@@ -358,9 +358,9 @@ module Fox
358
358
 
359
359
  def onUpdRedo(sender, sel, ptr) # :nodoc:
360
360
  if canRedo?
361
- sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
361
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
362
362
  else
363
- sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
363
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
364
364
  end
365
365
  return 1
366
366
  end
@@ -372,9 +372,9 @@ module Fox
372
372
 
373
373
  def onUpdClear(sender, sel, ptr) # :nodoc:
374
374
  if canUndo? || canRedo?
375
- sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
375
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
376
376
  else
377
- sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
377
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
378
378
  end
379
379
  return 1
380
380
  end
@@ -386,9 +386,9 @@ module Fox
386
386
 
387
387
  def onUpdRevert(sender, sel, ptr) # :nodoc:
388
388
  if canRevert?
389
- sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
389
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
390
390
  else
391
- sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
391
+ sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
392
392
  end
393
393
  return 1
394
394
  end
@@ -1,5 +1,5 @@
1
1
  module Fox
2
2
  def Fox.fxrubyversion
3
- "1.6.39"
3
+ "1.6.44"
4
4
  end
5
5
  end
@@ -83,7 +83,7 @@ module Fox
83
83
 
84
84
  # Test if OpenGL is possible.
85
85
  #
86
- # Same as {FXGLVisual.supported?}, but returns the first element (true/false) only.
86
+ # Same as {FXGLVisual.supported}, but returns the first element (true/false) only.
87
87
  #
88
88
  def FXGLVisual.supported?(app); end
89
89
 
@@ -267,6 +267,8 @@ module Fox
267
267
  # after the item is appended.
268
268
  def appendItem(text, bigIcon=nil, miniIcon=nil, data=nil, notify=false); end
269
269
 
270
+ alias << appendItem
271
+
270
272
  # Prepend a new (possibly subclassed) _item_ to the beginning of the list.
271
273
  # If _notify_ is +true+, a +SEL_INSERTED+ message is sent to the list's message target
272
274
  # after the item is prepended.
@@ -45,6 +45,11 @@ module Fox
45
45
  # [deprecated] Pixel data {FXMemoryBuffer}
46
46
  attr_reader :data
47
47
 
48
+ # The pointer to the raw color representation of all image pixels.
49
+ #
50
+ # It can be used to pass raw image data to FFI, Fiddle or OpenGL.
51
+ attr_reader :dataPtr
52
+
48
53
  # Array of colors of all image pixels. Can also be written as String of raw [RGBA] values.
49
54
  attr_accessor :pixels
50
55
 
@@ -217,6 +217,8 @@ module Fox
217
217
  # Returns the integer index of the newly appended item.
218
218
  def appendItem(text, icon=nil, data=nil, notify=false) ; end
219
219
 
220
+ alias << appendItem
221
+
220
222
  # Prepend a (possibly subclassed) _item_ to the list, e.g.
221
223
  #
222
224
  # list.prependItem(FXListItem.new("clyde"))
@@ -186,6 +186,6 @@ module Fox
186
186
  # Sort items using current sort function
187
187
  def sortItems; end
188
188
 
189
- alias appendItem <<
189
+ alias << appendItem
190
190
  end
191
191
  end
@@ -436,8 +436,8 @@ module Fox
436
436
  #
437
437
  # Search for _string_ in text buffer, and return the extent of
438
438
  # the string as a two-element array of arrays.
439
- # The first array contains the beginning index (or indices)
440
- # and the second array contains the ending index (or indices).
439
+ # The first array contains the beginning index (or indices if +SEARCH_REGEX+)
440
+ # and the second array contains the ending index (or indices if +SEARCH_REGEX+) of the first match.
441
441
  # The search starts from the given
442
442
  # _start_ position, scans forward (+SEARCH_FORWARD+) or backward
443
443
  # (+SEARCH_BACKWARD+), and wraps around if +SEARCH_WRAP+ has been
@@ -445,6 +445,8 @@ module Fox
445
445
  # case insensitive search (+SEARCH_IGNORECASE+), or regular expression
446
446
  # search (+SEARCH_REGEX+).
447
447
  #
448
+ # For regular expression searches, the found regex match begin and end is returned at index 0 and captures are returned as entries starting at index 1 in both beginning and ending arrays.
449
+ #
448
450
  def findText(string, start=0, flags=SEARCH_FORWARD|SEARCH_WRAP|SEARCH_EXACT); end
449
451
 
450
452
  # Return +true+ if position _pos_ is selected
@@ -58,7 +58,7 @@ public:
58
58
  FXImage(FXApp* a,VALUE string_or_ary=Qnil,FXuint opts=0,FXint w=1,FXint h=1){
59
59
  FXColor* pix=0;
60
60
  if(!NIL_P(string_or_ary)){
61
- FXuint len=FXRbNumberOfFXColors(string_or_ary);
61
+ FXint len=FXRbNumberOfFXColors(string_or_ary);
62
62
  if(w*h != len){
63
63
  rb_raise( rb_eArgError, "Array size does not match image size" );
64
64
  }
@@ -76,6 +76,11 @@ public:
76
76
  return 0;
77
77
  }
78
78
  }
79
+
80
+ /// Get a pointer to the pixel data
81
+ VALUE getDataPtr() const {
82
+ return ULL2NUM((uintptr_t)self->getData());
83
+ }
79
84
  }
80
85
 
81
86
  /// To get to the option flags
@@ -92,9 +97,9 @@ public:
92
97
  * This can be done by calling render().
93
98
  */
94
99
  void setPixels(VALUE string_or_ary,FXuint opts=0,VALUE w=Qnil,VALUE h=Qnil){
95
- FXuint len=FXRbNumberOfFXColors(string_or_ary);
100
+ FXint len=FXRbNumberOfFXColors(string_or_ary);
96
101
  if( ( (NIL_P(w) || NIL_P(h)) && self->getWidth()*self->getHeight() != len) ||
97
- (!(NIL_P(w) || NIL_P(h)) && NUM2UINT(w)*NUM2UINT(h) != len)){
102
+ (!(NIL_P(w) || NIL_P(h)) && NUM2INT(w)*NUM2INT(h) != len)){
98
103
  rb_raise( rb_eArgError, "Array size does not match image size" );
99
104
  }
100
105
 
@@ -111,7 +116,7 @@ public:
111
116
  if (data) {
112
117
  FXuint size = self->getWidth()*self->getHeight();
113
118
  VALUE ary = rb_ary_new2(size);
114
- for (int i = 0; i < size; i++)
119
+ for (FXuint i = 0; i < size; i++)
115
120
  rb_ary_store(ary, i, UINT2NUM(data[i]));
116
121
  return ary;
117
122
  } else {
@@ -27,7 +27,7 @@
27
27
  class FXMemoryBuffer {
28
28
  public:
29
29
  // Create an memory buffer object
30
- FXMemoryBuffer(FXColor *data,FXuint size);
30
+ FXMemoryBuffer(FXColor *data,FXint size);
31
31
 
32
32
  // Returns the size (in bytes)
33
33
  FXuint getSize() const;
@@ -39,7 +39,7 @@ public:
39
39
  if (data) {
40
40
  FXuint size = self->getSize();
41
41
  VALUE ary = rb_ary_new2(size);
42
- for (int i = 0; i < size; i++)
42
+ for (FXuint i = 0; i < size; i++)
43
43
  rb_ary_store(ary, i, UINT2NUM(data[i]));
44
44
  return ary;
45
45
  }
@@ -519,6 +519,8 @@ public:
519
519
 
520
520
  %extend {
521
521
  /**
522
+ * TODO: Change API to return [beg, end] instead of [[beg], [end]] for non regex.
523
+ *
522
524
  * Search for string in text buffer, returning the extent of
523
525
  * the string in beg and end. The search starts from the given
524
526
  * starting position, scans forward (SEARCH_FORWARD) or backward
@@ -536,23 +538,23 @@ public:
536
538
  FXint* beg;
537
539
  FXint* end;
538
540
  VALUE ary=Qnil;
539
- FXint ngroups=string.contains('(')+1; // FIXME: is this right?
541
+ FXint ngroups = flags&SEARCH_REGEX ? string.contains('(')+1 : 1; // FIXME: is this right?
540
542
  if(!FXMALLOC(&beg,FXint,ngroups)){
541
543
  return Qnil;
542
- }
544
+ }
543
545
  if(!FXMALLOC(&end,FXint,ngroups)){
544
546
  FXFREE(&beg);
545
- return Qnil;
546
- }
547
+ return Qnil;
548
+ }
547
549
  if(self->findText(string,beg,end,start,flags,ngroups)){
548
550
  ary=rb_ary_new();
549
- rb_ary_push(ary,FXRbMakeArray(beg,ngroups));
550
- rb_ary_push(ary,FXRbMakeArray(end,ngroups));
551
- }
551
+ rb_ary_push(ary,FXRbMakeArray(beg,ngroups));
552
+ rb_ary_push(ary,FXRbMakeArray(end,ngroups));
553
+ }
552
554
  FXFREE(&beg);
553
555
  FXFREE(&end);
554
556
  return ary;
555
- }
557
+ }
556
558
  }
557
559
 
558
560
  /// Return TRUE if position pos is selected
@@ -1165,6 +1165,15 @@
1165
1165
 
1166
1166
  %define DECLARE_FXTEXT_VIRTUALS(klass)
1167
1167
  %extend klass {
1168
+ virtual void eraseCursorOverhang();
1169
+ virtual void drawCursor(FXuint state);
1170
+ virtual FXuint style(FXint row,FXint beg,FXint end,FXint pos);
1171
+ virtual void drawBufferText(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXint pos,FXint n,FXuint style);
1172
+ virtual void fillBufferRect(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXuint style);
1173
+ virtual void drawTextRow(FXDCWindow& dc,FXint line,FXint left,FXint right);
1174
+ virtual void drawContents(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
1175
+ virtual void drawNumbers(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
1176
+
1168
1177
  virtual void setCursorPos(FXint pos,FXbool notify=FALSE);
1169
1178
  virtual FXbool extendSelection(FXint pos,FXTextSelectionMode mode=SELECT_CHARS,FXbool notify=FALSE);
1170
1179
  virtual FXbool killSelection(FXbool notify=FALSE);
@@ -1,6 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'testcase'
3
3
  require 'fox16'
4
+ require 'fiddle'
4
5
 
5
6
  class TC_FXImage < Fox::TestCase
6
7
  include Fox
@@ -80,6 +81,13 @@ class TC_FXImage < Fox::TestCase
80
81
  assert_equal("rgbaRGBA", img.pixel_string)
81
82
  end
82
83
 
84
+ def test_dataPtr
85
+ img = FXImage.new(app, nil, 0, 2, 1)
86
+ img.pixels = "rgbaRGBA"
87
+ assert_equal(0, img.options)
88
+ assert_equal("rgbaRGBA", Fiddle::Pointer.new(img.dataPtr)[0, 8])
89
+ end
90
+
83
91
  def test_create
84
92
  #
85
93
  # If the image owns its pixel data and IMAGE_KEEP was not specified,
@@ -46,17 +46,17 @@ class TC_FXList < Fox::TestCase
46
46
 
47
47
  def test_appendItem_byText
48
48
  assert_equal(0, @list.numItems)
49
- itemIndex = @list.appendItem("")
49
+ assert_equal 0, @list.appendItem("")
50
50
  assert_equal(1, @list.numItems)
51
- itemIndex = @list.appendItem("anItem")
51
+ assert_equal 1, @list.appendItem("anItem")
52
52
  assert_equal(2, @list.numItems)
53
- itemIndex = @list.appendItem("anItem", nil)
53
+ assert_equal 2, @list.appendItem("anItem", nil)
54
54
  assert_equal(3, @list.numItems)
55
- itemIndex = @list.appendItem("anItem", nil, "someData")
55
+ assert_equal 3, @list.appendItem("anItem", nil, "someData")
56
56
  assert_equal(4, @list.numItems)
57
- itemIndex = @list.appendItem("anItem", nil, "someData", true)
57
+ assert_equal 4, @list.appendItem("anItem", nil, "someData", true)
58
58
  assert_equal(5, @list.numItems)
59
- itemIndex = @list.appendItem("anItem", nil, "someData", false)
59
+ assert_equal 5, @list.appendItem("anItem", nil, "someData", false)
60
60
  assert_equal(6, @list.numItems)
61
61
  assert_raises(ArgumentError) do
62
62
  @list.appendItem("anItem", nil, "someData", 42) # last argument must be true or false
@@ -103,9 +103,9 @@ class TC_FXList < Fox::TestCase
103
103
  end
104
104
 
105
105
  def test_makeItemVisible
106
- items = []
107
106
  0.upto(2) { |i|
108
- items << @list.appendItem("item#{i}")
107
+ itemIndex = @list.appendItem("item#{i}")
108
+ assert_equal i, itemIndex
109
109
  }
110
110
  assert_raises(IndexError) {
111
111
  @list.makeItemVisible(-1)
@@ -87,6 +87,13 @@ public
87
87
  assert_equal([10], endIndex)
88
88
  end
89
89
 
90
+ def test_find_text_with_startpos_wrap_nocase
91
+ @text.text = "I came, i saw, I conquered"
92
+ startIndex, endIndex = @text.findText("i ", 16, SEARCH_FORWARD|SEARCH_IGNORECASE|SEARCH_WRAP)
93
+ assert_equal([0], startIndex)
94
+ assert_equal([2], endIndex)
95
+ end
96
+
90
97
  def test_find_text_with_groups
91
98
  @text.text = "I came, I saw, I conquered"
92
99
  startIndex, endIndex = @text.findText("I ([a-z]+)(, )?", 0, SEARCH_REGEX)
@@ -94,6 +101,18 @@ public
94
101
  assert_equal([8, 6, 8], endIndex)
95
102
  end
96
103
 
104
+ def test_find_text_with_loop
105
+ @text.text = "() ()()"
106
+ e = Enumerator.new do |y|
107
+ pos = 0
108
+ while a=@text.findText("()", pos, SEARCH_FORWARD|SEARCH_EXACT)
109
+ y << a
110
+ pos = a[1][0]
111
+ end
112
+ end
113
+ assert_equal [[[0], [2]], [[4], [6]], [[6], [8]]], e.to_a
114
+ end
115
+
97
116
  if ''.respond_to?(:encoding)
98
117
  def test_encoding
99
118
  @text.text = "世界線航跡蔵"
@@ -5,6 +5,20 @@ require 'fox16'
5
5
  class TC_FXVec4f < Test::Unit::TestCase
6
6
  include Fox
7
7
 
8
+ def assert_in_delta(v1, v2, delta)
9
+ case v1
10
+ when FXVec3f
11
+ 3.times do |i|
12
+ super(v1[i], v2[i], delta)
13
+ end
14
+ when FXVec4f
15
+ 4.times do |i|
16
+ super(v1[i], v2[i], delta)
17
+ end
18
+ else
19
+ super(v1, v2, delta)
20
+ end
21
+ end
8
22
 
9
23
  def test_new
10
24
  FXVec4f.new
@@ -65,37 +79,37 @@ class TC_FXVec4f < Test::Unit::TestCase
65
79
  def test_neg
66
80
  vec = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
67
81
  vec = -vec
68
- assert_equal(vec[0], -1.0)
69
- assert_equal(vec[1], -2.0)
70
- assert_equal(vec[2], -3.0)
71
- assert_equal(vec[3], -4.0)
82
+ assert_in_delta(vec[0], -1.0, 0.001)
83
+ assert_in_delta(vec[1], -2.0, 0.001)
84
+ assert_in_delta(vec[2], -3.0, 0.001)
85
+ assert_in_delta(vec[3], -4.0, 0.001)
72
86
  end
73
87
 
74
88
  def test_add
75
89
  v1 = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
76
90
  v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
77
91
  v3 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
78
- assert_equal(v3, v1 + v2)
92
+ assert_in_delta(v3, v1 + v2, 0.001)
79
93
  end
80
94
 
81
95
  def test_sub
82
96
  v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
83
97
  v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
84
98
  v3 = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
85
- assert_equal(v3, v1 - v2)
99
+ assert_in_delta(v3, v1 - v2, 0.001)
86
100
  end
87
101
 
88
102
  def test_mul
89
103
  v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
90
104
  v2 = FXVec4f.new(6.0, 12.0, 18.0, 24.0)
91
- assert_equal(v2, v1 * 2)
105
+ assert_in_delta(v2, v1 * 2, 0.001)
92
106
  end
93
107
 
94
108
  def test_mul2 # same as dot product
95
109
  v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
96
110
  v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
97
- assert_equal(180.0, v1*v2)
98
- assert_equal(180.0, v2*v1)
111
+ assert_in_delta(180.0, v1*v2, 0.001)
112
+ assert_in_delta(180.0, v2*v1, 0.001)
99
113
  end
100
114
 
101
115
  def test_div
@@ -110,8 +124,8 @@ class TC_FXVec4f < Test::Unit::TestCase
110
124
  def test_dot
111
125
  v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
112
126
  v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
113
- assert_equal(180.0, v1.dot(v2))
114
- assert_equal(180.0, v2.dot(v1))
127
+ assert_in_delta(180.0, v1.dot(v2), 0.001)
128
+ assert_in_delta(180.0, v2.dot(v1), 0.001)
115
129
  end
116
130
 
117
131
  def test_length
@@ -121,7 +135,7 @@ class TC_FXVec4f < Test::Unit::TestCase
121
135
 
122
136
  def test_normalize
123
137
  vec = FXVec4f.new(1.0, 1.0, 1.0, 1.0)
124
- assert_equal(FXVec4f.new(0.5, 0.5, 0.5, 0.5), vec.normalize)
138
+ assert_in_delta(FXVec4f.new(0.5, 0.5, 0.5, 0.5), vec.normalize, 0.001)
125
139
  end
126
140
 
127
141
  def test_lo