fxruby 1.6.15-x86-mswin32-60

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 (490) hide show
  1. data/LICENSE +456 -0
  2. data/README +39 -0
  3. data/doc/apes02.html +21 -0
  4. data/doc/apes03.html +39 -0
  5. data/doc/book.html +3 -0
  6. data/doc/build.html +132 -0
  7. data/doc/ch03s02.html +23 -0
  8. data/doc/ch03s03.html +52 -0
  9. data/doc/ch03s04.html +36 -0
  10. data/doc/ch03s05.html +60 -0
  11. data/doc/ch04s02.html +71 -0
  12. data/doc/ch04s03.html +37 -0
  13. data/doc/ch04s04.html +72 -0
  14. data/doc/ch05s02.html +260 -0
  15. data/doc/ch05s03.html +127 -0
  16. data/doc/changes.html +733 -0
  17. data/doc/clipboardtut.html +67 -0
  18. data/doc/differences.html +190 -0
  19. data/doc/dragdroptut.html +263 -0
  20. data/doc/events.html +36 -0
  21. data/doc/examples.html +104 -0
  22. data/doc/gems.html +73 -0
  23. data/doc/goals.html +41 -0
  24. data/doc/images/babelfish.png +0 -0
  25. data/doc/images/browser.png +0 -0
  26. data/doc/images/button.png +0 -0
  27. data/doc/images/call-chain-example.png +0 -0
  28. data/doc/images/colordialog.png +0 -0
  29. data/doc/images/datatarget.png +0 -0
  30. data/doc/images/dialog.png +0 -0
  31. data/doc/images/dilbert.png +0 -0
  32. data/doc/images/dirlist.png +0 -0
  33. data/doc/images/dropsite-droprejected.png +0 -0
  34. data/doc/images/foursplit.png +0 -0
  35. data/doc/images/gltest.png +0 -0
  36. data/doc/images/glviewer.png +0 -0
  37. data/doc/images/groupbox.png +0 -0
  38. data/doc/images/header.png +0 -0
  39. data/doc/images/hello-with-button.png +0 -0
  40. data/doc/images/hello-with-icon-1.png +0 -0
  41. data/doc/images/hello-with-icon-2.png +0 -0
  42. data/doc/images/hello-with-icon-3.png +0 -0
  43. data/doc/images/hello-with-tooltip.png +0 -0
  44. data/doc/images/hello-without-button.png +0 -0
  45. data/doc/images/hello.png +0 -0
  46. data/doc/images/hello2.png +0 -0
  47. data/doc/images/iconlist-bigicons.png +0 -0
  48. data/doc/images/iconlist-details.png +0 -0
  49. data/doc/images/image.png +0 -0
  50. data/doc/images/imageviewer.png +0 -0
  51. data/doc/images/inheritance.png +0 -0
  52. data/doc/images/mditest.png +0 -0
  53. data/doc/images/raabrowser.png +0 -0
  54. data/doc/images/scribble.png +0 -0
  55. data/doc/images/shutter.png +0 -0
  56. data/doc/images/splitter.png +0 -0
  57. data/doc/images/tabbook.png +0 -0
  58. data/doc/images/table.png +0 -0
  59. data/doc/images/tutorial1.png +0 -0
  60. data/doc/implementation.html +16 -0
  61. data/doc/infosources.html +33 -0
  62. data/doc/library.html +30 -0
  63. data/doc/opengl.html +73 -0
  64. data/doc/pt01.html +3 -0
  65. data/doc/pt02.html +3 -0
  66. data/doc/scintilla.html +36 -0
  67. data/doc/style.css +247 -0
  68. data/doc/subversion.html +21 -0
  69. data/doc/tutorial1.html +90 -0
  70. data/doc/unicode.html +56 -0
  71. data/examples/RAA.rb +25 -0
  72. data/examples/README +53 -0
  73. data/examples/babelfish.rb +72 -0
  74. data/examples/bounce.rb +159 -0
  75. data/examples/browser.rb +191 -0
  76. data/examples/button.rb +168 -0
  77. data/examples/custom_table_item.rb +170 -0
  78. data/examples/datatarget.rb +223 -0
  79. data/examples/dctest.rb +696 -0
  80. data/examples/dialog.rb +143 -0
  81. data/examples/dilbert.rb +66 -0
  82. data/examples/dirlist.rb +63 -0
  83. data/examples/dragdrop.rb +97 -0
  84. data/examples/dragsource.rb +80 -0
  85. data/examples/dropsite.rb +59 -0
  86. data/examples/foursplit.rb +97 -0
  87. data/examples/gltest.rb +330 -0
  88. data/examples/glviewer.rb +576 -0
  89. data/examples/groupbox.rb +392 -0
  90. data/examples/header.rb +149 -0
  91. data/examples/hello.rb +12 -0
  92. data/examples/hello2.rb +51 -0
  93. data/examples/iRAA.rb +153 -0
  94. data/examples/iconlist.rb +92 -0
  95. data/examples/icons/AngryGuyInBunnySuit.ico +0 -0
  96. data/examples/icons/FatBot.ico +0 -0
  97. data/examples/icons/FlippedySwitch.ico +0 -0
  98. data/examples/icons/LeGoon.ico +0 -0
  99. data/examples/icons/Net.ico +0 -0
  100. data/examples/icons/RedMacOS.ico +0 -0
  101. data/examples/icons/SawBlade.ico +0 -0
  102. data/examples/icons/backview.png +0 -0
  103. data/examples/icons/big.png +0 -0
  104. data/examples/icons/bigfolder.png +0 -0
  105. data/examples/icons/bigpenguin.png +0 -0
  106. data/examples/icons/bottomview.png +0 -0
  107. data/examples/icons/camera.png +0 -0
  108. data/examples/icons/capbutt.png +0 -0
  109. data/examples/icons/capnotlast.png +0 -0
  110. data/examples/icons/capproj.png +0 -0
  111. data/examples/icons/capround.png +0 -0
  112. data/examples/icons/colorpal.png +0 -0
  113. data/examples/icons/copy.png +0 -0
  114. data/examples/icons/cut.png +0 -0
  115. data/examples/icons/delimit.png +0 -0
  116. data/examples/icons/dippy.png +0 -0
  117. data/examples/icons/double_dash.png +0 -0
  118. data/examples/icons/filenew.png +0 -0
  119. data/examples/icons/fileopen.png +0 -0
  120. data/examples/icons/filesave.png +0 -0
  121. data/examples/icons/filesaveas.png +0 -0
  122. data/examples/icons/fonts.png +0 -0
  123. data/examples/icons/fox.png +0 -0
  124. data/examples/icons/foxicon.png +0 -0
  125. data/examples/icons/frontview.png +0 -0
  126. data/examples/icons/gem_big.png +0 -0
  127. data/examples/icons/gem_small.png +0 -0
  128. data/examples/icons/hello2.png +0 -0
  129. data/examples/icons/help.png +0 -0
  130. data/examples/icons/indent.png +0 -0
  131. data/examples/icons/jbevel.png +0 -0
  132. data/examples/icons/jmiter.png +0 -0
  133. data/examples/icons/jround.png +0 -0
  134. data/examples/icons/kill.png +0 -0
  135. data/examples/icons/leftview.png +0 -0
  136. data/examples/icons/light.png +0 -0
  137. data/examples/icons/minidoc.png +0 -0
  138. data/examples/icons/minifolder.png +0 -0
  139. data/examples/icons/minifolderopen.png +0 -0
  140. data/examples/icons/newfolder.png +0 -0
  141. data/examples/icons/nolight.png +0 -0
  142. data/examples/icons/onoff_dash.png +0 -0
  143. data/examples/icons/palette.png +0 -0
  144. data/examples/icons/parallel.png +0 -0
  145. data/examples/icons/paste.png +0 -0
  146. data/examples/icons/pattern.png +0 -0
  147. data/examples/icons/penguin.png +0 -0
  148. data/examples/icons/perspective.png +0 -0
  149. data/examples/icons/printicon.png +0 -0
  150. data/examples/icons/prop.png +0 -0
  151. data/examples/icons/redo.png +0 -0
  152. data/examples/icons/rightview.png +0 -0
  153. data/examples/icons/saveas.png +0 -0
  154. data/examples/icons/shutter1.png +0 -0
  155. data/examples/icons/shutter2.png +0 -0
  156. data/examples/icons/small.png +0 -0
  157. data/examples/icons/smoothlight.png +0 -0
  158. data/examples/icons/solid_line.png +0 -0
  159. data/examples/icons/tbuplevel.png +0 -0
  160. data/examples/icons/topview.png +0 -0
  161. data/examples/icons/undo.png +0 -0
  162. data/examples/icons/winapp.png +0 -0
  163. data/examples/icons/zoom.png +0 -0
  164. data/examples/image.rb +279 -0
  165. data/examples/imageviewer.rb +509 -0
  166. data/examples/inputs.rb +83 -0
  167. data/examples/mditest.rb +180 -0
  168. data/examples/pig.rb +77 -0
  169. data/examples/raabrowser.rb +122 -0
  170. data/examples/ratio.rb +80 -0
  171. data/examples/rulerview.rb +27 -0
  172. data/examples/scintilla-test.rb +81 -0
  173. data/examples/scribble-orig.rb +186 -0
  174. data/examples/scribble.rb +162 -0
  175. data/examples/shutter.rb +158 -0
  176. data/examples/splitter.rb +211 -0
  177. data/examples/styledtext.rb +82 -0
  178. data/examples/tabbook.rb +165 -0
  179. data/examples/table.rb +182 -0
  180. data/examples/textedit/commands.rb +114 -0
  181. data/examples/textedit/helpwindow.rb +299 -0
  182. data/examples/textedit/prefdialog.rb +239 -0
  183. data/examples/textedit/textedit.rb +1763 -0
  184. data/examples/unicode.rb +36 -0
  185. data/ext/fox16/fox16.so +0 -0
  186. data/lib/fox16/aliases.rb +5611 -0
  187. data/lib/fox16/calendar.rb +217 -0
  188. data/lib/fox16/chore.rb +105 -0
  189. data/lib/fox16/colors.rb +280 -0
  190. data/lib/fox16/core.rb +681 -0
  191. data/lib/fox16/dict.rb +35 -0
  192. data/lib/fox16/execute_nonmodal.rb +70 -0
  193. data/lib/fox16/glgroup.rb +166 -0
  194. data/lib/fox16/glshapes.rb +456 -0
  195. data/lib/fox16/input.rb +59 -0
  196. data/lib/fox16/irb.rb +178 -0
  197. data/lib/fox16/iterators.rb +420 -0
  198. data/lib/fox16/keys.rb +1374 -0
  199. data/lib/fox16/kwargs.rb +2736 -0
  200. data/lib/fox16/missingdep.rb +14 -0
  201. data/lib/fox16/pseudokeyboard.rb +40 -0
  202. data/lib/fox16/pseudomouse.rb +87 -0
  203. data/lib/fox16/responder.rb +70 -0
  204. data/lib/fox16/responder2.rb +131 -0
  205. data/lib/fox16/scintilla.rb +3641 -0
  206. data/lib/fox16/settings.rb +18 -0
  207. data/lib/fox16/signal.rb +71 -0
  208. data/lib/fox16/splashscreen.rb +82 -0
  209. data/lib/fox16/timeout.rb +136 -0
  210. data/lib/fox16/undolist.rb +455 -0
  211. data/lib/fox16/version.rb +9 -0
  212. data/rdoc-sources/FX4Splitter.rb +156 -0
  213. data/rdoc-sources/FX7Segment.rb +54 -0
  214. data/rdoc-sources/FXAccelTable.rb +102 -0
  215. data/rdoc-sources/FXApp.rb +545 -0
  216. data/rdoc-sources/FXArrowButton.rb +69 -0
  217. data/rdoc-sources/FXBMPIcon.rb +67 -0
  218. data/rdoc-sources/FXBMPImage.rb +30 -0
  219. data/rdoc-sources/FXBitmap.rb +115 -0
  220. data/rdoc-sources/FXBitmapFrame.rb +31 -0
  221. data/rdoc-sources/FXBitmapView.rb +44 -0
  222. data/rdoc-sources/FXButton.rb +59 -0
  223. data/rdoc-sources/FXCURCursor.rb +13 -0
  224. data/rdoc-sources/FXCanvas.rb +18 -0
  225. data/rdoc-sources/FXCheckButton.rb +58 -0
  226. data/rdoc-sources/FXChoiceBox.rb +49 -0
  227. data/rdoc-sources/FXColorBar.rb +48 -0
  228. data/rdoc-sources/FXColorDialog.rb +37 -0
  229. data/rdoc-sources/FXColorList.rb +55 -0
  230. data/rdoc-sources/FXColorRing.rb +49 -0
  231. data/rdoc-sources/FXColorSelector.rb +65 -0
  232. data/rdoc-sources/FXColorWell.rb +65 -0
  233. data/rdoc-sources/FXColorWheel.rb +57 -0
  234. data/rdoc-sources/FXComboBox.rb +214 -0
  235. data/rdoc-sources/FXComposite.rb +34 -0
  236. data/rdoc-sources/FXCursor.rb +67 -0
  237. data/rdoc-sources/FXDC.rb +720 -0
  238. data/rdoc-sources/FXDCPrint.rb +127 -0
  239. data/rdoc-sources/FXDCWindow.rb +33 -0
  240. data/rdoc-sources/FXDataTarget.rb +66 -0
  241. data/rdoc-sources/FXDebugTarget.rb +25 -0
  242. data/rdoc-sources/FXDelegator.rb +23 -0
  243. data/rdoc-sources/FXDial.rb +107 -0
  244. data/rdoc-sources/FXDialogBox.rb +32 -0
  245. data/rdoc-sources/FXDict.rb +79 -0
  246. data/rdoc-sources/FXDirBox.rb +55 -0
  247. data/rdoc-sources/FXDirDialog.rb +47 -0
  248. data/rdoc-sources/FXDirList.rb +149 -0
  249. data/rdoc-sources/FXDirSelector.rb +64 -0
  250. data/rdoc-sources/FXDockBar.rb +151 -0
  251. data/rdoc-sources/FXDockHandler.rb +26 -0
  252. data/rdoc-sources/FXDockSite.rb +104 -0
  253. data/rdoc-sources/FXDockTitle.rb +26 -0
  254. data/rdoc-sources/FXDocument.rb +29 -0
  255. data/rdoc-sources/FXDragCorner.rb +19 -0
  256. data/rdoc-sources/FXDrawable.rb +27 -0
  257. data/rdoc-sources/FXDriveBox.rb +46 -0
  258. data/rdoc-sources/FXExtentd.rb +85 -0
  259. data/rdoc-sources/FXExtentf.rb +85 -0
  260. data/rdoc-sources/FXFileDialog.rb +217 -0
  261. data/rdoc-sources/FXFileDict.rb +131 -0
  262. data/rdoc-sources/FXFileList.rb +208 -0
  263. data/rdoc-sources/FXFileSelector.rb +184 -0
  264. data/rdoc-sources/FXFileStream.rb +27 -0
  265. data/rdoc-sources/FXFoldingList.rb +504 -0
  266. data/rdoc-sources/FXFont.rb +361 -0
  267. data/rdoc-sources/FXFontDialog.rb +14 -0
  268. data/rdoc-sources/FXFontSelector.rb +37 -0
  269. data/rdoc-sources/FXFrame.rb +53 -0
  270. data/rdoc-sources/FXGIFCursor.rb +50 -0
  271. data/rdoc-sources/FXGIFIcon.rb +31 -0
  272. data/rdoc-sources/FXGIFImage.rb +29 -0
  273. data/rdoc-sources/FXGLCanvas.rb +45 -0
  274. data/rdoc-sources/FXGLContext.rb +40 -0
  275. data/rdoc-sources/FXGLObject.rb +75 -0
  276. data/rdoc-sources/FXGLShape.rb +69 -0
  277. data/rdoc-sources/FXGLViewer.rb +332 -0
  278. data/rdoc-sources/FXGLVisual.rb +94 -0
  279. data/rdoc-sources/FXGradientBar.rb +301 -0
  280. data/rdoc-sources/FXGroupBox.rb +36 -0
  281. data/rdoc-sources/FXHeader.rb +411 -0
  282. data/rdoc-sources/FXHorizontalFrame.rb +29 -0
  283. data/rdoc-sources/FXICOIcon.rb +65 -0
  284. data/rdoc-sources/FXICOImage.rb +31 -0
  285. data/rdoc-sources/FXIcon.rb +38 -0
  286. data/rdoc-sources/FXIconDict.rb +48 -0
  287. data/rdoc-sources/FXIconList.rb +450 -0
  288. data/rdoc-sources/FXIconSource.rb +100 -0
  289. data/rdoc-sources/FXId.rb +34 -0
  290. data/rdoc-sources/FXImage.rb +292 -0
  291. data/rdoc-sources/FXImageFrame.rb +36 -0
  292. data/rdoc-sources/FXImageView.rb +35 -0
  293. data/rdoc-sources/FXInputDialog.rb +80 -0
  294. data/rdoc-sources/FXJPGIcon.rb +70 -0
  295. data/rdoc-sources/FXJPGImage.rb +38 -0
  296. data/rdoc-sources/FXKnob.rb +76 -0
  297. data/rdoc-sources/FXLabel.rb +72 -0
  298. data/rdoc-sources/FXList.rb +443 -0
  299. data/rdoc-sources/FXListBox.rb +191 -0
  300. data/rdoc-sources/FXMDIButton.rb +67 -0
  301. data/rdoc-sources/FXMDIChild.rb +155 -0
  302. data/rdoc-sources/FXMDIClient.rb +65 -0
  303. data/rdoc-sources/FXMainWindow.rb +26 -0
  304. data/rdoc-sources/FXMatrix.rb +57 -0
  305. data/rdoc-sources/FXMemoryBuffer.rb +28 -0
  306. data/rdoc-sources/FXMemoryStream.rb +50 -0
  307. data/rdoc-sources/FXMenuBar.rb +23 -0
  308. data/rdoc-sources/FXMenuButton.rb +84 -0
  309. data/rdoc-sources/FXMenuCaption.rb +53 -0
  310. data/rdoc-sources/FXMenuCascade.rb +18 -0
  311. data/rdoc-sources/FXMenuCheck.rb +30 -0
  312. data/rdoc-sources/FXMenuCommand.rb +26 -0
  313. data/rdoc-sources/FXMenuPane.rb +13 -0
  314. data/rdoc-sources/FXMenuRadio.rb +33 -0
  315. data/rdoc-sources/FXMenuSeparator.rb +21 -0
  316. data/rdoc-sources/FXMenuTitle.rb +27 -0
  317. data/rdoc-sources/FXMessageBox.rb +73 -0
  318. data/rdoc-sources/FXObject.rb +28 -0
  319. data/rdoc-sources/FXOptionMenu.rb +83 -0
  320. data/rdoc-sources/FXPCXIcon.rb +63 -0
  321. data/rdoc-sources/FXPCXImage.rb +31 -0
  322. data/rdoc-sources/FXPNGIcon.rb +66 -0
  323. data/rdoc-sources/FXPNGImage.rb +34 -0
  324. data/rdoc-sources/FXPPMIcon.rb +36 -0
  325. data/rdoc-sources/FXPPMImage.rb +31 -0
  326. data/rdoc-sources/FXPacker.rb +63 -0
  327. data/rdoc-sources/FXPicker.rb +27 -0
  328. data/rdoc-sources/FXPopup.rb +53 -0
  329. data/rdoc-sources/FXPrintDialog.rb +36 -0
  330. data/rdoc-sources/FXProgressBar.rb +57 -0
  331. data/rdoc-sources/FXProgressDialog.rb +36 -0
  332. data/rdoc-sources/FXQuatd.rb +164 -0
  333. data/rdoc-sources/FXQuatf.rb +173 -0
  334. data/rdoc-sources/FXRGBIcon.rb +64 -0
  335. data/rdoc-sources/FXRGBImage.rb +31 -0
  336. data/rdoc-sources/FXRadioButton.rb +70 -0
  337. data/rdoc-sources/FXRanged.rb +100 -0
  338. data/rdoc-sources/FXRangef.rb +100 -0
  339. data/rdoc-sources/FXRealSlider.rb +101 -0
  340. data/rdoc-sources/FXRealSpinner.rb +140 -0
  341. data/rdoc-sources/FXRecentFiles.rb +77 -0
  342. data/rdoc-sources/FXRectangle.rb +149 -0
  343. data/rdoc-sources/FXRegion.rb +64 -0
  344. data/rdoc-sources/FXRegistry.rb +56 -0
  345. data/rdoc-sources/FXReplaceDialog.rb +56 -0
  346. data/rdoc-sources/FXRootWindow.rb +17 -0
  347. data/rdoc-sources/FXRuler.rb +130 -0
  348. data/rdoc-sources/FXRulerView.rb +225 -0
  349. data/rdoc-sources/FXScintilla.rb +121 -0
  350. data/rdoc-sources/FXScrollArea.rb +86 -0
  351. data/rdoc-sources/FXScrollBar.rb +107 -0
  352. data/rdoc-sources/FXScrollPane.rb +28 -0
  353. data/rdoc-sources/FXScrollWindow.rb +38 -0
  354. data/rdoc-sources/FXSearchDialog.rb +24 -0
  355. data/rdoc-sources/FXSeparator.rb +74 -0
  356. data/rdoc-sources/FXSettings.rb +248 -0
  357. data/rdoc-sources/FXShell.rb +8 -0
  358. data/rdoc-sources/FXShutter.rb +102 -0
  359. data/rdoc-sources/FXSize.rb +95 -0
  360. data/rdoc-sources/FXSlider.rb +98 -0
  361. data/rdoc-sources/FXSphered.rb +80 -0
  362. data/rdoc-sources/FXSpheref.rb +80 -0
  363. data/rdoc-sources/FXSpinner.rb +136 -0
  364. data/rdoc-sources/FXSplashWindow.rb +27 -0
  365. data/rdoc-sources/FXSplitter.rb +89 -0
  366. data/rdoc-sources/FXSpring.rb +61 -0
  367. data/rdoc-sources/FXStatusBar.rb +42 -0
  368. data/rdoc-sources/FXStatusLine.rb +60 -0
  369. data/rdoc-sources/FXStream.rb +142 -0
  370. data/rdoc-sources/FXStringDict.rb +38 -0
  371. data/rdoc-sources/FXSwitcher.rb +78 -0
  372. data/rdoc-sources/FXTGAIcon.rb +63 -0
  373. data/rdoc-sources/FXTGAImage.rb +31 -0
  374. data/rdoc-sources/FXTIFIcon.rb +70 -0
  375. data/rdoc-sources/FXTIFImage.rb +37 -0
  376. data/rdoc-sources/FXTabBar.rb +80 -0
  377. data/rdoc-sources/FXTabBook.rb +41 -0
  378. data/rdoc-sources/FXTabItem.rb +58 -0
  379. data/rdoc-sources/FXTable.rb +967 -0
  380. data/rdoc-sources/FXText.rb +581 -0
  381. data/rdoc-sources/FXTextField.rb +151 -0
  382. data/rdoc-sources/FXToggleButton.rb +70 -0
  383. data/rdoc-sources/FXToolBar.rb +61 -0
  384. data/rdoc-sources/FXToolBarGrip.rb +50 -0
  385. data/rdoc-sources/FXToolBarShell.rb +44 -0
  386. data/rdoc-sources/FXToolBarTab.rb +74 -0
  387. data/rdoc-sources/FXToolTip.rb +39 -0
  388. data/rdoc-sources/FXTopWindow.rb +163 -0
  389. data/rdoc-sources/FXTranslator.rb +32 -0
  390. data/rdoc-sources/FXTreeList.rb +514 -0
  391. data/rdoc-sources/FXTreeListBox.rb +219 -0
  392. data/rdoc-sources/FXTriStateButton.rb +49 -0
  393. data/rdoc-sources/FXVec2d.rb +96 -0
  394. data/rdoc-sources/FXVec2f.rb +96 -0
  395. data/rdoc-sources/FXVec3d.rb +113 -0
  396. data/rdoc-sources/FXVec3f.rb +113 -0
  397. data/rdoc-sources/FXVec4d.rb +129 -0
  398. data/rdoc-sources/FXVec4f.rb +129 -0
  399. data/rdoc-sources/FXVerticalFrame.rb +29 -0
  400. data/rdoc-sources/FXVisual.rb +79 -0
  401. data/rdoc-sources/FXWindow.rb +725 -0
  402. data/rdoc-sources/FXWizard.rb +59 -0
  403. data/rdoc-sources/FXXBMIcon.rb +37 -0
  404. data/rdoc-sources/FXXBMImage.rb +32 -0
  405. data/rdoc-sources/FXXPMIcon.rb +65 -0
  406. data/rdoc-sources/FXXPMImage.rb +31 -0
  407. data/rdoc-sources/README.rdoc +53 -0
  408. data/rdoc-sources/fxdefs.rb +90 -0
  409. data/tests/README +19 -0
  410. data/tests/TC_FXAccelTable.rb +43 -0
  411. data/tests/TC_FXApp.rb +16 -0
  412. data/tests/TC_FXArc.rb +26 -0
  413. data/tests/TC_FXBMPIcon.rb +15 -0
  414. data/tests/TC_FXBMPImage.rb +15 -0
  415. data/tests/TC_FXButton.rb +72 -0
  416. data/tests/TC_FXCheckButton.rb +57 -0
  417. data/tests/TC_FXComboBox.rb +63 -0
  418. data/tests/TC_FXDC.rb +372 -0
  419. data/tests/TC_FXDCPrint.rb +102 -0
  420. data/tests/TC_FXDCWindow.rb +23 -0
  421. data/tests/TC_FXDataTarget.rb +24 -0
  422. data/tests/TC_FXDialogBox.rb +12 -0
  423. data/tests/TC_FXDirList.rb +30 -0
  424. data/tests/TC_FXFileAssoc.rb +62 -0
  425. data/tests/TC_FXFileStream.rb +90 -0
  426. data/tests/TC_FXFoldingList.rb +32 -0
  427. data/tests/TC_FXFont.rb +69 -0
  428. data/tests/TC_FXFontDesc.rb +58 -0
  429. data/tests/TC_FXGLGroup.rb +32 -0
  430. data/tests/TC_FXGLShape.rb +28 -0
  431. data/tests/TC_FXGLViewer.rb +20 -0
  432. data/tests/TC_FXGradientBar.rb +89 -0
  433. data/tests/TC_FXHeader.rb +82 -0
  434. data/tests/TC_FXHiliteStyle.rb +23 -0
  435. data/tests/TC_FXIconDict.rb +52 -0
  436. data/tests/TC_FXIconList.rb +192 -0
  437. data/tests/TC_FXId.rb +19 -0
  438. data/tests/TC_FXImage.rb +155 -0
  439. data/tests/TC_FXLight.rb +33 -0
  440. data/tests/TC_FXList.rb +116 -0
  441. data/tests/TC_FXListBox.rb +49 -0
  442. data/tests/TC_FXMainWindow.rb +12 -0
  443. data/tests/TC_FXMat4f.rb +228 -0
  444. data/tests/TC_FXMaterial.rb +89 -0
  445. data/tests/TC_FXMemoryStream.rb +97 -0
  446. data/tests/TC_FXMenuCheck.rb +57 -0
  447. data/tests/TC_FXMenuCommand.rb +12 -0
  448. data/tests/TC_FXMenuRadio.rb +57 -0
  449. data/tests/TC_FXMessageBox.rb +25 -0
  450. data/tests/TC_FXPoint.rb +57 -0
  451. data/tests/TC_FXQuatf.rb +77 -0
  452. data/tests/TC_FXRadioButton.rb +57 -0
  453. data/tests/TC_FXRangef.rb +48 -0
  454. data/tests/TC_FXRectangle.rb +88 -0
  455. data/tests/TC_FXRegion.rb +54 -0
  456. data/tests/TC_FXRegistry.rb +27 -0
  457. data/tests/TC_FXScrollArea.rb +28 -0
  458. data/tests/TC_FXScrollWindow.rb +28 -0
  459. data/tests/TC_FXSegment.rb +22 -0
  460. data/tests/TC_FXSettings.rb +34 -0
  461. data/tests/TC_FXShell.rb +26 -0
  462. data/tests/TC_FXSize.rb +54 -0
  463. data/tests/TC_FXStream.rb +11 -0
  464. data/tests/TC_FXTable.rb +368 -0
  465. data/tests/TC_FXTableItem.rb +48 -0
  466. data/tests/TC_FXText.rb +96 -0
  467. data/tests/TC_FXTopWindow.rb +32 -0
  468. data/tests/TC_FXTreeList.rb +100 -0
  469. data/tests/TC_FXTreeListBox.rb +41 -0
  470. data/tests/TC_FXUndoList.rb +43 -0
  471. data/tests/TC_FXVec2d.rb +142 -0
  472. data/tests/TC_FXVec2f.rb +137 -0
  473. data/tests/TC_FXVec3d.rb +150 -0
  474. data/tests/TC_FXVec3f.rb +150 -0
  475. data/tests/TC_FXVec4f.rb +158 -0
  476. data/tests/TC_FXViewport.rb +30 -0
  477. data/tests/TC_FXXBMIcon.rb +15 -0
  478. data/tests/TC_FXXBMImage.rb +15 -0
  479. data/tests/TC_FXXPMIcon.rb +15 -0
  480. data/tests/TC_FXXPMImage.rb +15 -0
  481. data/tests/TC_Misc.rb +157 -0
  482. data/tests/TC_downcast.rb +15 -0
  483. data/tests/TS_All.rb +25 -0
  484. data/tests/blankpage.ps +166 -0
  485. data/tests/howdypage.ps +181 -0
  486. data/tests/stress1.rb +92 -0
  487. data/tests/stress2.rb +51 -0
  488. data/tests/stress3.rb +117 -0
  489. data/tests/testcase.rb +37 -0
  490. metadata +549 -0
