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,455 @@
|
|
1
|
+
#
|
2
|
+
# This is a "pure Ruby" implementation of the FXUndoList and
|
3
|
+
# FXCommand classes from the standard FOX distribution. Since those
|
4
|
+
# classes are independent of the rest of FOX this is a simpler (and probably
|
5
|
+
# more efficient) approach than trying to wrap the original C++ classes.
|
6
|
+
#
|
7
|
+
# Notes (by Jeroen, lifted from FXUndoList.cpp):
|
8
|
+
#
|
9
|
+
# * When a command is undone, it's moved to the redo list.
|
10
|
+
# * When a command is redone, it's moved back to the undo list.
|
11
|
+
# * Whenever adding a new command, the redo list is deleted.
|
12
|
+
# * At any time, you can trim down the undo list down to a given
|
13
|
+
# maximum size or a given number of undo records. This should
|
14
|
+
# keep the memory overhead within sensible bounds.
|
15
|
+
# * To keep track of when we get back to an "unmodified" state, a mark
|
16
|
+
# can be set. The <em>mark</em> is basically a counter which is incremented
|
17
|
+
# with every undo record added, and decremented when undoing a command.
|
18
|
+
# When we get back to 0, we are back to the unmodified state.
|
19
|
+
#
|
20
|
+
# If, after setting the mark, we have called FXUndoList#undo, then
|
21
|
+
# the mark can be reached by calling FXUndoList#redo.
|
22
|
+
#
|
23
|
+
# If the marked position is in the redo-list, then adding a new undo
|
24
|
+
# record will cause the redo-list to be deleted, and the marked position
|
25
|
+
# will become unreachable.
|
26
|
+
#
|
27
|
+
# The marked state may also become unreachable when the undo list is trimmed.
|
28
|
+
#
|
29
|
+
# * You can call also kill the redo list without adding a new command
|
30
|
+
# to the undo list, although this may cause the marked position to
|
31
|
+
# become unreachable.
|
32
|
+
# * We measure the size of the undo-records in the undo-list; when the
|
33
|
+
# records are moved to the redo-list, they usually contain different
|
34
|
+
# information!
|
35
|
+
|
36
|
+
require 'fox16/responder'
|
37
|
+
|
38
|
+
module Fox
|
39
|
+
|
40
|
+
#
|
41
|
+
# The undo list manages a list of undoable (and redoable) commands for a FOX
|
42
|
+
# application; it works hand-in-hand with subclasses of FXCommand and is
|
43
|
+
# an application of the well-known <em>Command</em> pattern. Your application
|
44
|
+
# code should implement any number of command classes and then add then to an
|
45
|
+
# FXUndoList instance. For an example of how this works, see the textedit
|
46
|
+
# example program from the FXRuby distribution.
|
47
|
+
#
|
48
|
+
# == Class Constants
|
49
|
+
#
|
50
|
+
# [FXUndoList::ID_UNDO] Message identifier for the undo method.
|
51
|
+
# When a +SEL_COMMAND+ message with this identifier
|
52
|
+
# is sent to an undo list, it undoes the last command.
|
53
|
+
# FXUndoList also provides a +SEL_UPDATE+ handler for this
|
54
|
+
# identifier, that enables or disables the sender
|
55
|
+
# depending on whether it's possible to undo.
|
56
|
+
#
|
57
|
+
# [FXUndoList::ID\_UNDO\_ALL] Message identifier for the "undo all" method. FXUndoList handles both
|
58
|
+
# the +SEL_COMMAND+ and +SEL_UPDATE+ messages for this message
|
59
|
+
# identifier.
|
60
|
+
#
|
61
|
+
# [FXUndoList::ID_REDO] Message identifier for the redo method. When a +SEL_COMMAND+ message
|
62
|
+
# with this identifier is sent to an undo list, it redoes the last command.
|
63
|
+
# FXUndoList also provides a +SEL_UPDATE+ handler for this identifier,
|
64
|
+
# that enables or disables the sender depending on whether it's possible to
|
65
|
+
# redo.
|
66
|
+
#
|
67
|
+
# [FXUndoList::ID\_REDO\_ALL] Message identifier for the "redo all" method. FXUndoList handles both
|
68
|
+
# the +SEL_COMMAND+ and +SEL_UPDATE+ messages for this message
|
69
|
+
# identifier.
|
70
|
+
#
|
71
|
+
# [FXUndoList::ID_CLEAR] Message identifier for the "clear" method. FXUndoList handles both
|
72
|
+
# the +SEL_COMMAND+ and +SEL_UPDATE+ messages for this message
|
73
|
+
# identifier.
|
74
|
+
#
|
75
|
+
# [FXUndoList::ID_REVERT] Message identifier for the "revert" method. FXUndoList handles both
|
76
|
+
# the +SEL_COMMAND+ and +SEL_UPDATE+ messages for this message
|
77
|
+
# identifier.
|
78
|
+
#
|
79
|
+
class FXUndoList < FXObject
|
80
|
+
|
81
|
+
include Responder
|
82
|
+
|
83
|
+
ID_CLEAR,
|
84
|
+
ID_REVERT,
|
85
|
+
ID_UNDO,
|
86
|
+
ID_REDO,
|
87
|
+
ID_UNDO_ALL,
|
88
|
+
ID_REDO_ALL,
|
89
|
+
ID_LAST = enum(0, 7)
|
90
|
+
|
91
|
+
#
|
92
|
+
# Returns an initialized FXUndoList instance.
|
93
|
+
#
|
94
|
+
def initialize
|
95
|
+
# Be sure to call base class initialize
|
96
|
+
super
|
97
|
+
|
98
|
+
# Set up the message map for this instance
|
99
|
+
FXMAPFUNC(SEL_COMMAND, ID_CLEAR, "onCmdClear")
|
100
|
+
FXMAPFUNC(SEL_UPDATE, ID_CLEAR, "onUpdClear")
|
101
|
+
FXMAPFUNC(SEL_COMMAND, ID_REVERT, "onCmdRevert")
|
102
|
+
FXMAPFUNC(SEL_UPDATE, ID_REVERT, "onUpdRevert")
|
103
|
+
FXMAPFUNC(SEL_COMMAND, ID_UNDO, "onCmdUndo")
|
104
|
+
FXMAPFUNC(SEL_UPDATE, ID_UNDO, "onUpdUndo")
|
105
|
+
FXMAPFUNC(SEL_COMMAND, ID_REDO, "onCmdRedo")
|
106
|
+
FXMAPFUNC(SEL_UPDATE, ID_REDO, "onUpdRedo")
|
107
|
+
FXMAPFUNC(SEL_COMMAND, ID_UNDO_ALL, "onCmdUndoAll")
|
108
|
+
FXMAPFUNC(SEL_UPDATE, ID_UNDO_ALL, "onUpdUndo")
|
109
|
+
FXMAPFUNC(SEL_COMMAND, ID_REDO_ALL, "onCmdRedoAll")
|
110
|
+
FXMAPFUNC(SEL_UPDATE, ID_REDO_ALL, "onUpdRedo")
|
111
|
+
|
112
|
+
# Instance variables
|
113
|
+
@undolist = []
|
114
|
+
@redolist = []
|
115
|
+
@marker = nil
|
116
|
+
@size = 0
|
117
|
+
end
|
118
|
+
|
119
|
+
#
|
120
|
+
# Cut the redo list
|
121
|
+
#
|
122
|
+
def cut
|
123
|
+
@redolist.clear
|
124
|
+
unless @marker.nil?
|
125
|
+
@marker = nil if @marker < 0
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
#
|
130
|
+
# Add new _command_ (an FXCommand instance) to the list.
|
131
|
+
# If _doit_ is +true+, the command is also executed.
|
132
|
+
#
|
133
|
+
def add(command, doit=false)
|
134
|
+
# Cut redo list
|
135
|
+
cut
|
136
|
+
|
137
|
+
# No command given?
|
138
|
+
return true if command.nil?
|
139
|
+
|
140
|
+
# Add it to the end of the undo list
|
141
|
+
@undolist.push(command)
|
142
|
+
|
143
|
+
# Execute it right now?
|
144
|
+
command.redo if doit
|
145
|
+
|
146
|
+
# Update size
|
147
|
+
@size += command.size # measured after redo
|
148
|
+
|
149
|
+
# Update the mark distance
|
150
|
+
@marker = @marker + 1 unless @marker.nil?
|
151
|
+
|
152
|
+
# Done
|
153
|
+
return true
|
154
|
+
end
|
155
|
+
|
156
|
+
#
|
157
|
+
# Undo last command.
|
158
|
+
#
|
159
|
+
def undo
|
160
|
+
unless @undolist.empty?
|
161
|
+
command = @undolist.pop
|
162
|
+
@size -= command.size
|
163
|
+
command.undo
|
164
|
+
@redolist.push(command)
|
165
|
+
@marker = @marker - 1 unless @marker.nil?
|
166
|
+
return true
|
167
|
+
end
|
168
|
+
return false
|
169
|
+
end
|
170
|
+
|
171
|
+
#
|
172
|
+
# Redo next command
|
173
|
+
#
|
174
|
+
def redo
|
175
|
+
unless @redolist.empty?
|
176
|
+
command = @redolist.pop
|
177
|
+
command.redo
|
178
|
+
@undolist.push(command)
|
179
|
+
@size += command.size
|
180
|
+
@marker = @marker + 1 unless @marker.nil?
|
181
|
+
return true
|
182
|
+
end
|
183
|
+
return false
|
184
|
+
end
|
185
|
+
|
186
|
+
#
|
187
|
+
# Undo all commands
|
188
|
+
#
|
189
|
+
def undoAll
|
190
|
+
undo while canUndo?
|
191
|
+
end
|
192
|
+
|
193
|
+
#
|
194
|
+
# Redo all commands
|
195
|
+
#
|
196
|
+
def redoAll
|
197
|
+
redo while canRedo?
|
198
|
+
end
|
199
|
+
|
200
|
+
#
|
201
|
+
# Revert to marked
|
202
|
+
#
|
203
|
+
def revert
|
204
|
+
unless @marker.nil?
|
205
|
+
undo while (@marker > 0)
|
206
|
+
redo while (@marker < 0)
|
207
|
+
return true
|
208
|
+
end
|
209
|
+
return false
|
210
|
+
end
|
211
|
+
|
212
|
+
#
|
213
|
+
# Return +true+ if we can still undo some commands
|
214
|
+
# (i.e. the undo list is not empty).
|
215
|
+
#
|
216
|
+
def canUndo?
|
217
|
+
(@undolist.empty? == false)
|
218
|
+
end
|
219
|
+
|
220
|
+
#
|
221
|
+
# Return +true+ if we can still redo some commands
|
222
|
+
# (i.e. the redo list is not empty).
|
223
|
+
#
|
224
|
+
def canRedo?
|
225
|
+
(@redolist.empty? == false)
|
226
|
+
end
|
227
|
+
|
228
|
+
#
|
229
|
+
# Return +true+ if there is a previously marked
|
230
|
+
# state that we can revert to.
|
231
|
+
#
|
232
|
+
def canRevert?
|
233
|
+
(@marker != nil) && (@marker != 0)
|
234
|
+
end
|
235
|
+
|
236
|
+
#
|
237
|
+
# Returns the current undo command.
|
238
|
+
#
|
239
|
+
def current
|
240
|
+
@undolist.last
|
241
|
+
end
|
242
|
+
|
243
|
+
#
|
244
|
+
# Return the name of the first available undo command.
|
245
|
+
# If no undo command is available, returns +nil+.
|
246
|
+
#
|
247
|
+
def undoName
|
248
|
+
if canUndo?
|
249
|
+
current.undoName
|
250
|
+
else
|
251
|
+
nil
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
#
|
256
|
+
# Return the name of the first available redo command.
|
257
|
+
# If no redo command is available, returns +nil+.
|
258
|
+
#
|
259
|
+
def redoName
|
260
|
+
if canRedo?
|
261
|
+
@redolist.last.redoName
|
262
|
+
else
|
263
|
+
nil
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
#
|
268
|
+
# Returns the number of undo records.
|
269
|
+
#
|
270
|
+
def undoCount
|
271
|
+
@undolist.size
|
272
|
+
end
|
273
|
+
|
274
|
+
#
|
275
|
+
# Returns the total size of undo information.
|
276
|
+
#
|
277
|
+
def undoSize
|
278
|
+
@size
|
279
|
+
end
|
280
|
+
|
281
|
+
#
|
282
|
+
# Clear the list
|
283
|
+
#
|
284
|
+
def clear
|
285
|
+
@undolist.clear
|
286
|
+
@redolist.clear
|
287
|
+
@marker = nil
|
288
|
+
@size = 0
|
289
|
+
end
|
290
|
+
|
291
|
+
#
|
292
|
+
# Trim undo list down to at most _nc_ commands.
|
293
|
+
#
|
294
|
+
def trimCount(nc)
|
295
|
+
if @undolist.size > nc
|
296
|
+
numRemoved = @undolist.size - nc
|
297
|
+
@undolist[0, numRemoved].each { |command| @size -= command.size }
|
298
|
+
@undolist[0, numRemoved] = nil
|
299
|
+
@marker = nil if (@marker != nil && @marker > @undolist.size)
|
300
|
+
end
|
301
|
+
end
|
302
|
+
|
303
|
+
#
|
304
|
+
# Trim undo list down to at most _size_.
|
305
|
+
#
|
306
|
+
def trimSize(sz)
|
307
|
+
if @size > sz
|
308
|
+
s = 0
|
309
|
+
@undolist.reverse.each_index { |i|
|
310
|
+
j = @undolist.size - (i + 1)
|
311
|
+
s += @undolist[j].size
|
312
|
+
@undolist[j] = nil if (s > sz)
|
313
|
+
}
|
314
|
+
@undolist.compact!
|
315
|
+
@marker = nil if (@marker != nil && @marker > @undolist.size)
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
#
|
320
|
+
# Mark current state
|
321
|
+
#
|
322
|
+
def mark
|
323
|
+
@marker = 0
|
324
|
+
end
|
325
|
+
|
326
|
+
#
|
327
|
+
# Unmark undo list
|
328
|
+
#
|
329
|
+
def unmark
|
330
|
+
@marker = nil
|
331
|
+
end
|
332
|
+
|
333
|
+
#
|
334
|
+
# Return +true+ if the undo list is marked.
|
335
|
+
#
|
336
|
+
def marked?
|
337
|
+
@marker == 0
|
338
|
+
end
|
339
|
+
|
340
|
+
def onCmdUndo(sender, sel, ptr) # :nodoc:
|
341
|
+
undo
|
342
|
+
return 1
|
343
|
+
end
|
344
|
+
|
345
|
+
def onUpdUndo(sender, sel, ptr) # :nodoc:
|
346
|
+
if canUndo?
|
347
|
+
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
348
|
+
else
|
349
|
+
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
350
|
+
end
|
351
|
+
return 1
|
352
|
+
end
|
353
|
+
|
354
|
+
def onCmdRedo(sender, sel, ptr) # :nodoc:
|
355
|
+
self.redo
|
356
|
+
return 1
|
357
|
+
end
|
358
|
+
|
359
|
+
def onUpdRedo(sender, sel, ptr) # :nodoc:
|
360
|
+
if canRedo?
|
361
|
+
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
362
|
+
else
|
363
|
+
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
364
|
+
end
|
365
|
+
return 1
|
366
|
+
end
|
367
|
+
|
368
|
+
def onCmdClear(sender, sel, ptr) # :nodoc:
|
369
|
+
clear
|
370
|
+
return 1
|
371
|
+
end
|
372
|
+
|
373
|
+
def onUpdClear(sender, sel, ptr) # :nodoc:
|
374
|
+
if canUndo? || canRedo?
|
375
|
+
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
376
|
+
else
|
377
|
+
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
378
|
+
end
|
379
|
+
return 1
|
380
|
+
end
|
381
|
+
|
382
|
+
def onCmdRevert(sender, sel, ptr) # :nodoc:
|
383
|
+
revert
|
384
|
+
return 1
|
385
|
+
end
|
386
|
+
|
387
|
+
def onUpdRevert(sender, sel, ptr) # :nodoc:
|
388
|
+
if canRevert?
|
389
|
+
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
390
|
+
else
|
391
|
+
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
392
|
+
end
|
393
|
+
return 1
|
394
|
+
end
|
395
|
+
|
396
|
+
def onCmdUndoAll(sender, sel, ptr) # :nodoc:
|
397
|
+
undoAll
|
398
|
+
return 1
|
399
|
+
end
|
400
|
+
|
401
|
+
def onCmdRedoAll(sender, sel, ptr) # :nodoc:
|
402
|
+
redoAll
|
403
|
+
return 1
|
404
|
+
end
|
405
|
+
end
|
406
|
+
|
407
|
+
#
|
408
|
+
# FXCommand is an "abstract" base class for your application's commands. At a
|
409
|
+
# minimum, your concrete subclasses of FXCommand should implement the
|
410
|
+
# #undo, #redo, #undoName, and #redoName methods.
|
411
|
+
#
|
412
|
+
class FXCommand
|
413
|
+
#
|
414
|
+
# Undo this command; this should save enough information for a
|
415
|
+
# subsequent redo.
|
416
|
+
#
|
417
|
+
def undo
|
418
|
+
raise NotImpError
|
419
|
+
end
|
420
|
+
|
421
|
+
#
|
422
|
+
# Redo this command; this should save enough information for a
|
423
|
+
# subsequent undo.
|
424
|
+
#
|
425
|
+
def redo
|
426
|
+
raise NotImpError
|
427
|
+
end
|
428
|
+
|
429
|
+
#
|
430
|
+
# Name of the undo command to be shown on a button or menu command;
|
431
|
+
# for example, "Undo Delete".
|
432
|
+
#
|
433
|
+
def undoName
|
434
|
+
raise NotImpError
|
435
|
+
end
|
436
|
+
|
437
|
+
#
|
438
|
+
# Name of the redo command to be shown on a button or menu command;
|
439
|
+
# for example, "Redo Delete".
|
440
|
+
#
|
441
|
+
def redoName
|
442
|
+
raise NotImpError
|
443
|
+
end
|
444
|
+
|
445
|
+
#
|
446
|
+
# Returns the size of the information in the undo record, i.e. the
|
447
|
+
# number of bytes required to store it in memory. This is only used
|
448
|
+
# by the FXUndoList#trimSize method, which can be called to reduce
|
449
|
+
# the memory use of the undo list to a certain size.
|
450
|
+
#
|
451
|
+
def size
|
452
|
+
0
|
453
|
+
end
|
454
|
+
end
|
455
|
+
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
module Fox
|
2
|
+
|
3
|
+
#
|
4
|
+
# The four-way splitter is a layout manager which manages
|
5
|
+
# four children like four panes in a window.
|
6
|
+
# You can use a four-way splitter for example in a CAD program
|
7
|
+
# where you may want to maintain three orthographic views, and
|
8
|
+
# one oblique view of a model.
|
9
|
+
# The four-way splitter allows interactive repartitioning of the
|
10
|
+
# panes by means of moving the central splitter bars.
|
11
|
+
# When the four-way splitter is itself resized, each child is
|
12
|
+
# proportionally resized, maintaining the same split-percentage.
|
13
|
+
#
|
14
|
+
# === Events
|
15
|
+
#
|
16
|
+
# The following messages are sent by FX4Splitter to its target:
|
17
|
+
#
|
18
|
+
# +SEL_LEFTBUTTONPRESS+:: sent when the left mouse button goes down; the message data is an FXEvent instance.
|
19
|
+
# +SEL_LEFTBUTTONRELEASE+:: sent when the left mouse button goes up; the message data is an FXEvent instance.
|
20
|
+
# +SEL_COMMAND+:: sent at the end of a resize operation, to signal that the resize is complete
|
21
|
+
# +SEL_CHANGED+:: sent continuously while a resize operation is occurring
|
22
|
+
#
|
23
|
+
# === Splitter options
|
24
|
+
#
|
25
|
+
# +FOURSPLITTER_TRACKING+:: Track continuously during split
|
26
|
+
# +FOURSPLITTER_NORMAL+:: Normal mode (no continuous tracking)
|
27
|
+
#
|
28
|
+
# === Expansion options
|
29
|
+
#
|
30
|
+
# +ExpandNone+:: None expanded
|
31
|
+
# +ExpandTopLeft+:: Expand top left child
|
32
|
+
# +ExpandTopRight+:: Expand top right child
|
33
|
+
# +ExpandBottomLeft+:: Expand bottom left child
|
34
|
+
# +ExpandBottomRight+:: Expand bottom right child
|
35
|
+
# +ExpandTop+:: Expand top children
|
36
|
+
# +ExpandBottom+:: Expand bottom children
|
37
|
+
# +ExpandLeft+:: Expand left children
|
38
|
+
# +ExpandRight+:: Expand right children
|
39
|
+
# +ExpandAll+:: Expand all children
|
40
|
+
#
|
41
|
+
# === Message identifiers
|
42
|
+
#
|
43
|
+
# +ID_EXPAND_NONE+:: None expanded
|
44
|
+
# +ID_EXPAND_TOP+:: Expand top left and top right panes
|
45
|
+
# +ID_EXPAND_BOTTOM+:: Expand bottom left and bottom right panes
|
46
|
+
# +ID_EXPAND_LEFT+:: Expand leftmost panes
|
47
|
+
# +ID_EXPAND_RIGHT+:: Expand rightmost panes
|
48
|
+
# +ID_EXPAND_TOPLEFT+:: Expand top left pane
|
49
|
+
# +ID_EXPAND_TOPRIGHT+:: Expand top right pane
|
50
|
+
# +ID_EXPAND_BOTTOMLEFT+:: Expand bottom left pane
|
51
|
+
# +ID_EXPAND_BOTTOMRIGHT+:: Expand bottom right pane
|
52
|
+
# +ID_EXPAND_ALL+:: Expand all panes
|
53
|
+
#
|
54
|
+
class FX4Splitter < FXComposite
|
55
|
+
|
56
|
+
# Horizontal split fraction [Integer]
|
57
|
+
attr_accessor :hSplit
|
58
|
+
|
59
|
+
# Vertical split fraction [Integer]
|
60
|
+
attr_accessor :vSplit
|
61
|
+
|
62
|
+
# Current splitter style, either +FOURSPLITTER_TRACKING+ or +FOURSPLITTER_NORMAL+
|
63
|
+
attr_accessor :splitterStyle
|
64
|
+
|
65
|
+
# Splitter bar width, in pixels [Integer]
|
66
|
+
attr_accessor :barSize
|
67
|
+
|
68
|
+
# Currently expanded child (some combination of the expansion flags, or zero if no panes are expanded)
|
69
|
+
attr_accessor :expanded
|
70
|
+
|
71
|
+
# Top left child window, if any [FXWindow]
|
72
|
+
attr_reader :topLeft
|
73
|
+
|
74
|
+
# Top right child window, if any [FXWindow]
|
75
|
+
attr_reader :topRight
|
76
|
+
|
77
|
+
# Bottom left child window, if any [FXWindow]
|
78
|
+
attr_reader :bottomLeft
|
79
|
+
|
80
|
+
# Bottom right child window, if any [FXWindow]
|
81
|
+
attr_reader :bottomRight
|
82
|
+
|
83
|
+
#
|
84
|
+
# Return an initialized FX4Splitter instance, initially shown as four unexpanded panes
|
85
|
+
#
|
86
|
+
# ==== Parameters:
|
87
|
+
#
|
88
|
+
# +p+:: the parent widget for this splitter [FXComposite]
|
89
|
+
# +opts+:: the options [Integer]
|
90
|
+
# +x+:: initial x-position [Integer]
|
91
|
+
# +y+:: initial y-position [Integer]
|
92
|
+
# +width+:: initial width [Integer]
|
93
|
+
# +height+:: initial height [Integer]
|
94
|
+
#
|
95
|
+
def initialize(p, opts=FOURSPLITTER_NORMAL, x=0, y=0, width=0, height=0) # :yields: theSplitter
|
96
|
+
end
|
97
|
+
|
98
|
+
#
|
99
|
+
# Return an initialized FX4Splitter instance, initially shown as four unexpanded panes;
|
100
|
+
# notifies _tgt_ about size changes.
|
101
|
+
#
|
102
|
+
# ==== Parameters:
|
103
|
+
#
|
104
|
+
# +p+:: the parent widget for this splitter [FXComposite]
|
105
|
+
# +target+:: message target [FXObject]
|
106
|
+
# +selector+:: message identifier [Integer]
|
107
|
+
# +opts+:: the options [Integer]
|
108
|
+
# +x+:: initial x-position [Integer]
|
109
|
+
# +y+:: initial y-position [Integer]
|
110
|
+
# +width+:: initial width [Integer]
|
111
|
+
# +height+:: initial height [Integer]
|
112
|
+
#
|
113
|
+
def initialize(p, tgt, sel, opts=FOURSPLITTER_NORMAL, x=0, y=0, width=0, height=0) # :yields: theSplitter
|
114
|
+
end
|
115
|
+
|
116
|
+
#
|
117
|
+
# Change horizontal split fraction. The split fraction _s_ is
|
118
|
+
# an integer value between 0 and 10000 (inclusive), indicating
|
119
|
+
# how much space to allocate to the leftmost panes. For example,
|
120
|
+
# to split the panes at 35 percent, use:
|
121
|
+
#
|
122
|
+
# fourSplitter.setHSplit(3500)
|
123
|
+
#
|
124
|
+
# or just:
|
125
|
+
#
|
126
|
+
# fourSplitter.hSplit = 3500
|
127
|
+
#
|
128
|
+
def setHSplit(s); end
|
129
|
+
|
130
|
+
#
|
131
|
+
# Return the horizontal split fraction, an integer between 0 and
|
132
|
+
# 10000 inclusive. See FX4Splitter#setHSplit for more information.
|
133
|
+
#
|
134
|
+
def getHSplit(); end
|
135
|
+
|
136
|
+
#
|
137
|
+
# Change vertical split fraction. The split fraction _s_ is
|
138
|
+
# an integer value between 0 and 10000 (inclusive), indicating
|
139
|
+
# how much space to allocate to the topmost panes. For example,
|
140
|
+
# to split the panes at 35 percent, use:
|
141
|
+
#
|
142
|
+
# fourSplitter.setVSplit(3500)
|
143
|
+
#
|
144
|
+
# or just:
|
145
|
+
#
|
146
|
+
# fourSplitter.vSplit = 3500
|
147
|
+
#
|
148
|
+
def setVSplit(s); end
|
149
|
+
|
150
|
+
#
|
151
|
+
# Return the vertical split fraction, an integer between 0 and
|
152
|
+
# 10000 inclusive. See FX4Splitter#setVSplit for more information.
|
153
|
+
#
|
154
|
+
def getVSplit(); end
|
155
|
+
end
|
156
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Fox
|
2
|
+
#
|
3
|
+
# Seven-segment (eg LCD/watch style) widget, useful for making
|
4
|
+
# indicators and timers. Besides numbers, the seven-segment
|
5
|
+
# display widget can also display some letters and punctuations.
|
6
|
+
#
|
7
|
+
# === 7 Segment styles
|
8
|
+
#
|
9
|
+
# +SEVENSEGMENT_NORMAL+:: Draw segments normally
|
10
|
+
# +SEVENSEGMENT_SHADOW+:: Draw shadow under the segments
|
11
|
+
#
|
12
|
+
class FX7Segment < FXFrame
|
13
|
+
# The text for this label [String]
|
14
|
+
attr_accessor :text
|
15
|
+
|
16
|
+
# The text color [FXColor]
|
17
|
+
attr_accessor :textColor
|
18
|
+
|
19
|
+
# Cell width, in pixels [Integer]
|
20
|
+
attr_accessor :cellWidth
|
21
|
+
|
22
|
+
# Cell height, in pixels [Integer]
|
23
|
+
attr_accessor :cellHeight
|
24
|
+
|
25
|
+
# Segment thickness, in pixels [Integer]
|
26
|
+
attr_accessor :thickness
|
27
|
+
|
28
|
+
# Current text-justification mode [Integer]
|
29
|
+
attr_accessor :justify
|
30
|
+
|
31
|
+
# Status line help text [String]
|
32
|
+
attr_accessor :helpText
|
33
|
+
|
34
|
+
# Tool tip message [String]
|
35
|
+
attr_accessor :tipText
|
36
|
+
|
37
|
+
# Create a seven segment display
|
38
|
+
def initialize(p, text, opts=SEVENSEGMENT_NORMAL, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # :yields: the7Segment
|
39
|
+
end
|
40
|
+
|
41
|
+
#
|
42
|
+
# Change 7 segment style, where _style_ is either +SEVENSEGMENT_NORMAL+ or
|
43
|
+
# +SEVENSEGMENT_SHADOW+.
|
44
|
+
#
|
45
|
+
def set7SegmentStyle(style); end
|
46
|
+
|
47
|
+
#
|
48
|
+
# Return the current 7 segment style, which is either +SEVENSEGMENT_NORMAL+
|
49
|
+
# or +SEVENSEGMENT_SHADOW+.
|
50
|
+
#
|
51
|
+
def get7SegmentStyle(); end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|