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.
- data/LICENSE +456 -0
- data/README +39 -0
- data/doc/apes02.html +21 -0
- data/doc/apes03.html +39 -0
- data/doc/book.html +3 -0
- data/doc/build.html +132 -0
- data/doc/ch03s02.html +23 -0
- data/doc/ch03s03.html +52 -0
- data/doc/ch03s04.html +36 -0
- data/doc/ch03s05.html +60 -0
- data/doc/ch04s02.html +71 -0
- data/doc/ch04s03.html +37 -0
- data/doc/ch04s04.html +72 -0
- data/doc/ch05s02.html +260 -0
- data/doc/ch05s03.html +127 -0
- data/doc/changes.html +697 -0
- data/doc/clipboardtut.html +67 -0
- data/doc/differences.html +190 -0
- data/doc/dragdroptut.html +263 -0
- data/doc/events.html +36 -0
- data/doc/examples.html +104 -0
- data/doc/gems.html +73 -0
- data/doc/goals.html +41 -0
- data/doc/images/babelfish.png +0 -0
- data/doc/images/browser.png +0 -0
- data/doc/images/button.png +0 -0
- data/doc/images/call-chain-example.png +0 -0
- data/doc/images/colordialog.png +0 -0
- data/doc/images/datatarget.png +0 -0
- data/doc/images/dialog.png +0 -0
- data/doc/images/dilbert.png +0 -0
- data/doc/images/dirlist.png +0 -0
- data/doc/images/dropsite-droprejected.png +0 -0
- data/doc/images/foursplit.png +0 -0
- data/doc/images/gltest.png +0 -0
- data/doc/images/glviewer.png +0 -0
- data/doc/images/groupbox.png +0 -0
- data/doc/images/header.png +0 -0
- data/doc/images/hello-with-button.png +0 -0
- data/doc/images/hello-with-icon-1.png +0 -0
- data/doc/images/hello-with-icon-2.png +0 -0
- data/doc/images/hello-with-icon-3.png +0 -0
- data/doc/images/hello-with-tooltip.png +0 -0
- data/doc/images/hello-without-button.png +0 -0
- data/doc/images/hello.png +0 -0
- data/doc/images/hello2.png +0 -0
- data/doc/images/iconlist-bigicons.png +0 -0
- data/doc/images/iconlist-details.png +0 -0
- data/doc/images/image.png +0 -0
- data/doc/images/imageviewer.png +0 -0
- data/doc/images/inheritance.png +0 -0
- data/doc/images/mditest.png +0 -0
- data/doc/images/raabrowser.png +0 -0
- data/doc/images/scribble.png +0 -0
- data/doc/images/shutter.png +0 -0
- data/doc/images/splitter.png +0 -0
- data/doc/images/tabbook.png +0 -0
- data/doc/images/table.png +0 -0
- data/doc/images/tutorial1.png +0 -0
- data/doc/implementation.html +16 -0
- data/doc/infosources.html +33 -0
- data/doc/library.html +30 -0
- data/doc/opengl.html +73 -0
- data/doc/pt01.html +3 -0
- data/doc/pt02.html +3 -0
- data/doc/scintilla.html +36 -0
- data/doc/style.css +247 -0
- data/doc/subversion.html +21 -0
- data/doc/tutorial1.html +90 -0
- data/doc/unicode.html +56 -0
- data/examples/RAA.rb +25 -0
- data/examples/README +53 -0
- data/examples/babelfish.rb +93 -0
- data/examples/bounce.rb +159 -0
- data/examples/browser.rb +191 -0
- data/examples/button.rb +168 -0
- data/examples/custom_table_item.rb +170 -0
- data/examples/datatarget.rb +223 -0
- data/examples/dctest.rb +696 -0
- data/examples/dialog.rb +143 -0
- data/examples/dilbert.rb +66 -0
- data/examples/dirlist.rb +63 -0
- data/examples/dragdrop.rb +97 -0
- data/examples/dragsource.rb +80 -0
- data/examples/dropsite.rb +59 -0
- data/examples/foursplit.rb +97 -0
- data/examples/gltest.rb +330 -0
- data/examples/glviewer.rb +576 -0
- data/examples/groupbox.rb +392 -0
- data/examples/header.rb +149 -0
- data/examples/hello.rb +12 -0
- data/examples/hello2.rb +51 -0
- data/examples/iRAA.rb +153 -0
- data/examples/iconlist.rb +92 -0
- data/examples/icons/AngryGuyInBunnySuit.ico +0 -0
- data/examples/icons/FatBot.ico +0 -0
- data/examples/icons/FlippedySwitch.ico +0 -0
- data/examples/icons/LeGoon.ico +0 -0
- data/examples/icons/Net.ico +0 -0
- data/examples/icons/RedMacOS.ico +0 -0
- data/examples/icons/SawBlade.ico +0 -0
- data/examples/icons/backview.png +0 -0
- data/examples/icons/big.png +0 -0
- data/examples/icons/bigfolder.png +0 -0
- data/examples/icons/bigpenguin.png +0 -0
- data/examples/icons/bottomview.png +0 -0
- data/examples/icons/camera.png +0 -0
- data/examples/icons/capbutt.png +0 -0
- data/examples/icons/capnotlast.png +0 -0
- data/examples/icons/capproj.png +0 -0
- data/examples/icons/capround.png +0 -0
- data/examples/icons/colorpal.png +0 -0
- data/examples/icons/copy.png +0 -0
- data/examples/icons/cut.png +0 -0
- data/examples/icons/delimit.png +0 -0
- data/examples/icons/dippy.png +0 -0
- data/examples/icons/double_dash.png +0 -0
- data/examples/icons/filenew.png +0 -0
- data/examples/icons/fileopen.png +0 -0
- data/examples/icons/filesave.png +0 -0
- data/examples/icons/filesaveas.png +0 -0
- data/examples/icons/fonts.png +0 -0
- data/examples/icons/fox.png +0 -0
- data/examples/icons/foxicon.png +0 -0
- data/examples/icons/frontview.png +0 -0
- data/examples/icons/gem_big.png +0 -0
- data/examples/icons/gem_small.png +0 -0
- data/examples/icons/hello2.png +0 -0
- data/examples/icons/help.png +0 -0
- data/examples/icons/indent.png +0 -0
- data/examples/icons/jbevel.png +0 -0
- data/examples/icons/jmiter.png +0 -0
- data/examples/icons/jround.png +0 -0
- data/examples/icons/kill.png +0 -0
- data/examples/icons/leftview.png +0 -0
- data/examples/icons/light.png +0 -0
- data/examples/icons/minidoc.png +0 -0
- data/examples/icons/minifolder.png +0 -0
- data/examples/icons/minifolderopen.png +0 -0
- data/examples/icons/newfolder.png +0 -0
- data/examples/icons/nolight.png +0 -0
- data/examples/icons/onoff_dash.png +0 -0
- data/examples/icons/palette.png +0 -0
- data/examples/icons/parallel.png +0 -0
- data/examples/icons/paste.png +0 -0
- data/examples/icons/pattern.png +0 -0
- data/examples/icons/penguin.png +0 -0
- data/examples/icons/perspective.png +0 -0
- data/examples/icons/printicon.png +0 -0
- data/examples/icons/prop.png +0 -0
- data/examples/icons/redo.png +0 -0
- data/examples/icons/rightview.png +0 -0
- data/examples/icons/saveas.png +0 -0
- data/examples/icons/shutter1.png +0 -0
- data/examples/icons/shutter2.png +0 -0
- data/examples/icons/small.png +0 -0
- data/examples/icons/smoothlight.png +0 -0
- data/examples/icons/solid_line.png +0 -0
- data/examples/icons/tbuplevel.png +0 -0
- data/examples/icons/topview.png +0 -0
- data/examples/icons/undo.png +0 -0
- data/examples/icons/winapp.png +0 -0
- data/examples/icons/zoom.png +0 -0
- data/examples/image.rb +279 -0
- data/examples/imageviewer.rb +509 -0
- data/examples/inputs.rb +83 -0
- data/examples/mditest.rb +180 -0
- data/examples/pig.rb +77 -0
- data/examples/raabrowser.rb +122 -0
- data/examples/ratio.rb +80 -0
- data/examples/rulerview.rb +27 -0
- data/examples/scintilla-test.rb +81 -0
- data/examples/scribble-orig.rb +186 -0
- data/examples/scribble.rb +162 -0
- data/examples/shutter.rb +158 -0
- data/examples/splitter.rb +211 -0
- data/examples/styledtext.rb +82 -0
- data/examples/tabbook.rb +165 -0
- data/examples/table.rb +182 -0
- data/examples/textedit/commands.rb +114 -0
- data/examples/textedit/helpwindow.rb +299 -0
- data/examples/textedit/prefdialog.rb +239 -0
- data/examples/textedit/textedit.rb +1763 -0
- data/examples/unicode.rb +36 -0
- data/ext/fox16/fox16.bundle +0 -0
- data/lib/fox16/aliases.rb +5598 -0
- data/lib/fox16/calendar.rb +217 -0
- data/lib/fox16/chore.rb +105 -0
- data/lib/fox16/colors.rb +280 -0
- data/lib/fox16/core.rb +681 -0
- data/lib/fox16/dict.rb +35 -0
- data/lib/fox16/execute_nonmodal.rb +70 -0
- data/lib/fox16/glgroup.rb +166 -0
- data/lib/fox16/glshapes.rb +456 -0
- data/lib/fox16/input.rb +59 -0
- data/lib/fox16/irb.rb +178 -0
- data/lib/fox16/iterators.rb +371 -0
- data/lib/fox16/keys.rb +1374 -0
- data/lib/fox16/kwargs.rb +2736 -0
- data/lib/fox16/missingdep.rb +14 -0
- data/lib/fox16/pseudokeyboard.rb +40 -0
- data/lib/fox16/pseudomouse.rb +87 -0
- data/lib/fox16/responder.rb +70 -0
- data/lib/fox16/responder2.rb +131 -0
- data/lib/fox16/scintilla.rb +3641 -0
- data/lib/fox16/settings.rb +18 -0
- data/lib/fox16/signal.rb +71 -0
- data/lib/fox16/splashscreen.rb +82 -0
- data/lib/fox16/timeout.rb +136 -0
- data/lib/fox16/undolist.rb +455 -0
- data/lib/fox16/version.rb +9 -0
- data/rdoc-sources/FX4Splitter.rb +156 -0
- data/rdoc-sources/FX7Segment.rb +54 -0
- data/rdoc-sources/FXAccelTable.rb +102 -0
- data/rdoc-sources/FXApp.rb +545 -0
- data/rdoc-sources/FXArrowButton.rb +69 -0
- data/rdoc-sources/FXBMPIcon.rb +67 -0
- data/rdoc-sources/FXBMPImage.rb +30 -0
- data/rdoc-sources/FXBitmap.rb +115 -0
- data/rdoc-sources/FXBitmapFrame.rb +31 -0
- data/rdoc-sources/FXBitmapView.rb +44 -0
- data/rdoc-sources/FXButton.rb +59 -0
- data/rdoc-sources/FXCURCursor.rb +13 -0
- data/rdoc-sources/FXCanvas.rb +18 -0
- data/rdoc-sources/FXCheckButton.rb +58 -0
- data/rdoc-sources/FXChoiceBox.rb +49 -0
- data/rdoc-sources/FXColorBar.rb +48 -0
- data/rdoc-sources/FXColorDialog.rb +37 -0
- data/rdoc-sources/FXColorList.rb +55 -0
- data/rdoc-sources/FXColorRing.rb +49 -0
- data/rdoc-sources/FXColorSelector.rb +65 -0
- data/rdoc-sources/FXColorWell.rb +65 -0
- data/rdoc-sources/FXColorWheel.rb +57 -0
- data/rdoc-sources/FXComboBox.rb +211 -0
- data/rdoc-sources/FXComposite.rb +34 -0
- data/rdoc-sources/FXCursor.rb +67 -0
- data/rdoc-sources/FXDC.rb +720 -0
- data/rdoc-sources/FXDCPrint.rb +127 -0
- data/rdoc-sources/FXDCWindow.rb +33 -0
- data/rdoc-sources/FXDataTarget.rb +66 -0
- data/rdoc-sources/FXDebugTarget.rb +25 -0
- data/rdoc-sources/FXDelegator.rb +23 -0
- data/rdoc-sources/FXDial.rb +107 -0
- data/rdoc-sources/FXDialogBox.rb +32 -0
- data/rdoc-sources/FXDict.rb +79 -0
- data/rdoc-sources/FXDirBox.rb +55 -0
- data/rdoc-sources/FXDirDialog.rb +47 -0
- data/rdoc-sources/FXDirList.rb +149 -0
- data/rdoc-sources/FXDirSelector.rb +64 -0
- data/rdoc-sources/FXDockBar.rb +151 -0
- data/rdoc-sources/FXDockHandler.rb +26 -0
- data/rdoc-sources/FXDockSite.rb +104 -0
- data/rdoc-sources/FXDockTitle.rb +26 -0
- data/rdoc-sources/FXDocument.rb +29 -0
- data/rdoc-sources/FXDragCorner.rb +19 -0
- data/rdoc-sources/FXDrawable.rb +27 -0
- data/rdoc-sources/FXDriveBox.rb +46 -0
- data/rdoc-sources/FXExtentd.rb +85 -0
- data/rdoc-sources/FXExtentf.rb +85 -0
- data/rdoc-sources/FXFileDialog.rb +217 -0
- data/rdoc-sources/FXFileDict.rb +131 -0
- data/rdoc-sources/FXFileList.rb +208 -0
- data/rdoc-sources/FXFileSelector.rb +184 -0
- data/rdoc-sources/FXFileStream.rb +27 -0
- data/rdoc-sources/FXFoldingList.rb +504 -0
- data/rdoc-sources/FXFont.rb +361 -0
- data/rdoc-sources/FXFontDialog.rb +14 -0
- data/rdoc-sources/FXFontSelector.rb +37 -0
- data/rdoc-sources/FXFrame.rb +53 -0
- data/rdoc-sources/FXGIFCursor.rb +50 -0
- data/rdoc-sources/FXGIFIcon.rb +31 -0
- data/rdoc-sources/FXGIFImage.rb +29 -0
- data/rdoc-sources/FXGLCanvas.rb +45 -0
- data/rdoc-sources/FXGLContext.rb +40 -0
- data/rdoc-sources/FXGLObject.rb +75 -0
- data/rdoc-sources/FXGLShape.rb +69 -0
- data/rdoc-sources/FXGLViewer.rb +332 -0
- data/rdoc-sources/FXGLVisual.rb +94 -0
- data/rdoc-sources/FXGradientBar.rb +301 -0
- data/rdoc-sources/FXGroupBox.rb +33 -0
- data/rdoc-sources/FXHeader.rb +408 -0
- data/rdoc-sources/FXHorizontalFrame.rb +29 -0
- data/rdoc-sources/FXICOIcon.rb +65 -0
- data/rdoc-sources/FXICOImage.rb +31 -0
- data/rdoc-sources/FXIcon.rb +38 -0
- data/rdoc-sources/FXIconDict.rb +48 -0
- data/rdoc-sources/FXIconList.rb +447 -0
- data/rdoc-sources/FXIconSource.rb +100 -0
- data/rdoc-sources/FXId.rb +34 -0
- data/rdoc-sources/FXImage.rb +292 -0
- data/rdoc-sources/FXImageFrame.rb +36 -0
- data/rdoc-sources/FXImageView.rb +35 -0
- data/rdoc-sources/FXInputDialog.rb +77 -0
- data/rdoc-sources/FXJPGIcon.rb +70 -0
- data/rdoc-sources/FXJPGImage.rb +38 -0
- data/rdoc-sources/FXKnob.rb +76 -0
- data/rdoc-sources/FXLabel.rb +69 -0
- data/rdoc-sources/FXList.rb +440 -0
- data/rdoc-sources/FXListBox.rb +191 -0
- data/rdoc-sources/FXMDIButton.rb +67 -0
- data/rdoc-sources/FXMDIChild.rb +155 -0
- data/rdoc-sources/FXMDIClient.rb +65 -0
- data/rdoc-sources/FXMainWindow.rb +26 -0
- data/rdoc-sources/FXMatrix.rb +57 -0
- data/rdoc-sources/FXMemoryBuffer.rb +28 -0
- data/rdoc-sources/FXMemoryStream.rb +50 -0
- data/rdoc-sources/FXMenuBar.rb +23 -0
- data/rdoc-sources/FXMenuButton.rb +84 -0
- data/rdoc-sources/FXMenuCaption.rb +50 -0
- data/rdoc-sources/FXMenuCascade.rb +18 -0
- data/rdoc-sources/FXMenuCheck.rb +30 -0
- data/rdoc-sources/FXMenuCommand.rb +26 -0
- data/rdoc-sources/FXMenuPane.rb +13 -0
- data/rdoc-sources/FXMenuRadio.rb +33 -0
- data/rdoc-sources/FXMenuSeparator.rb +21 -0
- data/rdoc-sources/FXMenuTitle.rb +27 -0
- data/rdoc-sources/FXMessageBox.rb +72 -0
- data/rdoc-sources/FXObject.rb +28 -0
- data/rdoc-sources/FXOptionMenu.rb +83 -0
- data/rdoc-sources/FXPCXIcon.rb +63 -0
- data/rdoc-sources/FXPCXImage.rb +31 -0
- data/rdoc-sources/FXPNGIcon.rb +66 -0
- data/rdoc-sources/FXPNGImage.rb +34 -0
- data/rdoc-sources/FXPPMIcon.rb +36 -0
- data/rdoc-sources/FXPPMImage.rb +31 -0
- data/rdoc-sources/FXPacker.rb +63 -0
- data/rdoc-sources/FXPicker.rb +27 -0
- data/rdoc-sources/FXPopup.rb +53 -0
- data/rdoc-sources/FXPrintDialog.rb +36 -0
- data/rdoc-sources/FXProgressBar.rb +57 -0
- data/rdoc-sources/FXProgressDialog.rb +36 -0
- data/rdoc-sources/FXQuatd.rb +164 -0
- data/rdoc-sources/FXQuatf.rb +173 -0
- data/rdoc-sources/FXRGBIcon.rb +64 -0
- data/rdoc-sources/FXRGBImage.rb +31 -0
- data/rdoc-sources/FXRadioButton.rb +70 -0
- data/rdoc-sources/FXRanged.rb +100 -0
- data/rdoc-sources/FXRangef.rb +100 -0
- data/rdoc-sources/FXRealSlider.rb +101 -0
- data/rdoc-sources/FXRealSpinner.rb +140 -0
- data/rdoc-sources/FXRecentFiles.rb +77 -0
- data/rdoc-sources/FXRectangle.rb +149 -0
- data/rdoc-sources/FXRegion.rb +64 -0
- data/rdoc-sources/FXRegistry.rb +56 -0
- data/rdoc-sources/FXReplaceDialog.rb +56 -0
- data/rdoc-sources/FXRootWindow.rb +17 -0
- data/rdoc-sources/FXRuler.rb +130 -0
- data/rdoc-sources/FXRulerView.rb +225 -0
- data/rdoc-sources/FXScintilla.rb +121 -0
- data/rdoc-sources/FXScrollArea.rb +86 -0
- data/rdoc-sources/FXScrollBar.rb +107 -0
- data/rdoc-sources/FXScrollPane.rb +28 -0
- data/rdoc-sources/FXScrollWindow.rb +38 -0
- data/rdoc-sources/FXSearchDialog.rb +24 -0
- data/rdoc-sources/FXSeparator.rb +74 -0
- data/rdoc-sources/FXSettings.rb +248 -0
- data/rdoc-sources/FXShell.rb +8 -0
- data/rdoc-sources/FXShutter.rb +102 -0
- data/rdoc-sources/FXSize.rb +95 -0
- data/rdoc-sources/FXSlider.rb +98 -0
- data/rdoc-sources/FXSphered.rb +80 -0
- data/rdoc-sources/FXSpheref.rb +80 -0
- data/rdoc-sources/FXSpinner.rb +136 -0
- data/rdoc-sources/FXSplashWindow.rb +27 -0
- data/rdoc-sources/FXSplitter.rb +89 -0
- data/rdoc-sources/FXSpring.rb +61 -0
- data/rdoc-sources/FXStatusBar.rb +42 -0
- data/rdoc-sources/FXStatusLine.rb +60 -0
- data/rdoc-sources/FXStream.rb +142 -0
- data/rdoc-sources/FXStringDict.rb +38 -0
- data/rdoc-sources/FXSwitcher.rb +78 -0
- data/rdoc-sources/FXTGAIcon.rb +63 -0
- data/rdoc-sources/FXTGAImage.rb +31 -0
- data/rdoc-sources/FXTIFIcon.rb +70 -0
- data/rdoc-sources/FXTIFImage.rb +37 -0
- data/rdoc-sources/FXTabBar.rb +80 -0
- data/rdoc-sources/FXTabBook.rb +41 -0
- data/rdoc-sources/FXTabItem.rb +58 -0
- data/rdoc-sources/FXTable.rb +967 -0
- data/rdoc-sources/FXText.rb +578 -0
- data/rdoc-sources/FXTextField.rb +151 -0
- data/rdoc-sources/FXToggleButton.rb +70 -0
- data/rdoc-sources/FXToolBar.rb +61 -0
- data/rdoc-sources/FXToolBarGrip.rb +50 -0
- data/rdoc-sources/FXToolBarShell.rb +44 -0
- data/rdoc-sources/FXToolBarTab.rb +74 -0
- data/rdoc-sources/FXToolTip.rb +36 -0
- data/rdoc-sources/FXTopWindow.rb +163 -0
- data/rdoc-sources/FXTranslator.rb +32 -0
- data/rdoc-sources/FXTreeList.rb +514 -0
- data/rdoc-sources/FXTreeListBox.rb +219 -0
- data/rdoc-sources/FXTriStateButton.rb +49 -0
- data/rdoc-sources/FXVec2d.rb +96 -0
- data/rdoc-sources/FXVec2f.rb +96 -0
- data/rdoc-sources/FXVec3d.rb +113 -0
- data/rdoc-sources/FXVec3f.rb +113 -0
- data/rdoc-sources/FXVec4d.rb +129 -0
- data/rdoc-sources/FXVec4f.rb +129 -0
- data/rdoc-sources/FXVerticalFrame.rb +29 -0
- data/rdoc-sources/FXVisual.rb +79 -0
- data/rdoc-sources/FXWindow.rb +725 -0
- data/rdoc-sources/FXWizard.rb +59 -0
- data/rdoc-sources/FXXBMIcon.rb +37 -0
- data/rdoc-sources/FXXBMImage.rb +32 -0
- data/rdoc-sources/FXXPMIcon.rb +65 -0
- data/rdoc-sources/FXXPMImage.rb +31 -0
- data/rdoc-sources/README.rdoc +53 -0
- data/rdoc-sources/fxdefs.rb +90 -0
- data/tests/README +19 -0
- data/tests/TC_FXAccelTable.rb +43 -0
- data/tests/TC_FXApp.rb +15 -0
- data/tests/TC_FXArc.rb +26 -0
- data/tests/TC_FXBMPIcon.rb +15 -0
- data/tests/TC_FXBMPImage.rb +15 -0
- data/tests/TC_FXButton.rb +72 -0
- data/tests/TC_FXCheckButton.rb +57 -0
- data/tests/TC_FXComboBox.rb +52 -0
- data/tests/TC_FXDC.rb +372 -0
- data/tests/TC_FXDCPrint.rb +102 -0
- data/tests/TC_FXDCWindow.rb +23 -0
- data/tests/TC_FXDataTarget.rb +24 -0
- data/tests/TC_FXDirList.rb +30 -0
- data/tests/TC_FXFileAssoc.rb +62 -0
- data/tests/TC_FXFileStream.rb +90 -0
- data/tests/TC_FXFoldingList.rb +32 -0
- data/tests/TC_FXFont.rb +69 -0
- data/tests/TC_FXFontDesc.rb +58 -0
- data/tests/TC_FXGLGroup.rb +32 -0
- data/tests/TC_FXGLShape.rb +28 -0
- data/tests/TC_FXGLViewer.rb +20 -0
- data/tests/TC_FXGradientBar.rb +89 -0
- data/tests/TC_FXHeader.rb +82 -0
- data/tests/TC_FXIconDict.rb +52 -0
- data/tests/TC_FXIconList.rb +192 -0
- data/tests/TC_FXId.rb +19 -0
- data/tests/TC_FXImage.rb +155 -0
- data/tests/TC_FXLight.rb +33 -0
- data/tests/TC_FXList.rb +116 -0
- data/tests/TC_FXListBox.rb +49 -0
- data/tests/TC_FXMat4f.rb +228 -0
- data/tests/TC_FXMaterial.rb +89 -0
- data/tests/TC_FXMemoryStream.rb +97 -0
- data/tests/TC_FXMenuCheck.rb +57 -0
- data/tests/TC_FXMenuCommand.rb +12 -0
- data/tests/TC_FXMenuRadio.rb +57 -0
- data/tests/TC_FXPoint.rb +57 -0
- data/tests/TC_FXQuatf.rb +77 -0
- data/tests/TC_FXRadioButton.rb +57 -0
- data/tests/TC_FXRangef.rb +48 -0
- data/tests/TC_FXRectangle.rb +88 -0
- data/tests/TC_FXRegion.rb +54 -0
- data/tests/TC_FXRegistry.rb +27 -0
- data/tests/TC_FXScrollArea.rb +28 -0
- data/tests/TC_FXScrollWindow.rb +28 -0
- data/tests/TC_FXSegment.rb +22 -0
- data/tests/TC_FXSettings.rb +34 -0
- data/tests/TC_FXShell.rb +26 -0
- data/tests/TC_FXSize.rb +54 -0
- data/tests/TC_FXStream.rb +11 -0
- data/tests/TC_FXTable.rb +368 -0
- data/tests/TC_FXTableItem.rb +48 -0
- data/tests/TC_FXText.rb +96 -0
- data/tests/TC_FXTopWindow.rb +32 -0
- data/tests/TC_FXTreeList.rb +100 -0
- data/tests/TC_FXTreeListBox.rb +41 -0
- data/tests/TC_FXUndoList.rb +43 -0
- data/tests/TC_FXVec2d.rb +142 -0
- data/tests/TC_FXVec2f.rb +137 -0
- data/tests/TC_FXVec3d.rb +150 -0
- data/tests/TC_FXVec3f.rb +150 -0
- data/tests/TC_FXVec4f.rb +158 -0
- data/tests/TC_FXViewport.rb +30 -0
- data/tests/TC_FXXBMIcon.rb +15 -0
- data/tests/TC_FXXBMImage.rb +15 -0
- data/tests/TC_FXXPMIcon.rb +15 -0
- data/tests/TC_FXXPMImage.rb +15 -0
- data/tests/TC_Misc.rb +157 -0
- data/tests/TC_downcast.rb +15 -0
- data/tests/TS_All.rb +25 -0
- data/tests/blankpage.ps +166 -0
- data/tests/howdypage.ps +181 -0
- data/tests/output.ps +166 -0
- data/tests/stress1.rb +92 -0
- data/tests/stress2.rb +51 -0
- data/tests/stress3.rb +117 -0
- data/tests/testcase.rb +37 -0
- data/web/community.html +94 -0
- data/web/documentation.html +100 -0
- data/web/downloads.html +114 -0
- data/web/index.html +96 -0
- metadata +550 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
# This is a little helper function used by some of the examples to report
|
2
|
+
# missing dependencies information on startup. It's especially useful for the
|
3
|
+
# Windows distribution since people will often start the examples by double-
|
4
|
+
# clicking on an icon instead of running from the command line.
|
5
|
+
|
6
|
+
def missingDependency(msg)
|
7
|
+
app = Fox::FXApp.new("Dummy", "FoxTest")
|
8
|
+
app.init(ARGV)
|
9
|
+
mainWindow = Fox::FXMainWindow.new(app, "")
|
10
|
+
app.create
|
11
|
+
Fox::FXMessageBox.error(mainWindow, Fox::MBOX_OK, "Dependencies Missing", msg)
|
12
|
+
raise SystemExit
|
13
|
+
end
|
14
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Fox
|
2
|
+
#
|
3
|
+
# An FXPseudoKeyboard object provides a simple means to operate widgets
|
4
|
+
# programmatically, to aid test driven design. An FXPseudoKeyboard instance
|
5
|
+
# can be pointed at an FXObject and will manage the sending of events to
|
6
|
+
# it.
|
7
|
+
#
|
8
|
+
# For example:
|
9
|
+
#
|
10
|
+
# textfield = FXTextField.new(...)
|
11
|
+
# pk = FXPseudoKeyboard.new(textfield)
|
12
|
+
# pk.doKeyPress # sends a SEL_KEYPRESS message to the textfield
|
13
|
+
# pk.doKeyRelease # sends a SEL_KEYRELEASE message to the textfield
|
14
|
+
#
|
15
|
+
class FXPseudoKeyboard
|
16
|
+
|
17
|
+
attr_accessor :target
|
18
|
+
|
19
|
+
def initialize(tgt=nil)
|
20
|
+
@target = tgt
|
21
|
+
end
|
22
|
+
|
23
|
+
def doKeyPress
|
24
|
+
unless @target.nil?
|
25
|
+
evt = FXEvent.new
|
26
|
+
evt.type = Fox::SEL_KEYPRESS
|
27
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_KEYPRESS, 0), evt)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def doKeyRelease
|
32
|
+
unless @target.nil?
|
33
|
+
evt = FXEvent.new
|
34
|
+
evt.type = Fox::SEL_KEYRELEASE
|
35
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_KEYRELEASE, 0), evt)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module Fox
|
2
|
+
#
|
3
|
+
# An FXPseudoMouse object provides a simple means to operate widgets
|
4
|
+
# programmatically, to aid test driven design. An FXPseudoMouse instance
|
5
|
+
# can be pointed at an FXObject and will manage the sending of events to
|
6
|
+
# it.
|
7
|
+
#
|
8
|
+
# For example:
|
9
|
+
#
|
10
|
+
# canvas = FXCanvas.new(...)
|
11
|
+
# pm = FXPseudoMouse.new(canvas)
|
12
|
+
# pm.doLeftButtonPress # sends a SEL_LEFTBUTTONPRESS message to the canvas
|
13
|
+
#
|
14
|
+
class FXPseudoMouse < FXObject
|
15
|
+
|
16
|
+
attr_accessor :target
|
17
|
+
|
18
|
+
def initialize(tgt=nil)
|
19
|
+
@target = tgt
|
20
|
+
end
|
21
|
+
|
22
|
+
def doMotion
|
23
|
+
unless @target.nil?
|
24
|
+
evt = FXEvent.new
|
25
|
+
evt.type = Fox::SEL_MOTION
|
26
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_MOTION, 0), evt)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def doMouseWheel
|
31
|
+
unless @target.nil?
|
32
|
+
evt = FXEvent.new
|
33
|
+
evt.type = Fox::SEL_MOUSEWHEEL
|
34
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_MOUSEWHEEL, 0), evt)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def doLeftButtonPress
|
39
|
+
unless @target.nil?
|
40
|
+
evt = FXEvent.new
|
41
|
+
evt.type = Fox::SEL_LEFTBUTTONPRESS
|
42
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_LEFTBUTTONPRESS, 0), evt)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def doLeftButtonRelease
|
47
|
+
unless @target.nil?
|
48
|
+
evt = FXEvent.new
|
49
|
+
evt.type = Fox::SEL_LEFTBUTTONRELEASE
|
50
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_LEFTBUTTONRELEASE, 0), evt)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def doMiddleButtonPress
|
55
|
+
unless @target.nil?
|
56
|
+
evt = FXEvent.new
|
57
|
+
evt.type = Fox::SEL_MIDDLEBUTTONPRESS
|
58
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_MIDDLEBUTTONPRESS, 0), evt)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def doMiddleButtonRelease
|
63
|
+
unless @target.nil?
|
64
|
+
evt = FXEvent.new
|
65
|
+
evt.type = Fox::SEL_MIDDLEBUTTONRELEASE
|
66
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_MIDDLEBUTTONRELEASE, 0), evt)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def doRightButtonPress
|
71
|
+
unless @target.nil?
|
72
|
+
evt = FXEvent.new
|
73
|
+
evt.type = Fox::SEL_RIGHTBUTTONPRESS
|
74
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_RIGHTBUTTONPRESS, 0), evt)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def doRightButtonRelease
|
79
|
+
unless @target.nil?
|
80
|
+
evt = FXEvent.new
|
81
|
+
evt.type = Fox::SEL_RIGHTBUTTONRELEASE
|
82
|
+
@target.handle(self, Fox.FXSEL(Fox::SEL_RIGHTBUTTONRELEASE, 0), evt)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# Enumeration
|
2
|
+
def enum(start, count)
|
3
|
+
(start...(start+count)).to_a
|
4
|
+
end
|
5
|
+
|
6
|
+
module Responder
|
7
|
+
# Generates identifiers as class constants. Originally submitted by
|
8
|
+
# Sean O'Halpin, slightly modified by Lyle.
|
9
|
+
def identifier(*ids)
|
10
|
+
ids << :ID_LAST
|
11
|
+
base = self.class.superclass::ID_LAST
|
12
|
+
vals = enum(base, ids.size)
|
13
|
+
ids.each_index do |i|
|
14
|
+
unless self.class.const_defined?(ids[i])
|
15
|
+
self.class.class_eval("#{ids[i].id2name} = #{vals[i]}")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Return the array of (selector -> func) associations
|
21
|
+
def messageMap
|
22
|
+
unless instance_variables.include? "@assocs"
|
23
|
+
@assocs = []
|
24
|
+
end
|
25
|
+
@assocs
|
26
|
+
end
|
27
|
+
|
28
|
+
# Look up array index of this message map entry
|
29
|
+
def assocIndex(lo, hi)
|
30
|
+
currIndex = -1
|
31
|
+
assocs = messageMap
|
32
|
+
assocs.each_index do |i|
|
33
|
+
if assocs[i][0] == lo && assocs[i][1] == hi
|
34
|
+
currIndex = i
|
35
|
+
end
|
36
|
+
end
|
37
|
+
currIndex
|
38
|
+
end
|
39
|
+
|
40
|
+
# Add new or replace existing map entry
|
41
|
+
def addMapEntry(lo, hi, func)
|
42
|
+
func = func.intern if func.is_a? String
|
43
|
+
currIndex = assocIndex(lo, hi)
|
44
|
+
if currIndex < 0
|
45
|
+
messageMap.push([lo, hi, func])
|
46
|
+
else
|
47
|
+
messageMap[currIndex] = [lo, hi, func]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Define range of function types
|
52
|
+
def FXMAPTYPES(typelo, typehi, func)
|
53
|
+
addMapEntry(Fox.MKUINT(Fox::MINKEY, typelo), Fox.MKUINT(Fox::MAXKEY, typehi), func)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Define one function type
|
57
|
+
def FXMAPTYPE(type, func)
|
58
|
+
addMapEntry(Fox.MKUINT(Fox::MINKEY, type), Fox.MKUINT(Fox::MAXKEY, type), func)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Define range of functions
|
62
|
+
def FXMAPFUNCS(type, keylo, keyhi, func)
|
63
|
+
addMapEntry(Fox.MKUINT(keylo, type), Fox.MKUINT(keyhi, type), func)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Define one function
|
67
|
+
def FXMAPFUNC(type, id, func)
|
68
|
+
addMapEntry(Fox.MKUINT(id, type), Fox.MKUINT(id, type), func)
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
require 'fox16/responder'
|
2
|
+
|
3
|
+
module Fox
|
4
|
+
|
5
|
+
#
|
6
|
+
# FXPseudoTarget instances act as the message target for any widgets that
|
7
|
+
# elect to use the #connect method to map certain message types to
|
8
|
+
# blocks.
|
9
|
+
#
|
10
|
+
class FXPseudoTarget < FXObject
|
11
|
+
|
12
|
+
include Responder
|
13
|
+
|
14
|
+
@@targets_of_pending_timers = {}
|
15
|
+
@@targets_of_pending_chores = {}
|
16
|
+
@@targets_of_pending_signals = {}
|
17
|
+
@@targets_of_pending_inputs = {}
|
18
|
+
|
19
|
+
#
|
20
|
+
# Returns an initialized FXPseudoTarget object.
|
21
|
+
#
|
22
|
+
def initialize
|
23
|
+
super
|
24
|
+
@context = {}
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# Store an association between a message of type
|
29
|
+
# _message_type_ with a callable object.
|
30
|
+
#
|
31
|
+
def pconnect(message_type, callable_object, params={})
|
32
|
+
@context[message_type] = { :callable => callable_object, :params => params }
|
33
|
+
FXMAPTYPE(message_type, :onHandleMsg)
|
34
|
+
case message_type
|
35
|
+
when SEL_TIMEOUT
|
36
|
+
@@targets_of_pending_timers[self] = self
|
37
|
+
when SEL_CHORE
|
38
|
+
@@targets_of_pending_chores[self] = self
|
39
|
+
when SEL_SIGNAL
|
40
|
+
@@targets_of_pending_signals[self] = self
|
41
|
+
when SEL_IO_READ, SEL_IO_WRITE, SEL_IO_EXCEPT
|
42
|
+
@@targets_of_pending_inputs[self] = self
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Handle a message from _sender_, with selector _sel_ and
|
48
|
+
# message data _ptr_.
|
49
|
+
#
|
50
|
+
def onHandleMsg(sender, sel, ptr)
|
51
|
+
message_type = Fox.FXSELTYPE(sel)
|
52
|
+
ctx = @context[message_type]
|
53
|
+
callable_object = ctx[:callable]
|
54
|
+
params = ctx[:params]
|
55
|
+
result = callable_object.call(sender, sel, ptr)
|
56
|
+
case message_type
|
57
|
+
when SEL_TIMEOUT
|
58
|
+
if params[:repeat]
|
59
|
+
FXApp.instance.addTimeout(params[:delay], callable_object, params)
|
60
|
+
else
|
61
|
+
@@targets_of_pending_timers.delete(self)
|
62
|
+
end
|
63
|
+
when SEL_CHORE
|
64
|
+
if params[:repeat]
|
65
|
+
FXApp.instance.addChore(callable_object, params)
|
66
|
+
else
|
67
|
+
@@targets_of_pending_chores.delete(self)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
result
|
71
|
+
end
|
72
|
+
|
73
|
+
end # class FXPseudoTarget
|
74
|
+
|
75
|
+
end # module Fox
|
76
|
+
|
77
|
+
#
|
78
|
+
# The Responder2 module provides the #connect method,
|
79
|
+
# which is mixed-in to all classes that have a message
|
80
|
+
# target (i.e. Fox::FXDataTarget, Fox::FXRecentFiles
|
81
|
+
# and Fox::FXWindow).
|
82
|
+
#
|
83
|
+
module Responder2
|
84
|
+
#
|
85
|
+
# Assign a "handler" for all FOX messages of type _messageType_
|
86
|
+
# sent from this widget. When called with only one argument,
|
87
|
+
# a block is expected, e.g.
|
88
|
+
#
|
89
|
+
# aButton.connect(SEL_COMMAND) { |sender, selector, data|
|
90
|
+
# ... code to handle this event ...
|
91
|
+
# }
|
92
|
+
#
|
93
|
+
# The arguments passed into the block are the _sender_ of the
|
94
|
+
# message (i.e. the widget), the _selector_ for the message, and
|
95
|
+
# any message-specific _data_.
|
96
|
+
#
|
97
|
+
# When #connect is called with two arguments, the second argument
|
98
|
+
# should be some callable object such as a Method or Proc instance, e.g.
|
99
|
+
#
|
100
|
+
# aButton.connect(SEL_COMMAND, method(:onCommand))
|
101
|
+
#
|
102
|
+
# As with the one-argument form of #connect, the callable object
|
103
|
+
# will be "called" with three arguments (the sender, selector and
|
104
|
+
# message data).
|
105
|
+
#
|
106
|
+
def connect(message_type, callable_object=nil, &block)
|
107
|
+
unless instance_variables.include?('@pseudoTarget')
|
108
|
+
@pseudoTarget = Fox::FXPseudoTarget.new
|
109
|
+
self.target = @pseudoTarget
|
110
|
+
end
|
111
|
+
@pseudoTarget.pconnect(message_type, callable_object ? callable_object : block)
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
module Fox
|
117
|
+
class FXDataTarget
|
118
|
+
include Responder2
|
119
|
+
end
|
120
|
+
class FXRecentFiles
|
121
|
+
include Responder2
|
122
|
+
end
|
123
|
+
class FXWindow
|
124
|
+
include Responder2
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
require 'fox16/timeout'
|
129
|
+
require 'fox16/chore'
|
130
|
+
require 'fox16/signal'
|
131
|
+
require 'fox16/input'
|