fxruby 1.6.39-x64-mingw32 → 1.6.44-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +3 -14
- data/.yardopts +1 -1
- data/Gemfile +4 -5
- data/History.md +1345 -22
- data/README.rdoc +5 -5
- data/Rakefile +100 -68
- data/appveyor.yml +11 -16
- 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 +3 -0
- 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 +1 -1
- 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/FXImage.i +9 -4
- data/swig-interfaces/FXMemoryBuffer.i +2 -2
- data/swig-interfaces/FXText.i +10 -8
- data/swig-interfaces/macros.i +9 -0
- 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 -10
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.3", "< 4"]
|
51
52
|
|
52
53
|
spec.add_runtime_dependency 'mini_portile2', '~> 2.1'
|
53
54
|
end
|
data/lib/fox16/aliases.rb
CHANGED
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
|