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
@@ -0,0 +1,186 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fox16'
4
+ require 'fox16/responder'
5
+ require 'fox16/colors'
6
+
7
+ include Fox
8
+
9
+ class ScribbleWindow < FXMainWindow
10
+
11
+ include Responder
12
+
13
+ def initialize(app)
14
+ # Call base class initializer first
15
+ super(app, "Scribble Application", nil, nil, DECOR_ALL,
16
+ 0, 0, 800, 600)
17
+
18
+ # Message identifiers for this class
19
+ identifier :ID_CANVAS, :ID_CLEAR
20
+
21
+ # And here's the message map for this class
22
+ FXMAPFUNC(SEL_PAINT, ID_CANVAS, :onPaint)
23
+ FXMAPFUNC(SEL_LEFTBUTTONPRESS, ID_CANVAS, :onMouseDown)
24
+ FXMAPFUNC(SEL_LEFTBUTTONRELEASE, ID_CANVAS, :onMouseUp)
25
+ FXMAPFUNC(SEL_MOTION, ID_CANVAS, :onMouseMove)
26
+ FXMAPFUNC(SEL_COMMAND, ID_CLEAR, :onCmdClear)
27
+ FXMAPFUNC(SEL_UPDATE, ID_CLEAR, :onUpdClear)
28
+
29
+ # Construct a horizontal frame to hold the main window's contents
30
+ @contents = FXHorizontalFrame.new(self,
31
+ LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0)
32
+
33
+ # Left pane contains the canvas
34
+ @canvasFrame = FXVerticalFrame.new(@contents,
35
+ FRAME_SUNKEN|LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT,
36
+ 0, 0, 0, 0, 10, 10, 10, 10)
37
+
38
+ # Place a label above the canvas
39
+ FXLabel.new(@canvasFrame, "Canvas Frame", nil,
40
+ JUSTIFY_CENTER_X|LAYOUT_FILL_X)
41
+
42
+ # Horizontal divider line
43
+ FXHorizontalSeparator.new(@canvasFrame, SEPARATOR_GROOVE|LAYOUT_FILL_X)
44
+
45
+ # Drawing canvas
46
+ @canvas = FXCanvas.new(@canvasFrame, self, ID_CANVAS,
47
+ LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT)
48
+
49
+ # Right pane for the buttons
50
+ @buttonFrame = FXVerticalFrame.new(@contents,
51
+ FRAME_SUNKEN|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT,
52
+ 0, 0, 0, 0, 10, 10, 10, 10)
53
+
54
+ # Label above the buttons
55
+ FXLabel.new(@buttonFrame, "Button Frame", nil,
56
+ JUSTIFY_CENTER_X|LAYOUT_FILL_X)
57
+
58
+ # Horizontal divider line
59
+ FXHorizontalSeparator.new(@buttonFrame,
60
+ SEPARATOR_RIDGE|LAYOUT_FILL_X)
61
+
62
+ # Button to clear the canvas
63
+ FXButton.new(@buttonFrame, "&Clear", nil, self, ID_CLEAR,
64
+ FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT,
65
+ 0, 0, 0, 0, 10, 10, 5, 5)
66
+
67
+ # Exit button
68
+ FXButton.new(@buttonFrame, "&Exit", nil, app, FXApp::ID_QUIT,
69
+ FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT,
70
+ 0, 0, 0, 0, 10, 10, 5, 5)
71
+
72
+ # Initialize other member variables
73
+ @drawColor = FXColor::Red
74
+ @mouseDown = false
75
+ @dirty = false
76
+ end
77
+
78
+ # Create and show the main window
79
+ def create
80
+ super # Create the windows
81
+ show(PLACEMENT_SCREEN) # Make the main window appear
82
+ end
83
+
84
+ # Mouse button was pressed somewhere
85
+ def onMouseDown(sender, sel, ptr)
86
+ @canvas.grab
87
+ @mouseDown = true
88
+ return 1
89
+ end
90
+
91
+ # Mouse has moved, so draw a line
92
+ def onMouseMove(sender, sel, event)
93
+ if @mouseDown
94
+ # Get device context for the canvas
95
+ dc = FXDCWindow.new(@canvas)
96
+
97
+ # Set the foreground color for drawing
98
+ dc.setForeground(@drawColor)
99
+
100
+ # Draw a line from the previous mouse coordinates to the current ones
101
+ dc.drawLine(event.last_x, event.last_y, event.win_x, event.win_y)
102
+
103
+ # We have drawn something, so now the canvas is dirty
104
+ @dirty = true
105
+
106
+ # Release the DC immediately
107
+ dc.end
108
+ end
109
+ return 1
110
+ end
111
+
112
+ # Mouse button released
113
+ def onMouseUp(sender, sel, event)
114
+ @canvas.ungrab
115
+ if @mouseDown
116
+ # Get device context for the canvas
117
+ dc = FXDCWindow.new(@canvas)
118
+
119
+ # Set the foreground color for drawing
120
+ dc.setForeground(@drawColor)
121
+
122
+ # Draw a line from the previous mouse coordinates to the current ones
123
+ dc.drawLine(event.last_x, event.last_y, event.win_x, event.win_y)
124
+
125
+ # We have drawn something, so now the canvas is dirty
126
+ @dirty = true
127
+
128
+ # Mouse no longer down
129
+ @mouseDown = false
130
+
131
+ # Release the DC immediately
132
+ dc.end
133
+ end
134
+ return 1
135
+ end
136
+
137
+ # Paint the canvas
138
+ def onPaint(sender, sel, event)
139
+ dc = FXDCWindow.new(@canvas, event)
140
+ dc.setForeground(@canvas.backColor)
141
+ dc.fillRectangle(event.rect.x, event.rect.y, event.rect.w, event.rect.h)
142
+ dc.end
143
+ end
144
+
145
+ # Handle the clear message
146
+ def onCmdClear(sender, sel, ptr)
147
+ dc = FXDCWindow.new(@canvas)
148
+ dc.setForeground(@canvas.backColor)
149
+ dc.fillRectangle(0, 0, @canvas.width, @canvas.height)
150
+ @dirty = false
151
+ dc.end
152
+ return 1
153
+ end
154
+
155
+ # This function handles the update message sent by the Clear button
156
+ # to its target. Every widget in FOX receives a message (SEL_UPDATE)
157
+ # during idle processing, asking it to update itself. For example,
158
+ # buttons could be enabled or disabled as the state of the application
159
+ # changes.
160
+ #
161
+ # In this case, we'll disable the sender (the Clear button) when the
162
+ # canvas has already been cleared (i.e. it's "clean"), and enable it when
163
+ # it has been painted (i.e. it's "dirty").
164
+ #
165
+ def onUpdClear(sender, sel, ptr)
166
+ message = @dirty ? FXWindow::ID_ENABLE : FXWindow::ID_DISABLE
167
+ sender.handle(self, MKUINT(message, SEL_COMMAND), nil)
168
+ return 1
169
+ end
170
+ end
171
+
172
+ def run
173
+ # Construct the application object
174
+ application = FXApp.new('Scribble', 'FoxTest')
175
+
176
+ # Construct the main window
177
+ scribble = ScribbleWindow.new(application)
178
+
179
+ # Create the application
180
+ application.create
181
+
182
+ # Run the application
183
+ application.run
184
+ end
185
+
186
+ run
@@ -0,0 +1,162 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fox16'
4
+
5
+ include Fox
6
+
7
+ class ScribbleWindow < FXMainWindow
8
+
9
+ def initialize(app)
10
+ # Call base class initializer first
11
+ super(app, "Scribble Application", :width => 800, :height => 600)
12
+
13
+ # Construct a horizontal frame to hold the main window's contents
14
+ @contents = FXHorizontalFrame.new(self,
15
+ LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y,
16
+ :padLeft => 0, :padRight => 0, :padTop => 0, :padBottom => 0)
17
+
18
+ # Left pane contains the canvas
19
+ @canvasFrame = FXVerticalFrame.new(@contents,
20
+ FRAME_SUNKEN|LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT,
21
+ :padLeft => 10, :padRight => 10, :padTop => 10, :padBottom => 10)
22
+
23
+ # Place a label above the canvas
24
+ FXLabel.new(@canvasFrame, "Canvas Frame", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_X)
25
+
26
+ # Horizontal divider line
27
+ FXHorizontalSeparator.new(@canvasFrame, SEPARATOR_GROOVE|LAYOUT_FILL_X)
28
+
29
+ # Drawing canvas
30
+ @canvas = FXCanvas.new(@canvasFrame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT)
31
+ @canvas.connect(SEL_PAINT) do |sender, sel, event|
32
+ FXDCWindow.new(@canvas, event) do |dc|
33
+ dc.foreground = @canvas.backColor
34
+ dc.fillRectangle(event.rect.x, event.rect.y, event.rect.w, event.rect.h)
35
+ end
36
+ end
37
+ @canvas.connect(SEL_LEFTBUTTONPRESS) do
38
+ @canvas.grab
39
+ @mouseDown = true
40
+ end
41
+ @canvas.connect(SEL_MOTION) do |sender, sel, event|
42
+ if @mouseDown
43
+ # Get device context for the canvas
44
+ dc = FXDCWindow.new(@canvas)
45
+
46
+ # Set the foreground color for drawing
47
+ dc.foreground = @drawColor
48
+
49
+ # Draw a line from the previous mouse coordinates to the current ones
50
+ if @mirrorMode.value
51
+ cW = @canvas.width
52
+ cH = @canvas.height
53
+ dc.drawLine(cW-event.last_x, event.last_y,
54
+ cW-event.win_x, event.win_y)
55
+ dc.drawLine(event.last_x, cH-event.last_y,
56
+ event.win_x, cH-event.win_y)
57
+ dc.drawLine(cW-event.last_x, cH-event.last_y,
58
+ cW-event.win_x, cH-event.win_y)
59
+ end
60
+ dc.drawLine(event.last_x, event.last_y, event.win_x, event.win_y)
61
+
62
+ # We have drawn something, so now the canvas is dirty
63
+ @dirty = true
64
+
65
+ # Release the DC immediately
66
+ dc.end
67
+ end
68
+ end
69
+ @canvas.connect(SEL_LEFTBUTTONRELEASE) do |sender, sel, event|
70
+ @canvas.ungrab
71
+ if @mouseDown
72
+ # Get device context for the canvas
73
+ dc = FXDCWindow.new(@canvas)
74
+
75
+ # Set the foreground color for drawing
76
+ dc.foreground = @drawColor
77
+
78
+ # Draw a line from the previous mouse coordinates to the current ones
79
+ dc.drawLine(event.last_x, event.last_y, event.win_x, event.win_y)
80
+
81
+ # We have drawn something, so now the canvas is dirty
82
+ @dirty = true
83
+
84
+ # Mouse no longer down
85
+ @mouseDown = false
86
+
87
+ # Release this DC immediately
88
+ dc.end
89
+ end
90
+ end
91
+
92
+ # Right pane for the buttons
93
+ @buttonFrame = FXVerticalFrame.new(@contents,
94
+ FRAME_SUNKEN|LAYOUT_FILL_Y|LAYOUT_TOP|LAYOUT_LEFT,
95
+ :padLeft => 10, :padRight => 10, :padTop => 10, :padBottom => 10)
96
+
97
+ # Label above the buttons
98
+ FXLabel.new(@buttonFrame, "Button Frame", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_X)
99
+
100
+ # Horizontal divider line
101
+ FXHorizontalSeparator.new(@buttonFrame, SEPARATOR_RIDGE|LAYOUT_FILL_X)
102
+
103
+ # Enable or disable mirror mode
104
+ @mirrorMode = FXDataTarget.new(false)
105
+ FXCheckButton.new(@buttonFrame, "Mirror", @mirrorMode, FXDataTarget::ID_VALUE, CHECKBUTTON_NORMAL|LAYOUT_FILL_X)
106
+
107
+ # Button to clear the canvas
108
+ clearButton = FXButton.new(@buttonFrame, "&Clear",
109
+ :opts => FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT,
110
+ :padLeft => 10, :padRight => 10, :padTop => 5, :padBottom => 5)
111
+ clearButton.connect(SEL_COMMAND) do
112
+ FXDCWindow.new(@canvas) do |dc|
113
+ dc.foreground = @canvas.backColor
114
+ dc.fillRectangle(0, 0, @canvas.width, @canvas.height)
115
+ @dirty = false
116
+ end
117
+ end
118
+ clearButton.connect(SEL_UPDATE) do |sender, sel, ptr|
119
+ # This procedure handles the update message sent by the Clear button
120
+ # to its target. Every widget in FOX receives a message (SEL_UPDATE)
121
+ # during idle processing, asking it to update itself. For example,
122
+ # buttons could be enabled or disabled as the state of the application
123
+ # changes.
124
+ #
125
+ # In this case, we'll disable the sender (the Clear button) when the
126
+ # canvas has already been cleared (i.e. it's "clean"), and enable it when
127
+ # it has been painted (i.e. it's "dirty").
128
+ message = @dirty ? FXWindow::ID_ENABLE : FXWindow::ID_DISABLE
129
+ sender.handle(self, MKUINT(message, SEL_COMMAND), nil)
130
+ end
131
+
132
+ # Exit button
133
+ FXButton.new(@buttonFrame, "&Exit", nil, app, FXApp::ID_QUIT,
134
+ FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT,
135
+ :padLeft => 10, :padRight => 10, :padTop => 5, :padBottom => 5)
136
+
137
+ # Initialize other member variables
138
+ @drawColor = "red"
139
+ @mouseDown = false
140
+ @dirty = false
141
+ end
142
+
143
+ # Create and show the main window
144
+ def create
145
+ super # Create the windows
146
+ show(PLACEMENT_SCREEN) # Make the main window appear
147
+ end
148
+ end
149
+
150
+ if __FILE__ == $0
151
+ # Construct the application object
152
+ application = FXApp.new('Scribble', 'FoxTest')
153
+
154
+ # Construct the main window
155
+ scribble = ScribbleWindow.new(application)
156
+
157
+ # Create the application
158
+ application.create
159
+
160
+ # Run the application
161
+ application.run
162
+ end
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fox16'
4
+
5
+ include Fox
6
+
7
+ GORTS_BLURB = "Icons courtesy of Gort's Icons:\nhttp://www.forrestwalter.com/icons"
8
+
9
+ class ShutterItem < FXShutterItem
10
+ def initialize(p, text, icon=nil, opts=0)
11
+ super(p, text, icon, opts|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT, :padding => 10, :hSpacing => 10, :vSpacing => 10)
12
+ button.padTop = 2
13
+ button.padBottom = 2
14
+ end
15
+ end
16
+
17
+ class ShutterButton < FXButton
18
+ def initialize(p, txt, ic=nil)
19
+ super(p, txt, ic, :opts => BUTTON_TOOLBAR|TEXT_BELOW_ICON|FRAME_THICK|FRAME_RAISED|LAYOUT_FILL_X|LAYOUT_TOP|LAYOUT_LEFT)
20
+ self.backColor = p.backColor
21
+ self.textColor = FXRGB(255, 255, 255)
22
+ end
23
+ end
24
+
25
+ class ShutterWindow < FXMainWindow
26
+
27
+ # This is just a helper function that loads an ICO file from disk
28
+ # and constructs and returns a ICO icon object.
29
+
30
+ def loadIcon(filename)
31
+ begin
32
+ filename = File.join("icons", filename)
33
+ icon = nil
34
+ File.open(filename, "rb") do |f|
35
+ icon = FXICOIcon.new(getApp(), f.read)
36
+ end
37
+ icon
38
+ rescue
39
+ raise RuntimeError, "Couldn't load icon: #{filename}"
40
+ end
41
+ end
42
+
43
+ def initialize(app)
44
+ # Invoke base class initialize first
45
+ super(app, "Look Out!", :opts => DECOR_ALL, :width => 600, :height => 600)
46
+
47
+ # Menubar along the top
48
+ menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
49
+
50
+ # File menu
51
+ filemenu = FXMenuPane.new(self)
52
+ FXMenuCommand.new(filemenu, "Quit\tCtl-Q", nil, getApp(), FXApp::ID_QUIT)
53
+ FXMenuTitle.new(menubar, "&File", nil, filemenu)
54
+
55
+ # Edit menu
56
+ editmenu = FXMenuPane.new(self)
57
+ FXMenuTitle.new(menubar, "&Edit", nil, editmenu)
58
+
59
+ # View menu
60
+ viewmenu = FXMenuPane.new(self)
61
+ FXMenuTitle.new(menubar, "&View", nil, viewmenu)
62
+
63
+ # Favorites menu
64
+ favmenu = FXMenuPane.new(self)
65
+ FXMenuTitle.new(menubar, "Fav&orites", nil, favmenu)
66
+
67
+ # Tools menu
68
+ toolsmenu = FXMenuPane.new(self)
69
+ FXMenuTitle.new(menubar, "&Tools", nil, toolsmenu)
70
+
71
+ # Actions menu
72
+ actionsmenu = FXMenuPane.new(self)
73
+ FXMenuTitle.new(menubar, "&Actions", nil, actionsmenu)
74
+
75
+ # Help menu
76
+ helpmenu = FXMenuPane.new(self)
77
+ FXMenuTitle.new(menubar, "&Help", nil, helpmenu)
78
+
79
+ # Status bar along the bottom
80
+ status = FXStatusBar.new(self,
81
+ LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|STATUSBAR_WITH_DRAGCORNER)
82
+
83
+ # Main contents area is split left-to-right
84
+ splitter = FXSplitter.new(self, (LAYOUT_SIDE_TOP|LAYOUT_FILL_X|
85
+ LAYOUT_FILL_Y|SPLITTER_TRACKING))
86
+
87
+ # Shutter area on the left
88
+ @shutter = FXShutter.new(splitter,
89
+ :opts => FRAME_SUNKEN|LAYOUT_FILL_X|LAYOUT_FILL_Y,
90
+ :padding => 0, :hSpacing => 0, :vSpacing => 0)
91
+
92
+ fatBot = loadIcon("FatBot.ico")
93
+ angryGuy = loadIcon("AngryGuyInBunnySuit.ico")
94
+ sawBlade = loadIcon("SawBlade.ico")
95
+ redMacOS = loadIcon("RedMacOS.ico")
96
+ leGoon = loadIcon("LeGoon.ico")
97
+ flippedySwitch = loadIcon("FlippedySwitch.ico")
98
+ net = loadIcon("Net.ico")
99
+
100
+ shutterItem = ShutterItem.new(@shutter, "Lookout Shortcuts", nil, LAYOUT_FILL_Y)
101
+ ShutterButton.new(shutterItem.content, "Lookout Today", fatBot).connect(SEL_COMMAND) { @switcher.current = 0 }
102
+ ShutterButton.new(shutterItem.content, "Inbox", angryGuy).connect(SEL_COMMAND) { @switcher.current = 1 }
103
+ ShutterButton.new(shutterItem.content, "Calendar", sawBlade).connect(SEL_COMMAND) { @switcher.current = 2 }
104
+ ShutterButton.new(shutterItem.content, "Contacts", redMacOS).connect(SEL_COMMAND) { @switcher.current = 3 }
105
+ ShutterButton.new(shutterItem.content, "Tasks", leGoon).connect(SEL_COMMAND) { @switcher.current = 4 }
106
+ ShutterButton.new(shutterItem.content, "Notes", flippedySwitch).connect(SEL_COMMAND) { @switcher.current = 5 }
107
+ ShutterButton.new(shutterItem.content, "Deleted Items", net).connect(SEL_COMMAND) { @switcher.current = 6 }
108
+
109
+ shutterItem = ShutterItem.new(@shutter, "My Shortcuts")
110
+ ShutterButton.new(shutterItem.content, "Drafts", fatBot).connect(SEL_COMMAND) { @switcher.current = 7 }
111
+ ShutterButton.new(shutterItem.content, "Outbox", angryGuy).connect(SEL_COMMAND) { @switcher.current = 8 }
112
+ ShutterButton.new(shutterItem.content, "Sent Items", sawBlade).connect(SEL_COMMAND) { @switcher.current = 9 }
113
+ ShutterButton.new(shutterItem.content, "Journal", redMacOS).connect(SEL_COMMAND) { @switcher.current = 10 }
114
+ ShutterButton.new(shutterItem.content, "Lookout Update", flippedySwitch).connect(SEL_COMMAND) { @switcher.current = 11 }
115
+
116
+ shutterItem = ShutterItem.new(@shutter, "Other Shortcuts")
117
+ ShutterButton.new(shutterItem.content, "My Computer", angryGuy).connect(SEL_COMMAND) { @switcher.current = 12 }
118
+ ShutterButton.new(shutterItem.content, "My Documents", net).connect(SEL_COMMAND) { @switcher.current = 13 }
119
+ ShutterButton.new(shutterItem.content, "Favorites", leGoon).connect(SEL_COMMAND) { @switcher.current = 14 }
120
+
121
+ # Right pane is a switcher
122
+ # For a real application, each panel in the switcher would have real, working contents...
123
+ @switcher = FXSwitcher.new(splitter,
124
+ FRAME_SUNKEN|LAYOUT_FILL_X|LAYOUT_FILL_Y, :padding => 0)
125
+
126
+ FXLabel.new(@switcher,
127
+ "Lookout Today!\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
128
+ FXLabel.new(@switcher, "Inbox\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
129
+ FXLabel.new(@switcher, "Calendar\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
130
+ FXLabel.new(@switcher, "Contacts\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
131
+ FXLabel.new(@switcher, "Tasks\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
132
+ FXLabel.new(@switcher, "Notes\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
133
+ FXLabel.new(@switcher, "Deleted Items\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
134
+
135
+ FXLabel.new(@switcher, "Drafts\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
136
+ FXLabel.new(@switcher, "Outbox\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
137
+ FXLabel.new(@switcher, "Sent Items\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
138
+ FXLabel.new(@switcher, "Journal\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
139
+ FXLabel.new(@switcher, "Lookout Update\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
140
+
141
+ FXLabel.new(@switcher, "My Computer\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
142
+ FXLabel.new(@switcher, "My Documents\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
143
+ FXLabel.new(@switcher, "Favorites\n\n#{GORTS_BLURB}", nil, LAYOUT_FILL_X|LAYOUT_FILL_Y)
144
+ end
145
+
146
+ def create
147
+ super
148
+ @shutter.width = 1.25*@shutter.width
149
+ show(PLACEMENT_SCREEN)
150
+ end
151
+ end
152
+
153
+ if __FILE__ == $0
154
+ application = FXApp.new("Shutter", "FoxTest")
155
+ ShutterWindow.new(application)
156
+ application.create
157
+ application.run
158
+ end