fxruby 1.6.14-universal-darwin-9

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 (491) 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 +697 -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 +93 -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.bundle +0 -0
  186. data/lib/fox16/aliases.rb +5598 -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 +371 -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 +211 -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 +33 -0
  281. data/rdoc-sources/FXHeader.rb +408 -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 +447 -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 +77 -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 +69 -0
  298. data/rdoc-sources/FXList.rb +440 -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 +50 -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 +72 -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 +578 -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 +36 -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 +15 -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 +52 -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_FXDirList.rb +30 -0
  423. data/tests/TC_FXFileAssoc.rb +62 -0
  424. data/tests/TC_FXFileStream.rb +90 -0
  425. data/tests/TC_FXFoldingList.rb +32 -0
  426. data/tests/TC_FXFont.rb +69 -0
  427. data/tests/TC_FXFontDesc.rb +58 -0
  428. data/tests/TC_FXGLGroup.rb +32 -0
  429. data/tests/TC_FXGLShape.rb +28 -0
  430. data/tests/TC_FXGLViewer.rb +20 -0
  431. data/tests/TC_FXGradientBar.rb +89 -0
  432. data/tests/TC_FXHeader.rb +82 -0
  433. data/tests/TC_FXIconDict.rb +52 -0
  434. data/tests/TC_FXIconList.rb +192 -0
  435. data/tests/TC_FXId.rb +19 -0
  436. data/tests/TC_FXImage.rb +155 -0
  437. data/tests/TC_FXLight.rb +33 -0
  438. data/tests/TC_FXList.rb +116 -0
  439. data/tests/TC_FXListBox.rb +49 -0
  440. data/tests/TC_FXMat4f.rb +228 -0
  441. data/tests/TC_FXMaterial.rb +89 -0
  442. data/tests/TC_FXMemoryStream.rb +97 -0
  443. data/tests/TC_FXMenuCheck.rb +57 -0
  444. data/tests/TC_FXMenuCommand.rb +12 -0
  445. data/tests/TC_FXMenuRadio.rb +57 -0
  446. data/tests/TC_FXPoint.rb +57 -0
  447. data/tests/TC_FXQuatf.rb +77 -0
  448. data/tests/TC_FXRadioButton.rb +57 -0
  449. data/tests/TC_FXRangef.rb +48 -0
  450. data/tests/TC_FXRectangle.rb +88 -0
  451. data/tests/TC_FXRegion.rb +54 -0
  452. data/tests/TC_FXRegistry.rb +27 -0
  453. data/tests/TC_FXScrollArea.rb +28 -0
  454. data/tests/TC_FXScrollWindow.rb +28 -0
  455. data/tests/TC_FXSegment.rb +22 -0
  456. data/tests/TC_FXSettings.rb +34 -0
  457. data/tests/TC_FXShell.rb +26 -0
  458. data/tests/TC_FXSize.rb +54 -0
  459. data/tests/TC_FXStream.rb +11 -0
  460. data/tests/TC_FXTable.rb +368 -0
  461. data/tests/TC_FXTableItem.rb +48 -0
  462. data/tests/TC_FXText.rb +96 -0
  463. data/tests/TC_FXTopWindow.rb +32 -0
  464. data/tests/TC_FXTreeList.rb +100 -0
  465. data/tests/TC_FXTreeListBox.rb +41 -0
  466. data/tests/TC_FXUndoList.rb +43 -0
  467. data/tests/TC_FXVec2d.rb +142 -0
  468. data/tests/TC_FXVec2f.rb +137 -0
  469. data/tests/TC_FXVec3d.rb +150 -0
  470. data/tests/TC_FXVec3f.rb +150 -0
  471. data/tests/TC_FXVec4f.rb +158 -0
  472. data/tests/TC_FXViewport.rb +30 -0
  473. data/tests/TC_FXXBMIcon.rb +15 -0
  474. data/tests/TC_FXXBMImage.rb +15 -0
  475. data/tests/TC_FXXPMIcon.rb +15 -0
  476. data/tests/TC_FXXPMImage.rb +15 -0
  477. data/tests/TC_Misc.rb +157 -0
  478. data/tests/TC_downcast.rb +15 -0
  479. data/tests/TS_All.rb +25 -0
  480. data/tests/blankpage.ps +166 -0
  481. data/tests/howdypage.ps +181 -0
  482. data/tests/output.ps +166 -0
  483. data/tests/stress1.rb +92 -0
  484. data/tests/stress2.rb +51 -0
  485. data/tests/stress3.rb +117 -0
  486. data/tests/testcase.rb +37 -0
  487. data/web/community.html +94 -0
  488. data/web/documentation.html +100 -0
  489. data/web/downloads.html +114 -0
  490. data/web/index.html +96 -0
  491. metadata +550 -0
