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/lib/fox16/input.rb
CHANGED
@@ -5,10 +5,13 @@ module Fox
|
|
5
5
|
alias addInputOrig addInput # :nodoc:
|
6
6
|
|
7
7
|
#
|
8
|
-
# Add
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
8
|
+
# Add an IO object as _io_ to be watched for activity as determined by _mode_, where _mode_ is a bitwise OR (+INPUT_READ+, +INPUT_WRITE+, +INPUT_EXCEPT+).
|
9
|
+
# A message of type +SEL_IO_READ+, +SEL_IO_WRITE+, or +SEL_IO_EXCEPT+ will be sent to the target when the specified activity is detected on the file descriptor.
|
10
|
+
#
|
11
|
+
# On POSIX operating systems all kinds of file descriptors can be watched.
|
12
|
+
# It works for +Socket.new+, +IO.popen+, +IO.pipe+, +IO.for_fd+, +File.open+, etc.
|
13
|
+
# Windows provides level triggered events only for network sockets.
|
14
|
+
# So on Windows only socket IO objects like +TCPSocket.new+ and +TCPServer.new+ are currently supported to be watched.
|
12
15
|
#
|
13
16
|
# There are several forms for #addInput; the original form (from FOX)
|
14
17
|
# takes four arguments:
|
@@ -30,8 +33,7 @@ module Fox
|
|
30
33
|
# ... handle the I/O event ...
|
31
34
|
# }
|
32
35
|
#
|
33
|
-
|
34
|
-
def addInput(fd, mode, *args, &block)
|
36
|
+
def addInput(io, mode, *args, &block)
|
35
37
|
params = {}
|
36
38
|
params = args.pop if args.last.is_a? Hash
|
37
39
|
tgt, sel = nil, 0
|
@@ -51,7 +53,7 @@ module Fox
|
|
51
53
|
tgt.pconnect(SEL_IO_WRITE, block, params)
|
52
54
|
tgt.pconnect(SEL_IO_EXCEPT, block, params)
|
53
55
|
end
|
54
|
-
addInputOrig(
|
56
|
+
addInputOrig(io, mode, tgt, sel)
|
55
57
|
end
|
56
58
|
|
57
59
|
end # class FXApp
|
data/lib/fox16/irb.rb
CHANGED
File without changes
|
data/lib/fox16/iterators.rb
CHANGED
File without changes
|
data/lib/fox16/keys.rb
CHANGED
File without changes
|
data/lib/fox16/missingdep.rb
CHANGED
File without changes
|
data/lib/fox16/pseudokeyboard.rb
CHANGED
File without changes
|
data/lib/fox16/pseudomouse.rb
CHANGED
File without changes
|
data/lib/fox16/responder.rb
CHANGED
File without changes
|
data/lib/fox16/responder2.rb
CHANGED
File without changes
|
data/lib/fox16/scintilla.rb
CHANGED
File without changes
|
data/lib/fox16/settings.rb
CHANGED
File without changes
|
data/lib/fox16/signal.rb
CHANGED
File without changes
|
data/lib/fox16/timeout.rb
CHANGED
File without changes
|
data/lib/fox16/tkcompat.rb
CHANGED
File without changes
|
data/lib/fox16/undolist.rb
CHANGED
@@ -344,9 +344,9 @@ module Fox
|
|
344
344
|
|
345
345
|
def onUpdUndo(sender, sel, ptr) # :nodoc:
|
346
346
|
if canUndo?
|
347
|
-
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
347
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
348
348
|
else
|
349
|
-
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
349
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
350
350
|
end
|
351
351
|
return 1
|
352
352
|
end
|
@@ -358,9 +358,9 @@ module Fox
|
|
358
358
|
|
359
359
|
def onUpdRedo(sender, sel, ptr) # :nodoc:
|
360
360
|
if canRedo?
|
361
|
-
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
361
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
362
362
|
else
|
363
|
-
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
363
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
364
364
|
end
|
365
365
|
return 1
|
366
366
|
end
|
@@ -372,9 +372,9 @@ module Fox
|
|
372
372
|
|
373
373
|
def onUpdClear(sender, sel, ptr) # :nodoc:
|
374
374
|
if canUndo? || canRedo?
|
375
|
-
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
375
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
376
376
|
else
|
377
|
-
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
377
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
378
378
|
end
|
379
379
|
return 1
|
380
380
|
end
|
@@ -386,9 +386,9 @@ module Fox
|
|
386
386
|
|
387
387
|
def onUpdRevert(sender, sel, ptr) # :nodoc:
|
388
388
|
if canRevert?
|
389
|
-
sender.handle(self, MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
389
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_ENABLE, SEL_COMMAND), nil)
|
390
390
|
else
|
391
|
-
sender.handle(self, MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
391
|
+
sender.handle(self, Fox.MKUINT(FXWindow::ID_DISABLE, SEL_COMMAND), nil)
|
392
392
|
end
|
393
393
|
return 1
|
394
394
|
end
|
data/lib/fox16/version.rb
CHANGED
data/rdoc-sources/FXGLVisual.rb
CHANGED
@@ -83,7 +83,7 @@ module Fox
|
|
83
83
|
|
84
84
|
# Test if OpenGL is possible.
|
85
85
|
#
|
86
|
-
# Same as {FXGLVisual.supported
|
86
|
+
# Same as {FXGLVisual.supported}, but returns the first element (true/false) only.
|
87
87
|
#
|
88
88
|
def FXGLVisual.supported?(app); end
|
89
89
|
|
data/rdoc-sources/FXIconList.rb
CHANGED
@@ -267,6 +267,8 @@ module Fox
|
|
267
267
|
# after the item is appended.
|
268
268
|
def appendItem(text, bigIcon=nil, miniIcon=nil, data=nil, notify=false); end
|
269
269
|
|
270
|
+
alias << appendItem
|
271
|
+
|
270
272
|
# Prepend a new (possibly subclassed) _item_ to the beginning of the list.
|
271
273
|
# If _notify_ is +true+, a +SEL_INSERTED+ message is sent to the list's message target
|
272
274
|
# after the item is prepended.
|
data/rdoc-sources/FXImage.rb
CHANGED
@@ -45,6 +45,11 @@ module Fox
|
|
45
45
|
# [deprecated] Pixel data {FXMemoryBuffer}
|
46
46
|
attr_reader :data
|
47
47
|
|
48
|
+
# The pointer to the raw color representation of all image pixels.
|
49
|
+
#
|
50
|
+
# It can be used to pass raw image data to FFI, Fiddle or OpenGL.
|
51
|
+
attr_reader :dataPtr
|
52
|
+
|
48
53
|
# Array of colors of all image pixels. Can also be written as String of raw [RGBA] values.
|
49
54
|
attr_accessor :pixels
|
50
55
|
|
data/rdoc-sources/FXList.rb
CHANGED
@@ -217,6 +217,8 @@ module Fox
|
|
217
217
|
# Returns the integer index of the newly appended item.
|
218
218
|
def appendItem(text, icon=nil, data=nil, notify=false) ; end
|
219
219
|
|
220
|
+
alias << appendItem
|
221
|
+
|
220
222
|
# Prepend a (possibly subclassed) _item_ to the list, e.g.
|
221
223
|
#
|
222
224
|
# list.prependItem(FXListItem.new("clyde"))
|
data/rdoc-sources/FXListBox.rb
CHANGED
data/rdoc-sources/FXText.rb
CHANGED
@@ -436,8 +436,8 @@ module Fox
|
|
436
436
|
#
|
437
437
|
# Search for _string_ in text buffer, and return the extent of
|
438
438
|
# the string as a two-element array of arrays.
|
439
|
-
# The first array contains the beginning index (or indices)
|
440
|
-
# and the second array contains the ending index (or indices).
|
439
|
+
# The first array contains the beginning index (or indices if +SEARCH_REGEX+)
|
440
|
+
# and the second array contains the ending index (or indices if +SEARCH_REGEX+) of the first match.
|
441
441
|
# The search starts from the given
|
442
442
|
# _start_ position, scans forward (+SEARCH_FORWARD+) or backward
|
443
443
|
# (+SEARCH_BACKWARD+), and wraps around if +SEARCH_WRAP+ has been
|
@@ -445,6 +445,8 @@ module Fox
|
|
445
445
|
# case insensitive search (+SEARCH_IGNORECASE+), or regular expression
|
446
446
|
# search (+SEARCH_REGEX+).
|
447
447
|
#
|
448
|
+
# For regular expression searches, the found regex match begin and end is returned at index 0 and captures are returned as entries starting at index 1 in both beginning and ending arrays.
|
449
|
+
#
|
448
450
|
def findText(string, start=0, flags=SEARCH_FORWARD|SEARCH_WRAP|SEARCH_EXACT); end
|
449
451
|
|
450
452
|
# Return +true+ if position _pos_ is selected
|
data/swig-interfaces/FXImage.i
CHANGED
@@ -58,7 +58,7 @@ public:
|
|
58
58
|
FXImage(FXApp* a,VALUE string_or_ary=Qnil,FXuint opts=0,FXint w=1,FXint h=1){
|
59
59
|
FXColor* pix=0;
|
60
60
|
if(!NIL_P(string_or_ary)){
|
61
|
-
|
61
|
+
FXint len=FXRbNumberOfFXColors(string_or_ary);
|
62
62
|
if(w*h != len){
|
63
63
|
rb_raise( rb_eArgError, "Array size does not match image size" );
|
64
64
|
}
|
@@ -76,6 +76,11 @@ public:
|
|
76
76
|
return 0;
|
77
77
|
}
|
78
78
|
}
|
79
|
+
|
80
|
+
/// Get a pointer to the pixel data
|
81
|
+
VALUE getDataPtr() const {
|
82
|
+
return ULL2NUM((uintptr_t)self->getData());
|
83
|
+
}
|
79
84
|
}
|
80
85
|
|
81
86
|
/// To get to the option flags
|
@@ -92,9 +97,9 @@ public:
|
|
92
97
|
* This can be done by calling render().
|
93
98
|
*/
|
94
99
|
void setPixels(VALUE string_or_ary,FXuint opts=0,VALUE w=Qnil,VALUE h=Qnil){
|
95
|
-
|
100
|
+
FXint len=FXRbNumberOfFXColors(string_or_ary);
|
96
101
|
if( ( (NIL_P(w) || NIL_P(h)) && self->getWidth()*self->getHeight() != len) ||
|
97
|
-
(!(NIL_P(w) || NIL_P(h)) &&
|
102
|
+
(!(NIL_P(w) || NIL_P(h)) && NUM2INT(w)*NUM2INT(h) != len)){
|
98
103
|
rb_raise( rb_eArgError, "Array size does not match image size" );
|
99
104
|
}
|
100
105
|
|
@@ -111,7 +116,7 @@ public:
|
|
111
116
|
if (data) {
|
112
117
|
FXuint size = self->getWidth()*self->getHeight();
|
113
118
|
VALUE ary = rb_ary_new2(size);
|
114
|
-
for (
|
119
|
+
for (FXuint i = 0; i < size; i++)
|
115
120
|
rb_ary_store(ary, i, UINT2NUM(data[i]));
|
116
121
|
return ary;
|
117
122
|
} else {
|
@@ -27,7 +27,7 @@
|
|
27
27
|
class FXMemoryBuffer {
|
28
28
|
public:
|
29
29
|
// Create an memory buffer object
|
30
|
-
FXMemoryBuffer(FXColor *data,
|
30
|
+
FXMemoryBuffer(FXColor *data,FXint size);
|
31
31
|
|
32
32
|
// Returns the size (in bytes)
|
33
33
|
FXuint getSize() const;
|
@@ -39,7 +39,7 @@ public:
|
|
39
39
|
if (data) {
|
40
40
|
FXuint size = self->getSize();
|
41
41
|
VALUE ary = rb_ary_new2(size);
|
42
|
-
for (
|
42
|
+
for (FXuint i = 0; i < size; i++)
|
43
43
|
rb_ary_store(ary, i, UINT2NUM(data[i]));
|
44
44
|
return ary;
|
45
45
|
}
|
data/swig-interfaces/FXText.i
CHANGED
@@ -519,6 +519,8 @@ public:
|
|
519
519
|
|
520
520
|
%extend {
|
521
521
|
/**
|
522
|
+
* TODO: Change API to return [beg, end] instead of [[beg], [end]] for non regex.
|
523
|
+
*
|
522
524
|
* Search for string in text buffer, returning the extent of
|
523
525
|
* the string in beg and end. The search starts from the given
|
524
526
|
* starting position, scans forward (SEARCH_FORWARD) or backward
|
@@ -536,23 +538,23 @@ public:
|
|
536
538
|
FXint* beg;
|
537
539
|
FXint* end;
|
538
540
|
VALUE ary=Qnil;
|
539
|
-
|
541
|
+
FXint ngroups = flags&SEARCH_REGEX ? string.contains('(')+1 : 1; // FIXME: is this right?
|
540
542
|
if(!FXMALLOC(&beg,FXint,ngroups)){
|
541
543
|
return Qnil;
|
542
|
-
|
544
|
+
}
|
543
545
|
if(!FXMALLOC(&end,FXint,ngroups)){
|
544
546
|
FXFREE(&beg);
|
545
|
-
|
546
|
-
|
547
|
+
return Qnil;
|
548
|
+
}
|
547
549
|
if(self->findText(string,beg,end,start,flags,ngroups)){
|
548
550
|
ary=rb_ary_new();
|
549
|
-
|
550
|
-
|
551
|
-
|
551
|
+
rb_ary_push(ary,FXRbMakeArray(beg,ngroups));
|
552
|
+
rb_ary_push(ary,FXRbMakeArray(end,ngroups));
|
553
|
+
}
|
552
554
|
FXFREE(&beg);
|
553
555
|
FXFREE(&end);
|
554
556
|
return ary;
|
555
|
-
|
557
|
+
}
|
556
558
|
}
|
557
559
|
|
558
560
|
/// Return TRUE if position pos is selected
|
data/swig-interfaces/macros.i
CHANGED
@@ -1165,6 +1165,15 @@
|
|
1165
1165
|
|
1166
1166
|
%define DECLARE_FXTEXT_VIRTUALS(klass)
|
1167
1167
|
%extend klass {
|
1168
|
+
virtual void eraseCursorOverhang();
|
1169
|
+
virtual void drawCursor(FXuint state);
|
1170
|
+
virtual FXuint style(FXint row,FXint beg,FXint end,FXint pos);
|
1171
|
+
virtual void drawBufferText(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXint pos,FXint n,FXuint style);
|
1172
|
+
virtual void fillBufferRect(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXuint style);
|
1173
|
+
virtual void drawTextRow(FXDCWindow& dc,FXint line,FXint left,FXint right);
|
1174
|
+
virtual void drawContents(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
|
1175
|
+
virtual void drawNumbers(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
|
1176
|
+
|
1168
1177
|
virtual void setCursorPos(FXint pos,FXbool notify=FALSE);
|
1169
1178
|
virtual FXbool extendSelection(FXint pos,FXTextSelectionMode mode=SELECT_CHARS,FXbool notify=FALSE);
|
1170
1179
|
virtual FXbool killSelection(FXbool notify=FALSE);
|
data/test/TC_FXImage.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require 'testcase'
|
3
3
|
require 'fox16'
|
4
|
+
require 'fiddle'
|
4
5
|
|
5
6
|
class TC_FXImage < Fox::TestCase
|
6
7
|
include Fox
|
@@ -80,6 +81,13 @@ class TC_FXImage < Fox::TestCase
|
|
80
81
|
assert_equal("rgbaRGBA", img.pixel_string)
|
81
82
|
end
|
82
83
|
|
84
|
+
def test_dataPtr
|
85
|
+
img = FXImage.new(app, nil, 0, 2, 1)
|
86
|
+
img.pixels = "rgbaRGBA"
|
87
|
+
assert_equal(0, img.options)
|
88
|
+
assert_equal("rgbaRGBA", Fiddle::Pointer.new(img.dataPtr)[0, 8])
|
89
|
+
end
|
90
|
+
|
83
91
|
def test_create
|
84
92
|
#
|
85
93
|
# If the image owns its pixel data and IMAGE_KEEP was not specified,
|
data/test/TC_FXList.rb
CHANGED
@@ -46,17 +46,17 @@ class TC_FXList < Fox::TestCase
|
|
46
46
|
|
47
47
|
def test_appendItem_byText
|
48
48
|
assert_equal(0, @list.numItems)
|
49
|
-
|
49
|
+
assert_equal 0, @list.appendItem("")
|
50
50
|
assert_equal(1, @list.numItems)
|
51
|
-
|
51
|
+
assert_equal 1, @list.appendItem("anItem")
|
52
52
|
assert_equal(2, @list.numItems)
|
53
|
-
|
53
|
+
assert_equal 2, @list.appendItem("anItem", nil)
|
54
54
|
assert_equal(3, @list.numItems)
|
55
|
-
|
55
|
+
assert_equal 3, @list.appendItem("anItem", nil, "someData")
|
56
56
|
assert_equal(4, @list.numItems)
|
57
|
-
|
57
|
+
assert_equal 4, @list.appendItem("anItem", nil, "someData", true)
|
58
58
|
assert_equal(5, @list.numItems)
|
59
|
-
|
59
|
+
assert_equal 5, @list.appendItem("anItem", nil, "someData", false)
|
60
60
|
assert_equal(6, @list.numItems)
|
61
61
|
assert_raises(ArgumentError) do
|
62
62
|
@list.appendItem("anItem", nil, "someData", 42) # last argument must be true or false
|
@@ -103,9 +103,9 @@ class TC_FXList < Fox::TestCase
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def test_makeItemVisible
|
106
|
-
items = []
|
107
106
|
0.upto(2) { |i|
|
108
|
-
|
107
|
+
itemIndex = @list.appendItem("item#{i}")
|
108
|
+
assert_equal i, itemIndex
|
109
109
|
}
|
110
110
|
assert_raises(IndexError) {
|
111
111
|
@list.makeItemVisible(-1)
|
data/test/TC_FXText.rb
CHANGED
@@ -87,6 +87,13 @@ public
|
|
87
87
|
assert_equal([10], endIndex)
|
88
88
|
end
|
89
89
|
|
90
|
+
def test_find_text_with_startpos_wrap_nocase
|
91
|
+
@text.text = "I came, i saw, I conquered"
|
92
|
+
startIndex, endIndex = @text.findText("i ", 16, SEARCH_FORWARD|SEARCH_IGNORECASE|SEARCH_WRAP)
|
93
|
+
assert_equal([0], startIndex)
|
94
|
+
assert_equal([2], endIndex)
|
95
|
+
end
|
96
|
+
|
90
97
|
def test_find_text_with_groups
|
91
98
|
@text.text = "I came, I saw, I conquered"
|
92
99
|
startIndex, endIndex = @text.findText("I ([a-z]+)(, )?", 0, SEARCH_REGEX)
|
@@ -94,6 +101,18 @@ public
|
|
94
101
|
assert_equal([8, 6, 8], endIndex)
|
95
102
|
end
|
96
103
|
|
104
|
+
def test_find_text_with_loop
|
105
|
+
@text.text = "() ()()"
|
106
|
+
e = Enumerator.new do |y|
|
107
|
+
pos = 0
|
108
|
+
while a=@text.findText("()", pos, SEARCH_FORWARD|SEARCH_EXACT)
|
109
|
+
y << a
|
110
|
+
pos = a[1][0]
|
111
|
+
end
|
112
|
+
end
|
113
|
+
assert_equal [[[0], [2]], [[4], [6]], [[6], [8]]], e.to_a
|
114
|
+
end
|
115
|
+
|
97
116
|
if ''.respond_to?(:encoding)
|
98
117
|
def test_encoding
|
99
118
|
@text.text = "世界線航跡蔵"
|
data/test/TC_FXVec4f.rb
CHANGED
@@ -5,6 +5,20 @@ require 'fox16'
|
|
5
5
|
class TC_FXVec4f < Test::Unit::TestCase
|
6
6
|
include Fox
|
7
7
|
|
8
|
+
def assert_in_delta(v1, v2, delta)
|
9
|
+
case v1
|
10
|
+
when FXVec3f
|
11
|
+
3.times do |i|
|
12
|
+
super(v1[i], v2[i], delta)
|
13
|
+
end
|
14
|
+
when FXVec4f
|
15
|
+
4.times do |i|
|
16
|
+
super(v1[i], v2[i], delta)
|
17
|
+
end
|
18
|
+
else
|
19
|
+
super(v1, v2, delta)
|
20
|
+
end
|
21
|
+
end
|
8
22
|
|
9
23
|
def test_new
|
10
24
|
FXVec4f.new
|
@@ -65,37 +79,37 @@ class TC_FXVec4f < Test::Unit::TestCase
|
|
65
79
|
def test_neg
|
66
80
|
vec = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
|
67
81
|
vec = -vec
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
82
|
+
assert_in_delta(vec[0], -1.0, 0.001)
|
83
|
+
assert_in_delta(vec[1], -2.0, 0.001)
|
84
|
+
assert_in_delta(vec[2], -3.0, 0.001)
|
85
|
+
assert_in_delta(vec[3], -4.0, 0.001)
|
72
86
|
end
|
73
87
|
|
74
88
|
def test_add
|
75
89
|
v1 = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
|
76
90
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
77
91
|
v3 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
78
|
-
|
92
|
+
assert_in_delta(v3, v1 + v2, 0.001)
|
79
93
|
end
|
80
94
|
|
81
95
|
def test_sub
|
82
96
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
83
97
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
84
98
|
v3 = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
|
85
|
-
|
99
|
+
assert_in_delta(v3, v1 - v2, 0.001)
|
86
100
|
end
|
87
101
|
|
88
102
|
def test_mul
|
89
103
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
90
104
|
v2 = FXVec4f.new(6.0, 12.0, 18.0, 24.0)
|
91
|
-
|
105
|
+
assert_in_delta(v2, v1 * 2, 0.001)
|
92
106
|
end
|
93
107
|
|
94
108
|
def test_mul2 # same as dot product
|
95
109
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
96
110
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
97
|
-
|
98
|
-
|
111
|
+
assert_in_delta(180.0, v1*v2, 0.001)
|
112
|
+
assert_in_delta(180.0, v2*v1, 0.001)
|
99
113
|
end
|
100
114
|
|
101
115
|
def test_div
|
@@ -110,8 +124,8 @@ class TC_FXVec4f < Test::Unit::TestCase
|
|
110
124
|
def test_dot
|
111
125
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
112
126
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
113
|
-
|
114
|
-
|
127
|
+
assert_in_delta(180.0, v1.dot(v2), 0.001)
|
128
|
+
assert_in_delta(180.0, v2.dot(v1), 0.001)
|
115
129
|
end
|
116
130
|
|
117
131
|
def test_length
|
@@ -121,7 +135,7 @@ class TC_FXVec4f < Test::Unit::TestCase
|
|
121
135
|
|
122
136
|
def test_normalize
|
123
137
|
vec = FXVec4f.new(1.0, 1.0, 1.0, 1.0)
|
124
|
-
|
138
|
+
assert_in_delta(FXVec4f.new(0.5, 0.5, 0.5, 0.5), vec.normalize, 0.001)
|
125
139
|
end
|
126
140
|
|
127
141
|
def test_lo
|