fxruby 1.6.27-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/.gemtest +0 -0
- data/.gitignore +14 -0
- data/.yardopts +12 -0
- data/History.txt +57 -0
- data/Manifest.txt +1214 -0
- data/README.rdoc +537 -0
- data/Rakefile +233 -0
- data/Rakefile.cross +421 -0
- data/TODO +47 -0
- data/doap.rdf.erb +87 -0
- data/examples/RAA.rb +25 -0
- data/examples/README +53 -0
- data/examples/WhatAQuietStiff.rb +356 -0
- data/examples/babelfish.rb +72 -0
- data/examples/bounce.rb +171 -0
- data/examples/browser.rb +191 -0
- data/examples/button.rb +168 -0
- data/examples/canvasdemo.rb +88 -0
- data/examples/charts.rb +35 -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/gdchart.rb +76 -0
- data/examples/gembrowser.rb +289 -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/bluebullet14x14.gif +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/transpbullet14x14.gif +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/rmagick.rb +44 -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_c/FXRbApp.cpp +128 -0
- data/ext/fox16_c/FXRbDataTarget.cpp +110 -0
- data/ext/fox16_c/FXRbGLViewer.cpp +89 -0
- data/ext/fox16_c/FXRuby.cpp +2063 -0
- data/ext/fox16_c/MANIFEST +190 -0
- data/ext/fox16_c/extconf.rb +153 -0
- data/ext/fox16_c/impl.cpp +1156 -0
- data/ext/fox16_c/include/FXMemoryBuffer.h +52 -0
- data/ext/fox16_c/include/FXRb4Splitter.h +54 -0
- data/ext/fox16_c/include/FXRb7Segment.h +51 -0
- data/ext/fox16_c/include/FXRbAccelTable.h +46 -0
- data/ext/fox16_c/include/FXRbApp.h +155 -0
- data/ext/fox16_c/include/FXRbAppVirtuals.h +15 -0
- data/ext/fox16_c/include/FXRbArrowButton.h +51 -0
- data/ext/fox16_c/include/FXRbBMPIcon.h +54 -0
- data/ext/fox16_c/include/FXRbBMPImage.h +54 -0
- data/ext/fox16_c/include/FXRbBitmap.h +133 -0
- data/ext/fox16_c/include/FXRbBitmapFrame.h +56 -0
- data/ext/fox16_c/include/FXRbBitmapView.h +56 -0
- data/ext/fox16_c/include/FXRbBitmapVirtuals.h +37 -0
- data/ext/fox16_c/include/FXRbButton.h +51 -0
- data/ext/fox16_c/include/FXRbCURCursor.h +60 -0
- data/ext/fox16_c/include/FXRbCanvas.h +51 -0
- data/ext/fox16_c/include/FXRbCheckButton.h +51 -0
- data/ext/fox16_c/include/FXRbChoiceBox.h +56 -0
- data/ext/fox16_c/include/FXRbColorBar.h +51 -0
- data/ext/fox16_c/include/FXRbColorDialog.h +53 -0
- data/ext/fox16_c/include/FXRbColorList.h +84 -0
- data/ext/fox16_c/include/FXRbColorRing.h +51 -0
- data/ext/fox16_c/include/FXRbColorSelector.h +51 -0
- data/ext/fox16_c/include/FXRbColorWell.h +51 -0
- data/ext/fox16_c/include/FXRbColorWheel.h +51 -0
- data/ext/fox16_c/include/FXRbComboBox.h +56 -0
- data/ext/fox16_c/include/FXRbCommon.h +99 -0
- data/ext/fox16_c/include/FXRbComposite.h +51 -0
- data/ext/fox16_c/include/FXRbCursor.h +87 -0
- data/ext/fox16_c/include/FXRbCursorVirtuals.h +6 -0
- data/ext/fox16_c/include/FXRbDC.h +427 -0
- data/ext/fox16_c/include/FXRbDCPrint.h +49 -0
- data/ext/fox16_c/include/FXRbDCVirtuals.h +187 -0
- data/ext/fox16_c/include/FXRbDCWindow.h +64 -0
- data/ext/fox16_c/include/FXRbDataTarget.h +65 -0
- data/ext/fox16_c/include/FXRbDebugTarget.h +46 -0
- data/ext/fox16_c/include/FXRbDelegator.h +46 -0
- data/ext/fox16_c/include/FXRbDial.h +51 -0
- data/ext/fox16_c/include/FXRbDialogBox.h +68 -0
- data/ext/fox16_c/include/FXRbDialogBoxVirtuals.h +3 -0
- data/ext/fox16_c/include/FXRbDict.h +46 -0
- data/ext/fox16_c/include/FXRbDirBox.h +52 -0
- data/ext/fox16_c/include/FXRbDirDialog.h +56 -0
- data/ext/fox16_c/include/FXRbDirList.h +79 -0
- data/ext/fox16_c/include/FXRbDirSelector.h +51 -0
- data/ext/fox16_c/include/FXRbDockBar.h +86 -0
- data/ext/fox16_c/include/FXRbDockBarVirtuals.h +10 -0
- data/ext/fox16_c/include/FXRbDockHandler.h +51 -0
- data/ext/fox16_c/include/FXRbDockSite.h +85 -0
- data/ext/fox16_c/include/FXRbDockSiteVirtuals.h +13 -0
- data/ext/fox16_c/include/FXRbDockTitle.h +51 -0
- data/ext/fox16_c/include/FXRbDocument.h +46 -0
- data/ext/fox16_c/include/FXRbDragCorner.h +51 -0
- data/ext/fox16_c/include/FXRbDrawable.h +64 -0
- data/ext/fox16_c/include/FXRbDrawableVirtuals.h +3 -0
- data/ext/fox16_c/include/FXRbDriveBox.h +52 -0
- data/ext/fox16_c/include/FXRbFileDialog.h +56 -0
- data/ext/fox16_c/include/FXRbFileDict.h +104 -0
- data/ext/fox16_c/include/FXRbFileDictVirtuals.h +9 -0
- data/ext/fox16_c/include/FXRbFileList.h +81 -0
- data/ext/fox16_c/include/FXRbFileSelector.h +51 -0
- data/ext/fox16_c/include/FXRbFoldingItemVirtuals.h +42 -0
- data/ext/fox16_c/include/FXRbFoldingList.h +270 -0
- data/ext/fox16_c/include/FXRbFoldingListVirtuals.h +43 -0
- data/ext/fox16_c/include/FXRbFont.h +183 -0
- data/ext/fox16_c/include/FXRbFontDialog.h +53 -0
- data/ext/fox16_c/include/FXRbFontSelector.h +51 -0
- data/ext/fox16_c/include/FXRbFontVirtuals.h +55 -0
- data/ext/fox16_c/include/FXRbFrame.h +51 -0
- data/ext/fox16_c/include/FXRbGIFCursor.h +60 -0
- data/ext/fox16_c/include/FXRbGIFIcon.h +54 -0
- data/ext/fox16_c/include/FXRbGIFImage.h +54 -0
- data/ext/fox16_c/include/FXRbGLCanvas.h +92 -0
- data/ext/fox16_c/include/FXRbGLCanvasVirtuals.h +13 -0
- data/ext/fox16_c/include/FXRbGLContext.h +58 -0
- data/ext/fox16_c/include/FXRbGLObject.h +103 -0
- data/ext/fox16_c/include/FXRbGLObjectVirtuals.h +22 -0
- data/ext/fox16_c/include/FXRbGLShape.h +81 -0
- data/ext/fox16_c/include/FXRbGLShapeVirtuals.h +8 -0
- data/ext/fox16_c/include/FXRbGLViewer.h +89 -0
- data/ext/fox16_c/include/FXRbGLViewerVirtuals.h +10 -0
- data/ext/fox16_c/include/FXRbGLVisual.h +56 -0
- data/ext/fox16_c/include/FXRbGradientBar.h +55 -0
- data/ext/fox16_c/include/FXRbGroupBox.h +51 -0
- data/ext/fox16_c/include/FXRbHeader.h +129 -0
- data/ext/fox16_c/include/FXRbHeaderItemVirtuals.h +22 -0
- data/ext/fox16_c/include/FXRbHorizontalFrame.h +51 -0
- data/ext/fox16_c/include/FXRbICOIcon.h +54 -0
- data/ext/fox16_c/include/FXRbICOImage.h +54 -0
- data/ext/fox16_c/include/FXRbIcon.h +57 -0
- data/ext/fox16_c/include/FXRbIconItemVirtuals.h +68 -0
- data/ext/fox16_c/include/FXRbIconList.h +288 -0
- data/ext/fox16_c/include/FXRbIconListVirtuals.h +35 -0
- data/ext/fox16_c/include/FXRbIconSource.h +127 -0
- data/ext/fox16_c/include/FXRbIconSourceVirtuals.h +37 -0
- data/ext/fox16_c/include/FXRbId.h +74 -0
- data/ext/fox16_c/include/FXRbIdVirtuals.h +9 -0
- data/ext/fox16_c/include/FXRbImage.h +162 -0
- data/ext/fox16_c/include/FXRbImageFrame.h +56 -0
- data/ext/fox16_c/include/FXRbImageView.h +55 -0
- data/ext/fox16_c/include/FXRbImageVirtuals.h +51 -0
- data/ext/fox16_c/include/FXRbInputDialog.h +56 -0
- data/ext/fox16_c/include/FXRbJPGIcon.h +54 -0
- data/ext/fox16_c/include/FXRbJPGImage.h +54 -0
- data/ext/fox16_c/include/FXRbKnob.h +51 -0
- data/ext/fox16_c/include/FXRbLabel.h +51 -0
- data/ext/fox16_c/include/FXRbList.h +226 -0
- data/ext/fox16_c/include/FXRbListBox.h +67 -0
- data/ext/fox16_c/include/FXRbListBoxVirtuals.h +4 -0
- data/ext/fox16_c/include/FXRbListItemVirtuals.h +33 -0
- data/ext/fox16_c/include/FXRbListVirtuals.h +30 -0
- data/ext/fox16_c/include/FXRbMDIButton.h +162 -0
- data/ext/fox16_c/include/FXRbMDIChild.h +82 -0
- data/ext/fox16_c/include/FXRbMDIChildVirtuals.h +12 -0
- data/ext/fox16_c/include/FXRbMDIClient.h +80 -0
- data/ext/fox16_c/include/FXRbMDIClientVirtuals.h +12 -0
- data/ext/fox16_c/include/FXRbMainWindow.h +54 -0
- data/ext/fox16_c/include/FXRbMatrix.h +51 -0
- data/ext/fox16_c/include/FXRbMenuBar.h +63 -0
- data/ext/fox16_c/include/FXRbMenuButton.h +51 -0
- data/ext/fox16_c/include/FXRbMenuCaption.h +51 -0
- data/ext/fox16_c/include/FXRbMenuCascade.h +51 -0
- data/ext/fox16_c/include/FXRbMenuCheck.h +49 -0
- data/ext/fox16_c/include/FXRbMenuCommand.h +49 -0
- data/ext/fox16_c/include/FXRbMenuPane.h +52 -0
- data/ext/fox16_c/include/FXRbMenuRadio.h +49 -0
- data/ext/fox16_c/include/FXRbMenuSeparator.h +51 -0
- data/ext/fox16_c/include/FXRbMenuTitle.h +51 -0
- data/ext/fox16_c/include/FXRbMessageBox.h +56 -0
- data/ext/fox16_c/include/FXRbObject.h +67 -0
- data/ext/fox16_c/include/FXRbObjectVirtuals.h +9 -0
- data/ext/fox16_c/include/FXRbOptionMenu.h +73 -0
- data/ext/fox16_c/include/FXRbPCXIcon.h +54 -0
- data/ext/fox16_c/include/FXRbPCXImage.h +54 -0
- data/ext/fox16_c/include/FXRbPNGIcon.h +54 -0
- data/ext/fox16_c/include/FXRbPNGImage.h +54 -0
- data/ext/fox16_c/include/FXRbPPMIcon.h +54 -0
- data/ext/fox16_c/include/FXRbPPMImage.h +54 -0
- data/ext/fox16_c/include/FXRbPacker.h +51 -0
- data/ext/fox16_c/include/FXRbPicker.h +51 -0
- data/ext/fox16_c/include/FXRbPopup.h +70 -0
- data/ext/fox16_c/include/FXRbPopupVirtuals.h +6 -0
- data/ext/fox16_c/include/FXRbPrintDialog.h +53 -0
- data/ext/fox16_c/include/FXRbProgressBar.h +51 -0
- data/ext/fox16_c/include/FXRbProgressDialog.h +53 -0
- data/ext/fox16_c/include/FXRbRGBIcon.h +54 -0
- data/ext/fox16_c/include/FXRbRGBImage.h +54 -0
- data/ext/fox16_c/include/FXRbRadioButton.h +51 -0
- data/ext/fox16_c/include/FXRbRealSlider.h +51 -0
- data/ext/fox16_c/include/FXRbRealSpinner.h +64 -0
- data/ext/fox16_c/include/FXRbRealSpinnerVirtuals.h +3 -0
- data/ext/fox16_c/include/FXRbRecentFiles.h +52 -0
- data/ext/fox16_c/include/FXRbRegistry.h +46 -0
- data/ext/fox16_c/include/FXRbReplaceDialog.h +53 -0
- data/ext/fox16_c/include/FXRbRootWindow.h +51 -0
- data/ext/fox16_c/include/FXRbRuler.h +56 -0
- data/ext/fox16_c/include/FXRbRulerView.h +54 -0
- data/ext/fox16_c/include/FXRbScintilla.h +52 -0
- data/ext/fox16_c/include/FXRbScrollArea.h +87 -0
- data/ext/fox16_c/include/FXRbScrollAreaVirtuals.h +13 -0
- data/ext/fox16_c/include/FXRbScrollBar.h +73 -0
- data/ext/fox16_c/include/FXRbScrollPane.h +52 -0
- data/ext/fox16_c/include/FXRbScrollWindow.h +57 -0
- data/ext/fox16_c/include/FXRbSearchDialog.h +53 -0
- data/ext/fox16_c/include/FXRbSeparator.h +95 -0
- data/ext/fox16_c/include/FXRbSettings.h +46 -0
- data/ext/fox16_c/include/FXRbShell.h +56 -0
- data/ext/fox16_c/include/FXRbShutter.h +86 -0
- data/ext/fox16_c/include/FXRbShutterVirtuals.h +3 -0
- data/ext/fox16_c/include/FXRbSlider.h +51 -0
- data/ext/fox16_c/include/FXRbSpinner.h +64 -0
- data/ext/fox16_c/include/FXRbSpinnerVirtuals.h +3 -0
- data/ext/fox16_c/include/FXRbSplashWindow.h +57 -0
- data/ext/fox16_c/include/FXRbSplitter.h +54 -0
- data/ext/fox16_c/include/FXRbSpring.h +51 -0
- data/ext/fox16_c/include/FXRbStatusBar.h +51 -0
- data/ext/fox16_c/include/FXRbStatusLine.h +51 -0
- data/ext/fox16_c/include/FXRbStream.h +101 -0
- data/ext/fox16_c/include/FXRbStreamVirtuals.h +9 -0
- data/ext/fox16_c/include/FXRbStringDict.h +46 -0
- data/ext/fox16_c/include/FXRbSwitcher.h +51 -0
- data/ext/fox16_c/include/FXRbTGAIcon.h +54 -0
- data/ext/fox16_c/include/FXRbTGAImage.h +54 -0
- data/ext/fox16_c/include/FXRbTIFIcon.h +54 -0
- data/ext/fox16_c/include/FXRbTIFImage.h +54 -0
- data/ext/fox16_c/include/FXRbTabBar.h +64 -0
- data/ext/fox16_c/include/FXRbTabBarVirtuals.h +3 -0
- data/ext/fox16_c/include/FXRbTabBook.h +52 -0
- data/ext/fox16_c/include/FXRbTabItem.h +51 -0
- data/ext/fox16_c/include/FXRbTable.h +509 -0
- data/ext/fox16_c/include/FXRbTableItemVirtuals.h +89 -0
- data/ext/fox16_c/include/FXRbTableVirtuals.h +89 -0
- data/ext/fox16_c/include/FXRbText.h +187 -0
- data/ext/fox16_c/include/FXRbTextField.h +51 -0
- data/ext/fox16_c/include/FXRbTextVirtuals.h +52 -0
- data/ext/fox16_c/include/FXRbToggleButton.h +51 -0
- data/ext/fox16_c/include/FXRbToolBar.h +63 -0
- data/ext/fox16_c/include/FXRbToolBarGrip.h +51 -0
- data/ext/fox16_c/include/FXRbToolBarShell.h +52 -0
- data/ext/fox16_c/include/FXRbToolBarTab.h +51 -0
- data/ext/fox16_c/include/FXRbToolTip.h +51 -0
- data/ext/fox16_c/include/FXRbTopWindow.h +91 -0
- data/ext/fox16_c/include/FXRbTopWindowVirtuals.h +15 -0
- data/ext/fox16_c/include/FXRbTranslator.h +61 -0
- data/ext/fox16_c/include/FXRbTranslatorVirtuals.h +4 -0
- data/ext/fox16_c/include/FXRbTreeItemVirtuals.h +42 -0
- data/ext/fox16_c/include/FXRbTreeList.h +277 -0
- data/ext/fox16_c/include/FXRbTreeListBox.h +64 -0
- data/ext/fox16_c/include/FXRbTreeListBoxVirtuals.h +4 -0
- data/ext/fox16_c/include/FXRbTreeListVirtuals.h +42 -0
- data/ext/fox16_c/include/FXRbTriStateButton.h +51 -0
- data/ext/fox16_c/include/FXRbVerticalFrame.h +51 -0
- data/ext/fox16_c/include/FXRbVisual.h +56 -0
- data/ext/fox16_c/include/FXRbWindow.h +248 -0
- data/ext/fox16_c/include/FXRbWindowVirtuals.h +94 -0
- data/ext/fox16_c/include/FXRbWizard.h +60 -0
- data/ext/fox16_c/include/FXRbXBMIcon.h +54 -0
- data/ext/fox16_c/include/FXRbXBMImage.h +54 -0
- data/ext/fox16_c/include/FXRbXPMIcon.h +54 -0
- data/ext/fox16_c/include/FXRbXPMImage.h +54 -0
- data/ext/fox16_c/include/FXRuby.h +881 -0
- data/ext/fox16_c/include/impl.h +215 -0
- data/ext/fox16_c/make_impl.rb +121 -0
- data/ext/fox16_c/markfuncs.cpp +1666 -0
- data/ext/fox16_c/unregisterOwnedObjects.cpp +120 -0
- data/index.html +14 -0
- data/lib/2.0/fox16_c.so +0 -0
- data/lib/fox16.rb +20 -0
- data/lib/fox16/accel_table.rb +83 -0
- data/lib/fox16/aliases.rb +5617 -0
- data/lib/fox16/bitmapview.rb +222 -0
- data/lib/fox16/calendar.rb +217 -0
- data/lib/fox16/canvas.rb +606 -0
- data/lib/fox16/chore.rb +105 -0
- data/lib/fox16/colors.rb +280 -0
- data/lib/fox16/core.rb +700 -0
- data/lib/fox16/dict.rb +35 -0
- data/lib/fox16/exceptions_for_fxerror.rb +17 -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 +179 -0
- data/lib/fox16/iterators.rb +420 -0
- data/lib/fox16/keys.rb +1374 -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 +132 -0
- data/lib/fox16/scintilla.rb +5017 -0
- data/lib/fox16/settings.rb +18 -0
- data/lib/fox16/signal.rb +71 -0
- data/lib/fox16/splashscreen.rb +83 -0
- data/lib/fox16/timeout.rb +136 -0
- data/lib/fox16/tkcompat.rb +56 -0
- data/lib/fox16/undolist.rb +455 -0
- data/lib/fox16/version.rb +5 -0
- data/rdoc-sources/FX4Splitter.rb +156 -0
- data/rdoc-sources/FX7Segment.rb +54 -0
- data/rdoc-sources/FXAccelTable.rb +84 -0
- data/rdoc-sources/FXApp.rb +542 -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 +214 -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 +78 -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 +95 -0
- data/rdoc-sources/FXGradientBar.rb +301 -0
- data/rdoc-sources/FXGroupBox.rb +36 -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 +49 -0
- data/rdoc-sources/FXIconList.rb +450 -0
- data/rdoc-sources/FXIconSource.rb +100 -0
- data/rdoc-sources/FXId.rb +34 -0
- data/rdoc-sources/FXImage.rb +320 -0
- data/rdoc-sources/FXImageFrame.rb +36 -0
- data/rdoc-sources/FXImageView.rb +35 -0
- data/rdoc-sources/FXInputDialog.rb +80 -0
- data/rdoc-sources/FXJPGIcon.rb +71 -0
- data/rdoc-sources/FXJPGImage.rb +39 -0
- data/rdoc-sources/FXKnob.rb +76 -0
- data/rdoc-sources/FXLabel.rb +72 -0
- data/rdoc-sources/FXList.rb +443 -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 +29 -0
- data/rdoc-sources/FXMemoryStream.rb +50 -0
- data/rdoc-sources/FXMenuBar.rb +23 -0
- data/rdoc-sources/FXMenuButton.rb +85 -0
- data/rdoc-sources/FXMenuCaption.rb +53 -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 +73 -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 +975 -0
- data/rdoc-sources/FXText.rb +581 -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 +39 -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 +118 -0
- data/rdoc-sources/FXVec3f.rb +118 -0
- data/rdoc-sources/FXVec4d.rb +139 -0
- data/rdoc-sources/FXVec4f.rb +139 -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/Makefile +23 -0
- data/rdoc-sources/README.rdoc +53 -0
- data/rdoc-sources/fxdefs.rb +90 -0
- data/scripts/build-fox.rb +31 -0
- data/scripts/generate_kwargs_lib.rb +412 -0
- data/scripts/iface.rb +391 -0
- data/swig-interfaces/FX4Splitter.i +149 -0
- data/swig-interfaces/FX7Segment.i +141 -0
- data/swig-interfaces/FXAccelTable.i +100 -0
- data/swig-interfaces/FXApp.i +735 -0
- data/swig-interfaces/FXArrowButton.i +136 -0
- data/swig-interfaces/FXBMPIcon.i +88 -0
- data/swig-interfaces/FXBMPImage.i +54 -0
- data/swig-interfaces/FXBitmap.i +90 -0
- data/swig-interfaces/FXBitmapFrame.i +72 -0
- data/swig-interfaces/FXBitmapView.i +94 -0
- data/swig-interfaces/FXButton.i +130 -0
- data/swig-interfaces/FXCURCursor.i +49 -0
- data/swig-interfaces/FXCanvas.i +61 -0
- data/swig-interfaces/FXCheckButton.i +108 -0
- data/swig-interfaces/FXChoiceBox.i +91 -0
- data/swig-interfaces/FXColorBar.i +110 -0
- data/swig-interfaces/FXColorDialog.i +79 -0
- data/swig-interfaces/FXColorList.i +99 -0
- data/swig-interfaces/FXColorRing.i +148 -0
- data/swig-interfaces/FXColorSelector.i +157 -0
- data/swig-interfaces/FXColorWell.i +133 -0
- data/swig-interfaces/FXColorWheel.i +108 -0
- data/swig-interfaces/FXComboBox.i +280 -0
- data/swig-interfaces/FXComposeContext.i +66 -0
- data/swig-interfaces/FXComposite.i +103 -0
- data/swig-interfaces/FXCursor.i +120 -0
- data/swig-interfaces/FXDC.i +280 -0
- data/swig-interfaces/FXDCPrint.i +141 -0
- data/swig-interfaces/FXDCWindow.i +75 -0
- data/swig-interfaces/FXDataTarget.i +115 -0
- data/swig-interfaces/FXDebugTarget.i +60 -0
- data/swig-interfaces/FXDelegator.i +56 -0
- data/swig-interfaces/FXDial.i +168 -0
- data/swig-interfaces/FXDialogBox.i +131 -0
- data/swig-interfaces/FXDict.i +200 -0
- data/swig-interfaces/FXDirBox.i +68 -0
- data/swig-interfaces/FXDirDialog.i +97 -0
- data/swig-interfaces/FXDirList.i +274 -0
- data/swig-interfaces/FXDirSelector.i +142 -0
- data/swig-interfaces/FXDockBar.i +180 -0
- data/swig-interfaces/FXDockHandler.i +94 -0
- data/swig-interfaces/FXDockSite.i +91 -0
- data/swig-interfaces/FXDockTitle.i +91 -0
- data/swig-interfaces/FXDocument.i +70 -0
- data/swig-interfaces/FXDragCorner.i +72 -0
- data/swig-interfaces/FXDrawable.i +90 -0
- data/swig-interfaces/FXDriveBox.i +63 -0
- data/swig-interfaces/FXExtentd.i +131 -0
- data/swig-interfaces/FXExtentf.i +131 -0
- data/swig-interfaces/FXFileDialog.i +268 -0
- data/swig-interfaces/FXFileDict.i +121 -0
- data/swig-interfaces/FXFileList.i +345 -0
- data/swig-interfaces/FXFileSelector.i +347 -0
- data/swig-interfaces/FXFileStream.i +49 -0
- data/swig-interfaces/FXFoldingList.i +556 -0
- data/swig-interfaces/FXFont.i +333 -0
- data/swig-interfaces/FXFontDialog.i +63 -0
- data/swig-interfaces/FXFontSelector.i +127 -0
- data/swig-interfaces/FXFrame.i +245 -0
- data/swig-interfaces/FXGIFCursor.i +86 -0
- data/swig-interfaces/FXGIFIcon.i +54 -0
- data/swig-interfaces/FXGIFImage.i +54 -0
- data/swig-interfaces/FXGLCanvas.i +90 -0
- data/swig-interfaces/FXGLContext.i +85 -0
- data/swig-interfaces/FXGLObject.i +70 -0
- data/swig-interfaces/FXGLShape.i +152 -0
- data/swig-interfaces/FXGLViewer.i +691 -0
- data/swig-interfaces/FXGLVisual.i +136 -0
- data/swig-interfaces/FXGradientBar.i +310 -0
- data/swig-interfaces/FXGroupBox.i +94 -0
- data/swig-interfaces/FXHeader.i +432 -0
- data/swig-interfaces/FXHorizontalFrame.i +60 -0
- data/swig-interfaces/FXICOIcon.i +92 -0
- data/swig-interfaces/FXICOImage.i +54 -0
- data/swig-interfaces/FXIcon.i +128 -0
- data/swig-interfaces/FXIconDict.i +90 -0
- data/swig-interfaces/FXIconList.i +596 -0
- data/swig-interfaces/FXIconSource.i +55 -0
- data/swig-interfaces/FXId.i +103 -0
- data/swig-interfaces/FXImage.i +226 -0
- data/swig-interfaces/FXImageFrame.i +66 -0
- data/swig-interfaces/FXImageView.i +88 -0
- data/swig-interfaces/FXInputDialog.i +180 -0
- data/swig-interfaces/FXJPGIcon.i +101 -0
- data/swig-interfaces/FXJPGImage.i +67 -0
- data/swig-interfaces/FXKnob.i +182 -0
- data/swig-interfaces/FXLabel.i +199 -0
- data/swig-interfaces/FXList.i +476 -0
- data/swig-interfaces/FXListBox.i +234 -0
- data/swig-interfaces/FXMDIButton.i +173 -0
- data/swig-interfaces/FXMDIChild.i +242 -0
- data/swig-interfaces/FXMDIClient.i +149 -0
- data/swig-interfaces/FXMainWindow.i +53 -0
- data/swig-interfaces/FXMat3d.i +102 -0
- data/swig-interfaces/FXMat3f.i +102 -0
- data/swig-interfaces/FXMat4d.i +122 -0
- data/swig-interfaces/FXMat4f.i +138 -0
- data/swig-interfaces/FXMatrix.i +101 -0
- data/swig-interfaces/FXMemoryBuffer.i +64 -0
- data/swig-interfaces/FXMemoryStream.i +77 -0
- data/swig-interfaces/FXMenuBar.i +67 -0
- data/swig-interfaces/FXMenuButton.i +152 -0
- data/swig-interfaces/FXMenuCaption.i +176 -0
- data/swig-interfaces/FXMenuCascade.i +76 -0
- data/swig-interfaces/FXMenuCheck.i +90 -0
- data/swig-interfaces/FXMenuCommand.i +69 -0
- data/swig-interfaces/FXMenuPane.i +60 -0
- data/swig-interfaces/FXMenuRadio.i +93 -0
- data/swig-interfaces/FXMenuSeparator.i +65 -0
- data/swig-interfaces/FXMenuTitle.i +74 -0
- data/swig-interfaces/FXMessageBox.i +128 -0
- data/swig-interfaces/FXObject.i +169 -0
- data/swig-interfaces/FXOptionMenu.i +140 -0
- data/swig-interfaces/FXPCXIcon.i +91 -0
- data/swig-interfaces/FXPCXImage.i +55 -0
- data/swig-interfaces/FXPNGIcon.i +95 -0
- data/swig-interfaces/FXPNGImage.i +59 -0
- data/swig-interfaces/FXPPMIcon.i +91 -0
- data/swig-interfaces/FXPPMImage.i +55 -0
- data/swig-interfaces/FXPacker.i +255 -0
- data/swig-interfaces/FXPicker.i +54 -0
- data/swig-interfaces/FXPoint.i +52 -0
- data/swig-interfaces/FXPopup.i +162 -0
- data/swig-interfaces/FXPrintDialog.i +154 -0
- data/swig-interfaces/FXProgressBar.i +133 -0
- data/swig-interfaces/FXProgressDialog.i +105 -0
- data/swig-interfaces/FXQuatd.i +128 -0
- data/swig-interfaces/FXQuatf.i +122 -0
- data/swig-interfaces/FXRGBIcon.i +90 -0
- data/swig-interfaces/FXRGBImage.i +56 -0
- data/swig-interfaces/FXRadioButton.i +117 -0
- data/swig-interfaces/FXRanged.i +163 -0
- data/swig-interfaces/FXRangef.i +172 -0
- data/swig-interfaces/FXRealSlider.i +166 -0
- data/swig-interfaces/FXRealSpinner.i +215 -0
- data/swig-interfaces/FXRecentFiles.i +119 -0
- data/swig-interfaces/FXRectangle.i +104 -0
- data/swig-interfaces/FXRegion.i +88 -0
- data/swig-interfaces/FXRegistry.i +96 -0
- data/swig-interfaces/FXReplaceDialog.i +131 -0
- data/swig-interfaces/FXRootWindow.i +50 -0
- data/swig-interfaces/FXRuler.i +245 -0
- data/swig-interfaces/FXRulerView.i +233 -0
- data/swig-interfaces/FXScintilla.i +194 -0
- data/swig-interfaces/FXScrollArea.i +211 -0
- data/swig-interfaces/FXScrollBar.i +178 -0
- data/swig-interfaces/FXScrollPane.i +83 -0
- data/swig-interfaces/FXScrollWindow.i +67 -0
- data/swig-interfaces/FXSearchDialog.i +48 -0
- data/swig-interfaces/FXSeparator.i +138 -0
- data/swig-interfaces/FXSettings.i +160 -0
- data/swig-interfaces/FXShell.i +91 -0
- data/swig-interfaces/FXShutter.i +140 -0
- data/swig-interfaces/FXSize.i +71 -0
- data/swig-interfaces/FXSlider.i +181 -0
- data/swig-interfaces/FXSphered.i +126 -0
- data/swig-interfaces/FXSpheref.i +126 -0
- data/swig-interfaces/FXSpinner.i +212 -0
- data/swig-interfaces/FXSplashWindow.i +92 -0
- data/swig-interfaces/FXSplitter.i +123 -0
- data/swig-interfaces/FXSpring.i +79 -0
- data/swig-interfaces/FXStatusBar.i +68 -0
- data/swig-interfaces/FXStatusLine.i +100 -0
- data/swig-interfaces/FXStream.i +150 -0
- data/swig-interfaces/FXStringDict.i +61 -0
- data/swig-interfaces/FXSwitcher.i +110 -0
- data/swig-interfaces/FXTGAIcon.i +85 -0
- data/swig-interfaces/FXTGAImage.i +56 -0
- data/swig-interfaces/FXTIFIcon.i +73 -0
- data/swig-interfaces/FXTIFImage.i +93 -0
- data/swig-interfaces/FXTabBar.i +121 -0
- data/swig-interfaces/FXTabBook.i +70 -0
- data/swig-interfaces/FXTabItem.i +82 -0
- data/swig-interfaces/FXTable.i +861 -0
- data/swig-interfaces/FXText.i +763 -0
- data/swig-interfaces/FXTextField.i +290 -0
- data/swig-interfaces/FXToggleButton.i +136 -0
- data/swig-interfaces/FXToolBar.i +75 -0
- data/swig-interfaces/FXToolBarGrip.i +82 -0
- data/swig-interfaces/FXToolBarShell.i +98 -0
- data/swig-interfaces/FXToolBarTab.i +114 -0
- data/swig-interfaces/FXToolTip.i +93 -0
- data/swig-interfaces/FXTopWindow.i +263 -0
- data/swig-interfaces/FXTranslator.i +55 -0
- data/swig-interfaces/FXTreeList.i +549 -0
- data/swig-interfaces/FXTreeListBox.i +317 -0
- data/swig-interfaces/FXTriStateButton.i +77 -0
- data/swig-interfaces/FXURL.i +35 -0
- data/swig-interfaces/FXVec2d.i +87 -0
- data/swig-interfaces/FXVec2f.i +87 -0
- data/swig-interfaces/FXVec3d.i +111 -0
- data/swig-interfaces/FXVec3f.i +109 -0
- data/swig-interfaces/FXVec4d.i +115 -0
- data/swig-interfaces/FXVec4f.i +115 -0
- data/swig-interfaces/FXVerticalFrame.i +69 -0
- data/swig-interfaces/FXVisual.i +162 -0
- data/swig-interfaces/FXWindow.i +851 -0
- data/swig-interfaces/FXWizard.i +125 -0
- data/swig-interfaces/FXXBMIcon.i +56 -0
- data/swig-interfaces/FXXBMImage.i +118 -0
- data/swig-interfaces/FXXPMIcon.i +122 -0
- data/swig-interfaces/FXXPMImage.i +56 -0
- data/swig-interfaces/README +17 -0
- data/swig-interfaces/common.i +48 -0
- data/swig-interfaces/core.i +85 -0
- data/swig-interfaces/dcmodule.i +36 -0
- data/swig-interfaces/dialogs.i +49 -0
- data/swig-interfaces/exceptions.i +249 -0
- data/swig-interfaces/framesmodule.i +54 -0
- data/swig-interfaces/freefuncs.i +93 -0
- data/swig-interfaces/fx3d.i +60 -0
- data/swig-interfaces/fxdefs.i +419 -0
- data/swig-interfaces/handlers.i +615 -0
- data/swig-interfaces/iconlistmodule.i +37 -0
- data/swig-interfaces/icons.i +48 -0
- data/swig-interfaces/ignore-message-handlers.rb +16 -0
- data/swig-interfaces/image.i +49 -0
- data/swig-interfaces/labelmodule.i +47 -0
- data/swig-interfaces/layout.i +47 -0
- data/swig-interfaces/listmodule.i +37 -0
- data/swig-interfaces/macros.i +1326 -0
- data/swig-interfaces/markfuncs.i +210 -0
- data/swig-interfaces/mdi.i +38 -0
- data/swig-interfaces/menumodule.i +44 -0
- data/swig-interfaces/ruby-typemaps.i +778 -0
- data/swig-interfaces/scintilla.i +57 -0
- data/swig-interfaces/table-module.i +36 -0
- data/swig-interfaces/text-module.i +36 -0
- data/swig-interfaces/treelist-module.i +37 -0
- data/swig-interfaces/ui.i +63 -0
- data/test/README +19 -0
- data/test/TC_FXAccelTable.rb +57 -0
- data/test/TC_FXApp.rb +66 -0
- data/test/TC_FXArc.rb +26 -0
- data/test/TC_FXBMPIcon.rb +15 -0
- data/test/TC_FXBMPImage.rb +15 -0
- data/test/TC_FXButton.rb +82 -0
- data/test/TC_FXCheckButton.rb +57 -0
- data/test/TC_FXComboBox.rb +72 -0
- data/test/TC_FXDC.rb +372 -0
- data/test/TC_FXDCPrint.rb +102 -0
- data/test/TC_FXDCWindow.rb +25 -0
- data/test/TC_FXDataTarget.rb +24 -0
- data/test/TC_FXDialogBox.rb +12 -0
- data/test/TC_FXDirList.rb +30 -0
- data/test/TC_FXExtentd.rb +21 -0
- data/test/TC_FXExtentf.rb +21 -0
- data/test/TC_FXFileAssoc.rb +62 -0
- data/test/TC_FXFileStream.rb +89 -0
- data/test/TC_FXFoldingList.rb +32 -0
- data/test/TC_FXFont.rb +69 -0
- data/test/TC_FXFontDesc.rb +58 -0
- data/test/TC_FXGLGroup.rb +32 -0
- data/test/TC_FXGLShape.rb +28 -0
- data/test/TC_FXGLViewer.rb +29 -0
- data/test/TC_FXGradientBar.rb +89 -0
- data/test/TC_FXHeader.rb +82 -0
- data/test/TC_FXHiliteStyle.rb +23 -0
- data/test/TC_FXIconDict.rb +52 -0
- data/test/TC_FXIconList.rb +192 -0
- data/test/TC_FXId.rb +19 -0
- data/test/TC_FXImage.rb +188 -0
- data/test/TC_FXLight.rb +33 -0
- data/test/TC_FXList.rb +125 -0
- data/test/TC_FXListBox.rb +49 -0
- data/test/TC_FXMainWindow.rb +19 -0
- data/test/TC_FXMat4f.rb +228 -0
- data/test/TC_FXMaterial.rb +75 -0
- data/test/TC_FXMemoryStream.rb +97 -0
- data/test/TC_FXMenuCheck.rb +57 -0
- data/test/TC_FXMenuCommand.rb +12 -0
- data/test/TC_FXMenuRadio.rb +57 -0
- data/test/TC_FXMessageBox.rb +29 -0
- data/test/TC_FXPoint.rb +57 -0
- data/test/TC_FXQuatf.rb +93 -0
- data/test/TC_FXRadioButton.rb +57 -0
- data/test/TC_FXRanged.rb +42 -0
- data/test/TC_FXRangef.rb +42 -0
- data/test/TC_FXRectangle.rb +88 -0
- data/test/TC_FXRegion.rb +54 -0
- data/test/TC_FXRegistry.rb +27 -0
- data/test/TC_FXScrollArea.rb +32 -0
- data/test/TC_FXScrollWindow.rb +28 -0
- data/test/TC_FXSegment.rb +22 -0
- data/test/TC_FXSettings.rb +34 -0
- data/test/TC_FXShell.rb +30 -0
- data/test/TC_FXSize.rb +54 -0
- data/test/TC_FXStream.rb +11 -0
- data/test/TC_FXTable.rb +561 -0
- data/test/TC_FXTableItem.rb +48 -0
- data/test/TC_FXText.rb +105 -0
- data/test/TC_FXTopWindow.rb +36 -0
- data/test/TC_FXTreeList.rb +100 -0
- data/test/TC_FXTreeListBox.rb +41 -0
- data/test/TC_FXUndoList.rb +43 -0
- data/test/TC_FXVec2d.rb +142 -0
- data/test/TC_FXVec2f.rb +137 -0
- data/test/TC_FXVec3d.rb +150 -0
- data/test/TC_FXVec3f.rb +150 -0
- data/test/TC_FXVec4f.rb +158 -0
- data/test/TC_FXViewport.rb +30 -0
- data/test/TC_FXXBMIcon.rb +15 -0
- data/test/TC_FXXBMImage.rb +15 -0
- data/test/TC_FXXPMIcon.rb +15 -0
- data/test/TC_FXXPMImage.rb +15 -0
- data/test/TC_Misc.rb +161 -0
- data/test/TC_downcast.rb +15 -0
- data/test/TS_All.rb +9 -0
- data/test/blankpage.ps +166 -0
- data/test/howdypage.ps +181 -0
- data/test/stress1.rb +92 -0
- data/test/stress2.rb +51 -0
- data/test/stress3.rb +117 -0
- data/test/testcase.rb +37 -0
- metadata +1134 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,222 @@
|
|
1
|
+
module Fox
|
2
|
+
#
|
3
|
+
# The FXBitmapView widget displays a scrollable view of a bitmap.
|
4
|
+
#
|
5
|
+
# === Bitmap alignment styles
|
6
|
+
#
|
7
|
+
# +BITMAPVIEW_NORMAL+:: Normal mode is centered
|
8
|
+
# +BITMAPVIEW_CENTER_X+:: Centered horizontally
|
9
|
+
# +BITMAPVIEW_LEFT+:: Left-aligned
|
10
|
+
# +BITMAPVIEW_RIGHT+:: Right-aligned
|
11
|
+
# +BITMAPVIEW_CENTER_Y+:: Centered vertically
|
12
|
+
# +BITMAPVIEW_TOP+:: Top-aligned
|
13
|
+
# +BITMAPVIEW_BOTTOM+:: Bottom-aligned
|
14
|
+
#
|
15
|
+
# === Events
|
16
|
+
#
|
17
|
+
# +SEL_RIGHTBUTTONPRESS+:: sent when the right mouse button goes down; the message data is an FXEvent instance.
|
18
|
+
# +SEL_RIGHTBUTTONRELEASE+:: sent when the right mouse button goes up; the message data is an FXEvent instance.
|
19
|
+
#
|
20
|
+
class FXBitmapView < FXScrollArea
|
21
|
+
|
22
|
+
# Bitmap alignment styles
|
23
|
+
BITMAPVIEW_NORMAL = 0 # Normal mode is centered
|
24
|
+
BITMAPVIEW_CENTER_X = 0 # Centered horizontally
|
25
|
+
BITMAPVIEW_LEFT = 0x00100000 # Left-aligned
|
26
|
+
BITMAPVIEW_RIGHT = 0x00200000 # Right-aligned
|
27
|
+
BITMAPVIEW_CENTER_Y = 0, # Centered vertically
|
28
|
+
BITMAPVIEW_TOP = 0x00400000 # Top-aligned
|
29
|
+
BITMAPVIEW_BOTTOM = 0x00800000 # Bottom-aligned
|
30
|
+
|
31
|
+
#
|
32
|
+
# Return an initialized FXBitmapView instance.
|
33
|
+
#
|
34
|
+
def initialize(p, bmp=nil, tgt=nil, sel=0, opts=0, x=0, y=0, w=0, h=0) # :yields: theBitmapView
|
35
|
+
super(p, opts, x, y, w, h)
|
36
|
+
self.flags |= FLAG_ENABLED
|
37
|
+
self.target = tgt
|
38
|
+
self.message = sel
|
39
|
+
@bitmap = bmp
|
40
|
+
@onColor = Fox.FXRGB(0, 0, 0)
|
41
|
+
@offColor = backColor
|
42
|
+
@grabx = 0
|
43
|
+
@graby = 0
|
44
|
+
end
|
45
|
+
|
46
|
+
def create
|
47
|
+
super
|
48
|
+
bitmap.create unless bitmap.nil?
|
49
|
+
end
|
50
|
+
|
51
|
+
def detach
|
52
|
+
super
|
53
|
+
bitmap.detach unless bitmap.nil?
|
54
|
+
end
|
55
|
+
|
56
|
+
def canFocus
|
57
|
+
true
|
58
|
+
end
|
59
|
+
|
60
|
+
def getContentWidth
|
61
|
+
bitmap.nil? ? 1 : bitmap.width
|
62
|
+
end
|
63
|
+
|
64
|
+
def getContentHeight
|
65
|
+
bitmap.nil? ? 1 : bitmap.height
|
66
|
+
end
|
67
|
+
|
68
|
+
def layout
|
69
|
+
super
|
70
|
+
update
|
71
|
+
self.flags &= ~FLAG_DIRTY
|
72
|
+
end
|
73
|
+
|
74
|
+
# Handle expose (paint) event
|
75
|
+
def onPaint(sender, sel, event)
|
76
|
+
FXDCWindow.new(self, event) do |dc|
|
77
|
+
unless bitmap.nil?
|
78
|
+
ww = bitmap.width
|
79
|
+
hh = bitmap.height
|
80
|
+
xx = pos_x
|
81
|
+
yy = pos_y
|
82
|
+
if ww < viewport_w
|
83
|
+
if (options & BITMAPVIEW_LEFT) != 0
|
84
|
+
xx = 0
|
85
|
+
elsif (options & BITMAPVIEW_RIGHT) != 0
|
86
|
+
xx = viewport_w - ww
|
87
|
+
else
|
88
|
+
xx = (viewport_w - ww)/2
|
89
|
+
end
|
90
|
+
end
|
91
|
+
if hh < viewport_h
|
92
|
+
if (options & BITMAPVIEW_TOP) != 0
|
93
|
+
yy = 0
|
94
|
+
elsif (options & BITMAPVIEW_BOTTOM) != 0
|
95
|
+
yy = viewport_h - hh
|
96
|
+
else
|
97
|
+
yy = (viewport_h - hh)/2
|
98
|
+
end
|
99
|
+
end
|
100
|
+
dc.foreground = onColor
|
101
|
+
dc.background = offColor
|
102
|
+
dc.drawBitmap(bitmap, xx, yy)
|
103
|
+
dc.foreground = backColor
|
104
|
+
xl = xx; xr = xx + ww
|
105
|
+
yt = yy; yb = yy + hh
|
106
|
+
xl = 0 if (xl < 0)
|
107
|
+
xr = viewport_w if (xr > viewport_w)
|
108
|
+
yt = 0 if (yt < 0)
|
109
|
+
yb = viewport_h if (yb > viewport_h)
|
110
|
+
dc.fillRectangle(0, 0, xr, yt)
|
111
|
+
dc.fillRectangle(0, yt, xl, viewport_h - yt)
|
112
|
+
dc.fillRectangle(xr, 0, viewport_w - xr, yb)
|
113
|
+
dc.fillRectangle(xl, yb, viewport_w - xl, viewport_h - yb)
|
114
|
+
else
|
115
|
+
dc.foreground = backColor
|
116
|
+
dc.fillRectangle(0, 0, width, height)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# Handle right mouse button press
|
122
|
+
def onRightBtnPress(sender, sel, ev)
|
123
|
+
self.flags &= ~FLAG_TIP
|
124
|
+
handle(self, Fox.FXSEL(SEL_FOCUS_SELF, 0), ev)
|
125
|
+
if enabled?
|
126
|
+
grab
|
127
|
+
if target && target.handle(self, Fox.FXSEL(SEL_RIGHTBUTTONPRESS, message), ev) != 0
|
128
|
+
return 1
|
129
|
+
end
|
130
|
+
self.flags &= ~FLAG_UPDATE
|
131
|
+
self.flags |= FLAG_PRESSED|FLAG_SCROLLING
|
132
|
+
@grabx = ev.win_x - pos_x
|
133
|
+
@graby = ev.win_y - pos_y
|
134
|
+
return 1
|
135
|
+
end
|
136
|
+
return 0
|
137
|
+
end
|
138
|
+
|
139
|
+
# Handle right mouse button release
|
140
|
+
def onRightBtnRelease(sender, sel, ev)
|
141
|
+
if enabled?
|
142
|
+
ungrab
|
143
|
+
self.flags &= ~(FLAG_PRESSED|FLAG_SCROLLING)
|
144
|
+
self.flags |= FLAG_UPDATE
|
145
|
+
if target && target.handle(self, Fox.FXSEL(SEL_RIGHTBUTTONPRESS, message), ev) != 0
|
146
|
+
return 1
|
147
|
+
end
|
148
|
+
return 1
|
149
|
+
end
|
150
|
+
return 0
|
151
|
+
end
|
152
|
+
|
153
|
+
# Handle real or simulated mouse motion
|
154
|
+
def onMotion(sender, sel, ev)
|
155
|
+
if (flags & FLAG_SCROLLING) != 0
|
156
|
+
setPosition(ev.win_x - @grabx, ev.win_y - @graby)
|
157
|
+
return 1
|
158
|
+
end
|
159
|
+
return 0
|
160
|
+
end
|
161
|
+
|
162
|
+
#
|
163
|
+
# Set the bitmap for this FXBitmapView, where _bmp_ is either +nil+ or
|
164
|
+
# a reference to an FXBitmap instance.
|
165
|
+
#
|
166
|
+
def bitmap=(bmp)
|
167
|
+
@bitmap = bmp
|
168
|
+
recalc
|
169
|
+
update
|
170
|
+
end
|
171
|
+
|
172
|
+
#
|
173
|
+
# Return a reference to the bitmap (an FXBitmap instance) for this FXBitmapView,
|
174
|
+
# or +nil+ if no bitmap has been set.
|
175
|
+
#
|
176
|
+
def bitmap; @bitmap; end
|
177
|
+
|
178
|
+
# Set the color used for the "on" bits in the bitmap.
|
179
|
+
def onColor=(clr)
|
180
|
+
if clr != onColor
|
181
|
+
@onColor = clr
|
182
|
+
update
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
# Return the color used for the "on" bits in the bitmap.
|
187
|
+
def onColor; @onColor; end
|
188
|
+
|
189
|
+
# Set the color used for the "off" bits in the bitmap.
|
190
|
+
def offColor=(clr)
|
191
|
+
if clr != offColor
|
192
|
+
@offColor = clr
|
193
|
+
update
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
# Return the color used for the "off" bits in the bitmap.
|
198
|
+
def offColor; @offColor; end
|
199
|
+
|
200
|
+
#
|
201
|
+
# Set the current alignment for the bitmap inside the FXBitmapView,
|
202
|
+
# where _mode_ is some combination of the bitmap alignment flags
|
203
|
+
# listed above.
|
204
|
+
#
|
205
|
+
def alignment=(mode)
|
206
|
+
opts = (options & ~(BITMAPVIEW_LEFT|BITMAPVIEW_RIGHT|BITMAPVIEW_TOP|BITMAPVIEW_BOTTOM)) |
|
207
|
+
(mode & (BITMAPVIEW_LEFT|BITMAPVIEW_RIGHT|BITMAPVIEW_TOP|BITMAPVIEW_BOTTOM))
|
208
|
+
if options != opts
|
209
|
+
@options = opts
|
210
|
+
update
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
#
|
215
|
+
# Return the current alignment for the bitmap inside the
|
216
|
+
# FXBitmapView.
|
217
|
+
#
|
218
|
+
def alignment
|
219
|
+
options & (BITMAPVIEW_LEFT|BITMAPVIEW_RIGHT|BITMAPVIEW_TOP|BITMAPVIEW_BOTTOM)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
@@ -0,0 +1,217 @@
|
|
1
|
+
#
|
2
|
+
# Calendar widget, contributed by
|
3
|
+
# David Naseby (david.naseby@eonesolutions.com.au).
|
4
|
+
#
|
5
|
+
# Still could use methods for:
|
6
|
+
#
|
7
|
+
# * Get and set the day-of-the-month button properties (e.g. "poppy"
|
8
|
+
# style buttons versus regular pushbuttons)
|
9
|
+
# * Setting the date explicitly, possibly also messages like
|
10
|
+
# "advance/back up one day", "advance/back up one month", etc.
|
11
|
+
#
|
12
|
+
# * Should it have a display-only mode? In other words, buttons
|
13
|
+
# aren't clickable, just labels?
|
14
|
+
#
|
15
|
+
# Harry Ohlsen (harryo@zip.com.au) also suggests a facility to jump
|
16
|
+
# backward or forward a year at a time.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'fox16/colors'
|
20
|
+
|
21
|
+
module Fox
|
22
|
+
|
23
|
+
# Calendar-specific options
|
24
|
+
CALENDAR_NORMAL = 0
|
25
|
+
CALENDAR_READONLY = 0x00020000
|
26
|
+
|
27
|
+
#
|
28
|
+
# Calendar widget
|
29
|
+
#
|
30
|
+
# == Events
|
31
|
+
#
|
32
|
+
# The following messages are sent by FXCalendar to its target:
|
33
|
+
#
|
34
|
+
# +SEL_COMMAND+:: sent when a day button is clicked; the message data is a Time object indicating the selected date
|
35
|
+
#
|
36
|
+
# == Calendar options
|
37
|
+
#
|
38
|
+
# +CALENDAR_NORMAL+:: normal display mode
|
39
|
+
# +CALENDAR_READONLY+:: read-only mode
|
40
|
+
#
|
41
|
+
class FXCalendar < FXVerticalFrame
|
42
|
+
|
43
|
+
DAYS = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
|
44
|
+
|
45
|
+
# Currently selected date [Time]
|
46
|
+
attr_reader :selected
|
47
|
+
|
48
|
+
# Font used for days [FXFont]
|
49
|
+
attr_reader :dayLabelFont
|
50
|
+
|
51
|
+
#
|
52
|
+
# Returns an initialized calendar widget
|
53
|
+
#
|
54
|
+
def initialize(parent, initial_date=Time.now, tgt=nil, sel=0, opts=0, x=0, y=0, w=0, h=0, pl=DEFAULT_PAD, pr=DEFAULT_PAD, pt=DEFAULT_PAD, pb=DEFAULT_PAD)
|
55
|
+
# Initialize the base class first
|
56
|
+
super(parent, opts, x, y, w, h, pl, pr, pt, pb)
|
57
|
+
|
58
|
+
# Save target and selector
|
59
|
+
self.target = tgt
|
60
|
+
self.selector = sel
|
61
|
+
|
62
|
+
@headerBGColor = FXColor::Black
|
63
|
+
@headerFGColor = FXColor::White
|
64
|
+
@dayLabelFont = FXFont.new(getApp, "helvetica", 7)
|
65
|
+
|
66
|
+
@date_showing = initial_date
|
67
|
+
|
68
|
+
# Header row
|
69
|
+
@header = FXHorizontalFrame.new(self, LAYOUT_FILL_X)
|
70
|
+
@header.backColor = @headerBGColor
|
71
|
+
@backBtn = FXArrowButton.new(@header, nil, 0, FRAME_RAISED|FRAME_THICK|ARROW_LEFT|ARROW_REPEAT)
|
72
|
+
@backBtn.connect(SEL_COMMAND) do |send, sel, ev|
|
73
|
+
@date_showing = _last_month
|
74
|
+
_build_date_matrix
|
75
|
+
@current_month.text = _header_date
|
76
|
+
end
|
77
|
+
@current_month = FXLabel.new(@header, _header_date, nil,
|
78
|
+
LAYOUT_FILL_X|JUSTIFY_CENTER_X|LAYOUT_FILL_Y)
|
79
|
+
@current_month.backColor = @headerBGColor
|
80
|
+
@current_month.textColor = @headerFGColor
|
81
|
+
@foreBtn = FXArrowButton.new(@header, nil, 0, FRAME_RAISED|FRAME_THICK|ARROW_RIGHT|ARROW_REPEAT)
|
82
|
+
@foreBtn.connect(SEL_COMMAND) do |send, sel, ev|
|
83
|
+
@date_showing = _next_month
|
84
|
+
_build_date_matrix
|
85
|
+
@current_month.text = _header_date
|
86
|
+
end
|
87
|
+
|
88
|
+
@matrix = FXMatrix.new(self, 7,
|
89
|
+
MATRIX_BY_COLUMNS|LAYOUT_FILL_X|LAYOUT_FILL_Y|PACK_UNIFORM_WIDTH|FRAME_RAISED,
|
90
|
+
0, 0, 0, 0, 0, 0, 0, 0)
|
91
|
+
DAYS.each { |day| _add_matrix_label(day) }
|
92
|
+
(7*6 - 1).times do
|
93
|
+
s = FXSwitcher.new(@matrix,
|
94
|
+
LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_FILL_ROW|LAYOUT_FILL_COLUMN, 0,0,0,0,0,0,0,0)
|
95
|
+
FXFrame.new(s, LAYOUT_FILL_X|LAYOUT_FILL_Y, 0,0,0,0,0,0,0,0)
|
96
|
+
btn = FXButton.new(s, '99', nil, nil, 0,
|
97
|
+
LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_RAISED|FRAME_THICK,
|
98
|
+
0,0,0,0,0,0,0,0)
|
99
|
+
btn.connect(SEL_COMMAND) do |send, sel, ev|
|
100
|
+
@selected = Time.local(@date_showing.year, @date_showing.month,
|
101
|
+
send.text.to_i)
|
102
|
+
target.handle(self, MKUINT(selector, SEL_COMMAND), @selected) if target
|
103
|
+
end
|
104
|
+
end
|
105
|
+
_build_date_matrix()
|
106
|
+
end
|
107
|
+
|
108
|
+
# Return the current header background color
|
109
|
+
def headerBackColor
|
110
|
+
@headerBGColor
|
111
|
+
end
|
112
|
+
|
113
|
+
# Set the header background color
|
114
|
+
def headerBackColor=(clr)
|
115
|
+
@headerBGColor = clr
|
116
|
+
@header.backColor = clr
|
117
|
+
@current_month.backColor = clr
|
118
|
+
DAYS.each_index { |i| @matrix.childAtIndex(i).backColor = clr }
|
119
|
+
end
|
120
|
+
|
121
|
+
# Return the current header text color
|
122
|
+
def headerTextColor
|
123
|
+
@headerFGColor
|
124
|
+
end
|
125
|
+
|
126
|
+
# Set the header text color
|
127
|
+
def headerTextColor=(clr)
|
128
|
+
@headerFGColor = clr
|
129
|
+
@current_month.textColor = clr
|
130
|
+
DAYS.each_index { |i| @matrix.childAtIndex(i).textColor = clr }
|
131
|
+
end
|
132
|
+
|
133
|
+
# Change the font used for the days of the weeks
|
134
|
+
def dayLabelFont=(font)
|
135
|
+
if @dayLabelFont != font
|
136
|
+
@dayLabelFont = font
|
137
|
+
DAYS.each_index { |i| @matrix.childAtIndex(i).font = font }
|
138
|
+
update
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
private
|
143
|
+
def _header_date()
|
144
|
+
@date_showing.strftime("%B, %Y")
|
145
|
+
end
|
146
|
+
|
147
|
+
def _first_day
|
148
|
+
Time.local(@date_showing.year, @date_showing.month, 1)
|
149
|
+
end
|
150
|
+
|
151
|
+
def _last_day
|
152
|
+
year = @date_showing.year
|
153
|
+
month = @date_showing.month+1
|
154
|
+
if month > 12
|
155
|
+
year += 1
|
156
|
+
month = 1
|
157
|
+
end
|
158
|
+
Time.local(year, month, 1) - (60*60*24)
|
159
|
+
end
|
160
|
+
|
161
|
+
def _last_month
|
162
|
+
year = @date_showing.year
|
163
|
+
month = @date_showing.month - 1
|
164
|
+
if month < 1
|
165
|
+
year -= 1
|
166
|
+
month = 12
|
167
|
+
end
|
168
|
+
Time.local(year, month)
|
169
|
+
end
|
170
|
+
|
171
|
+
def _next_month
|
172
|
+
year = @date_showing.year
|
173
|
+
month = @date_showing.month + 1
|
174
|
+
if month > 12
|
175
|
+
year +=1
|
176
|
+
month = 1
|
177
|
+
end
|
178
|
+
Time.local(year, month)
|
179
|
+
end
|
180
|
+
|
181
|
+
def _build_date_matrix
|
182
|
+
(0...6*7-1).each do |index|
|
183
|
+
@matrix.childAtRowCol(index/7+1, index.modulo(7)).setCurrent(0)
|
184
|
+
end
|
185
|
+
(_first_day.wday... _last_day.day+_first_day.wday).each do |index|
|
186
|
+
day = index - _first_day.wday + 1
|
187
|
+
switcher = @matrix.childAtRowCol(index/7 + 1, index.modulo(7))
|
188
|
+
switcher.setCurrent(1)
|
189
|
+
switcher.childAtIndex(1).text = day.to_s
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
def _add_matrix_label(label)
|
194
|
+
l = FXLabel.new(@matrix, label, nil,
|
195
|
+
LAYOUT_FILL_X|LAYOUT_FILL_COLUMN|JUSTIFY_CENTER_X|FRAME_SUNKEN)
|
196
|
+
l.backColor = @headerBGColor
|
197
|
+
l.textColor = @headerFGColor
|
198
|
+
l.font = @dayLabelFont
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
if __FILE__ == $0
|
204
|
+
|
205
|
+
include Fox
|
206
|
+
|
207
|
+
app = FXApp.new('Calendar', 'FXRuby')
|
208
|
+
app.init(ARGV)
|
209
|
+
mainwin = FXMainWindow.new(app, "Calendar Test", nil, nil, DECOR_ALL, 0, 0, 500, 500)
|
210
|
+
calendar = FXCalendar.new(mainwin, Time.now, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
211
|
+
calendar.connect(SEL_COMMAND) do |sender, sel, data|
|
212
|
+
puts data.to_s
|
213
|
+
end
|
214
|
+
app.create
|
215
|
+
mainwin.show(PLACEMENT_SCREEN)
|
216
|
+
app.run
|
217
|
+
end
|
data/lib/fox16/canvas.rb
ADDED
@@ -0,0 +1,606 @@
|
|
1
|
+
module Fox
|
2
|
+
#
|
3
|
+
# The Canvas module defines a framework similar to that provided by Tk's Canvas
|
4
|
+
# widget (and subsequent improvements, such as GNOME's Canvas and wxWindows'
|
5
|
+
# Object Graphics Library).
|
6
|
+
#
|
7
|
+
# Links
|
8
|
+
# =====
|
9
|
+
#
|
10
|
+
# Tk's Canvas Widget
|
11
|
+
# http://starship.python.net/crew/fredrik/tkmanual/canvas.html
|
12
|
+
# http://www.dci.clrc.ac.uk/Publications/Cookbook/chap4.html
|
13
|
+
#
|
14
|
+
# GNOME's Canvas Widget
|
15
|
+
# http://developer.gnome.org/doc/whitepapers/canvas/canvas.html
|
16
|
+
#
|
17
|
+
module Canvas
|
18
|
+
|
19
|
+
class CanvasError < Exception
|
20
|
+
end
|
21
|
+
|
22
|
+
class Shape
|
23
|
+
|
24
|
+
attr_accessor :x, :y, :foreground, :target, :selector
|
25
|
+
|
26
|
+
def initialize(x, y)
|
27
|
+
@enabled = true
|
28
|
+
@visible = true
|
29
|
+
@selected = false
|
30
|
+
@draggable = false
|
31
|
+
@x = x
|
32
|
+
@y = y
|
33
|
+
@foreground = FXRGB(0, 0, 0)
|
34
|
+
@target = nil
|
35
|
+
@selector = 0
|
36
|
+
end
|
37
|
+
|
38
|
+
# Return the bounding box for this shape
|
39
|
+
def bounds
|
40
|
+
FXRectangle.new(x, y, width, height)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Hit test
|
44
|
+
def hit?(xpos, ypos)
|
45
|
+
(xpos >= x) && (xpos < x+width) && (ypos >= y) && (ypos < y+height)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Move shape to specified position
|
49
|
+
def move(x, y)
|
50
|
+
@x, @y = x, y
|
51
|
+
end
|
52
|
+
|
53
|
+
# Resize shape to specified width and height
|
54
|
+
def resize(w, h)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Move and resize the shape
|
58
|
+
def position(x, y, w, h)
|
59
|
+
move(x, y)
|
60
|
+
resize(w, h)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Enable this shape
|
64
|
+
def enable
|
65
|
+
@enabled = true
|
66
|
+
end
|
67
|
+
|
68
|
+
# Disable this shape
|
69
|
+
def disable
|
70
|
+
@enabled = false
|
71
|
+
end
|
72
|
+
|
73
|
+
# Is this shape enabled?
|
74
|
+
def enabled?
|
75
|
+
@enabled
|
76
|
+
end
|
77
|
+
|
78
|
+
# Show this shape
|
79
|
+
def show
|
80
|
+
@visible = true
|
81
|
+
end
|
82
|
+
|
83
|
+
# Hide this shape
|
84
|
+
def hide
|
85
|
+
@visible = false
|
86
|
+
end
|
87
|
+
|
88
|
+
# Is this shape visible?
|
89
|
+
def visible?
|
90
|
+
@visible
|
91
|
+
end
|
92
|
+
|
93
|
+
# Select this shape
|
94
|
+
def select
|
95
|
+
@selected = true
|
96
|
+
end
|
97
|
+
|
98
|
+
# Deselect this shape
|
99
|
+
def deselect
|
100
|
+
@selected = false
|
101
|
+
end
|
102
|
+
|
103
|
+
# Is this shape selected?
|
104
|
+
def selected?
|
105
|
+
@selected
|
106
|
+
end
|
107
|
+
|
108
|
+
# Set this shape's draggability
|
109
|
+
def draggable=(d)
|
110
|
+
@draggable = d
|
111
|
+
end
|
112
|
+
|
113
|
+
# Is this shape draggable?
|
114
|
+
def draggable?
|
115
|
+
@draggable
|
116
|
+
end
|
117
|
+
|
118
|
+
# Draw this shape into the specificed device context
|
119
|
+
def draw(dc)
|
120
|
+
end
|
121
|
+
|
122
|
+
# Draws outline
|
123
|
+
def drawOutline(dc, x, y, w, h)
|
124
|
+
points = []
|
125
|
+
points << FXPoint.new(x - 0.5*w, y - 0.5*h)
|
126
|
+
points << FXPoint.new(x + 0.5*w, y)
|
127
|
+
points << FXPoint.new(x + 0.5*w, y + 0.5*h)
|
128
|
+
points << FXPoint.new(x - 0.5*w, y + 0.5*h)
|
129
|
+
points << points[0]
|
130
|
+
dc.drawLines(points)
|
131
|
+
end
|
132
|
+
|
133
|
+
# Default: make 6 control points
|
134
|
+
def makeControlPoints
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
class ShapeGroup
|
139
|
+
|
140
|
+
include Enumerable
|
141
|
+
|
142
|
+
# Initialize this shape group
|
143
|
+
def initialize
|
144
|
+
@shapes = []
|
145
|
+
end
|
146
|
+
|
147
|
+
# Does the group contain this shape?
|
148
|
+
def include?(shape)
|
149
|
+
@shapes.include?(shape)
|
150
|
+
end
|
151
|
+
|
152
|
+
# Add a shape to this group
|
153
|
+
def addShape(shape)
|
154
|
+
@shapes << shape
|
155
|
+
end
|
156
|
+
|
157
|
+
# Remove a shape from this group
|
158
|
+
def removeShape(shape)
|
159
|
+
@shapes.remove(shape)
|
160
|
+
end
|
161
|
+
|
162
|
+
def each
|
163
|
+
@shapes.each { |shape| yield shape }
|
164
|
+
end
|
165
|
+
|
166
|
+
def reverse_each
|
167
|
+
@shapes.reverse_each { |shape| yield shape }
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
class LineShape < Shape
|
172
|
+
|
173
|
+
attr_accessor :lineWidth, :lineCap, :lineJoin, :lineStyle
|
174
|
+
attr_accessor :x1, :y1, :x2, :y2
|
175
|
+
|
176
|
+
def initialize(x1, y1, x2, y2)
|
177
|
+
super(x1, y1)
|
178
|
+
@x1, @y1, @x2, @y2 = x1, y1, x2, y2
|
179
|
+
@lineWidth = 1
|
180
|
+
@lineCap = CAP_NOT_LAST
|
181
|
+
@lineJoin = JOIN_MITER
|
182
|
+
@lineStyle = LINE_SOLID
|
183
|
+
end
|
184
|
+
|
185
|
+
def width
|
186
|
+
0
|
187
|
+
end
|
188
|
+
|
189
|
+
def height
|
190
|
+
0
|
191
|
+
end
|
192
|
+
|
193
|
+
def draw(dc)
|
194
|
+
# Save old values
|
195
|
+
oldForeground = dc.foreground
|
196
|
+
oldLineWidth = dc.lineWidth
|
197
|
+
oldLineCap = dc.lineCap
|
198
|
+
oldLineJoin = dc.lineJoin
|
199
|
+
oldLineStyle = dc.lineStyle
|
200
|
+
|
201
|
+
# Set properties for this line
|
202
|
+
dc.foreground = foreground
|
203
|
+
dc.lineWidth = lineWidth
|
204
|
+
dc.lineCap = lineCap
|
205
|
+
dc.lineJoin = lineJoin
|
206
|
+
dc.lineStyle = lineStyle
|
207
|
+
|
208
|
+
# Draw the line
|
209
|
+
dc.drawLine(x1, y1, x2, y2)
|
210
|
+
|
211
|
+
# Restore old properties
|
212
|
+
dc.lineWidth = oldLineWidth
|
213
|
+
dc.lineCap = oldLineCap
|
214
|
+
dc.lineJoin = oldLineJoin
|
215
|
+
dc.lineStyle = oldLineStyle
|
216
|
+
dc.foreground = oldForeground
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
class RectangleShape < Shape
|
221
|
+
|
222
|
+
attr_accessor :width, :height
|
223
|
+
|
224
|
+
def initialize(x, y, w, h)
|
225
|
+
super(x, y)
|
226
|
+
@width = w
|
227
|
+
@height = h
|
228
|
+
end
|
229
|
+
|
230
|
+
def draw(dc)
|
231
|
+
oldForeground = dc.foreground
|
232
|
+
dc.foreground = foreground
|
233
|
+
dc.drawRectangle(x, y, width, height)
|
234
|
+
dc.foreground = oldForeground
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
class TextShape < RectangleShape
|
239
|
+
|
240
|
+
attr_reader :font, :text
|
241
|
+
|
242
|
+
def initialize(x, y, w, h, text=nil)
|
243
|
+
super(x, y, w, h)
|
244
|
+
@text = text
|
245
|
+
@font = FXApp.instance.normalFont
|
246
|
+
end
|
247
|
+
|
248
|
+
def draw(dc)
|
249
|
+
super(dc)
|
250
|
+
oldForeground = dc.foreground
|
251
|
+
oldTextFont = dc.font
|
252
|
+
dc.font = @font
|
253
|
+
dc.drawImageText(x, y, text)
|
254
|
+
dc.font = oldTextFont if oldTextFont
|
255
|
+
dc.foreground = oldForeground
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
259
|
+
class CircleShape < Shape
|
260
|
+
|
261
|
+
attr_accessor :radius
|
262
|
+
|
263
|
+
def initialize(x, y, radius)
|
264
|
+
super(x, y)
|
265
|
+
@radius = radius
|
266
|
+
end
|
267
|
+
|
268
|
+
def width
|
269
|
+
2*radius
|
270
|
+
end
|
271
|
+
|
272
|
+
def height
|
273
|
+
2*radius
|
274
|
+
end
|
275
|
+
|
276
|
+
def draw(dc)
|
277
|
+
oldForeground = dc.foreground
|
278
|
+
oldLineWidth = dc.lineWidth
|
279
|
+
dc.foreground = foreground
|
280
|
+
dc.lineWidth = 5 if selected?
|
281
|
+
dc.drawArc(x, y, width, height, 0, 64*180)
|
282
|
+
dc.drawArc(x, y, width, height, 64*180, 64*360)
|
283
|
+
dc.foreground = oldForeground
|
284
|
+
dc.lineWidth = oldLineWidth
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
class PolygonShape < Shape
|
289
|
+
end
|
290
|
+
|
291
|
+
class ImageShape < Shape
|
292
|
+
|
293
|
+
attr_accessor :image
|
294
|
+
|
295
|
+
def initialize(x, y, image)
|
296
|
+
@image = image
|
297
|
+
end
|
298
|
+
|
299
|
+
def draw(dc)
|
300
|
+
dc.drawImage(image)
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
304
|
+
# Base class for canvas selection policies
|
305
|
+
class SelectionPolicy
|
306
|
+
def initialize(canvas)
|
307
|
+
@canvas = canvas
|
308
|
+
end
|
309
|
+
|
310
|
+
def selectShape(shape, notify)
|
311
|
+
unless shape.selected?
|
312
|
+
shape.select
|
313
|
+
@canvas.updateShape(shape)
|
314
|
+
if notify && (@canvas.target != nil)
|
315
|
+
@canvas.target.handle(@canvas, MKUINT(@canvas.message, SEL_SELECTED), shape)
|
316
|
+
end
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
def deselectShape(shape, notify)
|
321
|
+
if shape.selected?
|
322
|
+
shape.deselect
|
323
|
+
@canvas.updateShape(shape)
|
324
|
+
if notify && (@canvas.target != nil)
|
325
|
+
@canvas.target.handle(@canvas, MKUINT(@canvas.message, SEL_DESELECTED), shape)
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
# Single shape selected at one time
|
332
|
+
class SingleSelectionPolicy < SelectionPolicy
|
333
|
+
def initialize(canvas)
|
334
|
+
super
|
335
|
+
end
|
336
|
+
|
337
|
+
def selectShape(shape, notify)
|
338
|
+
unless shape.selected?
|
339
|
+
@canvas.killSelection(notify)
|
340
|
+
end
|
341
|
+
super
|
342
|
+
end
|
343
|
+
end
|
344
|
+
|
345
|
+
class ShapeCanvas < FXCanvas
|
346
|
+
|
347
|
+
# Window state flags
|
348
|
+
FLAG_SHOWN = 0x00000001 # Is shown
|
349
|
+
FLAG_ENABLED = 0x00000002 # Able to receive input
|
350
|
+
FLAG_UPDATE = 0x00000004 # Is subject to GUI update
|
351
|
+
FLAG_DROPTARGET = 0x00000008 # Drop target
|
352
|
+
FLAG_FOCUSED = 0x00000010 # Has focus
|
353
|
+
FLAG_DIRTY = 0x00000020 # Needs layout
|
354
|
+
FLAG_RECALC = 0x00000040 # Needs recalculation
|
355
|
+
FLAG_TIP = 0x00000080 # Show tip
|
356
|
+
FLAG_HELP = 0x00000100 # Show help
|
357
|
+
FLAG_DEFAULT = 0x00000200 # Default widget
|
358
|
+
FLAG_INITIAL = 0x00000400 # Initial widget
|
359
|
+
FLAG_SHELL = 0x00000800 # Shell window
|
360
|
+
FLAG_ACTIVE = 0x00001000 # Window is active
|
361
|
+
FLAG_PRESSED = 0x00002000 # Button has been pressed
|
362
|
+
FLAG_KEY = 0x00004000 # Keyboard key pressed
|
363
|
+
FLAG_CARET = 0x00008000 # Caret is on
|
364
|
+
FLAG_CHANGED = 0x00010000 # Window data changed
|
365
|
+
FLAG_LASSO = 0x00020000 # Lasso mode
|
366
|
+
FLAG_TRYDRAG = 0x00040000 # Tentative drag mode
|
367
|
+
FLAG_DODRAG = 0x00080000 # Doing drag mode
|
368
|
+
FLAG_SCROLLINSIDE = 0x00100000 # Scroll only when inside
|
369
|
+
FLAG_SCROLLING = 0x00200000 # Right mouse scrolling
|
370
|
+
|
371
|
+
include Responder
|
372
|
+
|
373
|
+
attr_accessor :scene
|
374
|
+
|
375
|
+
def initialize(p, tgt=nil, sel=0, opts=FRAME_NORMAL, x=0, y=0, w=0, h=0)
|
376
|
+
# Initialize base class
|
377
|
+
super(p, tgt, sel, opts, x, y, w, h)
|
378
|
+
|
379
|
+
# Start with an empty group
|
380
|
+
@scene = ShapeGroup.new
|
381
|
+
|
382
|
+
# Selection policy
|
383
|
+
@selectionPolicy = SingleSelectionPolicy.new(self)
|
384
|
+
|
385
|
+
@flags = 0
|
386
|
+
|
387
|
+
# Map
|
388
|
+
FXMAPFUNC(SEL_PAINT, 0, "onPaint")
|
389
|
+
FXMAPFUNC(SEL_MOTION, 0, "onMotion")
|
390
|
+
FXMAPFUNC(SEL_LEFTBUTTONPRESS, 0, "onLeftBtnPress")
|
391
|
+
FXMAPFUNC(SEL_LEFTBUTTONRELEASE, 0, "onLeftBtnRelease")
|
392
|
+
FXMAPFUNC(SEL_CLICKED,0,"onClicked")
|
393
|
+
FXMAPFUNC(SEL_DOUBLECLICKED,0,"onDoubleClicked")
|
394
|
+
FXMAPFUNC(SEL_TRIPLECLICKED,0,"onTripleClicked")
|
395
|
+
FXMAPFUNC(SEL_COMMAND,0,"onCommand")
|
396
|
+
end
|
397
|
+
|
398
|
+
# Find the shape of the least depth containing this point
|
399
|
+
def findShape(x, y)
|
400
|
+
@scene.reverse_each do |shape|
|
401
|
+
return shape if shape.hit?(x, y)
|
402
|
+
end
|
403
|
+
nil
|
404
|
+
end
|
405
|
+
|
406
|
+
# Repaint
|
407
|
+
def updateShape(shape)
|
408
|
+
if @scene.include?(shape)
|
409
|
+
update
|
410
|
+
else
|
411
|
+
raise CanvasError
|
412
|
+
end
|
413
|
+
end
|
414
|
+
|
415
|
+
# Enable one shape
|
416
|
+
def enableShape(shape)
|
417
|
+
if @scene.include?(shape)
|
418
|
+
unless shape.enabled?
|
419
|
+
shape.enable
|
420
|
+
updateShape(shape)
|
421
|
+
end
|
422
|
+
else
|
423
|
+
raise CanvasError
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
427
|
+
# Disable one shape
|
428
|
+
def disableShape(shape)
|
429
|
+
if @scene.include?(shape)
|
430
|
+
if shape.enabled?
|
431
|
+
shape.disable
|
432
|
+
updateShape(shape)
|
433
|
+
end
|
434
|
+
else
|
435
|
+
raise CanvasError
|
436
|
+
end
|
437
|
+
end
|
438
|
+
|
439
|
+
# Select one shape
|
440
|
+
def selectShape(shape, notify=false)
|
441
|
+
if @scene.include?(shape)
|
442
|
+
@selectionPolicy.selectShape(shape, notify)
|
443
|
+
else
|
444
|
+
raise CanvasError
|
445
|
+
end
|
446
|
+
end
|
447
|
+
|
448
|
+
# Deselect one shape
|
449
|
+
def deselectShape(shape, notify=false)
|
450
|
+
if @scene.include?(shape)
|
451
|
+
@selectionPolicy.deselectShape(shape, notify)
|
452
|
+
else
|
453
|
+
raise CanvasError
|
454
|
+
end
|
455
|
+
end
|
456
|
+
|
457
|
+
# Kill selection
|
458
|
+
def killSelection(notify)
|
459
|
+
changes = false
|
460
|
+
@scene.each do |shape|
|
461
|
+
if shape.selected?
|
462
|
+
shape.deselect
|
463
|
+
updateShape(shape)
|
464
|
+
changes = true
|
465
|
+
if notify && (target != nil)
|
466
|
+
target.handle(self, MKUINT(message, SEL_DESELECTED), shape)
|
467
|
+
end
|
468
|
+
end
|
469
|
+
end
|
470
|
+
changes
|
471
|
+
end
|
472
|
+
|
473
|
+
# Paint
|
474
|
+
def onPaint(sender, sel, evt)
|
475
|
+
dc = FXDCWindow.new(self, evt)
|
476
|
+
dc.foreground = backColor
|
477
|
+
dc.fillRectangle(evt.rect.x, evt.rect.y, evt.rect.w, evt.rect.h)
|
478
|
+
@scene.each do |shape|
|
479
|
+
shape.draw(dc)
|
480
|
+
end
|
481
|
+
dc.end
|
482
|
+
return 1
|
483
|
+
end
|
484
|
+
|
485
|
+
# Motion
|
486
|
+
def onMotion(sender, sel, evt)
|
487
|
+
# Drag and drop mode
|
488
|
+
if (@flags & FLAG_DODRAG) != 0
|
489
|
+
handle(self, MKUINT(0, SEL_DRAGGED), evt)
|
490
|
+
return 1
|
491
|
+
end
|
492
|
+
|
493
|
+
# Tentative drag and drop
|
494
|
+
if (@flags & FLAG_TRYDRAG) != 0
|
495
|
+
if evt.moved?
|
496
|
+
@flags &= ~FLAG_TRYDRAG
|
497
|
+
if handle(this, MKUINT(0, SEL_BEGINDRAG), evt) != 0
|
498
|
+
@flags |= FLAG_DODRAG
|
499
|
+
end
|
500
|
+
end
|
501
|
+
return 1
|
502
|
+
end
|
503
|
+
end
|
504
|
+
|
505
|
+
# Left button press
|
506
|
+
def onLeftBtnPress(sender, sel, evt)
|
507
|
+
handle(self, MKUINT(0, SEL_FOCUS_SELF), evt)
|
508
|
+
if enabled?
|
509
|
+
grab
|
510
|
+
flags &= ~FLAG_UPDATE
|
511
|
+
|
512
|
+
# Give target the first chance at handling this
|
513
|
+
return 1 if target && (target.handle(self, MKUINT(message, SEL_LEFTBUTTONPRESS), evt) != 0)
|
514
|
+
|
515
|
+
# Locate shape
|
516
|
+
shape = findShape(evt.win_x, evt.win_y)
|
517
|
+
|
518
|
+
# No shape here
|
519
|
+
if shape.nil?
|
520
|
+
return 1
|
521
|
+
end
|
522
|
+
|
523
|
+
# Change current shape
|
524
|
+
@currentShape = shape
|
525
|
+
|
526
|
+
# Change item selection
|
527
|
+
if shape.enabled? && !shape.selected?
|
528
|
+
selectShape(shape, true)
|
529
|
+
end
|
530
|
+
|
531
|
+
# Are we dragging?
|
532
|
+
if shape.selected? && shape.draggable?
|
533
|
+
flags |= FLAG_TRYDRAG
|
534
|
+
end
|
535
|
+
|
536
|
+
flags |= FLAG_PRESSED
|
537
|
+
return 1
|
538
|
+
end
|
539
|
+
return 0
|
540
|
+
end
|
541
|
+
|
542
|
+
# Left button release
|
543
|
+
def onLeftBtnRelease(sender, sel, evt)
|
544
|
+
flg = @flags
|
545
|
+
if enabled?
|
546
|
+
ungrab
|
547
|
+
@flags |= FLAG_UPDATE
|
548
|
+
@flags &= ~(FLAG_PRESSED|FLAG_TRYDRAG|FLAG_LASSO|FLAG_DODRAG)
|
549
|
+
|
550
|
+
# First chance callback
|
551
|
+
return 1 if target && target.handle(self, MKUINT(message, SEL_LEFTBUTTONRELEASE), evt) != 0
|
552
|
+
|
553
|
+
# Was dragging
|
554
|
+
if (flg & FLAG_DODRAG) != 0
|
555
|
+
handle(self, MKUINT(0, SEL_ENDDRAG), evt)
|
556
|
+
return 1
|
557
|
+
end
|
558
|
+
|
559
|
+
# Must have pressed
|
560
|
+
if (flg & FLAG_PRESSED) != 0
|
561
|
+
# Change selection
|
562
|
+
if @currentShape && @currentShape.enabled?
|
563
|
+
deselectShape(@currentShape, true)
|
564
|
+
end
|
565
|
+
|
566
|
+
# Generate clicked callbacks
|
567
|
+
if evt.click_count == 1
|
568
|
+
handle(self, MKUINT(0, SEL_CLICKED), @currentShape)
|
569
|
+
elsif evt.click_count == 2
|
570
|
+
handle(self, MKUINT(0, SEL_DOUBLECLICKED), @currentShape)
|
571
|
+
elseif evt.click_count == 3
|
572
|
+
handle(self, MKUINT(0, SEL_TRIPLECLICKED), @currentShape)
|
573
|
+
end
|
574
|
+
|
575
|
+
# Generate command callback only when clicked on item
|
576
|
+
if @currentShape && @currentShape.enabled?
|
577
|
+
handle(self, MKUINT(0, SEL_COMMAND), @currentShape)
|
578
|
+
end
|
579
|
+
return 1
|
580
|
+
end
|
581
|
+
return 0
|
582
|
+
end
|
583
|
+
end
|
584
|
+
|
585
|
+
# Command message
|
586
|
+
def onCommand(sender, sel, ptr)
|
587
|
+
return target && target.handle(self, MKUINT(message, SEL_COMMAND), ptr)
|
588
|
+
end
|
589
|
+
|
590
|
+
# Clicked on canvas
|
591
|
+
def onClicked(sender, sel, ptr)
|
592
|
+
return target && target.handle(self, MKUINT(message, SEL_CLICKED), ptr)
|
593
|
+
end
|
594
|
+
|
595
|
+
# Double-clicked on canvas
|
596
|
+
def onDoubleClicked(sender, sel, ptr)
|
597
|
+
return target && target.handle(self, MKUINT(message, SEL_DOUBLECLICKED), ptr)
|
598
|
+
end
|
599
|
+
|
600
|
+
# Triple-clicked on canvas
|
601
|
+
def onTripleClicked(sender, sel, ptr)
|
602
|
+
return target && target.handle(self, MKUINT(message, SEL_TRIPLECLICKED), ptr)
|
603
|
+
end
|
604
|
+
end
|
605
|
+
end
|
606
|
+
end
|