fxruby 1.6.14-universal-darwin-9
Sign up to get free protection for your applications and to get access to all the features.
- 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,114 @@
|
|
1
|
+
require 'fox16'
|
2
|
+
require 'fox16/undolist'
|
3
|
+
|
4
|
+
include Fox
|
5
|
+
|
6
|
+
# Undo record for text fragment
|
7
|
+
class FXTextCommand < FXCommand
|
8
|
+
|
9
|
+
def initialize(txt, change)
|
10
|
+
@text = txt
|
11
|
+
@buffer = nil
|
12
|
+
@pos = change.pos
|
13
|
+
@numCharsDeleted = change.ndel
|
14
|
+
@numCharsInserted = change.nins
|
15
|
+
end
|
16
|
+
|
17
|
+
def size
|
18
|
+
(@buffer != nil) ? @buffer.size : 0
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Insert command
|
23
|
+
class FXTextInsert < FXTextCommand
|
24
|
+
|
25
|
+
def undoName
|
26
|
+
"Undo insert"
|
27
|
+
end
|
28
|
+
|
29
|
+
def redoName
|
30
|
+
"Redo insert"
|
31
|
+
end
|
32
|
+
|
33
|
+
# Undoing an insert removes the previously inserted text
|
34
|
+
def undo
|
35
|
+
@buffer = @text.extractText(@pos, @numCharsInserted)
|
36
|
+
@text.removeText(@pos, @numCharsInserted)
|
37
|
+
@text.cursorPos = @pos
|
38
|
+
@text.makePositionVisible(@pos)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Redoing an insert re-inserts the same text
|
42
|
+
def redo
|
43
|
+
@text.insertText(@pos, @buffer)
|
44
|
+
@text.cursorPos = @pos + @numCharsInserted
|
45
|
+
@text.makePositionVisible(@pos + @numCharsInserted)
|
46
|
+
@buffer = nil
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Delete command
|
51
|
+
class FXTextDelete < FXTextCommand
|
52
|
+
def initialize(txt, change)
|
53
|
+
super(txt, change)
|
54
|
+
@buffer = change.del
|
55
|
+
end
|
56
|
+
|
57
|
+
def undoName
|
58
|
+
"Undo delete"
|
59
|
+
end
|
60
|
+
|
61
|
+
def redoName
|
62
|
+
"Redo delete"
|
63
|
+
end
|
64
|
+
|
65
|
+
# Undoing a delete re-inserts the deleted text
|
66
|
+
def undo
|
67
|
+
@text.insertText(@pos, @buffer)
|
68
|
+
@text.cursorPos = @pos + @buffer.length
|
69
|
+
@text.makePositionVisible(@pos + @buffer.length)
|
70
|
+
@buffer = nil
|
71
|
+
end
|
72
|
+
|
73
|
+
# Redoing a delete removes it again
|
74
|
+
def redo
|
75
|
+
@buffer = @text.extractText(@pos, @numCharsDeleted)
|
76
|
+
@text.removeText(@pos, @buffer.length)
|
77
|
+
@text.cursorPos = @pos
|
78
|
+
@text.makePositionVisible(@pos)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# Replace command
|
83
|
+
class FXTextReplace < FXTextCommand
|
84
|
+
def initialize(txt, change)
|
85
|
+
super(txt, change)
|
86
|
+
@buffer = change.del
|
87
|
+
end
|
88
|
+
|
89
|
+
def undoName
|
90
|
+
"Undo replace"
|
91
|
+
end
|
92
|
+
|
93
|
+
def redoName
|
94
|
+
"Redo replace"
|
95
|
+
end
|
96
|
+
|
97
|
+
# Undoing a replace reinserts the old text
|
98
|
+
def undo
|
99
|
+
tmp = @text.extractText(@pos, @numCharsInserted)
|
100
|
+
@text.replaceText(@pos, @numCharsInserted, @buffer)
|
101
|
+
@text.cursorPos = @pos + @buffer.length
|
102
|
+
@text.makePositionVisible(@pos + @buffer.length)
|
103
|
+
@buffer = tmp
|
104
|
+
end
|
105
|
+
|
106
|
+
# Redo a replace reinserts the new text
|
107
|
+
def redo
|
108
|
+
tmp = @text.extractText(@pos, @numCharsDeleted)
|
109
|
+
@text.replaceText(@pos, @numCharsDeleted, @buffer)
|
110
|
+
@text.cursorPos = @pos + @numCharsInserted
|
111
|
+
@text.makePositionVisible(@pos + @numCharsInserted)
|
112
|
+
@buffer = tmp
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,299 @@
|
|
1
|
+
# Help text
|
2
|
+
HELP = <<END_OF_HELP
|
3
|
+
|
4
|
+
|
5
|
+
FOX Text Editor On-line Help
|
6
|
+
|
7
|
+
|
8
|
+
Introduction.
|
9
|
+
|
10
|
+
TextEdit is a handy little editor which is fast and easy to use.
|
11
|
+
It makes for a great file viewer, as well as a convenient editor for most
|
12
|
+
common editing tasks.
|
13
|
+
TextEdit supports unlimited undo/redo, X selection, clipboard, XDND drag and drop
|
14
|
+
capability, continuous word wrapping, auto-indent capability, brace matching,
|
15
|
+
convenient search and replace methods, and statement block selections.
|
16
|
+
TextEdit also supports the mouse wheel.
|
17
|
+
A nice feature of textedit is the ability to show a File Browser side by
|
18
|
+
side with the text. Switching to another file is as easy as clicking on an
|
19
|
+
icon in the File Browser.
|
20
|
+
|
21
|
+
|
22
|
+
Starting a New Document.
|
23
|
+
|
24
|
+
To start a new document, invoke the New menu, or press on the New button on
|
25
|
+
the toolbar. If the current document has not yet been saved, you will be prompted
|
26
|
+
to either save or abandon the current text.
|
27
|
+
|
28
|
+
|
29
|
+
Opening and Saving Files the Old Fashioned Way.
|
30
|
+
|
31
|
+
To open a file, you can invoke the Open menu, or press on the Open button on
|
32
|
+
the toolbar. This will bring up the standard File Dialog, which allows you
|
33
|
+
to select a file.
|
34
|
+
To save a file, you can either invoke the Save or the Save As menu option.
|
35
|
+
The former saves the file back to the same filename, while the latter prompts
|
36
|
+
for an alternative filename.
|
37
|
+
You can quickly navigate to the desired file by typing the first few letters of
|
38
|
+
the filename and then pressing Enter (Return); use Backspace to move up one directory
|
39
|
+
level. Control-H moves to your home directory, Control-W moves back to the current
|
40
|
+
working directory.
|
41
|
+
A nice convenience of the File Dialog is the ability to set bookmarks, so once
|
42
|
+
bookmarked, you can quickly move back to a previously visited directory.
|
43
|
+
|
44
|
+
|
45
|
+
Opening Files Using the File Browser.
|
46
|
+
|
47
|
+
An alternative method to open files is the File Browser.
|
48
|
+
You can display the File Browser by invoking the File Browser option under
|
49
|
+
the View menu.
|
50
|
+
To open a file using the File Browser, simply click on the file.
|
51
|
+
If there are many files, you may want to limit the number of files displayed
|
52
|
+
by specifying a file pattern in the Filter typein field.
|
53
|
+
The pattern is can be any regular file wildcard expression such as "*.cpp".
|
54
|
+
By default, the File Browser shows all files, i.e. the pattern is "*".
|
55
|
+
You can switch patterns by means of the combo box under file File Browser;
|
56
|
+
additional patterns for the combo box (and File Dialog) can be specified
|
57
|
+
in the Preferences Dialog.
|
58
|
+
|
59
|
+
|
60
|
+
Opening Recently Visited Files.
|
61
|
+
|
62
|
+
The recent file menu shows files which have been recently visited.
|
63
|
+
You can quickly get back to a file you've been editing simply by selecting
|
64
|
+
one of these recent files.
|
65
|
+
|
66
|
+
|
67
|
+
Opening Files by Drag and Drop.
|
68
|
+
|
69
|
+
Using a file browser such as PathFinder or other Konqueror or other XDND
|
70
|
+
compatible file browsers, you can simply drop a file into the text pane and
|
71
|
+
have TextEdit read this file.
|
72
|
+
|
73
|
+
|
74
|
+
Opening a Selected Filename
|
75
|
+
|
76
|
+
Selecting any filename, possibly in another application, and invoking the
|
77
|
+
"Open Selected" option causes TextEdit to open the selected file.
|
78
|
+
When the selected filename is of the form:
|
79
|
+
|
80
|
+
#include "filename.h"
|
81
|
+
|
82
|
+
or:
|
83
|
+
|
84
|
+
#include <filename.h>
|
85
|
+
|
86
|
+
then TextEdit will search for this file in a sequence of include directories,
|
87
|
+
otherwise it will search in the same directory as the currently loaded file.
|
88
|
+
You can specify the list of include directories to search with the "Include Path"
|
89
|
+
option.
|
90
|
+
When the selected filename is of the form:
|
91
|
+
|
92
|
+
filename.cpp:177
|
93
|
+
|
94
|
+
then TextEdit will not only load the filename, but also jump to the given line
|
95
|
+
number. If this file has already been loaded, TextEdit will simply jump to the
|
96
|
+
given line number in the current file.
|
97
|
+
This option is very useful when fixing compiler errors.
|
98
|
+
|
99
|
+
|
100
|
+
Mouse Selection.
|
101
|
+
|
102
|
+
You can move the cursor by simply clicking on the desired location with the left mouse button.
|
103
|
+
To highlight some text, press the mouse and drag the mouse while holding the left button.
|
104
|
+
To select text a word at a time, you can double-click and drag;
|
105
|
+
to select text a line at a time, you can triple-click and drag.
|
106
|
+
Performing a shift-click extends the selection from the last cursor location to the
|
107
|
+
current one.
|
108
|
+
When selecting words, words are considered to extend from the clicked position up to
|
109
|
+
a blank or word-delimiting character. The latter may depend on the programming language,
|
110
|
+
and so TextEdit offers a way to change the set of delimiter characters.
|
111
|
+
The default set of delimiters is "!"#\$%&'()*+,-./:;<=>?@[\\]^`{|}~".
|
112
|
+
|
113
|
+
|
114
|
+
Scrolling Text.
|
115
|
+
|
116
|
+
Using the right mouse button, you can grab the text and scroll it.
|
117
|
+
a right mouse drag is a very convenient way to scroll the text buffer by small amount
|
118
|
+
as the scrolling is exactly proportional to the mouse movement.
|
119
|
+
You can of course also use the scroll bars. Because scrolling becomes awkward when
|
120
|
+
dealing with large amounts of text, you can do a fine scroll or vernier-scroll by
|
121
|
+
holding the shift or control keys while moving the scroll bars.
|
122
|
+
TextEdit can also take advantage of a wheel mouse; simply point the mouse inside the
|
123
|
+
text area and use the wheel to scroll it up and down. Holding the Control-key while
|
124
|
+
operating the wheel makes the scrolling go faster, by smoothly scrolling one page at
|
125
|
+
a time. To scroll horizontally, simply point the mouse at the horizontal scroll bar.
|
126
|
+
In fact, any scrollable control (including the File Browser), can be scrolled by
|
127
|
+
simply pointing the cursor over it and using the mouse wheel.
|
128
|
+
You can adjust the number of lines scrolled for each wheel notch by means of the
|
129
|
+
Preferences dialog.
|
130
|
+
|
131
|
+
|
132
|
+
The Clipboard.
|
133
|
+
|
134
|
+
After selecting some text, you can cut or copy this text to the clipboard.
|
135
|
+
A subsequent paste operation will then insert the contents of the clipboard at
|
136
|
+
the current cursor location.
|
137
|
+
If some text has been selected in another application, then you can paste this
|
138
|
+
text by placing the cursor at the right spot in your text and invoking the paste
|
139
|
+
command.
|
140
|
+
|
141
|
+
|
142
|
+
The X Selection.
|
143
|
+
|
144
|
+
When text is selected anywhere (possibly in another application), TextEdit can
|
145
|
+
paste this text into the current text buffer by means of the middle mouse button
|
146
|
+
or by pressing the wheel-button if you have a wheel mouse. Note that while holding
|
147
|
+
the button, the insertion point can be moved by moving the mouse:- TextEdit will
|
148
|
+
only insert the text when you release the button.
|
149
|
+
|
150
|
+
|
151
|
+
Text Drag and Drop.
|
152
|
+
|
153
|
+
After selecting some text, you can drag this text to another location by pressing the
|
154
|
+
middle mouse button; because TextEdit is fully drag and drop enabled, you can not only
|
155
|
+
drag a selection from one place to another inside the text buffer, but also between different
|
156
|
+
TextEdit applications, or even from TextEdit to another drag and drop enabled application
|
157
|
+
or vice-versa.
|
158
|
+
Within the same text window, the drag defaults to a text-movement. You can change this to
|
159
|
+
a text copy by holding down the Control key while you're dragging.
|
160
|
+
Between one text window and another, the drag defaults to a copy operation
|
161
|
+
you can change this to a text movement by holding down the Shift key while dragging.
|
162
|
+
|
163
|
+
|
164
|
+
Undo and Redo.
|
165
|
+
|
166
|
+
TextEdit support unlimited (well, the limit is large...) undo and redo capability.
|
167
|
+
Each time you insert, remove, or replace some text, TextEdit remembers what you did.
|
168
|
+
If you make a mistake, you can undo the last command, and the one before that, and so on.
|
169
|
+
Having invoked undo many times, it is sometimes desirable to invoke the redo command, i.e.
|
170
|
+
to perform the original editing operation again. Thus, you can move backward or forward in
|
171
|
+
time.
|
172
|
+
However if, after undoing several commands, you decide edit the buffer in a different way, then
|
173
|
+
you will no longer be able to redo the undone commands:- you have now taken a different path.
|
174
|
+
When you first load a file, or just after you save it, TextEdit remembers that this version of
|
175
|
+
the text was special; while subsequent editing commands can be undone individually, you can always
|
176
|
+
quickly return to this special version of the text by means of the revert command.
|
177
|
+
|
178
|
+
|
179
|
+
Keyboard Bindings.
|
180
|
+
|
181
|
+
The following table lists the keyboard bindings.
|
182
|
+
|
183
|
+
Key:\tAction:
|
184
|
+
====\t=======
|
185
|
+
|
186
|
+
Up\tMove cursor up.
|
187
|
+
Shift+Up\tMove cursor up and extend selection.
|
188
|
+
Down\tMove cursor down.
|
189
|
+
Shift+Down\tMove cursor down and extend selection.
|
190
|
+
Left\tMove cursor left.
|
191
|
+
Shift+Left\tMove cursor left and extend selection.
|
192
|
+
Right\tMove cursor right.
|
193
|
+
Shift+Right\tMove cursor right and extend selection.
|
194
|
+
Home\tMove cursor to begin of line.
|
195
|
+
Shift+Home\tMove cursor to begin of line and extend selection.
|
196
|
+
Ctl+Home\tMove cursor to top of text.
|
197
|
+
End\tMove cursor to end of line.
|
198
|
+
Ctl+End\tMove cursor to bottom of text.
|
199
|
+
Shift+End\tMove cursor to end of line and extend selection.
|
200
|
+
Page Up\tMove cursor up one page.
|
201
|
+
Shift+Page Up\tMove cursor up one page and extend selection.
|
202
|
+
Page Down\tMove cursor down one page.
|
203
|
+
Shift+Page Down\tMove cursor down one page and extend selection.
|
204
|
+
Delete\tDelete character after cursor, or text selection.
|
205
|
+
Back Space\tDelete character before cursor, or text selection.
|
206
|
+
Ctl+A\tSelect all text.
|
207
|
+
Ctl+X\tCut selected text to clipboard.
|
208
|
+
Ctl+C\tCopy selected text to clipboard.
|
209
|
+
Ctl+V\tPaste text from clipboard.
|
210
|
+
Ctl+K\tDelete current line.
|
211
|
+
Ctl+H\tScroll current line to top of window.
|
212
|
+
Ctl+M\tScroll current line to center of window.
|
213
|
+
Ctl+L\tScroll current line to bottom of window.
|
214
|
+
|
215
|
+
|
216
|
+
Changing Font.
|
217
|
+
|
218
|
+
You can change font by invoking the Font Selection Dialog from the Font menu.
|
219
|
+
The Font Dialog displays four list boxes showing the font Family, Weight, Style,
|
220
|
+
and Size of each font.
|
221
|
+
You can narrow down the number of fonts displayed by selecting a specific character
|
222
|
+
set, setwidth, pitch, and whether or not scalable fonts are to be listed only.
|
223
|
+
The All Fonts checkbutton causes all fonts to be listed. Use this feature if you
|
224
|
+
need to select old-style X11 bitmap fonts.
|
225
|
+
The Preview window shows a sample of text in the selected font.
|
226
|
+
|
227
|
+
|
228
|
+
Changing colors.
|
229
|
+
|
230
|
+
The four color wells on the status line determine the color of the
|
231
|
+
selection background, selection foreground, and normal background and foreground
|
232
|
+
respectively. Double clicking on a colorwell will bring up the Color Selection
|
233
|
+
Dialog.
|
234
|
+
The Color Selection Dialog sypports several ways to select a color:
|
235
|
+
|
236
|
+
1\tBy means of Red, Green, and Blue mixing.
|
237
|
+
2\tBy means of Hue, Saturation, Value mixing.
|
238
|
+
3\tBy means of Cyan, Magenta, and Yellow mixing.
|
239
|
+
4\tBy name.
|
240
|
+
5\tUsing one of the predefined color wells.
|
241
|
+
|
242
|
+
You can also drag and drop colors, and change the predefined colorwells
|
243
|
+
to hold your own custom color collections.
|
244
|
+
|
245
|
+
|
246
|
+
Configuration Issues.
|
247
|
+
|
248
|
+
The File Browser keeps an association list in the registry database to associate
|
249
|
+
a particular file extension to an icon and other descriptive information.
|
250
|
+
The following is an example of how this could be filled in:
|
251
|
+
|
252
|
+
[SETTINGS]
|
253
|
+
iconpath = /usr/share/icons:/home/jeroen/icons
|
254
|
+
|
255
|
+
[FILETYPES]
|
256
|
+
cpp = "/usr/local/bin/textedit %s &;C++ Source File;c_src.xpm;mini/c_src.xpm"
|
257
|
+
|
258
|
+
|
259
|
+
This example shows how the extension ".cpp" is bound to the program "textedit"
|
260
|
+
and is associated with two icons, a big icon "c_src.xpm" and a small icon "mini/c_src.xpm"
|
261
|
+
which are to be found in either directory "/usr/share/icons" or "/home/jeroen/icons".
|
262
|
+
END_OF_HELP
|
263
|
+
|
264
|
+
require 'fox16'
|
265
|
+
|
266
|
+
include Fox
|
267
|
+
|
268
|
+
class HelpWindow < FXDialogBox
|
269
|
+
def initialize(owner)
|
270
|
+
super(owner, "Help on TextEdit", DECOR_TITLE|DECOR_BORDER|DECOR_RESIZE,
|
271
|
+
0, 0, 0, 0, 6, 6, 6, 6, 4, 4)
|
272
|
+
|
273
|
+
# Bottom part
|
274
|
+
closebox = FXHorizontalFrame.new(self,
|
275
|
+
LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH)
|
276
|
+
closeBtn = FXButton.new(closebox, "&Close", nil, self, FXDialogBox::ID_ACCEPT,
|
277
|
+
LAYOUT_RIGHT|FRAME_RAISED|FRAME_THICK)
|
278
|
+
closeBtn.padLeft = 20
|
279
|
+
closeBtn.padRight = 20
|
280
|
+
closeBtn.padTop = 5
|
281
|
+
closeBtn.padBottom = 5
|
282
|
+
|
283
|
+
# Editor part
|
284
|
+
editbox = FXHorizontalFrame.new(self,
|
285
|
+
LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK)
|
286
|
+
editbox.padLeft = 0
|
287
|
+
editbox.padRight = 0
|
288
|
+
editbox.padTop = 0
|
289
|
+
editbox.padBottom = 0
|
290
|
+
helptext = FXText.new(editbox, nil, 0,
|
291
|
+
TEXT_READONLY|TEXT_WORDWRAP|LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
292
|
+
helptext.visibleRows = 50
|
293
|
+
helptext.visibleColumns = 60
|
294
|
+
|
295
|
+
# Fill with help
|
296
|
+
helptext.text = HELP
|
297
|
+
helptext.tabColumns = 35
|
298
|
+
end
|
299
|
+
end
|
@@ -0,0 +1,239 @@
|
|
1
|
+
require 'fox16'
|
2
|
+
|
3
|
+
include Fox
|
4
|
+
|
5
|
+
class PrefDialog < FXDialogBox
|
6
|
+
# Load the named icon from a file
|
7
|
+
def loadIcon(filename)
|
8
|
+
begin
|
9
|
+
filename = File.join("..", "icons", filename)
|
10
|
+
icon = nil
|
11
|
+
File.open(filename, "rb") { |f|
|
12
|
+
icon = FXPNGIcon.new(getApp(), f.read)
|
13
|
+
}
|
14
|
+
icon
|
15
|
+
rescue
|
16
|
+
raise RuntimeError, "Couldn't load icon: #{filename}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(owner)
|
21
|
+
super(owner, "TextEdit Preferences", DECOR_TITLE|DECOR_BORDER|DECOR_RESIZE,
|
22
|
+
0, 0, 0, 0, 0, 0, 0, 0, 4, 4)
|
23
|
+
|
24
|
+
vertical = FXVerticalFrame.new(self,
|
25
|
+
LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
26
|
+
horizontal = FXHorizontalFrame.new(vertical, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
27
|
+
buttons = FXVerticalFrame.new(horizontal, (LAYOUT_LEFT|LAYOUT_FILL_Y|
|
28
|
+
FRAME_SUNKEN|PACK_UNIFORM_WIDTH|PACK_UNIFORM_HEIGHT))
|
29
|
+
buttons.padLeft = 0
|
30
|
+
buttons.padRight = 0
|
31
|
+
buttons.padTop = 0
|
32
|
+
buttons.padBottom = 0
|
33
|
+
switcher = FXSwitcher.new(horizontal, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
34
|
+
|
35
|
+
# Icons
|
36
|
+
pal = loadIcon("palette.png")
|
37
|
+
ind = loadIcon("indent.png")
|
38
|
+
pat = loadIcon("pattern.png")
|
39
|
+
del = loadIcon("delimit.png")
|
40
|
+
|
41
|
+
# Pane 1
|
42
|
+
pane1 = FXVerticalFrame.new(switcher, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
43
|
+
FXLabel.new(pane1, "Color settings", nil, LAYOUT_LEFT)
|
44
|
+
FXHorizontalSeparator.new(pane1, SEPARATOR_LINE|LAYOUT_FILL_X)
|
45
|
+
matrix1 = FXMatrix.new(pane1, 5,
|
46
|
+
MATRIX_BY_ROWS|PACK_UNIFORM_HEIGHT|LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
47
|
+
|
48
|
+
FXLabel.new(matrix1, "Background:", nil,
|
49
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
50
|
+
FXLabel.new(matrix1, "Text:", nil,
|
51
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
52
|
+
FXLabel.new(matrix1, "Sel. text background:", nil,
|
53
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
54
|
+
FXLabel.new(matrix1, "Sel. text:", nil,
|
55
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
56
|
+
FXLabel.new(matrix1, "Cursor:", nil,
|
57
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
58
|
+
|
59
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_TEXT_BACK,
|
60
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
61
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
62
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
63
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_TEXT_FORE,
|
64
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
65
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
66
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
67
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_TEXT_SELBACK,
|
68
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
69
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
70
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
71
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_TEXT_SELFORE,
|
72
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
73
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
74
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
75
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_TEXT_CURSOR,
|
76
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
77
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
78
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
79
|
+
|
80
|
+
FXLabel.new(matrix1, "Files background:", nil,
|
81
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
82
|
+
FXLabel.new(matrix1, "Files:", nil,
|
83
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
84
|
+
FXLabel.new(matrix1, "Sel. files background:", nil,
|
85
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
86
|
+
FXLabel.new(matrix1, "Sel. files:", nil,
|
87
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
88
|
+
FXLabel.new(matrix1, "Lines:", nil,
|
89
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
90
|
+
|
91
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_DIR_BACK,
|
92
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
93
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
94
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
95
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_DIR_FORE,
|
96
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
97
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
98
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
99
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_DIR_SELBACK,
|
100
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
101
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
102
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
103
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_DIR_SELFORE,
|
104
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
105
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
106
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
107
|
+
FXColorWell.new(matrix1, FXRGB(0, 0, 0), owner, TextWindow::ID_DIR_LINES,
|
108
|
+
(COLORWELL_OPAQUEONLY|FRAME_SUNKEN|FRAME_THICK|LAYOUT_LEFT|
|
109
|
+
LAYOUT_CENTER_Y|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT|LAYOUT_FILL_COLUMN|
|
110
|
+
LAYOUT_FILL_ROW), 0, 0, 40, 24)
|
111
|
+
|
112
|
+
# Button 1
|
113
|
+
FXButton.new(buttons, "Colors\tChange Colors\tChange text colors.", pal,
|
114
|
+
switcher, FXSwitcher::ID_OPEN_FIRST, (FRAME_RAISED|ICON_ABOVE_TEXT|
|
115
|
+
LAYOUT_FILL_Y))
|
116
|
+
|
117
|
+
# Pane 2
|
118
|
+
pane2 = FXVerticalFrame.new(switcher, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
119
|
+
FXLabel.new(pane2, "Editor settings", nil, LAYOUT_LEFT)
|
120
|
+
FXHorizontalSeparator.new(pane2, SEPARATOR_LINE|LAYOUT_FILL_X)
|
121
|
+
matrix2 = FXMatrix.new(pane2, 5, (MATRIX_BY_ROWS|PACK_UNIFORM_HEIGHT|
|
122
|
+
LAYOUT_FILL_X|LAYOUT_FILL_Y))
|
123
|
+
|
124
|
+
FXLabel.new(matrix2, "Word wrapping:", nil,
|
125
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
126
|
+
FXLabel.new(matrix2, "Auto indent:", nil,
|
127
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
128
|
+
FXLabel.new(matrix2, "Fixed wrap margin:", nil,
|
129
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
130
|
+
FXLabel.new(matrix2, "Strip carriage returns:", nil,
|
131
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
132
|
+
FXLabel.new(matrix2, "Insert tab characters:", nil, (JUSTIFY_LEFT|
|
133
|
+
LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW))
|
134
|
+
|
135
|
+
FXCheckButton.new(matrix2, nil, owner, TextWindow::ID_TOGGLE_WRAP,
|
136
|
+
LAYOUT_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW,
|
137
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
138
|
+
FXCheckButton.new(matrix2, nil, owner, TextWindow::ID_AUTOINDENT,
|
139
|
+
LAYOUT_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW,
|
140
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
141
|
+
FXCheckButton.new(matrix2, nil, owner, TextWindow::ID_FIXED_WRAP,
|
142
|
+
LAYOUT_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW,
|
143
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
144
|
+
FXCheckButton.new(matrix2, nil, owner, TextWindow::ID_STRIP_CR,
|
145
|
+
LAYOUT_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW,
|
146
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
147
|
+
FXCheckButton.new(matrix2, nil, owner, TextWindow::ID_INSERTTABS,
|
148
|
+
LAYOUT_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW,
|
149
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
150
|
+
|
151
|
+
FXLabel.new(matrix2, "Wrap margin:", nil,
|
152
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
153
|
+
FXLabel.new(matrix2, "Tab columns:", nil,
|
154
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
155
|
+
FXLabel.new(matrix2, "Brace match time (us):", nil,
|
156
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
157
|
+
FXLabel.new(matrix2, "Strip trailing spaces:", nil,
|
158
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
159
|
+
FXLabel.new(matrix2, "Mouse wheel lines:", nil,
|
160
|
+
JUSTIFY_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_X|LAYOUT_FILL_ROW)
|
161
|
+
|
162
|
+
FXTextField.new(matrix2, 4, owner, TextWindow::ID_WRAPCOLUMNS,
|
163
|
+
(JUSTIFY_RIGHT|FRAME_SUNKEN|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_LEFT|
|
164
|
+
LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW))
|
165
|
+
FXTextField.new(matrix2, 4, owner, TextWindow::ID_TABCOLUMNS,
|
166
|
+
(JUSTIFY_RIGHT|FRAME_SUNKEN|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_LEFT|
|
167
|
+
LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW))
|
168
|
+
FXTextField.new(matrix2, 4, owner, TextWindow::ID_BRACEMATCH,
|
169
|
+
(JUSTIFY_RIGHT|FRAME_SUNKEN|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_LEFT|
|
170
|
+
LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW))
|
171
|
+
FXCheckButton.new(matrix2, nil, owner, TextWindow::ID_STRIP_SP,
|
172
|
+
LAYOUT_LEFT|LAYOUT_CENTER_Y|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW,
|
173
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
174
|
+
spinner = FXSpinner.new(matrix2, 2, owner, TextWindow::ID_WHEELADJUST,
|
175
|
+
(JUSTIFY_RIGHT|FRAME_SUNKEN|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_LEFT|
|
176
|
+
LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW))
|
177
|
+
spinner.range = 1..100
|
178
|
+
|
179
|
+
# Button 2
|
180
|
+
FXButton.new(buttons,
|
181
|
+
"Editor\tEditor settings\tChange editor settings and other things.", ind,
|
182
|
+
switcher, FXSwitcher::ID_OPEN_SECOND,
|
183
|
+
FRAME_RAISED|ICON_ABOVE_TEXT|LAYOUT_FILL_Y)
|
184
|
+
|
185
|
+
# Pane 3
|
186
|
+
pane3 = FXVerticalFrame.new(switcher, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
187
|
+
FXLabel.new(pane3, "File Patterns", nil, LAYOUT_LEFT)
|
188
|
+
FXHorizontalSeparator.new(pane3, SEPARATOR_LINE|LAYOUT_FILL_X)
|
189
|
+
sub3 = FXVerticalFrame.new(pane3, LAYOUT_FILL_Y|LAYOUT_FILL_X)
|
190
|
+
FXLabel.new(sub3,
|
191
|
+
'Filename patterns, for example "Source Files (*.c,*.h)", one per line:',
|
192
|
+
nil, JUSTIFY_LEFT)
|
193
|
+
textwell = FXVerticalFrame.new(sub3,
|
194
|
+
LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK,
|
195
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
196
|
+
@text = FXText.new(textwell, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
197
|
+
|
198
|
+
# Button 3
|
199
|
+
FXButton.new(buttons,
|
200
|
+
"Patterns\tFilename patterns\tChange wildcard patterns for filenames.",
|
201
|
+
pat, switcher, FXSwitcher::ID_OPEN_THIRD,
|
202
|
+
FRAME_RAISED|ICON_ABOVE_TEXT|LAYOUT_FILL_Y)
|
203
|
+
|
204
|
+
# Pane 4
|
205
|
+
pane4 = FXVerticalFrame.new(switcher, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
206
|
+
FXLabel.new(pane4, "Word Delimiters", nil, LAYOUT_LEFT)
|
207
|
+
FXHorizontalSeparator.new(pane4, SEPARATOR_LINE|LAYOUT_FILL_X)
|
208
|
+
sub4 = FXVerticalFrame.new(pane4, LAYOUT_FILL_Y|LAYOUT_FILL_X)
|
209
|
+
FXLabel.new(sub4, "Characters delimiting words:", nil, JUSTIFY_LEFT)
|
210
|
+
FXTextField.new(sub4, 20, owner, TextWindow::ID_DELIMITERS,
|
211
|
+
FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X)
|
212
|
+
|
213
|
+
# Button 4
|
214
|
+
FXButton.new(buttons,
|
215
|
+
"Delimiters\tWord delimiters\tChange delimiters for word selections.",
|
216
|
+
del, switcher, FXSwitcher::ID_OPEN_FOURTH,
|
217
|
+
FRAME_RAISED|ICON_ABOVE_TEXT|LAYOUT_FILL_Y)
|
218
|
+
|
219
|
+
# Bottom part
|
220
|
+
FXHorizontalSeparator.new(vertical, SEPARATOR_RIDGE|LAYOUT_FILL_X)
|
221
|
+
closebox = FXHorizontalFrame.new(vertical,
|
222
|
+
LAYOUT_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH)
|
223
|
+
FXButton.new(closebox, "&Accept", nil, self, FXDialogBox::ID_ACCEPT,
|
224
|
+
LAYOUT_RIGHT|FRAME_RAISED|FRAME_THICK, 0, 0, 0, 0, 20, 20)
|
225
|
+
FXButton.new(closebox, "&Cancel", nil, self, FXDialogBox::ID_CANCEL,
|
226
|
+
LAYOUT_RIGHT|FRAME_RAISED|FRAME_THICK, 0, 0, 0, 0, 20, 20)
|
227
|
+
end
|
228
|
+
|
229
|
+
|
230
|
+
# Change patterns, each pattern separated by newline
|
231
|
+
def setPatterns(patterns)
|
232
|
+
@text.text = patterns.join("\n")
|
233
|
+
end
|
234
|
+
|
235
|
+
# Return array of patterns
|
236
|
+
def getPatterns
|
237
|
+
@text.text.split("\n")
|
238
|
+
end
|
239
|
+
end
|