fxruby 1.6.38-x86-mingw32 → 1.6.43-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.travis.yml +3 -14
- data/.yardopts +1 -1
- data/Gemfile +8 -5
- data/History.md +1344 -21
- data/README.rdoc +5 -5
- data/Rakefile +100 -68
- data/appveyor.yml +17 -4
- data/docs/Fox.html +11184 -0
- data/docs/Fox/Canvas.html +141 -0
- data/docs/Fox/Canvas/CanvasError.html +124 -0
- data/docs/Fox/Canvas/CircleShape.html +477 -0
- data/docs/Fox/Canvas/ImageShape.html +477 -0
- data/docs/Fox/Canvas/LineShape.html +1005 -0
- data/docs/Fox/Canvas/PolygonShape.html +145 -0
- data/docs/Fox/Canvas/RectangleShape.html +439 -0
- data/docs/Fox/Canvas/SelectionPolicy.html +352 -0
- data/docs/Fox/Canvas/Shape.html +1955 -0
- data/docs/Fox/Canvas/ShapeCanvas.html +2031 -0
- data/docs/Fox/Canvas/ShapeGroup.html +527 -0
- data/docs/Fox/Canvas/SingleSelectionPolicy.html +291 -0
- data/docs/Fox/Canvas/TextShape.html +609 -0
- data/docs/Fox/FTNonModal.html +550 -0
- data/docs/Fox/FX4Splitter.html +1336 -0
- data/docs/Fox/FX7Segment.html +1010 -0
- data/docs/Fox/FXAccelTable.html +715 -0
- data/docs/Fox/FXApp.html +7998 -0
- data/docs/Fox/FXArc.html +562 -0
- data/docs/Fox/FXArrowButton.html +865 -0
- data/docs/Fox/FXBMPIcon.html +450 -0
- data/docs/Fox/FXBMPImage.html +434 -0
- data/docs/Fox/FXBitmap.html +1362 -0
- data/docs/Fox/FXBitmapFrame.html +595 -0
- data/docs/Fox/FXBitmapView.html +1451 -0
- data/docs/Fox/FXButton.html +534 -0
- data/docs/Fox/FXCURCursor.html +261 -0
- data/docs/Fox/FXCalendar.html +880 -0
- data/docs/Fox/FXCanvas.html +311 -0
- data/docs/Fox/FXCheckButton.html +949 -0
- data/docs/Fox/FXChoiceBox.html +472 -0
- data/docs/Fox/FXColor.html +1519 -0
- data/docs/Fox/FXColorBar.html +759 -0
- data/docs/Fox/FXColorDialog.html +591 -0
- data/docs/Fox/FXColorItem.html +323 -0
- data/docs/Fox/FXColorList.html +712 -0
- data/docs/Fox/FXColorRing.html +817 -0
- data/docs/Fox/FXColorSelector.html +796 -0
- data/docs/Fox/FXColorWell.html +850 -0
- data/docs/Fox/FXColorWheel.html +770 -0
- data/docs/Fox/FXComboBox.html +2939 -0
- data/docs/Fox/FXComboTableItem.html +544 -0
- data/docs/Fox/FXCommand.html +526 -0
- data/docs/Fox/FXComposite.html +433 -0
- data/docs/Fox/FXCursor.html +779 -0
- data/docs/Fox/FXDC.html +5231 -0
- data/docs/Fox/FXDCPrint.html +696 -0
- data/docs/Fox/FXDCWindow.html +358 -0
- data/docs/Fox/FXDataTarget.html +573 -0
- data/docs/Fox/FXDebugTarget.html +305 -0
- data/docs/Fox/FXDelegator.html +305 -0
- data/docs/Fox/FXDial.html +1133 -0
- data/docs/Fox/FXDialogBox.html +413 -0
- data/docs/Fox/FXDict.html +1063 -0
- data/docs/Fox/FXDirBox.html +752 -0
- data/docs/Fox/FXDirDialog.html +914 -0
- data/docs/Fox/FXDirItem.html +989 -0
- data/docs/Fox/FXDirList.html +1554 -0
- data/docs/Fox/FXDirSelector.html +995 -0
- data/docs/Fox/FXDockBar.html +1451 -0
- data/docs/Fox/FXDockHandler.html +468 -0
- data/docs/Fox/FXDockSite.html +678 -0
- data/docs/Fox/FXDockTitle.html +606 -0
- data/docs/Fox/FXDocument.html +536 -0
- data/docs/Fox/FXDragCorner.html +440 -0
- data/docs/Fox/FXDrawable.html +478 -0
- data/docs/Fox/FXDriveBox.html +746 -0
- data/docs/Fox/FXEvent.html +1736 -0
- data/docs/Fox/FXExtentd.html +1374 -0
- data/docs/Fox/FXExtentf.html +1374 -0
- data/docs/Fox/FXFileAssoc.html +850 -0
- data/docs/Fox/FXFileDialog.html +2688 -0
- data/docs/Fox/FXFileDict.html +1058 -0
- data/docs/Fox/FXFileItem.html +1141 -0
- data/docs/Fox/FXFileList.html +2259 -0
- data/docs/Fox/FXFileSelector.html +2529 -0
- data/docs/Fox/FXFileStream.html +503 -0
- data/docs/Fox/FXFoldingItem.html +2822 -0
- data/docs/Fox/FXFoldingList.html +5189 -0
- data/docs/Fox/FXFont.html +2998 -0
- data/docs/Fox/FXFontDesc.html +710 -0
- data/docs/Fox/FXFontDialog.html +420 -0
- data/docs/Fox/FXFontSelector.html +576 -0
- data/docs/Fox/FXFrame.html +1012 -0
- data/docs/Fox/FXGIFCursor.html +337 -0
- data/docs/Fox/FXGIFIcon.html +450 -0
- data/docs/Fox/FXGIFImage.html +434 -0
- data/docs/Fox/FXGLCanvas.html +700 -0
- data/docs/Fox/FXGLCone.html +785 -0
- data/docs/Fox/FXGLContext.html +649 -0
- data/docs/Fox/FXGLCube.html +703 -0
- data/docs/Fox/FXGLCylinder.html +791 -0
- data/docs/Fox/FXGLGroup.html +1385 -0
- data/docs/Fox/FXGLLine.html +653 -0
- data/docs/Fox/FXGLObject.html +759 -0
- data/docs/Fox/FXGLPoint.html +561 -0
- data/docs/Fox/FXGLShape.html +714 -0
- data/docs/Fox/FXGLSphere.html +626 -0
- data/docs/Fox/FXGLViewer.html +3506 -0
- data/docs/Fox/FXGLVisual.html +2147 -0
- data/docs/Fox/FXGradient.html +562 -0
- data/docs/Fox/FXGradientBar.html +2479 -0
- data/docs/Fox/FXGroupBox.html +688 -0
- data/docs/Fox/FXHeader.html +3040 -0
- data/docs/Fox/FXHeaderItem.html +1353 -0
- data/docs/Fox/FXHiliteStyle.html +804 -0
- data/docs/Fox/FXHorizontalFrame.html +359 -0
- data/docs/Fox/FXHorizontalSeparator.html +349 -0
- data/docs/Fox/FXICOIcon.html +450 -0
- data/docs/Fox/FXICOImage.html +434 -0
- data/docs/Fox/FXIcon.html +384 -0
- data/docs/Fox/FXIconDict.html +752 -0
- data/docs/Fox/FXIconItem.html +1518 -0
- data/docs/Fox/FXIconList.html +4676 -0
- data/docs/Fox/FXIconSource.html +963 -0
- data/docs/Fox/FXId.html +712 -0
- data/docs/Fox/FXImage.html +2328 -0
- data/docs/Fox/FXImageFrame.html +489 -0
- data/docs/Fox/FXImageView.html +504 -0
- data/docs/Fox/FXInputDialog.html +894 -0
- data/docs/Fox/FXIrb.html +942 -0
- data/docs/Fox/FXJPGIcon.html +607 -0
- data/docs/Fox/FXJPGImage.html +591 -0
- data/docs/Fox/FXKnob.html +1048 -0
- data/docs/Fox/FXLabel.html +1013 -0
- data/docs/Fox/FXLight.html +920 -0
- data/docs/Fox/FXList.html +3717 -0
- data/docs/Fox/FXListBox.html +2518 -0
- data/docs/Fox/FXListItem.html +1459 -0
- data/docs/Fox/FXMDIChild.html +2175 -0
- data/docs/Fox/FXMDIClient.html +781 -0
- data/docs/Fox/FXMDIDeleteButton.html +334 -0
- data/docs/Fox/FXMDIMaximizeButton.html +334 -0
- data/docs/Fox/FXMDIMenu.html +335 -0
- data/docs/Fox/FXMDIMinimizeButton.html +334 -0
- data/docs/Fox/FXMDIRestoreButton.html +334 -0
- data/docs/Fox/FXMDIWindowButton.html +334 -0
- data/docs/Fox/FXMainWindow.html +337 -0
- data/docs/Fox/FXMaterial.html +570 -0
- data/docs/Fox/FXMatrix.html +734 -0
- data/docs/Fox/FXMemoryBuffer.html +472 -0
- data/docs/Fox/FXMemoryStream.html +632 -0
- data/docs/Fox/FXMenuBar.html +347 -0
- data/docs/Fox/FXMenuButton.html +829 -0
- data/docs/Fox/FXMenuCaption.html +1080 -0
- data/docs/Fox/FXMenuCascade.html +388 -0
- data/docs/Fox/FXMenuCheck.html +721 -0
- data/docs/Fox/FXMenuCommand.html +400 -0
- data/docs/Fox/FXMenuPane.html +333 -0
- data/docs/Fox/FXMenuRadio.html +721 -0
- data/docs/Fox/FXMenuSeparator.html +440 -0
- data/docs/Fox/FXMenuTitle.html +405 -0
- data/docs/Fox/FXMessageBox.html +658 -0
- data/docs/Fox/FXObject.html +545 -0
- data/docs/Fox/FXOption.html +491 -0
- data/docs/Fox/FXOptionMenu.html +885 -0
- data/docs/Fox/FXPCXIcon.html +450 -0
- data/docs/Fox/FXPCXImage.html +434 -0
- data/docs/Fox/FXPNGIcon.html +524 -0
- data/docs/Fox/FXPNGImage.html +508 -0
- data/docs/Fox/FXPPMIcon.html +450 -0
- data/docs/Fox/FXPPMImage.html +373 -0
- data/docs/Fox/FXPSBounds.html +500 -0
- data/docs/Fox/FXPacker.html +1229 -0
- data/docs/Fox/FXPicker.html +345 -0
- data/docs/Fox/FXPopup.html +1099 -0
- data/docs/Fox/FXPrintDialog.html +485 -0
- data/docs/Fox/FXPrinter.html +1330 -0
- data/docs/Fox/FXProgressBar.html +1150 -0
- data/docs/Fox/FXProgressDialog.html +715 -0
- data/docs/Fox/FXPseudoKeyboard.html +428 -0
- data/docs/Fox/FXPseudoMouse.html +800 -0
- data/docs/Fox/FXPseudoTarget.html +472 -0
- data/docs/Fox/FXQuatd.html +1377 -0
- data/docs/Fox/FXQuatf.html +1392 -0
- data/docs/Fox/FXRGBIcon.html +450 -0
- data/docs/Fox/FXRGBImage.html +434 -0
- data/docs/Fox/FXRadioButton.html +885 -0
- data/docs/Fox/FXRanged.html +1522 -0
- data/docs/Fox/FXRangef.html +1522 -0
- data/docs/Fox/FXRealSlider.html +1187 -0
- data/docs/Fox/FXRealSpinner.html +2175 -0
- data/docs/Fox/FXRecentFiles.html +841 -0
- data/docs/Fox/FXRectangle.html +802 -0
- data/docs/Fox/FXRegion.html +841 -0
- data/docs/Fox/FXRegistry.html +682 -0
- data/docs/Fox/FXReplaceDialog.html +648 -0
- data/docs/Fox/FXRootWindow.html +312 -0
- data/docs/Fox/FXRuler.html +2000 -0
- data/docs/Fox/FXRulerView.html +3997 -0
- data/docs/Fox/FXScintilla.html +49117 -0
- data/docs/Fox/FXScrollArea.html +1363 -0
- data/docs/Fox/FXScrollBar.html +1019 -0
- data/docs/Fox/FXScrollCorner.html +290 -0
- data/docs/Fox/FXScrollPane.html +499 -0
- data/docs/Fox/FXScrollWindow.html +409 -0
- data/docs/Fox/FXSearchDialog.html +382 -0
- data/docs/Fox/FXSegment.html +422 -0
- data/docs/Fox/FXSeparator.html +402 -0
- data/docs/Fox/FXSettings.html +1861 -0
- data/docs/Fox/FXShell.html +233 -0
- data/docs/Fox/FXShutter.html +472 -0
- data/docs/Fox/FXShutterItem.html +669 -0
- data/docs/Fox/FXSize.html +592 -0
- data/docs/Fox/FXSlider.html +1129 -0
- data/docs/Fox/FXSphered.html +906 -0
- data/docs/Fox/FXSpheref.html +906 -0
- data/docs/Fox/FXSpinner.html +2102 -0
- data/docs/Fox/FXSplashScreen.html +497 -0
- data/docs/Fox/FXSplashWindow.html +494 -0
- data/docs/Fox/FXSplitter.html +643 -0
- data/docs/Fox/FXSpring.html +517 -0
- data/docs/Fox/FXStatusBar.html +593 -0
- data/docs/Fox/FXStatusLine.html +754 -0
- data/docs/Fox/FXStream.html +1372 -0
- data/docs/Fox/FXStreamAllocError.html +148 -0
- data/docs/Fox/FXStreamEndError.html +148 -0
- data/docs/Fox/FXStreamError.html +259 -0
- data/docs/Fox/FXStreamFailureError.html +148 -0
- data/docs/Fox/FXStreamFormatError.html +148 -0
- data/docs/Fox/FXStreamFullError.html +148 -0
- data/docs/Fox/FXStreamNoReadError.html +148 -0
- data/docs/Fox/FXStreamNoWriteError.html +148 -0
- data/docs/Fox/FXStreamUnknownError.html +148 -0
- data/docs/Fox/FXStringDict.html +552 -0
- data/docs/Fox/FXSwitcher.html +619 -0
- data/docs/Fox/FXTGAIcon.html +450 -0
- data/docs/Fox/FXTGAImage.html +434 -0
- data/docs/Fox/FXTIFIcon.html +604 -0
- data/docs/Fox/FXTIFImage.html +588 -0
- data/docs/Fox/FXTabBar.html +644 -0
- data/docs/Fox/FXTabBook.html +373 -0
- data/docs/Fox/FXTabItem.html +478 -0
- data/docs/Fox/FXTable.html +10107 -0
- data/docs/Fox/FXTableItem.html +2195 -0
- data/docs/Fox/FXTablePos.html +360 -0
- data/docs/Fox/FXTableRange.html +360 -0
- data/docs/Fox/FXText.html +6870 -0
- data/docs/Fox/FXTextChange.html +492 -0
- data/docs/Fox/FXTextField.html +2016 -0
- data/docs/Fox/FXToggleButton.html +844 -0
- data/docs/Fox/FXToolBar.html +452 -0
- data/docs/Fox/FXToolBarGrip.html +584 -0
- data/docs/Fox/FXToolBarShell.html +788 -0
- data/docs/Fox/FXToolBarTab.html +729 -0
- data/docs/Fox/FXToolTip.html +761 -0
- data/docs/Fox/FXTopWindow.html +1716 -0
- data/docs/Fox/FXTranslator.html +481 -0
- data/docs/Fox/FXTreeItem.html +2813 -0
- data/docs/Fox/FXTreeList.html +5095 -0
- data/docs/Fox/FXTreeListBox.html +3080 -0
- data/docs/Fox/FXTriStateButton.html +681 -0
- data/docs/Fox/FXUndoList.html +2560 -0
- data/docs/Fox/FXVec2d.html +1450 -0
- data/docs/Fox/FXVec2f.html +1442 -0
- data/docs/Fox/FXVec3d.html +1649 -0
- data/docs/Fox/FXVec3f.html +1649 -0
- data/docs/Fox/FXVec4d.html +1858 -0
- data/docs/Fox/FXVec4f.html +1858 -0
- data/docs/Fox/FXVerticalFrame.html +359 -0
- data/docs/Fox/FXVerticalSeparator.html +349 -0
- data/docs/Fox/FXViewport.html +780 -0
- data/docs/Fox/FXVisual.html +1023 -0
- data/docs/Fox/FXWindow.html +9948 -0
- data/docs/Fox/FXWizard.html +1052 -0
- data/docs/Fox/FXXBMIcon.html +453 -0
- data/docs/Fox/FXXBMImage.html +437 -0
- data/docs/Fox/FXXPMIcon.html +450 -0
- data/docs/Fox/FXXPMImage.html +434 -0
- data/docs/Fox/NotifyHeader.html +286 -0
- data/docs/Fox/SCNotification.html +1438 -0
- data/docs/Fox/TextRange.html +281 -0
- data/docs/IRB.html +204 -0
- data/docs/Responder.html +693 -0
- data/docs/Responder2.html +225 -0
- data/docs/_index.html +2101 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +496 -0
- data/docs/file.History.html +869 -0
- data/docs/file.README.html +104 -0
- data/docs/file_list.html +66 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +614 -0
- data/docs/js/app.js +314 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +31043 -0
- data/docs/top-level-namespace.html +214 -0
- data/examples/canvasdemo.rb +5 -1
- data/examples/gltest.rb +162 -106
- data/examples/glviewer.rb +12 -8
- data/examples/inputs.rb +9 -4
- data/examples/pig.rb +2 -2
- data/examples/unicode.rb +6 -27
- data/ext/fox16_c/FXRbApp.cpp +3 -17
- data/ext/fox16_c/FXRuby.cpp +36 -46
- data/ext/fox16_c/extconf.rb +50 -34
- data/ext/fox16_c/impl.cpp +1 -1
- data/ext/fox16_c/include/FXRbApp.h +2 -2
- data/ext/fox16_c/include/FXRbCommon.h +0 -2
- data/ext/fox16_c/include/FXRbText.h +82 -2
- data/ext/fox16_c/include/FXRbTextVirtuals.h +22 -0
- data/ext/fox16_c/include/FXRuby.h +21 -3
- data/ext/fox16_c/include/gvl_wrappers.h +29 -11
- data/ext/fox16_c/make_impl.rb +1 -1
- data/fxruby.gemspec +2 -1
- data/lib/fox16/aliases.rb +4 -1
- data/lib/fox16/bitmapview.rb +0 -0
- data/lib/fox16/calendar.rb +6 -8
- data/lib/fox16/canvas.rb +93 -62
- data/lib/fox16/chore.rb +0 -0
- data/lib/fox16/colors.rb +0 -0
- data/lib/fox16/core.rb +18 -18
- data/lib/fox16/dict.rb +0 -0
- data/lib/fox16/glgroup.rb +5 -5
- data/lib/fox16/glshapes.rb +111 -99
- data/lib/fox16/input.rb +9 -7
- data/lib/fox16/irb.rb +0 -0
- data/lib/fox16/iterators.rb +0 -0
- data/lib/fox16/keys.rb +0 -0
- data/lib/fox16/missingdep.rb +0 -0
- data/lib/fox16/pseudokeyboard.rb +0 -0
- data/lib/fox16/pseudomouse.rb +0 -0
- data/lib/fox16/responder.rb +0 -0
- data/lib/fox16/responder2.rb +0 -0
- data/lib/fox16/scintilla.rb +0 -0
- data/lib/fox16/settings.rb +0 -0
- data/lib/fox16/signal.rb +0 -0
- data/lib/fox16/timeout.rb +0 -0
- data/lib/fox16/tkcompat.rb +0 -0
- data/lib/fox16/undolist.rb +8 -8
- data/lib/fox16/version.rb +1 -1
- data/rdoc-sources/FXGLVisual.rb +8 -0
- data/rdoc-sources/FXIconList.rb +2 -0
- data/rdoc-sources/FXImage.rb +5 -0
- data/rdoc-sources/FXList.rb +2 -0
- data/rdoc-sources/FXListBox.rb +1 -1
- data/rdoc-sources/FXText.rb +4 -2
- data/swig-interfaces/FXGLVisual.i +1 -1
- data/swig-interfaces/FXImage.i +9 -4
- data/swig-interfaces/FXMemoryBuffer.i +3 -3
- data/swig-interfaces/FXText.i +10 -8
- data/swig-interfaces/macros.i +9 -0
- data/test/TC_FXGLViewer.rb +8 -1
- data/test/TC_FXImage.rb +8 -0
- data/test/TC_FXList.rb +8 -8
- data/test/TC_FXText.rb +19 -0
- data/test/TC_FXVec4f.rb +26 -12
- metadata +300 -9
data/ext/fox16_c/make_impl.rb
CHANGED
data/fxruby.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.email = ["lyle@lylejohnson.name", "lars@greiz-reinsdorf.de"]
|
32
32
|
|
33
33
|
spec.summary = %q{FXRuby is the Ruby binding to the FOX GUI toolkit.}
|
34
|
-
spec.homepage = "
|
34
|
+
spec.homepage = "https://github.com/larskanis/fxruby"
|
35
35
|
spec.license = 'LGPL-2.1'
|
36
36
|
|
37
37
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -48,6 +48,7 @@ Gem::Specification.new do |spec|
|
|
48
48
|
spec.require_paths = ["lib"]
|
49
49
|
spec.extensions = ["ext/fox16_c/extconf.rb"]
|
50
50
|
spec.metadata['msys2_mingw_dependencies'] = 'fox'
|
51
|
+
spec.required_ruby_version = [">= 2.2", "< 4"]
|
51
52
|
|
52
53
|
spec.add_runtime_dependency 'mini_portile2', '~> 2.1'
|
53
54
|
end
|
data/lib/fox16/aliases.rb
CHANGED
@@ -1976,7 +1976,7 @@ module Fox
|
|
1976
1976
|
end
|
1977
1977
|
class FXGLVisual
|
1978
1978
|
def FXGLVisual.supported?(*args) # :nodoc:
|
1979
|
-
FXGLVisual.supported(*args)
|
1979
|
+
FXGLVisual.supported(*args)[0]
|
1980
1980
|
end
|
1981
1981
|
def redSize(*args) # :nodoc:
|
1982
1982
|
getRedSize(*args)
|
@@ -2414,6 +2414,9 @@ module Fox
|
|
2414
2414
|
def data(*args) # :nodoc:
|
2415
2415
|
getData(*args)
|
2416
2416
|
end
|
2417
|
+
def dataPtr(*args) # :nodoc:
|
2418
|
+
getDataPtr(*args)
|
2419
|
+
end
|
2417
2420
|
def pixels=(*args) # :nodoc:
|
2418
2421
|
setPixels(*args)
|
2419
2422
|
end
|
data/lib/fox16/bitmapview.rb
CHANGED
File without changes
|
data/lib/fox16/calendar.rb
CHANGED
@@ -99,7 +99,7 @@ module Fox
|
|
99
99
|
btn.connect(SEL_COMMAND) do |send, sel, ev|
|
100
100
|
@selected = Time.local(@date_showing.year, @date_showing.month,
|
101
101
|
send.text.to_i)
|
102
|
-
target.handle(self, MKUINT(selector, SEL_COMMAND), @selected) if target
|
102
|
+
target.handle(self, Fox.MKUINT(selector, SEL_COMMAND), @selected) if target
|
103
103
|
end
|
104
104
|
end
|
105
105
|
_build_date_matrix()
|
@@ -202,16 +202,14 @@ end
|
|
202
202
|
|
203
203
|
if __FILE__ == $0
|
204
204
|
|
205
|
-
|
206
|
-
|
207
|
-
app = FXApp.new('Calendar', 'FXRuby')
|
205
|
+
app = Fox::FXApp.new('Calendar', 'FXRuby')
|
208
206
|
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|
|
207
|
+
mainwin = Fox::FXMainWindow.new(app, "Calendar Test", nil, nil, Fox::DECOR_ALL, 0, 0, 500, 500)
|
208
|
+
calendar = Fox::FXCalendar.new(mainwin, Time.now, nil, 0, Fox::LAYOUT_FILL_X|Fox::LAYOUT_FILL_Y)
|
209
|
+
calendar.connect(Fox::SEL_COMMAND) do |sender, sel, data|
|
212
210
|
puts data.to_s
|
213
211
|
end
|
214
212
|
app.create
|
215
|
-
mainwin.show(PLACEMENT_SCREEN)
|
213
|
+
mainwin.show(Fox::PLACEMENT_SCREEN)
|
216
214
|
app.run
|
217
215
|
end
|
data/lib/fox16/canvas.rb
CHANGED
@@ -133,6 +133,13 @@ module Fox
|
|
133
133
|
# Default: make 6 control points
|
134
134
|
def makeControlPoints
|
135
135
|
end
|
136
|
+
|
137
|
+
protected def apply_dc(dc)
|
138
|
+
oldForeground = dc.foreground
|
139
|
+
dc.foreground = foreground
|
140
|
+
yield
|
141
|
+
dc.foreground = oldForeground
|
142
|
+
end
|
136
143
|
end
|
137
144
|
|
138
145
|
class ShapeGroup
|
@@ -191,29 +198,28 @@ module Fox
|
|
191
198
|
end
|
192
199
|
|
193
200
|
def draw(dc)
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
dc.foreground = oldForeground
|
201
|
+
apply_dc(dc) do
|
202
|
+
# Save old values
|
203
|
+
oldLineWidth = dc.lineWidth
|
204
|
+
oldLineCap = dc.lineCap
|
205
|
+
oldLineJoin = dc.lineJoin
|
206
|
+
oldLineStyle = dc.lineStyle
|
207
|
+
|
208
|
+
# Set properties for this line
|
209
|
+
dc.lineWidth = lineWidth
|
210
|
+
dc.lineCap = lineCap
|
211
|
+
dc.lineJoin = lineJoin
|
212
|
+
dc.lineStyle = lineStyle
|
213
|
+
|
214
|
+
# Draw the line
|
215
|
+
dc.drawLine(x1, y1, x2, y2)
|
216
|
+
|
217
|
+
# Restore old properties
|
218
|
+
dc.lineWidth = oldLineWidth
|
219
|
+
dc.lineCap = oldLineCap
|
220
|
+
dc.lineJoin = oldLineJoin
|
221
|
+
dc.lineStyle = oldLineStyle
|
222
|
+
end
|
217
223
|
end
|
218
224
|
end
|
219
225
|
|
@@ -228,31 +234,42 @@ module Fox
|
|
228
234
|
end
|
229
235
|
|
230
236
|
def draw(dc)
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
237
|
+
apply_dc(dc) do
|
238
|
+
dc.lineWidth = 5 if selected?
|
239
|
+
dc.drawRectangle(x, y, width, height)
|
240
|
+
end
|
235
241
|
end
|
236
242
|
end
|
237
243
|
|
238
|
-
class TextShape <
|
244
|
+
class TextShape < Shape
|
239
245
|
|
240
246
|
attr_reader :font, :text
|
247
|
+
attr_accessor :width, :height
|
241
248
|
|
242
249
|
def initialize(x, y, w, h, text=nil)
|
243
|
-
super(x, y
|
250
|
+
super(x, y)
|
251
|
+
@width = w
|
252
|
+
@height = h
|
244
253
|
@text = text
|
245
254
|
@font = FXApp.instance.normalFont
|
246
255
|
end
|
247
256
|
|
248
257
|
def draw(dc)
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
258
|
+
old_foreground = dc.foreground
|
259
|
+
apply_dc(dc) do
|
260
|
+
if selected?
|
261
|
+
dc.lineWidth = 5
|
262
|
+
dc.drawRectangle(x - 3, y - 3, width + 6, height + 6)
|
263
|
+
end
|
264
|
+
|
265
|
+
old_background = dc.background
|
266
|
+
dc.background = old_foreground
|
267
|
+
oldTextFont = dc.font
|
268
|
+
dc.font = @font
|
269
|
+
dc.drawImageText(x, y + height, text)
|
270
|
+
dc.font = oldTextFont if oldTextFont
|
271
|
+
dc.background = old_foreground
|
272
|
+
end
|
256
273
|
end
|
257
274
|
end
|
258
275
|
|
@@ -274,14 +291,13 @@ module Fox
|
|
274
291
|
end
|
275
292
|
|
276
293
|
def draw(dc)
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
dc.lineWidth = oldLineWidth
|
294
|
+
apply_dc(dc) do
|
295
|
+
oldLineWidth = dc.lineWidth
|
296
|
+
dc.lineWidth = 5 if selected?
|
297
|
+
dc.drawArc(x, y, width, height, 0, 64*180)
|
298
|
+
dc.drawArc(x, y, width, height, 64*180, 64*360)
|
299
|
+
dc.lineWidth = oldLineWidth
|
300
|
+
end
|
285
301
|
end
|
286
302
|
end
|
287
303
|
|
@@ -293,11 +309,26 @@ module Fox
|
|
293
309
|
attr_accessor :image
|
294
310
|
|
295
311
|
def initialize(x, y, image)
|
312
|
+
super(x, y)
|
296
313
|
@image = image
|
297
314
|
end
|
298
315
|
|
316
|
+
def width
|
317
|
+
@image.width
|
318
|
+
end
|
319
|
+
|
320
|
+
def height
|
321
|
+
@image.height
|
322
|
+
end
|
323
|
+
|
299
324
|
def draw(dc)
|
300
|
-
dc
|
325
|
+
apply_dc(dc) do
|
326
|
+
if selected?
|
327
|
+
dc.lineWidth = 5
|
328
|
+
dc.drawRectangle(x - 3, y - 3, width + 5, height + 5)
|
329
|
+
end
|
330
|
+
dc.drawImage(image, x, y)
|
331
|
+
end
|
301
332
|
end
|
302
333
|
end
|
303
334
|
|
@@ -312,7 +343,7 @@ module Fox
|
|
312
343
|
shape.select
|
313
344
|
@canvas.updateShape(shape)
|
314
345
|
if notify && (@canvas.target != nil)
|
315
|
-
@canvas.target.handle(@canvas, MKUINT(@canvas.message, SEL_SELECTED), shape)
|
346
|
+
@canvas.target.handle(@canvas, Fox.MKUINT(@canvas.message, SEL_SELECTED), shape)
|
316
347
|
end
|
317
348
|
end
|
318
349
|
end
|
@@ -322,7 +353,7 @@ module Fox
|
|
322
353
|
shape.deselect
|
323
354
|
@canvas.updateShape(shape)
|
324
355
|
if notify && (@canvas.target != nil)
|
325
|
-
@canvas.target.handle(@canvas, MKUINT(@canvas.message, SEL_DESELECTED), shape)
|
356
|
+
@canvas.target.handle(@canvas, Fox.MKUINT(@canvas.message, SEL_DESELECTED), shape)
|
326
357
|
end
|
327
358
|
end
|
328
359
|
end
|
@@ -463,7 +494,7 @@ module Fox
|
|
463
494
|
updateShape(shape)
|
464
495
|
changes = true
|
465
496
|
if notify && (target != nil)
|
466
|
-
target.handle(self, MKUINT(message, SEL_DESELECTED), shape)
|
497
|
+
target.handle(self, Fox.MKUINT(message, SEL_DESELECTED), shape)
|
467
498
|
end
|
468
499
|
end
|
469
500
|
end
|
@@ -486,7 +517,7 @@ module Fox
|
|
486
517
|
def onMotion(sender, sel, evt)
|
487
518
|
# Drag and drop mode
|
488
519
|
if (@flags & FLAG_DODRAG) != 0
|
489
|
-
handle(self, MKUINT(0, SEL_DRAGGED), evt)
|
520
|
+
handle(self, Fox.MKUINT(0, SEL_DRAGGED), evt)
|
490
521
|
return 1
|
491
522
|
end
|
492
523
|
|
@@ -494,7 +525,7 @@ module Fox
|
|
494
525
|
if (@flags & FLAG_TRYDRAG) != 0
|
495
526
|
if evt.moved?
|
496
527
|
@flags &= ~FLAG_TRYDRAG
|
497
|
-
if handle(this, MKUINT(0, SEL_BEGINDRAG), evt) != 0
|
528
|
+
if handle(this, Fox.MKUINT(0, SEL_BEGINDRAG), evt) != 0
|
498
529
|
@flags |= FLAG_DODRAG
|
499
530
|
end
|
500
531
|
end
|
@@ -504,13 +535,13 @@ module Fox
|
|
504
535
|
|
505
536
|
# Left button press
|
506
537
|
def onLeftBtnPress(sender, sel, evt)
|
507
|
-
handle(self, MKUINT(0, SEL_FOCUS_SELF), evt)
|
538
|
+
handle(self, Fox.MKUINT(0, SEL_FOCUS_SELF), evt)
|
508
539
|
if enabled?
|
509
540
|
grab
|
510
541
|
flags &= ~FLAG_UPDATE
|
511
542
|
|
512
543
|
# Give target the first chance at handling this
|
513
|
-
return 1 if target && (target.handle(self, MKUINT(message, SEL_LEFTBUTTONPRESS), evt) != 0)
|
544
|
+
return 1 if target && (target.handle(self, Fox.MKUINT(message, SEL_LEFTBUTTONPRESS), evt) != 0)
|
514
545
|
|
515
546
|
# Locate shape
|
516
547
|
shape = findShape(evt.win_x, evt.win_y)
|
@@ -548,11 +579,11 @@ module Fox
|
|
548
579
|
@flags &= ~(FLAG_PRESSED|FLAG_TRYDRAG|FLAG_LASSO|FLAG_DODRAG)
|
549
580
|
|
550
581
|
# First chance callback
|
551
|
-
return 1 if target && target.handle(self, MKUINT(message, SEL_LEFTBUTTONRELEASE), evt) != 0
|
582
|
+
return 1 if target && target.handle(self, Fox.MKUINT(message, SEL_LEFTBUTTONRELEASE), evt) != 0
|
552
583
|
|
553
584
|
# Was dragging
|
554
585
|
if (flg & FLAG_DODRAG) != 0
|
555
|
-
handle(self, MKUINT(0, SEL_ENDDRAG), evt)
|
586
|
+
handle(self, Fox.MKUINT(0, SEL_ENDDRAG), evt)
|
556
587
|
return 1
|
557
588
|
end
|
558
589
|
|
@@ -565,16 +596,16 @@ module Fox
|
|
565
596
|
|
566
597
|
# Generate clicked callbacks
|
567
598
|
if evt.click_count == 1
|
568
|
-
handle(self, MKUINT(0, SEL_CLICKED), @currentShape)
|
599
|
+
handle(self, Fox.MKUINT(0, SEL_CLICKED), @currentShape)
|
569
600
|
elsif evt.click_count == 2
|
570
|
-
handle(self, MKUINT(0, SEL_DOUBLECLICKED), @currentShape)
|
601
|
+
handle(self, Fox.MKUINT(0, SEL_DOUBLECLICKED), @currentShape)
|
571
602
|
elseif evt.click_count == 3
|
572
|
-
handle(self, MKUINT(0, SEL_TRIPLECLICKED), @currentShape)
|
603
|
+
handle(self, Fox.MKUINT(0, SEL_TRIPLECLICKED), @currentShape)
|
573
604
|
end
|
574
605
|
|
575
606
|
# Generate command callback only when clicked on item
|
576
607
|
if @currentShape && @currentShape.enabled?
|
577
|
-
handle(self, MKUINT(0, SEL_COMMAND), @currentShape)
|
608
|
+
handle(self, Fox.MKUINT(0, SEL_COMMAND), @currentShape)
|
578
609
|
end
|
579
610
|
return 1
|
580
611
|
end
|
@@ -584,22 +615,22 @@ module Fox
|
|
584
615
|
|
585
616
|
# Command message
|
586
617
|
def onCommand(sender, sel, ptr)
|
587
|
-
return target && target.handle(self, MKUINT(message, SEL_COMMAND), ptr)
|
618
|
+
return target && target.handle(self, Fox.MKUINT(message, SEL_COMMAND), ptr)
|
588
619
|
end
|
589
620
|
|
590
621
|
# Clicked on canvas
|
591
622
|
def onClicked(sender, sel, ptr)
|
592
|
-
return target && target.handle(self, MKUINT(message, SEL_CLICKED), ptr)
|
623
|
+
return target && target.handle(self, Fox.MKUINT(message, SEL_CLICKED), ptr)
|
593
624
|
end
|
594
625
|
|
595
626
|
# Double-clicked on canvas
|
596
627
|
def onDoubleClicked(sender, sel, ptr)
|
597
|
-
return target && target.handle(self, MKUINT(message, SEL_DOUBLECLICKED), ptr)
|
628
|
+
return target && target.handle(self, Fox.MKUINT(message, SEL_DOUBLECLICKED), ptr)
|
598
629
|
end
|
599
630
|
|
600
631
|
# Triple-clicked on canvas
|
601
632
|
def onTripleClicked(sender, sel, ptr)
|
602
|
-
return target && target.handle(self, MKUINT(message, SEL_TRIPLECLICKED), ptr)
|
633
|
+
return target && target.handle(self, Fox.MKUINT(message, SEL_TRIPLECLICKED), ptr)
|
603
634
|
end
|
604
635
|
end
|
605
636
|
end
|
data/lib/fox16/chore.rb
CHANGED
File without changes
|
data/lib/fox16/colors.rb
CHANGED
File without changes
|
data/lib/fox16/core.rb
CHANGED
@@ -421,24 +421,24 @@ module Fox
|
|
421
421
|
#
|
422
422
|
def FXStreamError.makeStreamError(status)
|
423
423
|
case status
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
424
|
+
when FXStreamEnd
|
425
|
+
FXStreamEndError
|
426
|
+
when FXStreamFull
|
427
|
+
FXStreamFullError
|
428
|
+
when FXStreamNoWrite
|
429
|
+
FXStreamNoWriteError
|
430
|
+
when FXStreamNoRead
|
431
|
+
FXStreamNoReadError
|
432
|
+
when FXStreamFormat
|
433
|
+
FXStreamFormatError
|
434
|
+
when FXStreamUnknown
|
435
|
+
FXStreamUnknownError
|
436
|
+
when FXStreamAlloc
|
437
|
+
FXStreamAllocError
|
438
|
+
when FXStreamFailure
|
439
|
+
FXStreamFailureError
|
440
|
+
else
|
441
|
+
FXStreamError
|
442
442
|
end
|
443
443
|
end
|
444
444
|
end
|
data/lib/fox16/dict.rb
CHANGED
File without changes
|
data/lib/fox16/glgroup.rb
CHANGED
@@ -9,7 +9,7 @@ module Fox
|
|
9
9
|
# A group of OpenGL objects
|
10
10
|
#
|
11
11
|
class FXGLGroup < FXGLObject
|
12
|
-
|
12
|
+
include OpenGL if defined?(OpenGL)
|
13
13
|
include Enumerable
|
14
14
|
|
15
15
|
FLT_MAX = 1.0e+20
|
@@ -80,12 +80,12 @@ module Fox
|
|
80
80
|
#
|
81
81
|
def hit(viewer)
|
82
82
|
# GL.PushName(0xffffffff)
|
83
|
-
|
83
|
+
glPushName(1000000)
|
84
84
|
@list.each_with_index do |obj, i|
|
85
|
-
|
86
|
-
|
85
|
+
glLoadName(i)
|
86
|
+
obj.hit(viewer)
|
87
87
|
end
|
88
|
-
|
88
|
+
glPopName
|
89
89
|
end
|
90
90
|
|
91
91
|
#
|
data/lib/fox16/glshapes.rb
CHANGED
@@ -9,6 +9,7 @@ module Fox
|
|
9
9
|
# OpenGL point object
|
10
10
|
#
|
11
11
|
class FXGLPoint < FXGLObject
|
12
|
+
include OpenGL
|
12
13
|
|
13
14
|
# Point position, in model coordinates (a 3-element array)
|
14
15
|
attr_accessor :pos
|
@@ -47,20 +48,20 @@ module Fox
|
|
47
48
|
# Draw this point into _viewer_ (an FXGLViewer instance).
|
48
49
|
#
|
49
50
|
def draw(viewer)
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
glColor3d(0.0, 0.0, 1.0)
|
52
|
+
glPointSize(HANDLE_SIZE)
|
53
|
+
glBegin(GL_POINTS)
|
54
|
+
glVertex3d(*@pos)
|
55
|
+
glEnd()
|
55
56
|
end
|
56
57
|
|
57
58
|
#
|
58
59
|
# Perform hit test for this point in _viewer_ (an FXGLViewer instance).
|
59
60
|
#
|
60
61
|
def hit(viewer)
|
61
|
-
|
62
|
-
|
63
|
-
|
62
|
+
glBegin(GL_POINTS)
|
63
|
+
glVertex3d(*@pos)
|
64
|
+
glEnd()
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
@@ -68,6 +69,7 @@ module Fox
|
|
68
69
|
# OpenGL line object
|
69
70
|
#
|
70
71
|
class FXGLLine < FXGLObject
|
72
|
+
include OpenGL
|
71
73
|
|
72
74
|
# Starting point for line [FXGLPoint]
|
73
75
|
attr_accessor :fm
|
@@ -93,14 +95,14 @@ module Fox
|
|
93
95
|
def initialize(*args)
|
94
96
|
super()
|
95
97
|
if args.length == 0
|
96
|
-
|
97
|
-
|
98
|
+
@fm = FXGLPoint.new(-0.5, 0.0, 0.0)
|
99
|
+
@to = FXGLPoint.new( 0.5, 0.0, 0.0)
|
98
100
|
elsif args.length == 1
|
99
|
-
|
100
|
-
|
101
|
+
@fm = args[0].fm
|
102
|
+
@to = args[0].to
|
101
103
|
else
|
102
|
-
|
103
|
-
|
104
|
+
@fm = FXGLPoint.new(args[0], args[1], args[2])
|
105
|
+
@to = FXGLPoint.new(args[3], args[4], args[5])
|
104
106
|
end
|
105
107
|
end
|
106
108
|
|
@@ -120,22 +122,22 @@ module Fox
|
|
120
122
|
# Draw this line into _viewer_ (an FXGLViewer instance).
|
121
123
|
#
|
122
124
|
def draw(viewer)
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
125
|
+
glColor3d(1.0, 0.0, 0.0)
|
126
|
+
glPointSize(HANDLE_SIZE)
|
127
|
+
glBegin(GL_LINES)
|
128
|
+
glVertex3d(*@fm.pos)
|
129
|
+
glVertex3d(*@to.pos)
|
130
|
+
glEnd()
|
129
131
|
end
|
130
132
|
|
131
133
|
#
|
132
134
|
# Perform hit-test for this line in _viewer_ (an FXGLViewer instance).
|
133
135
|
#
|
134
136
|
def hit(viewer)
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
137
|
+
glBegin(GL_LINES)
|
138
|
+
glVertex3d(*@fm.pos)
|
139
|
+
glVertex3d(*@to.pos)
|
140
|
+
glEnd()
|
139
141
|
end
|
140
142
|
end
|
141
143
|
|
@@ -143,6 +145,7 @@ module Fox
|
|
143
145
|
# OpenGL cube object
|
144
146
|
#
|
145
147
|
class FXGLCube < FXGLShape
|
148
|
+
include OpenGL
|
146
149
|
|
147
150
|
# Cube width [Float]
|
148
151
|
attr_accessor :width
|
@@ -173,17 +176,17 @@ module Fox
|
|
173
176
|
#
|
174
177
|
def initialize(*args)
|
175
178
|
if args.length == 7
|
176
|
-
|
179
|
+
super(args[0], args[1], args[2], SHADING_SMOOTH|STYLE_SURFACE,
|
177
180
|
args[6], args[6])
|
178
181
|
else
|
179
|
-
|
182
|
+
super(args[0], args[1], args[2], SHADING_SMOOTH|STYLE_SURFACE)
|
180
183
|
end
|
181
184
|
@width = args[3] ? args[3] : 1.0
|
182
185
|
@height = args[4] ? args[4] : 1.0
|
183
186
|
@depth = args[5] ? args[5] : 1.0
|
184
187
|
setRange(FXRangef.new(-0.5*@width, 0.5*@width,
|
185
|
-
|
186
|
-
|
188
|
+
-0.5*@height, 0.5*@height,
|
189
|
+
-0.5*@depth, 0.5*@depth))
|
187
190
|
end
|
188
191
|
|
189
192
|
#
|
@@ -195,58 +198,58 @@ module Fox
|
|
195
198
|
zmin, zmax = -0.5*@depth, 0.5*@depth
|
196
199
|
|
197
200
|
# Draw low face
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
201
|
+
glBegin(GL_TRIANGLE_STRIP)
|
202
|
+
glNormal3d(0.0, 0.0, -1.0)
|
203
|
+
glVertex3d(xmin, ymin, zmin)
|
204
|
+
glVertex3d(xmin, ymax, zmin)
|
205
|
+
glVertex3d(xmax, ymin, zmin)
|
206
|
+
glVertex3d(xmax, ymax, zmin)
|
207
|
+
glEnd()
|
205
208
|
|
206
209
|
# Draw east face
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
210
|
+
glBegin(GL_TRIANGLE_STRIP)
|
211
|
+
glNormal3d(1.0, 0.0, 0.0)
|
212
|
+
glVertex3d(xmax, ymin, zmin)
|
213
|
+
glVertex3d(xmax, ymax, zmin)
|
214
|
+
glVertex3d(xmax, ymin, zmax)
|
215
|
+
glVertex3d(xmax, ymax, zmax)
|
216
|
+
glEnd()
|
214
217
|
|
215
218
|
# Draw high face
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
219
|
+
glBegin(GL_TRIANGLE_STRIP)
|
220
|
+
glNormal3d(0.0, 0.0, 1.0)
|
221
|
+
glVertex3d(xmax, ymin, zmax)
|
222
|
+
glVertex3d(xmax, ymax, zmax)
|
223
|
+
glVertex3d(xmin, ymin, zmax)
|
224
|
+
glVertex3d(xmin, ymax, zmax)
|
225
|
+
glEnd()
|
223
226
|
|
224
227
|
# Draw west face
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
228
|
+
glBegin(GL_TRIANGLE_STRIP)
|
229
|
+
glNormal3d(-1.0, 0.0, 0.0)
|
230
|
+
glVertex3d(xmin, ymin, zmax)
|
231
|
+
glVertex3d(xmin, ymax, zmax)
|
232
|
+
glVertex3d(xmin, ymin, zmin)
|
233
|
+
glVertex3d(xmin, ymax, zmin)
|
234
|
+
glEnd()
|
232
235
|
|
233
236
|
# Draw north face
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
237
|
+
glBegin(GL_TRIANGLE_STRIP)
|
238
|
+
glNormal3d(0.0, 1.0, 0.0)
|
239
|
+
glVertex3d(xmin, ymax, zmin)
|
240
|
+
glVertex3d(xmin, ymax, zmax)
|
241
|
+
glVertex3d(xmax, ymax, zmin)
|
242
|
+
glVertex3d(xmax, ymax, zmax)
|
243
|
+
glEnd()
|
241
244
|
|
242
245
|
# Draw south face
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
246
|
+
glBegin(GL_TRIANGLE_STRIP)
|
247
|
+
glNormal3d(0.0, -1.0, 0.0)
|
248
|
+
glVertex3d(xmin, ymin, zmax)
|
249
|
+
glVertex3d(xmin, ymin, zmin)
|
250
|
+
glVertex3d(xmax, ymin, zmax)
|
251
|
+
glVertex3d(xmax, ymin, zmin)
|
252
|
+
glEnd()
|
250
253
|
end
|
251
254
|
end
|
252
255
|
|
@@ -254,6 +257,9 @@ module Fox
|
|
254
257
|
# OpenGL cone object
|
255
258
|
#
|
256
259
|
class FXGLCone < FXGLShape
|
260
|
+
include OpenGL
|
261
|
+
include GLU
|
262
|
+
|
257
263
|
# Cone fidelity
|
258
264
|
SLICES_NUMBER = 20
|
259
265
|
STACKS_NUMBER = 20
|
@@ -293,9 +299,9 @@ module Fox
|
|
293
299
|
#
|
294
300
|
def initialize(*args)
|
295
301
|
if args.length == 5
|
296
|
-
|
302
|
+
super(args[0], args[1], args[2], SHADING_SMOOTH|STYLE_SURFACE)
|
297
303
|
elsif args.length == 6
|
298
|
-
|
304
|
+
super(args[0], args[1], args[2], SHADING_SMOOTH|STYLE_SURFACE,
|
299
305
|
args[5], args[5])
|
300
306
|
end
|
301
307
|
@height = args[3] ? args[3] : 1.0
|
@@ -310,15 +316,15 @@ module Fox
|
|
310
316
|
# Draw this cone into _viewer_ (an FXGLViewer instance).
|
311
317
|
#
|
312
318
|
def drawshape(viewer)
|
313
|
-
quad =
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
319
|
+
quad = gluNewQuadric()
|
320
|
+
gluQuadricDrawStyle(quad, GLU_FILL)
|
321
|
+
glPushMatrix()
|
322
|
+
glRotated(-90, 1, 0, 0)
|
323
|
+
gluCylinder(quad, @radius, 0, @height, @slices, @stacks)
|
324
|
+
gluQuadricOrientation(quad, GLU_INSIDE)
|
325
|
+
gluDisk(quad, 0, @radius, @slices, @loops)
|
326
|
+
gluDeleteQuadric(quad)
|
327
|
+
glPopMatrix()
|
322
328
|
end
|
323
329
|
end
|
324
330
|
|
@@ -326,6 +332,9 @@ module Fox
|
|
326
332
|
# OpenGL cylinder object
|
327
333
|
#
|
328
334
|
class FXGLCylinder < FXGLShape
|
335
|
+
include OpenGL
|
336
|
+
include GLU
|
337
|
+
|
329
338
|
# Cylinder fidelity
|
330
339
|
SLICES_NUMBER = 20
|
331
340
|
STACKS_NUMBER = 20
|
@@ -365,9 +374,9 @@ module Fox
|
|
365
374
|
#
|
366
375
|
def initialize(*args)
|
367
376
|
if args.length == 5
|
368
|
-
|
377
|
+
super(args[0], args[1], args[2], SHADING_SMOOTH|STYLE_SURFACE)
|
369
378
|
else
|
370
|
-
|
379
|
+
super(args[0], args[1], args[2], SHADING_SMOOTH|STYLE_SURFACE,
|
371
380
|
args[5], args[5])
|
372
381
|
end
|
373
382
|
@height = args[3] ? args[3] : 1.0
|
@@ -382,18 +391,18 @@ module Fox
|
|
382
391
|
# Draw this cylinder into _viewer_ (an FXGLViewer instance).
|
383
392
|
#
|
384
393
|
def drawshape(viewer)
|
385
|
-
quad =
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
394
|
+
quad = gluNewQuadric()
|
395
|
+
gluQuadricDrawStyle(quad, GLU_FILL)
|
396
|
+
glPushMatrix()
|
397
|
+
glRotated(-90, 1, 0, 0)
|
398
|
+
gluCylinder(quad, @radius, @radius, @height, @slices, @stacks)
|
399
|
+
gluQuadricOrientation(quad, GLU_INSIDE)
|
400
|
+
gluDisk(quad, 0, @radius, @slices, @loops)
|
401
|
+
glTranslated(0, 0, @height)
|
402
|
+
gluQuadricOrientation(quad, GLU_OUTSIDE)
|
403
|
+
gluDisk(quad, 0, @radius, @slices, @loops)
|
404
|
+
glPopMatrix()
|
405
|
+
gluDeleteQuadric(quad)
|
397
406
|
end
|
398
407
|
end
|
399
408
|
|
@@ -401,6 +410,9 @@ module Fox
|
|
401
410
|
# OpenGL sphere object
|
402
411
|
#
|
403
412
|
class FXGLSphere < FXGLShape
|
413
|
+
include OpenGL
|
414
|
+
include GLU
|
415
|
+
|
404
416
|
# Sphere fidelity
|
405
417
|
SLICES_NUMBER = 20
|
406
418
|
STACKS_NUMBER = 20
|
@@ -448,10 +460,10 @@ module Fox
|
|
448
460
|
# Draw this sphere into _viewer_ (an FXGLViewer instance).
|
449
461
|
#
|
450
462
|
def drawshape(viewer)
|
451
|
-
quad =
|
452
|
-
|
453
|
-
|
454
|
-
|
463
|
+
quad = gluNewQuadric()
|
464
|
+
gluQuadricDrawStyle(quad, GLU_FILL)
|
465
|
+
gluSphere(quad, @radius, @slices, @stacks)
|
466
|
+
gluDeleteQuadric(quad)
|
455
467
|
end
|
456
468
|
end
|
457
469
|
end
|