data/examples/RAA.rb ADDED
@@ -0,0 +1,25 @@
1
+ require 'soap/rpc/driver'
2
+ require 'iRAA'
3
+
4
+ module RAA
5
+ extend SOAP
6
+
7
+ class Driver
8
+ def initialize(server = 'http://raa.ruby-lang.org/soap/1.0/', proxy = nil)
9
+ @drv = SOAP::RPC::Driver.new(server, RAA::InterfaceNS)
10
+ @drv.httpproxy = proxy if proxy
11
+ @drv.mapping_registry = RAA::MappingRegistry
12
+ RAA::Methods.each do |name, *params|
13
+ @drv.add_method(name, params)
14
+ end
15
+ end
16
+
17
+ def setLogDev(logdev)
18
+ # ignored.
19
+ end
20
+
21
+ def method_missing(msg_id, *a, &b)
22
+ @drv.__send__(msg_id, *a, &b)
23
+ end
24
+ end
25
+ end
data/examples/README ADDED
@@ -0,0 +1,53 @@
1
+ This directory contains several example programs for FXRuby, and supporting
2
+ files for the same. Here is a partial list of the files you'll find here:
3
+
4
+ button.rb
5
+ Demonstrates the various layout and appearance options for the
6
+ FXButton widget.
7
+
8
+ dialog.rb
9
+ Simple example demonstrating how to create both modal and non-modal
10
+ dialogs.
11
+
12
+ dirlist.rb
13
+ Demonstrates the directory list (FXDirList) widget.
14
+
15
+ foursplit.rb
16
+ Demonstrates the 4-way splitter widget.
17
+
18
+ gltest.rb
19
+ Demonstrates the OpenGL canvas widget, and how to use both timers
20
+ and chores in FOX applications. This one also requires the OpenGL
21
+ extensions for Ruby; check the Ruby Application Archive for the
22
+ current release.
23
+
24
+ groupbox.rb
25
+ This is a kind of periodic table of widgets for FOX; it displays
26
+ a wide variety of the core widgets with different options.
27
+
28
+ header.rb
29
+ Demonstrates the header widget.
30
+
31
+ hello.rb
32
+ Minimalist FXRuby: the classic "Hello, World!" program
33
+
34
+ hello2.rb
35
+ The souped-up version of "Hello, World!", complete with a PNG icon
36
+ and tooltips.
37
+
38
+ imageviewer.rb
39
+ This is primarily a demonstration of the image view (FXImageView)
40
+ widget but it also provides a model for what could be a full-blown
41
+ FXRuby application. This example has a menu bar and toolbar (both
42
+ "floatable") and demonstrates how to use FOX's registry mechanism
43
+ for persistent application settings.
44
+ and tooltips.
45
+
46
+ scribble.rb
47
+ This is the Ruby version of the scribble program described in the
48
+ standard FOX documentation. It demonstrates the basics of drawing
49
+ into a 2-D canvas as well as FOX's GUI updating features.
50
+
51
+ shutter.rb
52
+ Demonstrates the shutter widget, similar to that found in a popular
53
+ office application.
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fox16'
4
+ require 'tranexp'
5
+
6
+ include Fox
7
+
8
+ TRANSLATIONS = {
9
+ "x" => "y"
10
+ }
11
+
12
+ class Babelfish < FXMainWindow
13
+
14
+ def initialize(app)
15
+ # Invoke base class initialize first
16
+ super(app, "Babelfish", :opts => DECOR_ALL, :width => 600, :height => 400)
17
+
18
+ @translator = Tranexp::Http.new
19
+
20
+ # Controls area along the bottom
21
+ controlsFrame = FXHorizontalFrame.new(self,
22
+ LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X)
23
+ FXLabel.new(controlsFrame, "Translate from:")
24
+ @fromCombo = FXComboBox.new(controlsFrame, 15, :opts => COMBOBOX_STATIC|FRAME_SUNKEN|FRAME_THICK)
25
+ @fromCombo.numVisible = 6
26
+ FXLabel.new(controlsFrame, " to:")
27
+ @toCombo = FXComboBox.new(controlsFrame, 15, :opts => COMBOBOX_STATIC|FRAME_SUNKEN|FRAME_THICK)
28
+ @toCombo.numVisible = 6
29
+ Tranexp::Codes.constants.each do |lang|
30
+ @fromCombo.appendItem(lang)
31
+ @toCombo.appendItem(lang)
32
+ end
33
+ btn = FXButton.new(controlsFrame, "Translate", :opts => BUTTON_NORMAL|LAYOUT_RIGHT)
34
+ btn.connect(SEL_COMMAND) do
35
+ from = @fromCombo.getItemText(@fromCombo.currentItem)
36
+ to = @toCombo.getItemText(@toCombo.currentItem)
37
+ getApp().beginWaitCursor() do
38
+ @translatedText.text = @translator.translate(@sourceText.text, from, to)
39
+ end
40
+ end
41
+
42
+ mainFrame = FXVerticalFrame.new(self,
43
+ LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y|PACK_UNIFORM_HEIGHT)
44
+
45
+ # Source text area in a sunken frame
46
+ topFrame = FXVerticalFrame.new(mainFrame, LAYOUT_FILL_X|LAYOUT_FILL_Y)
47
+ FXLabel.new(topFrame, "Source Text:", :opts => LAYOUT_FILL_X)
48
+ sunkenFrame = FXHorizontalFrame.new(topFrame,
49
+ FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y)
50
+ @sourceText = FXText.new(sunkenFrame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
51
+
52
+ # Translated text output
53
+ bottomFrame = FXVerticalFrame.new(mainFrame, LAYOUT_FILL_X|LAYOUT_FILL_Y)
54
+ FXLabel.new(bottomFrame, "Translated text:", nil, LAYOUT_FILL_X)
55
+ sunkenFrame = FXHorizontalFrame.new(bottomFrame,
56
+ FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y)
57
+ @translatedText = FXText.new(sunkenFrame, :opts => TEXT_READONLY|LAYOUT_FILL_X|LAYOUT_FILL_Y)
58
+ end
59
+
60
+ def create
61
+ super
62
+ show(PLACEMENT_SCREEN)
63
+ end
64
+ end
65
+
66
+ if __FILE__ == $0
67
+ FXApp.new("Babelfish", "FoxTest") do |app|
68
+ Babelfish.new(app)
69
+ app.create
70
+ app.run
71
+ end
72
+ end
@@ -0,0 +1,159 @@
1
+ require 'fox16'
2
+
3
+ include Fox
4
+
5
+ # How long to pause between updates (in milliseconds)
6
+ ANIMATION_TIME = 20
7
+
8
+ class Ball
9
+
10
+ attr_reader :color
11
+ attr_reader :center
12
+ attr_reader :radius
13
+ attr_reader :dir
14
+ attr_reader :x, :y
15
+ attr_reader :w, :h
16
+ attr_accessor :worldWidth
17
+ attr_accessor :worldHeight
18
+
19
+ # Returns an initialized ball
20
+ def initialize(r)
21
+ @radius = r
22
+ @w = 2*@radius
23
+ @h = 2*@radius
24
+ @center = FXPoint.new(50, 50)
25
+ @x = @center.x - @radius
26
+ @y = @center.y - @radius
27
+ @color = FXRGB(255, 0, 0) # red
28
+ @dir = FXPoint.new(-1, 0)
29
+ setWorldSize(1000, 1000)
30
+ end
31
+
32
+ # Draw the ball into this device context
33
+ def draw(dc)
34
+ dc.setForeground(color)
35
+ dc.fillArc(x, y, w, h, 0, 64*90)
36
+ dc.fillArc(x, y, w, h, 64*90, 64*180)
37
+ dc.fillArc(x, y, w, h, 64*180, 64*270)
38
+ dc.fillArc(x, y, w, h, 64*270, 64*360)
39
+ end
40
+
41
+ def bounce
42
+ @dir = -@dir
43
+ end
44
+
45
+ def collision?
46
+ (x < 0) || (x+w > worldWidth) || (y < 0) || (y+h > worldHeight)
47
+ end
48
+
49
+ def setWorldSize(ww, wh)
50
+ @worldWidth = ww
51
+ @worldHeight = wh
52
+ end
53
+
54
+ def move(units)
55
+ dx = dir.x*units
56
+ dy = dir.y*units
57
+ center.x += dx
58
+ center.y += dy
59
+ @x += dx
60
+ @y += dy
61
+ if collision?
62
+ bounce
63
+ move(units)
64
+ end
65
+ end
66
+ end
67
+
68
+ class BounceWindow < FXMainWindow
69
+
70
+ include Responder
71
+
72
+ def initialize(app)
73
+ # Initialize base class first
74
+ super(app, "Bounce", :opts => DECOR_ALL, :width => 400, :height => 300)
75
+
76
+ # Set up the canvas
77
+ @canvas = FXCanvas.new(self, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
78
+
79
+ # Set up the back buffer
80
+ @backBuffer = FXImage.new(app, nil, IMAGE_KEEP)
81
+
82
+ # Handle expose events (by blitting the image to the canvas)
83
+ @canvas.connect(SEL_PAINT) { |sender, sel, evt|
84
+ FXDCWindow.new(sender, evt) { |dc|
85
+ dc.drawImage(@backBuffer, 0, 0)
86
+ }
87
+ }
88
+
89
+ # Handle resize events
90
+ @canvas.connect(SEL_CONFIGURE) { |sender, sel, evt|
91
+ @backBuffer.create unless @backBuffer.created?
92
+ @backBuffer.resize(sender.width, sender.height)
93
+ @ball.setWorldSize(sender.width, sender.height)
94
+ drawScene(@backBuffer)
95
+ }
96
+
97
+ @ball = Ball.new(20)
98
+ end
99
+
100
+ #
101
+ # Draws the scene into the back buffer
102
+ #
103
+ def drawScene(drawable)
104
+ FXDCWindow.new(drawable) { |dc|
105
+ dc.setForeground(FXRGB(255, 255, 255))
106
+ dc.fillRectangle(0, 0, drawable.width, drawable.height)
107
+ @ball.draw(dc)
108
+ }
109
+ end
110
+
111
+ def updateCanvas
112
+ @ball.move(10)
113
+ drawScene(@backBuffer)
114
+ @canvas.update
115
+ end
116
+
117
+ #
118
+ # Handle timeout events
119
+ #
120
+ def onTimeout(sender, sel, ptr)
121
+ # Move the ball and re-draw the scene
122
+ updateCanvas
123
+
124
+ # Re-register the timeout
125
+ getApp().addTimeout(ANIMATION_TIME, method(:onTimeout))
126
+
127
+ # Done
128
+ return 1
129
+ end
130
+
131
+ #
132
+ # Create server-side resources
133
+ #
134
+ def create
135
+ # Create base class
136
+ super
137
+
138
+ # Create the image used as the back-buffer
139
+ @backBuffer.create
140
+
141
+ # Draw the initial scene into the back-buffer
142
+ drawScene(@backBuffer)
143
+
144
+ # Register the timer used for animation
145
+ getApp().addTimeout(ANIMATION_TIME, method(:onTimeout))
146
+
147
+ # Show the main window
148
+ show(PLACEMENT_SCREEN)
149
+ end
150
+ end
151
+
152
+ if __FILE__ == $0
153
+ FXApp.new("Bounce", "FXRuby") do |theApp|
154
+ BounceWindow.new(theApp)
155
+ theApp.create
156
+ theApp.run
157
+ end
158
+ end
159
+
@@ -0,0 +1,191 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fox16'
4
+
5
+ include Fox
6
+
7
+ # Node in the class hierarchy tree
8
+ class ClassTreeNode
9
+ def initialize(className, parentClassName)
10
+ @className = className
11
+ @parentClassName = parentClassName
12
+ @children = []
13
+ end
14
+
15
+ def addChild(child)
16
+ @children.push(child)
17
+ end
18
+
19
+ def className
20
+ @className
21
+ end
22
+
23
+ def parentClassName
24
+ @parentClassName
25
+ end
26
+
27
+ def <=>(other)
28
+ className <=> other.className
29
+ end
30
+
31
+ def children
32
+ @children.sort
33
+ end
34
+ end
35
+
36
+ # The class hierarchy tree
37
+ class ClassTree
38
+ def initialize
39
+ # Find the Fox module
40
+ @mFox = Fox
41
+
42
+ # Get an hash containing class names for Fox
43
+ classes = {}
44
+ @mFox.constants.each do |name|
45
+ c = @mFox.const_get(name)
46
+ if c.kind_of? Class
47
+ parentclass = c.superclass.name.sub("Fox::", "")
48
+ classNode = ClassTreeNode.new(name, parentclass)
49
+ classes[name] = classNode
50
+ end
51
+ end
52
+
53
+ # Go back and do this
54
+ roots = []
55
+ classes.each_value do |aValue|
56
+ parentNode = classes[aValue.parentClassName]
57
+ if parentNode
58
+ parentNode.addChild(aValue)
59
+ else
60
+ parentNode = ClassTreeNode.new(aValue.parentClassName, nil)
61
+ end
62
+ end
63
+
64
+ # FXObject is the root
65
+ @root = classes["FXObject"]
66
+ end
67
+
68
+ def root
69
+ return @root
70
+ end
71
+ end
72
+
73
+ class BrowserWindow < FXMainWindow
74
+
75
+ def initialize(app)
76
+ # Call base class initializer first
77
+ super(app, "Browse", nil, nil, DECOR_ALL, 0, 0, 600, 400)
78
+
79
+ # Contents
80
+ contents = FXHorizontalFrame.new(self, LAYOUT_FILL_X|LAYOUT_FILL_Y)
81
+
82
+ # Horizontal splitter
83
+ splitter = FXSplitter.new(contents, (LAYOUT_SIDE_TOP|LAYOUT_FILL_X|
84
+ LAYOUT_FILL_Y|SPLITTER_TRACKING|SPLITTER_HORIZONTAL))
85
+
86
+ # Create a sunken frame to hold the tree list
87
+ groupbox = FXGroupBox.new(splitter, "Classes",
88
+ LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_GROOVE)
89
+ frame = FXHorizontalFrame.new(groupbox,
90
+ LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK)
91
+
92
+ # Create the empty tree list
93
+ @treeList = FXTreeList.new(frame, nil, 0,
94
+ (TREELIST_BROWSESELECT|TREELIST_SHOWS_LINES|TREELIST_SHOWS_BOXES|
95
+ TREELIST_ROOT_BOXES|LAYOUT_FILL_X|LAYOUT_FILL_Y))
96
+ @treeList.connect(SEL_COMMAND) do |sender, sel, item|
97
+ getApp().beginWaitCursor do
98
+ s = getInstanceMethods(item.to_s).join("\n")
99
+ @methodsText.text = s
100
+ s = getConstants(item.to_s).join("\n")
101
+ @constantsText.text = s
102
+ end
103
+ end
104
+
105
+ # Fill it up based on the tree contents
106
+ populateTree(@treeList, nil, ClassTree.new.root)
107
+
108
+ # Tabbed notebook on the right
109
+ tabBook = FXTabBook.new(splitter, nil, 0,
110
+ LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_RIGHT)
111
+
112
+ tab1 = FXTabItem.new(tabBook, "Methods")
113
+ page1 = FXHorizontalFrame.new(tabBook, FRAME_THICK|FRAME_RAISED)
114
+ frame1 = FXHorizontalFrame.new(page1,
115
+ FRAME_THICK|FRAME_SUNKEN|LAYOUT_FILL_X|LAYOUT_FILL_Y)
116
+ @methodsText = FXText.new(frame1, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
117
+ @methodsText.text = "List of methods goes here"
118
+ @methodsText.editable = false
119
+
120
+ tab2 = FXTabItem.new(tabBook, "Constants")
121
+ page2 = FXHorizontalFrame.new(tabBook, FRAME_THICK|FRAME_RAISED)
122
+ frame2 = FXHorizontalFrame.new(page2,
123
+ FRAME_THICK|FRAME_SUNKEN|LAYOUT_FILL_X|LAYOUT_FILL_Y)
124
+ @constantsText = FXText.new(frame2, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
125
+ @constantsText.text = "List of constants goes here"
126
+ @constantsText.editable = false
127
+
128
+ # Cache of classname -> method and classname -> constants lists
129
+ @instanceMethods = {}
130
+ @classConstants = {}
131
+ end
132
+
133
+ # Recursively fill up the tree list
134
+ def populateTree(treeList, rootItem, rootNode)
135
+ rootNode.children.each do |childNode|
136
+ childItem = treeList.appendItem(rootItem, childNode.className)
137
+ populateTree(treeList, childItem, childNode)
138
+ end
139
+ end
140
+
141
+ # Create and show the main window
142
+ def create
143
+ super
144
+ @treeList.parent.parent.setWidth(@treeList.font.getTextWidth('MMMMMMMMMMMMMMMM'))
145
+ show(PLACEMENT_SCREEN)
146
+ end
147
+
148
+ # Returns an array of instance methods for the named class
149
+ def getInstanceMethods(className)
150
+ methods = @instanceMethods[className]
151
+ if methods.nil?
152
+ theClass = Fox.const_get(className)
153
+ methods = theClass.instance_methods.sort
154
+ @instanceMethods[className] = methods
155
+ end
156
+ methods
157
+ end
158
+
159
+ # Returns an array of constants for the named class
160
+ def getConstants(className)
161
+ constants = @classConstants[className]
162
+ if constants.nil?
163
+ klass = Fox.const_get(className)
164
+ constants = klass.constants
165
+ superklass = Fox.const_get(className)
166
+ if superklass
167
+ constants -= superklass.superclass.constants
168
+ else
169
+ constants -= klass.superclass.constants
170
+ end
171
+ constants.sort!
172
+ @classConstants[className] = constants
173
+ end
174
+ constants
175
+ end
176
+ end
177
+
178
+ if __FILE__ == $0
179
+ # Create a new application
180
+ application = FXApp.new("Browser", "FoxTest")
181
+
182
+ # Construct the main window
183
+ BrowserWindow.new(application)
184
+
185
+ # Create the windows
186
+ application.create
187
+
188
+ # Start event loop
189
+ application.run
190
+ end
191
+