data/doc/opengl.html ADDED
@@ -0,0 +1,73 @@
1
+ <html><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="next" href="scintilla.html" title="Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pt02.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="scintilla.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="opengl"></a>Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</h2></div></div></div><div class="abstract"><p class="title"><b>Abstract</b></p><p>FOX provides extensive support for OpenGL through its
4
+ <code class="classname">FXGLCanvas</code> and <code class="classname">FXGLViewer</code>
5
+ widgets, and FXRuby in turn provides interfaces to those classes. By
6
+ combining FXRuby with the OpenGL interface for Ruby (described below) you
7
+ can develop very powerful 3-D graphics applications. This chapter gives
8
+ you the information you'll need to get started.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4475"></a>What is OpenGL?</h2></div></div></div><p>OpenGL is a platform-independent API for 2D and 3D graphics. The
9
+ home page is <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.opengl.org" target="_top">http://www.opengl.org</a>. Because it's a
10
+ fairly open standard, highly optimized OpenGL drivers are available for
11
+ most operating systems (including Windows and Linux).</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4483"></a>OpenGL Extensions for Ruby</h2></div></div></div><p>This extension module, developed by Yoshiyuki Kusano, provides
12
+ interfaces to not only the basic OpenGL API, but also the GLU and GLUT
13
+ APIs. As of this writing, the currently released version is 0.32d and is
14
+ available for download from <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www2.giganet.net/~yoshi/rbogl-0.32b.tgz" target="_top">http://www2.giganet.net/~yoshi/rbogl-0.32d.tgz</a>.
15
+ Be sure to check the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ruby-lang.org/en/raa.html" target="_top">Ruby Application
16
+ Archive</a> for the latest version of this extension as it is still
17
+ under development.</p><p>Once you've downloaded the tarball, you should extract its contents
18
+ to the working directory of your choice by typing:</p><pre class="screen">$ <span><strong class="command">tar xzf rbogl-0.32d.tgz</strong></span></pre><p>After executing this command you should have a new <code class="filename">opengl</code> (<span class="emphasis"><em>not</em></span> <code class="filename">rbogl-0.32b</code>) subdirectory. Change to this
19
+ directory and then type:</p><pre class="screen">$ <span><strong class="command">ruby extconf.rb</strong></span></pre><p>This should create a <code class="filename">Makefile</code> configured
20
+ appropriately for your local Ruby installation. To now build the OpenGL
21
+ module, type:</p><pre class="screen">$ <span><strong class="command">make</strong></span></pre><p>You can safely ignore the warning(s) about
22
+ <code class="methodname">glut_KeyboardFunc</code> when it's compiling
23
+ <code class="filename">glut.c</code>. Well, I ignore them and it hasn't hurt me yet
24
+ ;) Assuming you get an otherwise clean build, install the OpenGL
25
+ extensions by typing:</p><pre class="screen">$ <span><strong class="command">make site-install</strong></span></pre><p>Please note that I'm not the maintainer of this particular Ruby
26
+ extension, so I can't really accept bug fixes for it. But if you're having
27
+ trouble integrating Ruby/OpenGL with FXRuby, let me know and we'll see
28
+ what we can do.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4538"></a>The FXGLVisual Class</h2></div></div></div><p>An <code class="classname">FXGLVisual</code> object describes the
29
+ capabilities of an <code class="classname">FXGLCanvas</code> or
30
+ <code class="classname">FXGLViewer</code> window. Typically, an X server supports
31
+ many different visuals with varying capabilities, but the ones with
32
+ greater capabilities require more resources than those with fewer
33
+ capbilities. To construct an <code class="classname">FXGLVisual</code> object,
34
+ just call <code class="methodname">FXGLVisual.new</code>:</p><pre class="programlisting">aVisual = FXGLVisual.new(theApp, VISUAL_DOUBLEBUFFER)</pre><p>The first argument to <code class="methodname">FXGLVisual.new</code> is a
35
+ reference to the application object. The second argument is a set of
36
+ options indicating the <span class="emphasis"><em>requested</em></span> capabilities for the
37
+ visual. If one or more of the requested capabilities aren't available, FOX
38
+ will try to gracefully degrade to a working GL visual; but if you're
39
+ counting on a specific capability, be sure to check the returned visual to
40
+ see if it actually supports that capability. For example, say you request
41
+ a visual with double-buffering and stereographic capabilities:</p><pre class="programlisting">anotherVisual = FXGLVisual.new(theApp, VISUAL_DOUBLEBUFFER | VISUAL_STEREO)</pre><p>Double-buffering is pretty commonplace these days, but stereo may
42
+ not be available on the system. We can check to see whether the visual we
43
+ got supports these capabilities by calling the
44
+ <code class="methodname">FXGLVisual#doubleBuffered?</code> and
45
+ <code class="methodname">FXGLVisual#stereo?</code> methods:</p><pre class="programlisting">anotherVisual = FXGLVisual.new(theApp, VISUAL_DOUBLEBUFFER | VISUAL_STEREO)
46
+ if anotherVisual.doubleBuffered?
47
+ puts "It's double-buffered."
48
+ else
49
+ puts "It's single-buffered."
50
+ end
51
+ if anotherVisual.stereo?
52
+ puts "It's stereo."
53
+ else
54
+ puts "It isn't stereo."
55
+ end</pre><p>Some <code class="classname">FXGLVisual</code> object must be associated
56
+ with every <code class="classname">FXGLCanvas</code> or
57
+ <code class="classname">FXGLViewer</code> window, but you don't need to have a
58
+ separate <code class="classname">FXGLVisual</code> object for each window. For
59
+ most applications, you can just construct a single
60
+ <code class="classname">FXGLVisual</code> object that's shared among all the
61
+ OpenGL windows.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4597"></a>The FXGLCanvas Class</h2></div></div></div><p>The <code class="classname">FXGLCanvas</code> widget provides a very simple
62
+ OpenGL-capable window with minimal functionality. To construct an
63
+ <code class="classname">FXGLCanvas</code>, call
64
+ <code class="methodname">FXGLCanvas.new</code>:</p><pre class="programlisting">glCanvas = FXGLCanvas.new(parent, vis)</pre><p>The first argument to <code class="methodname">FXGLCanvas.new</code> is the
65
+ parent (container) widget and the second argument is the
66
+ <code class="classname">FXGLVisual</code> that should be used for this
67
+ window.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4621"></a>OpenGL objects and the FXGLViewer</h2></div></div></div><p>The <code class="classname">FXGLViewer</code> widget provides a higher-level
68
+ OpenGL-capable window with a lot of built-in functionality. To construct
69
+ an <code class="classname">FXGLViewer</code>, call
70
+ <code class="methodname">FXGLViewer.new</code>:</p><pre class="programlisting">glViewer = FXGLViewer.new(parent, vis)</pre><p>The first argument to <code class="methodname">FXGLViewer.new</code> is the
71
+ parent (container) widget and the second argument is the
72
+ <code class="classname">FXGLVisual</code> that should be used for this
73
+ window.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pt02.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt02.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="scintilla.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part&nbsp;II.&nbsp;Appendices&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby</td></tr></table></div></body></html>
data/doc/pt01.html ADDED
@@ -0,0 +1,3 @@
1
+ <html><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Part&nbsp;I.&nbsp;The Basics</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="prev" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="next" href="goals.html" title="History and Goals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part&nbsp;I.&nbsp;The Basics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="book.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="goals.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e17"></a>Part&nbsp;I.&nbsp;The Basics</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="goals.html">History and Goals</a></span></dt><dt><span class="chapter"><a href="build.html">1. Building from Source Code</a></span></dt><dt><span class="chapter"><a href="gems.html">2. Installing from Gems</a></span></dt><dt><span class="chapter"><a href="tutorial1.html">3. Hello, World!</a></span></dt><dd><dl><dt><span class="section"><a href="tutorial1.html#d0e614">First Things First</a></span></dt><dt><span class="section"><a href="ch03s02.html">Better living through buttons</a></span></dt><dt><span class="section"><a href="ch03s03.html">Messages</a></span></dt><dt><span class="section"><a href="ch03s04.html">Adding a tool tip</a></span></dt><dt><span class="section"><a href="ch03s05.html">Adding an icon</a></span></dt></dl></dd><dt><span class="chapter"><a href="clipboardtut.html">4. Working With the Clipboard</a></span></dt><dd><dl><dt><span class="section"><a href="clipboardtut.html#d0e1003">Basic Application</a></span></dt><dt><span class="section"><a href="ch04s02.html">Acquiring the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s03.html">Sending Data to the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s04.html">Pasting Data from the Clipboard</a></span></dt></dl></dd><dt><span class="chapter"><a href="dragdroptut.html">5. Drag and Drop</a></span></dt><dd><dl><dt><span class="section"><a href="dragdroptut.html#d0e1218">Drop Sites</a></span></dt><dt><span class="section"><a href="ch05s02.html">Drag Sources</a></span></dt><dt><span class="section"><a href="ch05s03.html">Putting It All Together</a></span></dt></dl></dd><dt><span class="chapter"><a href="unicode.html">6. Unicode and FXRuby</a></span></dt><dd><dl><dt><span class="section"><a href="unicode.html#d0e1628">Basic Application</a></span></dt></dl></dd><dt><span class="chapter"><a href="examples.html">7. Examples</a></span></dt><dt><span class="chapter"><a href="events.html">8. FXRuby's Message-Target System</a></span></dt><dt><span class="chapter"><a href="infosources.html">9. Other Sources of Information</a></span></dt><dt><span class="chapter"><a href="changes.html">10. Change History</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="book.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="goals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Developing Graphical User Interfaces with FXRuby&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;History and Goals</td></tr></table></div></body></html>
data/doc/pt02.html ADDED
@@ -0,0 +1,3 @@
1
+ <html><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Part&nbsp;II.&nbsp;Appendices</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="prev" href="changes.html" title="Chapter&nbsp;10.&nbsp;Change History"><link rel="next" href="opengl.html" title="Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part&nbsp;II.&nbsp;Appendices</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="changes.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="opengl.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e4460"></a>Part&nbsp;II.&nbsp;Appendices</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="appendix"><a href="opengl.html">A. Using OpenGL with FXRuby</a></span></dt><dt><span class="appendix"><a href="scintilla.html">B. Using Scintilla with FXRuby</a></span></dt><dt><span class="appendix"><a href="differences.html">C. Differences between FOX and FXRuby</a></span></dt><dt><span class="appendix"><a href="library.html">D. The FXRuby Standard Library</a></span></dt><dt><span class="appendix"><a href="implementation.html">E. Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="implementation.html#d0e5511">Code Generation</a></span></dt><dt><span class="section"><a href="apes02.html">Object Life Cycles and Garbage Collection</a></span></dt><dd><dl><dt><span class="section"><a href="apes02.html#d0e5549">GL Objects</a></span></dt></dl></dd><dt><span class="section"><a href="apes03.html">Virtual Functions</a></span></dt></dl></dd><dt><span class="appendix"><a href="subversion.html">F. Getting the Sources from Subversion</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="changes.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="opengl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;10.&nbsp;Change History&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</td></tr></table></div></body></html>
@@ -0,0 +1,36 @@
1
+ <html><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="opengl.html" title="Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby"><link rel="next" href="differences.html" title="Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="opengl.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="differences.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="scintilla"></a>Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4648"></a>What is Scintilla?</h2></div></div></div><p><a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.scintilla.org" target="_top">Scintilla</a> is a free
4
+ source code editing component developed by Neil Hodgson for the Win32 and
5
+ GTK+ platforms.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4655"></a>What is FXScintilla?</h2></div></div></div><p><a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://savannah.gnu.org/projects/fxscintilla" target="_top">FXScintilla </a> is
6
+ a FOX widget that wraps around the Scintilla component, or, if you wish,
7
+ the FOX "port" of Scintilla. Until recently it was developed by Gilles Filippini,
8
+ and as of this writing the latest release is available for download from
9
+ <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://download.savannah.gnu.org/releases/fxscintilla/fxscintilla-1.71.tar.gz" target="_top">http://download.savannah.gnu.org/releases/fxscintilla/fxscintilla-1.71.tar.gz</a>.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4665"></a>Compiling FXScintilla</h2></div></div></div><p>The FXScintilla distribution contains everything you need to build
10
+ the FXScintilla widget and begin using it in your C++-based FOX
11
+ applications. That is to say, you do not have to separately download the
12
+ Scintilla source code from the Scintilla home page. When you unpack the
13
+ FXScintilla tarball, you should get a new <code class="filename">
14
+ fxscintilla-1.71</code> directory containing the source code for the
15
+ FOX port of the Scintilla widget.</p><p>As of the 1.46 release of FXScintilla, the build process has been
16
+ "autoconfiscated" and should seem very familiar to you if you've built
17
+ other open-source software (like FOX) from the source code. The
18
+ <code class="filename">INSTALL</code> file in the top-level directory should
19
+ provide enough instruction for you to build and install FXScintilla for
20
+ either Unix or Microsoft Windows.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4678"></a>Enabling FXScintilla Support in FXRuby</h2></div></div></div><p>The next step is to build a version of FXRuby (from its source code)
21
+ with the optional FXScintilla support enabled. If you're working on a Unix
22
+ or Linux system and have installed FXScintilla in one of the standard
23
+ installation directories (e.g. under <code class="filename">/usr/include</code> or <code class="filename">/usr/local/include</code>), the regular FXRuby build
24
+ process should automatically detect it and enable FXScintilla
25
+ support.</p><p>If you have installed FXScintilla in some non-standard place, or if
26
+ you're building the code on Microsoft Windows, you will need to specify a
27
+ few additional configuration options at the beginning.</p><p>You can configure the build on Unix or Linux systems by
28
+ typing:</p><pre class="screen">
29
+ $ <span><strong class="command">sudo gem install fxruby-1.6.7.gem --force -- --with-fxscintilla-include=/usr/local/include/fxscintilla --with-fxscintilla-lib=/usr/local/lib</strong></span>
30
+ </pre><p>or, when compiling with Microsoft Visual C++, by typing:</p><pre class="screen">
31
+ C:\&gt; <span><strong class="command">gem install fxruby-1.6.7.gem --force -- --with-fox-include=C:\fox-1.6.25\include --with-fox-lib=C:\fox-1.6.25\lib --with-fxscintilla-include=C:\fxscintilla-1.71\include --with-fxscintilla-lib=C:\fxscintilla-1.71\lib</strong></span>
32
+ </pre><p>Past this point, the build and installation process for either
33
+ platform should be the same as for standard builds. To test your new
34
+ FXScintilla-enabled build of FXRuby, try running the
35
+ <code class="filename">scintilla-test.rb</code> example program in the FXRuby
36
+ <code class="filename">examples</code> subdirectory.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="opengl.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt02.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="differences.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby</td></tr></table></div></body></html>
data/doc/style.css ADDED
@@ -0,0 +1,247 @@
1
+ /************************************************************************/
2
+ /* Custom style-sheet stuffs for the Subversion book in HTML form. */
3
+ /************************************************************************/
4
+
5
+ /*
6
+ * Copyright (c) 2003-2007
7
+ * Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato.
8
+ *
9
+ * This work is licensed under the Creative Commons Attribution License.
10
+ * To view a copy of this license, visit
11
+ * http://creativecommons.org/licenses/by/2.0/ or send a letter to
12
+ * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305,
13
+ * USA.
14
+ */
15
+
16
+ body
17
+ {
18
+ background: white;
19
+ margin: 0.5in;
20
+ font-family: arial,helvetica,sans-serif;
21
+ }
22
+
23
+ p, li, ul, ol, dd, dt
24
+ {
25
+ font-style: normal;
26
+ font-weight: normal;
27
+ color: black;
28
+ }
29
+
30
+ tt, pre
31
+ {
32
+ font-family: courier new,courier,fixed;
33
+ }
34
+
35
+ a
36
+ {
37
+ color: blue;
38
+ text-decoration: underline;
39
+ }
40
+
41
+ a:hover
42
+ {
43
+ background: rgb(75%,75%,100%);
44
+ color: blue;
45
+ text-decoration: underline;
46
+ }
47
+
48
+ a:visited
49
+ {
50
+ color: purple;
51
+ text-decoration: underline;
52
+ }
53
+
54
+ img
55
+ {
56
+ border: none;
57
+ }
58
+
59
+ h1.title
60
+ {
61
+ font-size: 250%;
62
+ font-style: normal;
63
+ font-weight: bold;
64
+ color: black;
65
+ }
66
+
67
+ h2.subtitle
68
+ {
69
+ font-size: 150%;
70
+ font-style: italic;
71
+ color: black;
72
+ }
73
+
74
+ h2.title
75
+ {
76
+ font-size: 150%;
77
+ font-style: normal;
78
+ font-weight: bold;
79
+ color: black;
80
+ }
81
+
82
+ h3.title
83
+ {
84
+ font-size: 125%;
85
+ font-style: normal;
86
+ font-weight: bold;
87
+ color: black;
88
+ }
89
+
90
+ h4.title
91
+ {
92
+ font-size: 100%;
93
+ font-style: normal;
94
+ font-weight: bold;
95
+ color: black;
96
+ }
97
+
98
+ .toc b
99
+ {
100
+ font-size: 125%;
101
+ font-style: normal;
102
+ font-weight: bold;
103
+ color: black;
104
+ }
105
+
106
+ .command, .screen, .programlisting, .structname
107
+ {
108
+ font-family: courier new,courier,fixed;
109
+ font-style: normal;
110
+ font-weight: normal;
111
+ }
112
+
113
+ .filename
114
+ {
115
+ font-family: arial,helvetica,sans-serif;
116
+ font-style: italic;
117
+ }
118
+
119
+ .figure, .example, .table
120
+ {
121
+ margin: 0.125in 0.25in;
122
+ }
123
+
124
+ .table table
125
+ {
126
+ border-width: 1px;
127
+ border-style: solid;
128
+ border-color: black;
129
+ border-spacing: 0;
130
+ background: rgb(240,240,240);
131
+ }
132
+
133
+ .table td
134
+ {
135
+ border: none;
136
+ border-right: 1px black solid;
137
+ border-bottom: 1px black solid;
138
+ padding: 2px;
139
+ }
140
+
141
+ .table th
142
+ {
143
+ background: rgb(180,180,180);
144
+ border: none;
145
+ border-right: 1px black solid;
146
+ border-bottom: 1px black solid;
147
+ padding: 2px;
148
+ }
149
+
150
+ .table p.title, .figure p.title, .example p.title
151
+ {
152
+ text-align: left !important;
153
+ font-size: 100% !important;
154
+ }
155
+
156
+ .author, .pubdate
157
+ {
158
+ margin: 0;
159
+ font-size: 100%;
160
+ font-style: italic;
161
+ font-weight: normal;
162
+ color: black;
163
+ }
164
+
165
+ .preface div.author, .preface .pubdate
166
+ {
167
+ font-size: 80%;
168
+ }
169
+
170
+ .sidebar
171
+ {
172
+ border-top: dotted 1px black;
173
+ border-left: dotted 1px black;
174
+ border-right: solid 2px black;
175
+ border-bottom: solid 2px black;
176
+ background: rgb(240,220,170);
177
+ padding: 0 0.12in;
178
+ margin: 0.25in;
179
+ }
180
+
181
+ .note .programlisting, .note .screen,
182
+ .tip .programlisting, .tip .screen,
183
+ .warning .programlisting, .warning .screen,
184
+ .sidebar .programlisting, .sidebar .screen
185
+ {
186
+ border: none;
187
+ background: none;
188
+ }
189
+
190
+ .sidebar p.title
191
+ {
192
+ text-align: center;
193
+ font-size: 125%;
194
+ }
195
+
196
+ .note
197
+ {
198
+ border: black solid 1px;
199
+ background: url(./images/note.png) no-repeat rgb(252,246,220);
200
+ margin: 0.125in 0;
201
+ padding: 0 55px;
202
+ }
203
+
204
+ .tip
205
+ {
206
+ border: black solid 1px;
207
+ background: url(./images/tip.png) no-repeat rgb(224,244,255);
208
+ margin: 0.125in 0;
209
+ padding: 0 55px;
210
+ }
211
+
212
+ .warning
213
+ {
214
+ border: black solid 1px;
215
+ background: url(./images/warning.png) no-repeat rgb(255,210,210);
216
+ margin: 0.125in 0;
217
+ padding: 0 55px;
218
+ }
219
+
220
+ .note .title, .tip .title, .warning .title
221
+ {
222
+ display: none;
223
+ }
224
+
225
+ .programlisting, .screen
226
+ {
227
+ font-size: 90%;
228
+ color: black;
229
+ margin: 1em 0.25in;
230
+ padding: 0.5em;
231
+ background: rgb(240,240,240);
232
+ border-top: black dotted 1px;
233
+ border-left: black dotted 1px;
234
+ border-right: black solid 2px;
235
+ border-bottom: black solid 2px;
236
+ }
237
+
238
+ .navheader, .navfooter
239
+ {
240
+ border: black solid 1px;
241
+ background: rgb(180,180,200);
242
+ }
243
+
244
+ .navheader hr, .navfooter hr
245
+ {
246
+ display: none;
247
+ }
@@ -0,0 +1,21 @@
1
+ <html><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Appendix&nbsp;F.&nbsp;Getting the Sources from Subversion</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="apes03.html" title="Virtual Functions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix&nbsp;F.&nbsp;Getting the Sources from Subversion</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apes03.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="subversion"></a>Appendix&nbsp;F.&nbsp;Getting the Sources from Subversion</h2></div></div></div><p>All of the source code for FXRuby is available for anonymous,
4
+ read-only <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://subversion.tigris.org/" target="_top">Subversion</a>
5
+ access. This chapter describes how to check out the sources for the
6
+ development release of FXRuby and then build FXRuby from those sources. The
7
+ information in this chapter builds on the basic Subversion instructions
8
+ provided for any RubyForge hosted project, and specifically those <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://rubyforge.org/scm/?group_id=300" target="_top">instructions</a> for the
9
+ FXRuby project hosted at RubyForge.</p><p>There are some prerequisites. Obviously, you're going to need to have
10
+ some kind of Subversion client installed on your system and have a clue
11
+ about how to use it to check out code from a remote repository. Please do
12
+ not send me questions about how to install or use Subversion. A good
13
+ starting point for documentation about Subversion is the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://subversion.tigris.org/" target="_top">home page</a>, and especially the
14
+ <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://svnbook.red-bean.com/" target="_top">book</a>.</p><p>You're also going to need to have a working <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.swig.org/" target="_top">SWIG</a> installation so that you can
15
+ generate the C++ source files from the SWIG interface files. As of this
16
+ writing, FXRuby requires SWIG version 1.3.22; later versions of SWIG will
17
+ not work, nor will versions earlier than about 1.3.15.</p><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5694"></a>Checking out the code</h2></div></div></div><p>To check out the development version (i.e. the trunk) for FXRuby,
18
+ type the following command:</p><pre class="screen">svn checkout svn://rubyforge.org/var/svn/fxruby/trunk/FXRuby</pre><p>Next, you'll need to use SWIG to generate the C++ source code from
19
+ the SWIG interface files. To do that, type:</p><pre class="screen">rake swig</pre><p>At this point, you should be ready to change to the top-level
20
+ directory and go through the normal build and installation process, as
21
+ described in an earlier chapter.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apes03.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt02.html">Up</a></td><td width="40%" align="right">&nbsp;</td></tr><tr><td width="40%" align="left" valign="top">Virtual Functions&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;</td></tr></table></div></body></html>
@@ -0,0 +1,90 @@
1
+ <html><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Chapter&nbsp;3.&nbsp;Hello, World!</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="gems.html" title="Chapter&nbsp;2.&nbsp;Installing from Gems"><link rel="next" href="ch03s02.html" title="Better living through buttons"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;3.&nbsp;Hello, World!</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="gems.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch03s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="tutorial1"></a>Chapter&nbsp;3.&nbsp;Hello, World!</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="tutorial1.html#d0e614">First Things First</a></span></dt><dt><span class="section"><a href="ch03s02.html">Better living through buttons</a></span></dt><dt><span class="section"><a href="ch03s03.html">Messages</a></span></dt><dt><span class="section"><a href="ch03s04.html">Adding a tool tip</a></span></dt><dt><span class="section"><a href="ch03s05.html">Adding an icon</a></span></dt></dl></div><p>There are a few things common to all programs that use FXRuby, and the
4
+ purpose of this chapter is to help you get familiar with those. We'll do
5
+ this by developing a short program that simply displays a button containing
6
+ the text, "Hello, World!". For reference, this program is included in the
7
+ <code class="filename">examples</code> subdirectory of the standard FXRuby source
8
+ code distribution.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e614"></a>First Things First</h2></div></div></div><p>All of the code associated with the FXRuby extension is provided by
9
+ the <code class="classname">fox16 </code>gem, so we need to start by requiring
10
+ this gem:</p><pre class="programlisting">require 'fox16'</pre><p>Since all of the FXRuby classes are defined under the
11
+ <code class="classname">Fox</code> module, you'd normally need to refer to them
12
+ using their "fully qualified" names (i.e. names that begin with the
13
+ <code class="classname">Fox::</code> prefix). Because this can get a little
14
+ tedious, and because there's not really much chance of name conflicts
15
+ between FXRuby and other Ruby extensions, I usually like to add an
16
+ <code class="methodname">include Fox</code> statement so that all of the names in
17
+ the <code class="classname">Fox</code> module are "included" into the global
18
+ namespace:</p><pre class="programlisting">require 'fox16'
19
+
20
+ <span class="bold"><strong>include Fox</strong></span></pre><p>Every FXRuby program begins by creating an
21
+ <code class="classname">FXApp</code> instance:</p><pre class="programlisting">require 'fox16'
22
+
23
+ include Fox
24
+
25
+ <span class="bold"><strong>theApp = FXApp.new</strong></span></pre><p>The <code class="classname">FXApp</code> instance has a lot of
26
+ responsibilities in an FXRuby application. One of the most frequent ways
27
+ you'll use it is to kick off the application's main event loop (which
28
+ you'll see later in this tutorial). The application is also the object
29
+ responsible for managing "global" resources like timers and the FOX
30
+ registry. It is a different approach from some other GUI toolkits for
31
+ Ruby, where these kinds of global resources are accessed using
32
+ module-level methods. As you continue to develop programs using FXRuby,
33
+ you'll learn about other ways that the <code class="classname">FXApp</code> object
34
+ is used.</p><p>The next step is to create an <code class="classname">FXMainWindow</code>
35
+ instance to serve as the application's main window. If you've used Ruby/Tk
36
+ before, this is similar to its <code class="classname">TkRoot</code>
37
+ window:</p><pre class="programlisting">require 'fox16'
38
+
39
+ include Fox
40
+
41
+ theApp = FXApp.new
42
+
43
+ <span class="bold"><strong>theMainWindow = FXMainWindow.new(theApp, "Hello")</strong></span></pre><p>Here, we pass <em class="parameter"><code>theApp</code></em> as the first argument to
44
+ <code class="methodname">FXMainWindow.new</code> to associate the new
45
+ <code class="classname">FXMainWindow</code> instance with this
46
+ <code class="classname">FXApp</code>. The second argument to
47
+ <code class="methodname">FXMainWindow.new</code> is a string that will be used
48
+ for the main window's title.</p><p>So far, all we've done is instantiate the client-side objects.
49
+ Unlike most other toolkits, FOX makes a distinction between client-side
50
+ data (such as an <code class="classname">FXMainWindow</code> object) and
51
+ server-side data (such as the X window associated with that Ruby object).
52
+ To create the server-side objects associated with the already-constructed
53
+ client-side objects, we call <code class="methodname">FXApp#create</code>:</p><pre class="programlisting">require 'fox16'
54
+
55
+ include Fox
56
+
57
+ theApp = FXApp.new
58
+
59
+ theMainWindow = FXMainWindow.new(theApp, "Hello")
60
+
61
+ <span class="bold"><strong>theApp.create</strong></span></pre><p>By default, all windows in FXRuby programs are invisible, so we need
62
+ to call our main window's <code class="methodname">show</code> instance
63
+ method:</p><pre class="programlisting">require 'fox16'
64
+
65
+ include Fox
66
+
67
+ theApp = FXApp.new
68
+
69
+ theMainWindow = FXMainWindow.new(theApp, "Hello")
70
+ theApp.create
71
+
72
+ <span class="bold"><strong>theMainWindow.show</strong></span></pre><p>The last step is to start the program's main loop by calling
73
+ <em class="parameter"><code>theApp</code></em>'s <code class="methodname">run</code> instance
74
+ method:</p><pre class="programlisting">require 'fox16'
75
+
76
+ include Fox
77
+
78
+ theApp = FXApp.new
79
+
80
+ theMainWindow = FXMainWindow.new(theApp, "Hello")
81
+ theApp.create
82
+
83
+ theMainWindow.show
84
+
85
+ <span class="bold"><strong>theApp.run</strong></span></pre><p>The <code class="methodname">FXApp#run</code> method doesn't return until
86
+ the program exits. It is similar to the <code class="methodname">mainloop</code>
87
+ method used for Ruby/Tk and Ruby/GTK, and you can in fact use
88
+ <code class="methodname">FXApp#mainloop</code> as an alias for
89
+ <code class="methodname">run</code> if you prefer.</p><p>At this point, we have a working (if not very interesting) program
90
+ that uses FXRuby. If you run it, you'll see something like this:</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/hello-without-button.png" align="middle"></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="gems.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt01.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch03s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;2.&nbsp;Installing from Gems&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Better living through buttons</td></tr></table></div></body></html>
data/doc/unicode.html ADDED
@@ -0,0 +1,56 @@
1
+ <html><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Chapter&nbsp;6.&nbsp;Unicode and FXRuby</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="ch05s03.html" title="Putting It All Together"><link rel="next" href="examples.html" title="Chapter&nbsp;7.&nbsp;Examples"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;6.&nbsp;Unicode and FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch05s03.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="examples.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="unicode"></a>Chapter&nbsp;6.&nbsp;Unicode and FXRuby</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="unicode.html#d0e1628">Basic Application</a></span></dt></dl></div><p>Beginning with version 1.6, FOX and FXRuby provide support for the
4
+ display of Unicode strings in FOX widgets. For some excellent discussion
5
+ about how to use Unicode in Ruby, I recommend Patrick Hall's article, <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://ruphus.com/blog/2005/06/11/ruby-and-unicode/" target="_top">"Ruby and
6
+ Unicode"</a> and why the lucky stiff's follow-up article, <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://redhanded.hobix.com/inspect/closingInOnUnicodeWithJcode.html" target="_top">"Closing
7
+ in on Unicode with Jcode"</a>. Here, we're going to make use of the
8
+ ideas in those articles to give a quick demonstration of how to use FXRuby's
9
+ support for Unicode.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1628"></a>Basic Application</h2></div></div></div><p>Here's the original version of our "Hello, World!" program:</p><pre class="programlisting">require 'fox16'
10
+
11
+ include Fox
12
+
13
+ application = FXApp.new("Hello", "FoxTest")
14
+ main = FXMainWindow.new(application, "Hello", nil, nil, DECOR_ALL)
15
+ FXButton.new(main, "&amp;Hello, World!", nil, application, FXApp::ID_QUIT)
16
+ application.create()
17
+ main.show(PLACEMENT_SCREEN)
18
+ application.run()
19
+ </pre><p>and here's the modified version:</p><pre class="programlisting">require 'fox16'
20
+ <span class="bold"><strong>require 'jcode'</strong></span>
21
+
22
+ <span class="bold"><strong>$KCODE = 'u'</strong></span>
23
+
24
+ <span class="bold"><strong>class UString &lt; String
25
+ # Show u-prefix as in Python
26
+ def inspect; "u#{ super }" end
27
+
28
+ # Count multibyte characters
29
+ def length; self.scan(/./).length end
30
+
31
+ # Reverse the string
32
+ def reverse; self.scan(/./).reverse.join end
33
+ end
34
+
35
+ module Kernel
36
+ def u( str )
37
+ UString.new str.gsub(/U\+([0-9a-fA-F]{4,4})/u){["#$1".hex ].pack('U*')}
38
+ end
39
+ end</strong></span>
40
+
41
+ include Fox
42
+
43
+ <span class="bold"><strong>question = u'U+00bfHabla espaU+00f1ol?'</strong></span>
44
+
45
+ application = FXApp.new("Hello", "FoxTest")
46
+ main = FXMainWindow.new(application, "Hello", nil, nil, DECOR_ALL)
47
+ FXButton.new(main, <span class="bold"><strong>question</strong></span>, nil, application, FXApp::ID_QUIT)
48
+ application.create()
49
+ main.show(PLACEMENT_SCREEN)
50
+ application.run()
51
+ </pre><p>The <span class="bold"><strong>jcode</strong></span> library (part of the
52
+ standard Ruby library) provides a number of extensions to Ruby's
53
+ <code class="classname">String</code> class, to ensure that its methods work
54
+ properly for non-ASCII character encodings. By setting the
55
+ <code class="varname">$KCODE</code> global variable to "u", we're telling Ruby which
56
+ character encoding it is that we're using (UTF-8).</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch05s03.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt01.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="examples.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Putting It All Together&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;7.&nbsp;Examples</td></tr></table></div></body></html>
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