fxruby-commits Mailing List for FXRuby (Page 12)
Status: Inactive
Brought to you by:
lyle
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
(39) |
Apr
(69) |
May
(117) |
Jun
(22) |
Jul
(57) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: Lyle J. <ly...@us...> - 2002-03-26 21:38:56
|
Update of /cvsroot/fxruby/FXRuby/swig-interfaces In directory usw-pr-cvs1:/tmp/cvs-serv31786 Modified Files: FXApp.i Log Message: Index: FXApp.i =================================================================== RCS file: /cvsroot/fxruby/FXRuby/swig-interfaces/FXApp.i,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** FXApp.i 19 Mar 2002 23:18:40 -0000 1.37 --- FXApp.i 26 Mar 2002 21:38:50 -0000 1.38 *************** *** 112,115 **** --- 112,122 ---- %exception FXApp::FXApp "$action FXRbRegisterRubyObj(self, result);"; + %ignore FXApp::getDisplay() const; + %ignore FXApp::findWindowWithId(FXID xid) const; + %ignore FXApp::findWindowAt(FXint rx, FXint ry, FXID window) const; + + %rename(stopModalMatching) FXApp::stopModal(FXWindow* window,FXint value); + %rename(stopModalInnermost) FXApp::stopModal(FXint value); + /// Application Object class FXApp : public FXObject { *************** *** 167,171 **** /// Return pointer ! // void* getDisplay() const; // FIXME /// Get default visual --- 174,178 ---- /// Return pointer ! void* getDisplay() const; /// Get default visual *************** *** 191,198 **** /// Find window from id ! // FXWindow* findWindowWithId(FXID xid) const; IDPROB /// Find window from root x,y, starting from given window ! // FXWindow* findWindowAt(FXint rx,FXint ry,FXID window=0) const; IDPROB /** --- 198,205 ---- /// Find window from id ! FXWindow* findWindowWithId(FXID xid) const; /// Find window from root x,y, starting from given window ! FXWindow* findWindowAt(FXint rx,FXint ry,FXID window=0) const; /** *************** *** 355,364 **** * All deeper nested event loops are terminated with code equal to 0. */ ! %name(stopModalMatching) void stopModal(FXWindow* window,FXint value=0); /** * Break out of the innermost modal loop, returning code equal to value. */ ! %name(stopModalInnermost) void stopModal(FXint value=0); /// Force GUI refresh --- 362,371 ---- * All deeper nested event loops are terminated with code equal to 0. */ ! void stopModal(FXWindow* window,FXint value=0); /** * Break out of the innermost modal loop, returning code equal to value. */ ! void stopModal(FXint value=0); /// Force GUI refresh |
From: Lyle J. <ly...@us...> - 2002-03-26 21:38:37
|
Update of /cvsroot/fxruby/FXRuby/swig-interfaces In directory usw-pr-cvs1:/tmp/cvs-serv31508 Modified Files: FXWindow.i Log Message: FXWindow#childAtIndex now raises IndexError when the index out of bounds. Index: FXWindow.i =================================================================== RCS file: /cvsroot/fxruby/FXRuby/swig-interfaces/FXWindow.i,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** FXWindow.i 19 Mar 2002 23:18:40 -0000 1.30 --- FXWindow.i 26 Mar 2002 21:38:33 -0000 1.31 *************** *** 76,79 **** --- 76,86 ---- %exception FXWindow::FXWindow "$action FXRbRegisterRubyObj(self, result);"; + %typemap(except) FXWindow* FXWindow::childAtIndex { + $action; + if (!$1) { + rb_raise(rb_eIndexError, "child window index out of bounds"); + } + } + /// Base class for all windows class FXWindow : public FXDrawable { |
From: Lyle J. <ly...@us...> - 2002-03-26 21:36:28
|
Update of /cvsroot/fxruby/FXRuby/rdoc-sources In directory usw-pr-cvs1:/tmp/cvs-serv30952 Modified Files: FX4Splitter.rb FXApp.rb FXButton.rb FXFrame.rb FXLabel.rb FXWindow.rb Added Files: FXDrawable.rb FXGIFIcon.rb FXIcon.rb FXId.rb FXImage.rb FXTooltip.rb Log Message: New and updated RDoc sources. --- NEW FILE: FXDrawable.rb --- module Fox # Drawable is an abstract base class for any surface that can be # drawn upon, such as a FXWindow, or FXImage. class FXDrawable < FXId # Width of drawable def width() ; end # Height of drawable def height() ; end # Get the visual def visual() ; end # Change visual def visual=(vis); end # Resize drawable to the specified width and height def resize(w, h); end end end --- NEW FILE: FXGIFIcon.rb --- module Fox # GIF Icon class class FXGIFIcon < FXIcon # Constructor def initialize(app, pixels=nil, clr=0, opts=0, w=1, h=1) ; end end end --- NEW FILE: FXIcon.rb --- module Fox # Icon class class FXIcon < FXImage # Create an icon with an initial pixel buffer pix, a transparent color clr, # and options as in FXImage. def initialize(app, pixels=nil, clr=0, opts=0, w=1, h=1) ; end # Obtain transparency color def transparentColor() ; end # Change transparency color def transparentColor=(color) ; end end end --- NEW FILE: FXId.rb --- module Fox # Encapsulates server side resource class FXId < FXObject # Get application def app() ; end # Create resource def create(); end # Detach resource def detach(); end # Destroy resource def destroy(); end # Set user data def userData=(data) ; end # Get user data def userData() ; end end end --- NEW FILE: FXImage.rb --- module Fox # Image class # # = Image rendering hints # IMAGE_KEEP:: Keep pixel data in client # IMAGE_OWNED:: Pixel data is owned by image # IMAGE_DITHER:: Dither image to look better # IMAGE_NEAREST:: Turn off dithering and map to nearest color # IMAGE_ALPHA:: Data has alpha channel # IMAGE_OPAQUE:: Force opaque background # IMAGE_ALPHACOLOR:: Override transparancy color # IMAGE_SHMI:: Using shared memory image # IMAGE_SHMP:: Using shared memory pixmap # IMAGE_ALPHAGUESS:: Guess transparency color from corners # class FXImage < FXDrawable # Create an image def initialize(app, pixels=nil, opts=0, w=1, h=1); end # Returns a copy of the pixel data def data() ; end # Return the option flags def options() ; end # Change options def options=(opts) ; end # Return number of channels, RGB or RGBA def channels() ; end # Get pixel at x,y def getPixel(x, y) ; end # Change pixel at x,y def setPixel(x, y, color) ; end # Restore client-side pixel buffer from image def restore() ; end # Render the image from client-side pixel buffer def render() ; end # Rescale pixels image to the specified width and height def scale(w, h) ; end # Mirror image horizontally and/or vertically def mirror(horizontal, vertical) ; end # Rotate image by degrees ccw def rotate(degrees) ; end # Crop image to given rectangle def crop(x, y, w, h) ; end # Save pixel data to an FXStream def savePixels(store) ; end # Load pixel data from an FXStream def loadPixels(store) ; end end end --- NEW FILE: FXTooltip.rb --- module Fox # Hopefully Helpful Hint message # # = Tooltip styles # TOOLTIP_PERMANENT:: Tooltip stays up indefinitely # TOOLTIP_VARIABLE:: Tooltip stays up variable time, depending on the length of the string # TOOLTIP_NORMAL:: # # = Message identifiers # # ID_TIP_SHOW:: Show it # ID_TIP_HIDE:: Hide it # class FXTooltip < FXShell # Handles the +SEL_PAINT+ message def onPaint(sender, selector, event); end # Handles the +SEL_UPDATE+ message def onUpdate(sender, selector, ptr); end # Handles the +SEL_COMMAND+ message with identifier +ID_TIP_SHOW+ def onTipShow(sender, selector, ptr); end # Handles the +SEL_COMMAND+ message with identifier +ID_TIP_HIDE+ def onTipHide(sender, selector, ptr); end def onCmdGetStringValue(sender, selector, ptr) ; end def onCmdSetStringValue(sender, selector, string); end # Construct a tool tip def initialize(app, opts=TOOLTIP_NORMAL, x=0, y=0, w=0, h=0); end # Set the text for this tip def text=(text); end # Get the text for this tip def text() ; end # Set the tip text font def font=(font) ; end # Get the tip text font def font() ; end # Get the current tip text color def textColor() ; end # Set the current tip text color def textColor=(color); end end end Index: FX4Splitter.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/rdoc-sources/FX4Splitter.rb,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FX4Splitter.rb 7 Feb 2002 16:54:54 -0000 1.2 --- FX4Splitter.rb 26 Mar 2002 21:36:22 -0000 1.3 *************** *** 30,73 **** class FX4Splitter < FXComposite # Get top left child, if any ! def getTopLeft(); end # Get top right child, if any ! def getTopRight(); end # Get bottom left child, if any ! def getBottomLeft(); end # Get bottom right child, if any ! def getBottomRight(); end # Get horizontal split fraction ! def getHSplit(); end # Get vertical split fraction ! def getVSplit(); end # Change horizontal split fraction ! def setHSplit(hSplit); end # Change vertical split fraction ! def setVSplit(vSplit); end # Return current splitter style ! def getSplitterStyle(); end # Change splitter style ! def setSplitterStyle(splitterStyle); end # Change splitter bar width ! def setBarSize(barSize); end # Get splitter bar width ! def getBarSize(); end # Expand child (_expanded_=0, 1, 2 or 3), or restore to 4-way split (_expanded_=-1) ! def setExpanded(expanded); end # Get expanded child, or -1 if not expanded ! def getExpanded(); end # Handles the +SEL_LEFTBUTTONPRESS+ message --- 30,73 ---- class FX4Splitter < FXComposite # Get top left child, if any ! def topLeft(); end # Get top right child, if any ! def topRight(); end # Get bottom left child, if any ! def bottomLeft(); end # Get bottom right child, if any ! def bottomRight(); end # Get horizontal split fraction ! def hSplit(); end # Get vertical split fraction ! def vSplit(); end # Change horizontal split fraction ! def hSplit=(hSplit); end # Change vertical split fraction ! def vSplit=(vSplit); end # Return current splitter style ! def splitterStyle(); end # Change splitter style ! def splitterStyle=(splitterStyle); end # Change splitter bar width ! def barSize=(barSize); end # Get splitter bar width ! def barSize(); end # Expand child (_expanded_=0, 1, 2 or 3), or restore to 4-way split (_expanded_=-1) ! def expanded=(expanded); end # Get expanded child, or -1 if not expanded ! def expanded(); end # Handles the +SEL_LEFTBUTTONPRESS+ message Index: FXApp.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/rdoc-sources/FXApp.rb,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FXApp.rb 7 Feb 2002 16:54:54 -0000 1.3 --- FXApp.rb 26 Mar 2002 21:36:23 -0000 1.4 *************** *** 2,27 **** # FOX Event class FXEvent ! attr_accessor :type # Event type ! attr_accessor :time # Time of last event ! attr_accessor :win_x # Window-relative x-coord ! attr_accessor :win_y # Window-relative y-coord ! attr_accessor :root_x # Root x-coord ! attr_accessor :root_y # Root y-coord ! attr_accessor :state # Keyboard/Modifier state ! attr_accessor :code # Button, Keysym, or mode DDE Source ! attr_accessor :text # Text of keyboard event ! attr_accessor :last_x # Window-relative x-coord of previous mouse location ! attr_accessor :last_y # Window-relative y-coord of previous mouse location ! attr_accessor :click_x # Window-relative x-coord of mouse press ! attr_accessor :click_y # Window-relative y-coord of mouse press ! attr_accessor :rootclick_x # Root-relative x-coord of mouse press ! attr_accessor :rootclick_y # Root-relative y-coord of mouse press ! attr_accessor :click_time # Time of mouse button press ! attr_accessor :click_button # Mouse button pressed ! attr_accessor :click_count # Click-count ! attr_accessor :moved # Moved cursor since press ! attr_accessor :rect # Rectangle ! attr_accessor :synthetic # True if synthetic expose event ! attr_accessor :target # Target drag type being requested end --- 2,49 ---- # FOX Event class FXEvent ! # Event type ! def type ; end ! # Time of last event ! def time ; end ! # Window-relative x-coord ! def win_x ; end ! # Window-relative y-coord ! def win_y ; end ! # Root x-coord ! def root_x ; end ! # Root y-coord ! def root_y ; end ! # Keyboard/Modifier state ! def state ; end ! # Button, Keysym, or mode DDE Source ! def code ; end ! # Text of keyboard event ! def text ; end ! # Window-relative x-coord of previous mouse location ! def last_x ; end ! # Window-relative y-coord of previous mouse location ! def last_y ; end ! # Window-relative x-coord of mouse press ! def click_x ; end ! # Window-relative y-coord of mouse press ! def click_y ; end ! # Root-relative x-coord of mouse press ! def rootclick_x ; end ! # Root-relative y-coord of mouse press ! def rootclick_y ; end ! # Time of mouse button press ! def click_time ; end ! # Mouse button pressed ! def click_button ; end ! # Click-count ! def click_count ; end ! # Moved cursor since press ! def moved ; end ! # Exposed rectangle for paint events ! def rect ; end ! # True if synthetic expose event ! def synthetic ; end ! # Target drag type being requested ! def target ; end end *************** *** 90,97 **** # Get application name ! def getAppName() ; end # Get vendor name ! def getVendorName() ; end # Connection to display; this is called by #init --- 112,119 ---- # Get application name ! def appName() ; end # Get vendor name ! def vendorName() ; end # Connection to display; this is called by #init *************** *** 102,124 **** # Get default visual ! def getDefaultVisual() ; end # Change default visual ! def setDefaultVisual(vis) ; end # Get monochrome visual ! def getMonoVisual() ; end # Get root window ! def getRoot() ; end # Get the window under the cursor, if any ! def getCursorWindow() ; end # Get the window which has the focus, if any ! def getFocusWindow() ; end # Get main window, if any ! def getMainWindow() ; end # Add timeout message to be sent to target object in milliseconds; --- 124,146 ---- # Get default visual ! def defaultVisual() ; end # Change default visual ! def defaultVisual=(vis) ; end # Get monochrome visual ! def monoVisual() ; end # Get root window ! def root() ; end # Get the window under the cursor, if any ! def cursorWindow() ; end # Get the window which has the focus, if any ! def focusWindow() ; end # Get main window, if any ! def mainWindow() ; end # Add timeout message to be sent to target object in milliseconds; *************** *** 204,208 **** # True if the window is modal ! def isModal(window) ; end # Return window of current modal loop --- 226,230 ---- # True if the window is modal ! def modal?(window) ; end # Return window of current modal loop *************** *** 262,269 **** # Change default font ! def setNormalFont(font); end # Return default font ! def getNormalFont() ; end # Begin of wait-cursor block; wait-cursor blocks may be nested. --- 284,291 ---- # Change default font ! def normalFont=(font); end # Return default font ! def normalFont() ; end # Begin of wait-cursor block; wait-cursor blocks may be nested. *************** *** 274,281 **** # Change to a new wait cursor ! def setWaitCursor(cur); end # Return current wait cursor ! def getWaitCursor() ; end # Obtain a default cursor --- 296,303 ---- # Change to a new wait cursor ! def waitCursor=(cur); end # Return current wait cursor ! def waitCursor() ; end # Obtain a default cursor *************** *** 286,355 **** # Obtain application-wide settings ! def getTypingSpeed() ; end ! def getClickSpeed() ; end ! def getScrollSpeed() ; end ! def getScrollDelay() ; end ! def getBlinkSpeed() ; end ! def getAnimSpeed() ; end ! def getMenuPause() ; end ! def getTooltipPause() ; end ! def getTooltipTime() ; end ! def getDragDelta() ; end ! def getWheelLines() ; end # Change application-wide settings ! def setTypingSpeed(speed); end ! def setClickSpeed(speed); end ! def setScrollSpeed(speed); end ! def setScrollDelay(delay); end ! def setBlinkSpeed(speed); end ! def setAnimSpeed(speed); end ! def setMenuPause(pause); end ! def setTooltipPause(pause); end ! def setTooltipTime(time); end ! def setDragDelta(delta); end ! def setWheelLines(lines); end # Get default border color ! def getBorderColor() ; end # Get default base color ! def getBaseColor() ; end # Get default hilite color ! def getHiliteColor() ; end # Get default shadow color ! def getShadowColor() ; end # Get default background color ! def getBackColor() ; end # Get default foreground color ! def getForeColor() ; end # Get default selection foreground color ! def getSelforeColor() ; end # Get default selection background color ! def getSelbackColor() ; end # Get default tooltip foreground color ! def getTipforeColor() ; end # Get default tooltip background color ! def getTipbackColor() ; end # Set default border color ! def setBorderColor(color); end # Set default base color ! def setBaseColor(color); end # Set default hilite color ! def setHiliteColor(color); end # Set default shadow color ! def setShadowColor(color); end # Set default background color ! def setBackColor(color); end # Set default foreground color ! def setForeColor(color); end # Set default selection foreground color ! def setSelforeColor(color); end # Set default selection background color ! def setSelbackColor(color); end # Set default tooltip foreground color ! def setTipforeColor(color); end # Set default tooltip background color ! def setTipbackColor(color); end # Dump widget information --- 308,377 ---- # Obtain application-wide settings ! def typingSpeed() ; end ! def clickSpeed() ; end ! def scrollSpeed() ; end ! def scrollDelay() ; end ! def blinkSpeed() ; end ! def animSpeed() ; end ! def menuPause() ; end ! def tooltipPause() ; end ! def tooltipTime() ; end ! def dragDelta() ; end ! def wheelLines() ; end # Change application-wide settings ! def typingSpeed=(speed); end ! def clickSpeed=(speed); end ! def scrollSpeed=(speed); end ! def scrollDelay=(delay); end ! def blinkSpeed=(speed); end ! def animSpeed=(speed); end ! def menuPause=(pause); end ! def tooltipPause=(pause); end ! def tooltipTime=(time); end ! def dragDelta=(delta); end ! def wheelLines=(lines); end # Get default border color ! def borderColor() ; end # Get default base color ! def baseColor() ; end # Get default hilite color ! def hiliteColor() ; end # Get default shadow color ! def shadowColor() ; end # Get default background color ! def backColor() ; end # Get default foreground color ! def foreColor() ; end # Get default selection foreground color ! def selforeColor() ; end # Get default selection background color ! def selbackColor() ; end # Get default tooltip foreground color ! def tipforeColor() ; end # Get default tooltip background color ! def tipbackColor() ; end # Set default border color ! def borderColor=(color); end # Set default base color ! def baseColor=(color); end # Set default hilite color ! def hiliteColor=(color); end # Set default shadow color ! def shadowColor=(color); end # Set default background color ! def backColor=(color); end # Set default foreground color ! def foreColor=(color); end # Set default selection foreground color ! def selforeColor=(color); end # Set default selection background color ! def selbackColor=(color); end # Set default tooltip foreground color ! def tipforeColor=(color); end # Set default tooltip background color ! def tipbackColor=(color); end # Dump widget information *************** *** 363,370 **** # Set the amount of time to sleep ! def setSleepTime(sleepTime); end # Get the amount of time to sleep ! def getSleepTime() ; end end end --- 385,392 ---- # Set the amount of time to sleep ! def sleepTime=(sleepTime); end # Get the amount of time to sleep ! def sleepTime() ; end end end Index: FXButton.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/rdoc-sources/FXButton.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FXButton.rb 7 Feb 2002 16:54:54 -0000 1.1 --- FXButton.rb 26 Mar 2002 21:36:23 -0000 1.2 *************** *** 25,39 **** def setDefault(enable=true) ; end ! # Set the button state ! def setState(s) ; end # Get the button state ! def getState() ; end ! # Set the button style flags ! def setButtonStyle(style) ; end # Get the button style flags ! def getButtonStyle() ; end # Handles the +SEL_PAINT+ message --- 25,39 ---- def setDefault(enable=true) ; end ! # Set the button state (one of +STATE_UP+, +STATE_DOWN+, etc.) ! def state=(s) ; end # Get the button state ! def state() ; end ! # Set the button style flags (e.g. combinations of +BUTTON_AUTOGRAY+, +BUTTON_AUTOHIDE+, etc.) ! def buttonStyle=(style) ; end # Get the button style flags ! def buttonStyle() ; end # Handles the +SEL_PAINT+ message Index: FXFrame.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/rdoc-sources/FXFrame.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FXFrame.rb 7 Feb 2002 16:54:54 -0000 1.1 --- FXFrame.rb 26 Mar 2002 21:36:23 -0000 1.2 *************** *** 10,68 **** # Change frame style ! def setFrameStyle(frameStyle) ; end # Get current frame style ! def getFrameStyle() ; end # Get border width ! def getBorderWidth() ; end # Change top padding ! def setPadTop(padTop) ; end # Get top interior padding ! def getPadTop() ; end # Change bottom padding ! def setPadBottom(padBottom) ; end # Get bottom interior padding ! def getPadBottom() ; end # Change left padding ! def setPadLeft(padLeft) ; end # Get left interior padding ! def getPadLeft() ; end # Change right padding ! def setPadRight(padRight) ; end # Get right interior padding ! def getPadRight() ; end # Change highlight color ! def setHiliteColor(hiliteColor) ; end # Get highlight color ! def getHiliteColor() ; end # Change shadow color ! def setShadowColor(shadowColor) ; end # Get shadow color ! def getShadowColor() ; end # Change border color ! def setBorderColor(borderColor) ; end # Get border color ! def getBorderColor() ; end # Change base GUI color ! def setBaseColor(baseColor) ; end # Get base GUI color ! def getBaseColor() ; end # Handles the +SEL_PAINT+ message --- 10,68 ---- # Change frame style ! def frameStyle=(frameStyle) ; end # Get current frame style ! def frameStyle() ; end # Get border width ! def borderWidth() ; end # Change top padding ! def padTop=(padTop) ; end # Get top interior padding ! def padTop() ; end # Change bottom padding ! def padBottom=(padBottom) ; end # Get bottom interior padding ! def padBottom() ; end # Change left padding ! def padLeft=(padLeft) ; end # Get left interior padding ! def padLeft() ; end # Change right padding ! def padRight=(padRight) ; end # Get right interior padding ! def padRight() ; end # Change highlight color ! def hiliteColor=(hiliteColor) ; end # Get highlight color ! def hiliteColor() ; end # Change shadow color ! def shadowColor=(shadowColor) ; end # Get shadow color ! def shadowColor() ; end # Change border color ! def borderColor=(borderColor) ; end # Get border color ! def borderColor() ; end # Change base GUI color ! def baseColor=(baseColor) ; end # Get base GUI color ! def baseColor() ; end # Handles the +SEL_PAINT+ message Index: FXLabel.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/rdoc-sources/FXLabel.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FXLabel.rb 7 Feb 2002 16:54:54 -0000 1.1 --- FXLabel.rb 26 Mar 2002 21:36:23 -0000 1.2 *************** *** 39,88 **** # Set the text for this label ! def setText(text) ; end # Get the text for this label ! def getText() ; end # Set the icon for this label ! def setIcon(icon) ; end # Get the icon for this label ! def getIcon() ; end # Set the text font ! def setFont(font) ; end # Get the text font ! def getFont() ; end # Get the current text color ! def getTextColor() ; end # Set the current text color ! def setTextColor(textColor) ; end # Set the current text-justification mode. ! def setJustify(justifyMode) ; end # Get the current text-justification mode. ! def getJustify() ; end # Set the current icon position ! def setIconPosition(iconPosition) ; end # Get the current icon position ! def getIconPosition() ; end # Set the status line help text for this label ! def setHelpText(text) ; end # Get the status line help text for this label ! def getHelpText() ; end # Set the tool tip message for this label ! def setTipText(text) ; end # Get the tool tip message for this label ! def getTipText() ; end # Handles the +SEL_PAINT+ message --- 39,88 ---- # Set the text for this label ! def text=(text) ; end # Get the text for this label ! def text() ; end # Set the icon for this label ! def icon=(icon) ; end # Get the icon for this label ! def icon() ; end # Set the text font ! def font=(font) ; end # Get the text font ! def font() ; end # Get the current text color ! def textColor() ; end # Set the current text color ! def textColor=(textColor) ; end # Set the current text-justification mode. ! def justify=(justifyMode) ; end # Get the current text-justification mode. ! def justify() ; end # Set the current icon position ! def iconPosition=(iconPosition) ; end # Get the current icon position ! def iconPosition() ; end # Set the status line help text for this label ! def helpText=(text) ; end # Get the status line help text for this label ! def helpText() ; end # Set the tool tip message for this label ! def tipText=(text) ; end # Get the tool tip message for this label ! def tipText() ; end # Handles the +SEL_PAINT+ message Index: FXWindow.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/rdoc-sources/FXWindow.rb,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FXWindow.rb 7 Feb 2002 16:54:54 -0000 1.2 --- FXWindow.rb 26 Mar 2002 21:36:23 -0000 1.3 *************** *** 120,178 **** # Return a reference to the parent window ! def getParent() ; end # Return a reference to the owner window ! def getOwner() ; end # Return a reference to the shell window ! def getShell() ; end # Return a reference to the root window ! def getRoot() ; end # Return a reference to the next (sibling) window, if any ! def getNext() ; end # Return a reference to the previous (sibling) window , if any ! def getPrev() ; end # Return a reference to this window's first child window , if any ! def getFirst() ; end # Return a reference to this window's last child window, if any ! def getLast() ; end # Return a reference to the currently focused child window ! def getFocus() ; end # Change window key ! def setKey(k); end # Return window key ! def getKey() ; end # Set the message target object for this window ! def setTarget(target); end # Get the message target object for this window, if any ! def getTarget() ; end # Set the message identifier for this window ! def setSelector(sel); end # Get the message identifier for this window ! def getSelector() ; end # Get this window's x-coordinate, in the parent's coordinate system ! def getX() ; end # Get this window's y-coordinate, in the parent's coordinate system ! def getY() ; end # Return the default width of this window ! def getDefaultWidth(); end # Return the default height of this window ! def getDefaultHeight(); end # Return width for given height --- 120,178 ---- # Return a reference to the parent window ! def parent() ; end # Return a reference to the owner window ! def owner() ; end # Return a reference to the shell window ! def shell() ; end # Return a reference to the root window ! def root() ; end # Return a reference to the next (sibling) window, if any ! def next() ; end # Return a reference to the previous (sibling) window , if any ! def prev() ; end # Return a reference to this window's first child window , if any ! def first() ; end # Return a reference to this window's last child window, if any ! def last() ; end # Return a reference to the currently focused child window ! def focus() ; end # Change window key ! def key=(k); end # Return window key ! def key() ; end # Set the message target object for this window ! def target=(target); end # Get the message target object for this window, if any ! def target() ; end # Set the message identifier for this window ! def selector=(sel); end # Get the message identifier for this window ! def selector() ; end # Get this window's x-coordinate, in the parent's coordinate system ! def x() ; end # Get this window's y-coordinate, in the parent's coordinate system ! def y() ; end # Return the default width of this window ! def defaultWidth(); end # Return the default height of this window ! def defaultHeight(); end # Return width for given height *************** *** 183,208 **** # Set this window's x-coordinate, in the parent's coordinate system ! def setX(x); end # Set this window's y-coordinate, in the parent's coordinate system ! def setY(y); end # Set the window width ! def setWidth(w); end # Set the window height ! def setHeight(h); end # Set layout hints for this window ! def setLayoutHints(layoutHints); end # Get layout hints for this window ! def getLayoutHints() ; end # Return a reference to the accelerator table (an instance of FXAccelTable) ! def getAccelTable() ; end # Set the accelerator table (to an instance of FXAccelTable) ! def setAccelTable(accelTable); end # Add a hot key --- 183,208 ---- # Set this window's x-coordinate, in the parent's coordinate system ! def x=(x); end # Set this window's y-coordinate, in the parent's coordinate system ! def y=(y); end # Set the window width ! def width=(w); end # Set the window height ! def height=(h); end # Set layout hints for this window ! def layoutHints=(layoutHints); end # Get layout hints for this window ! def layoutHints() ; end # Return a reference to the accelerator table (an instance of FXAccelTable) ! def accelTable() ; end # Set the accelerator table (to an instance of FXAccelTable) ! def accelTable=(accelTable); end # Add a hot key *************** *** 213,223 **** # Return true if window is a shell window ! def isShell() ; end # Return true if specified window is this window's parent ! def isChildOf(window) ; end # Return true if specified window is a child of this window ! def containsChild(child) ; end # Return the child window at specified coordinates --- 213,223 ---- # Return true if window is a shell window ! def shell?() ; end # Return true if specified window is this window's parent ! def childOf?(window) ; end # Return true if specified window is a child of this window ! def containsChild?(child) ; end # Return the child window at specified coordinates *************** *** 235,239 **** # Returns an array containing all child windows of this window ! def getChildren() ; end # Return the child window at specified index, --- 235,239 ---- # Returns an array containing all child windows of this window ! def children() ; end # Return the child window at specified index, *************** *** 245,261 **** # Set the default cursor for this window ! def setDefaultCursor(cursor); end # Return the default cursor for this window ! def getDefaultCursor() ; end # Set the drag cursor for this window ! def setDragCursor(cursor); end # Return the drag cursor for this window ! def getDragCursor() ; end # Return the cursor position and mouse button-state ! def getCursorPosition() ; end # Warp the cursor to the new position --- 245,261 ---- # Set the default cursor for this window ! def defaultCursor=(cursor); end # Return the default cursor for this window ! def defaultCursor() ; end # Set the drag cursor for this window ! def dragCursor=(cursor); end # Return the drag cursor for this window ! def dragCursor() ; end # Return the cursor position and mouse button-state ! def cursorPosition() ; end # Warp the cursor to the new position *************** *** 263,276 **** # Return true if this window is able to receive mouse and keyboard events ! def isEnabled() ; end # Return true if the window is active ! def isActive() ; end # Return true if this window is a control capable of receiving the focus ! def canFocus() ; end # Return true if this window has the focus ! def hasFocus() ; end # Move the focus to this window --- 263,276 ---- # Return true if this window is able to receive mouse and keyboard events ! def enabled?() ; end # Return true if the window is active ! def active?() ; end # Return true if this window is a control capable of receiving the focus ! def canFocus?() ; end # Return true if this window has the focus ! def hasFocus?() ; end # Move the focus to this window *************** *** 288,292 **** # Return +true+ if this is the default window ! def isDefault() ; end # Make this window the initial default window --- 288,292 ---- # Return +true+ if this is the default window ! def default?() ; end # Make this window the initial default window *************** *** 294,298 **** # Return +true+ if this is the initial default window ! def isInitial() ; end # Enable the window to receive mouse and keyboard events --- 294,298 ---- # Return +true+ if this is the initial default window ! def initial?() ; end # Enable the window to receive mouse and keyboard events *************** *** 358,362 **** # Return +true+ if the window has been grabbed ! def grabbed() ; end # Grab keyboard device --- 358,362 ---- # Return +true+ if the window has been grabbed ! def grabbed?() ; end # Grab keyboard device *************** *** 376,389 **** # Return +true+ if the window is shown ! def shown() ; end # Return +true+ if the window is composite ! def isComposite() ; end # Return +true+ if the window is under the cursor ! def underCursor() ; end # Return +true+ if this window owns the primary selection ! def hasSelection() ; end # Try to acquire the primary selection, given an array of drag types --- 376,389 ---- # Return +true+ if the window is shown ! def shown?() ; end # Return +true+ if the window is composite ! def composite?() ; end # Return +true+ if the window is under the cursor ! def underCursor?() ; end # Return +true+ if this window owns the primary selection ! def hasSelection?() ; end # Try to acquire the primary selection, given an array of drag types *************** *** 394,398 **** # Return +true+ if this window owns the clipboard ! def hasClipboard() ; end # Try to acquire the clipboard, given an array of drag types --- 394,398 ---- # Return +true+ if this window owns the clipboard ! def hasClipboard?() ; end # Try to acquire the clipboard, given an array of drag types *************** *** 409,416 **** # Return +true+ if this window is able to receive drops ! def isDropEnabled() ; end # Return +true+ if a drag operaion has been initiated from this window ! def isDragging() ; end # Initiate a drag operation with an array of previously registered drag types --- 409,416 ---- # Return +true+ if this window is able to receive drops ! def dropEnabled?() ; end # Return +true+ if a drag operaion has been initiated from this window ! def dragging?() ; end # Initiate a drag operation with an array of previously registered drag types *************** *** 425,429 **** # Return +true+ if this window is the target of a drop ! def isDropTarget() ; end # When being dragged over, indicate that no further +SEL_DND_MOTION+ messages --- 425,429 ---- # Return +true+ if this window is the target of a drop ! def dropTarget?() ; end # When being dragged over, indicate that no further +SEL_DND_MOTION+ messages *************** *** 439,443 **** # The target accepted our drop ! def didAccept() ; end # When being dragged over, inquire the drag types which are being offered --- 439,443 ---- # The target accepted our drop ! def didAccept?() ; end # When being dragged over, inquire the drag types which are being offered *************** *** 457,461 **** # Return true if window logically contains the given point ! def contains(parentx, parenty) ; end # Translate coordinates from _fromwindow_'s coordinate space --- 457,461 ---- # Return true if window logically contains the given point ! def contains?(parentx, parenty) ; end # Translate coordinates from _fromwindow_'s coordinate space *************** *** 468,475 **** # Set window background color ! def setBackColor(color) ; end # Get background color ! def getBackColor() ; end # Relink this window before sibling in the window list --- 468,475 ---- # Set window background color ! def backColor=(color) ; end # Get background color ! def backColor() ; end # Relink this window before sibling in the window list *************** *** 479,482 **** def linkAfter(sibling) ; end ! def doesSaveUnder() ; end end --- 479,482 ---- def linkAfter(sibling) ; end ! def doesSaveUnder?() ; end end |
From: Lyle J. <ly...@us...> - 2002-03-26 21:35:25
|
Update of /cvsroot/fxruby/FXRuby/tests In directory usw-pr-cvs1:/tmp/cvs-serv30076 Modified Files: TC_FXButton.rb TC_FXFont.rb TC_FXHMat.rb TC_FXHVec.rb TC_FXLight.rb TC_FXMaterial.rb TC_FXPoint.rb TC_FXRange.rb TC_FXRectangle.rb TC_FXSize.rb TC_FXViewport.rb Log Message: Test::Unit provides an "auto-run" feature (for lack of a better name) for running the individual test cases, so the blocks I had like: if __FILE__ == $0 # run this case end are not necessary. Index: TC_FXButton.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXButton.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TC_FXButton.rb 20 Mar 2002 22:00:39 -0000 1.1 --- TC_FXButton.rb 26 Mar 2002 21:35:20 -0000 1.2 *************** *** 76,82 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/TestRunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXButton) - end --- 76,77 ---- Index: TC_FXFont.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXFont.rb,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TC_FXFont.rb 25 Feb 2002 17:29:28 -0000 1.3 --- TC_FXFont.rb 26 Mar 2002 21:35:20 -0000 1.4 *************** *** 52,58 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/testrunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXFont) - end --- 52,53 ---- Index: TC_FXHMat.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXHMat.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TC_FXHMat.rb 13 Mar 2002 22:05:06 -0000 1.1 --- TC_FXHMat.rb 26 Mar 2002 21:35:20 -0000 1.2 *************** *** 41,47 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/TestRunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXHMat) - end --- 41,42 ---- Index: TC_FXHVec.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXHVec.rb,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TC_FXHVec.rb 5 Mar 2002 20:41:13 -0000 1.3 --- TC_FXHVec.rb 26 Mar 2002 21:35:20 -0000 1.4 *************** *** 84,90 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/TestRunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXHVec) - end --- 84,85 ---- Index: TC_FXLight.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXLight.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TC_FXLight.rb 20 Mar 2002 22:00:39 -0000 1.1 --- TC_FXLight.rb 26 Mar 2002 21:35:20 -0000 1.2 *************** *** 32,38 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/TestRunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXLight) - end --- 32,33 ---- Index: TC_FXMaterial.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXMaterial.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TC_FXMaterial.rb 20 Mar 2002 22:00:39 -0000 1.1 --- TC_FXMaterial.rb 26 Mar 2002 21:35:20 -0000 1.2 *************** *** 22,28 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/TestRunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXMaterial) - end --- 22,23 ---- Index: TC_FXPoint.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXPoint.rb,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TC_FXPoint.rb 25 Feb 2002 15:46:50 -0000 1.2 --- TC_FXPoint.rb 26 Mar 2002 21:35:20 -0000 1.3 *************** *** 56,62 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/TestRunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXPoint) - end --- 56,57 ---- Index: TC_FXRange.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXRange.rb,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TC_FXRange.rb 25 Feb 2002 15:46:50 -0000 1.2 --- TC_FXRange.rb 26 Mar 2002 21:35:20 -0000 1.3 *************** *** 52,58 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/testrunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXRange) - end --- 52,53 ---- Index: TC_FXRectangle.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXRectangle.rb,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TC_FXRectangle.rb 25 Feb 2002 15:46:50 -0000 1.2 --- TC_FXRectangle.rb 26 Mar 2002 21:35:20 -0000 1.3 *************** *** 80,86 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/testrunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXRectangle) - end --- 80,81 ---- Index: TC_FXSize.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXSize.rb,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TC_FXSize.rb 25 Feb 2002 15:46:50 -0000 1.2 --- TC_FXSize.rb 26 Mar 2002 21:35:20 -0000 1.3 *************** *** 53,59 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/testrunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXSize) - end --- 53,54 ---- Index: TC_FXViewport.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/tests/TC_FXViewport.rb,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TC_FXViewport.rb 20 Mar 2002 22:00:39 -0000 1.1 --- TC_FXViewport.rb 26 Mar 2002 21:35:20 -0000 1.2 *************** *** 28,34 **** end end - - if __FILE__ == $0 - require 'test/unit/ui/console/TestRunner' - Test::Unit::UI::Console::TestRunner.run(TC_FXViewport) - end --- 28,29 ---- |
From: Lyle J. <ly...@us...> - 2002-03-26 13:32:47
|
Update of /cvsroot/fxruby/FXRuby/examples In directory usw-pr-cvs1:/tmp/cvs-serv10827 Modified Files: scribble.rb Log Message: Added a "mirroring" mode for the scribble example, using patches from Guaracy Monteiro (gua...@ig...). Index: scribble.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/examples/scribble.rb,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** scribble.rb 13 Mar 2002 21:59:19 -0000 1.16 --- scribble.rb 26 Mar 2002 13:32:44 -0000 1.17 *************** *** 51,54 **** --- 51,64 ---- # Draw a line from the previous mouse coordinates to the current ones + if @mirrorMode.value + cW = @canvas.width + cH = @canvas.height + dc.drawLine(cW-event.last_x, event.last_y, + cW-event.win_x, event.win_y) + dc.drawLine(event.last_x, cH-event.last_y, + event.win_x, cH-event.win_y) + dc.drawLine(cW-event.last_x, cH-event.last_y, + cW-event.win_x, cH-event.win_y) + end dc.drawLine(event.last_x, event.last_y, event.win_x, event.win_y) *************** *** 95,98 **** --- 105,112 ---- FXHorizontalSeparator.new(@buttonFrame, SEPARATOR_RIDGE|LAYOUT_FILL_X) + + # Enable or disable mirror mode + @mirrorMode = FXDataTarget.new(false) + FXCheckButton.new(@buttonFrame, "Mirror", @mirrorMode, FXDataTarget::ID_VALUE, CHECKBUTTON_NORMAL|LAYOUT_FILL_X) # Button to clear the canvas |
From: Lyle J. <ly...@us...> - 2002-03-23 00:03:28
|
Update of /cvsroot/fxruby/FXRuby/ext/fox In directory usw-pr-cvs1:/tmp/cvs-serv27719/ext/fox Modified Files: core_wrap.cpp dialogs_wrap.cpp icons_wrap.cpp image_wrap.cpp layout_wrap.cpp mdi_wrap.cpp opengl_wrap.cpp scintilla_wrap.cpp ui_wrap.cpp Log Message: Corrected the dangling pointer cleanup problem for FXTreeList#clearItems as described by Gilles in SF Bug #533804. Index: core_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/core_wrap.cpp,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** core_wrap.cpp 19 Mar 2002 23:18:35 -0000 1.54 --- core_wrap.cpp 23 Mar 2002 00:03:09 -0000 1.55 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: dialogs_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/dialogs_wrap.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** dialogs_wrap.cpp 19 Mar 2002 23:18:37 -0000 1.29 --- dialogs_wrap.cpp 23 Mar 2002 00:03:21 -0000 1.30 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: icons_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/icons_wrap.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** icons_wrap.cpp 19 Mar 2002 23:18:38 -0000 1.32 --- icons_wrap.cpp 23 Mar 2002 00:03:22 -0000 1.33 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: image_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/image_wrap.cpp,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** image_wrap.cpp 19 Mar 2002 23:18:38 -0000 1.34 --- image_wrap.cpp 23 Mar 2002 00:03:22 -0000 1.35 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: layout_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/layout_wrap.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** layout_wrap.cpp 19 Mar 2002 23:18:38 -0000 1.3 --- layout_wrap.cpp 23 Mar 2002 00:03:22 -0000 1.4 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: mdi_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/mdi_wrap.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** mdi_wrap.cpp 19 Mar 2002 23:18:38 -0000 1.31 --- mdi_wrap.cpp 23 Mar 2002 00:03:22 -0000 1.32 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: opengl_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/opengl_wrap.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** opengl_wrap.cpp 19 Mar 2002 23:18:38 -0000 1.36 --- opengl_wrap.cpp 23 Mar 2002 00:03:22 -0000 1.37 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: scintilla_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/scintilla_wrap.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** scintilla_wrap.cpp 19 Mar 2002 23:18:38 -0000 1.12 --- scintilla_wrap.cpp 23 Mar 2002 00:03:23 -0000 1.13 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of Index: ui_wrap.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/ui_wrap.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ui_wrap.cpp 19 Mar 2002 23:18:38 -0000 1.4 --- ui_wrap.cpp 23 Mar 2002 00:03:23 -0000 1.5 *************** *** 1,5 **** /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020319-1109 * * This file is not intended to be easily readable and contains a number of --- 1,5 ---- /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). ! * Version 1.3.12u-20020322-0903 * * This file is not intended to be easily readable and contains a number of *************** *** 1054,1057 **** --- 1054,1070 ---- } } + void FXTreeList_clearItems(FXTreeList *self,FXbool notify){ + // Save pointer(s) to the soon-to-be-destroyed items + FXObjectListOf<FXTreeItem> items; + FXRbTreeList::enumerateItems(self->getFirstItem(),self->getLastItem(),items); + + // Do the deed + self->clearItems(notify); + + // Now zero-out pointers held by still-alive Ruby objects + for(FXint i=0;i<items.no();i++){ + FXRbNotifyDestroyed(items[i]); + } + } void FXTreeList_setItemData(FXTreeList *self,FXTreeItem *item,VALUE ptr){ self->setItemData(item,(void*) ptr); *************** *** 58073,58077 **** } } ! (arg1)->clearItems(arg2); return Qnil; --- 58086,58090 ---- } } ! FXTreeList_clearItems(arg1,arg2); return Qnil; |
From: Lyle J. <ly...@us...> - 2002-03-23 00:03:27
|
Update of /cvsroot/fxruby/FXRuby/doc In directory usw-pr-cvs1:/tmp/cvs-serv27719/doc Modified Files: changes.xml Log Message: Corrected the dangling pointer cleanup problem for FXTreeList#clearItems as described by Gilles in SF Bug #533804. Index: changes.xml =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/changes.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** changes.xml 21 Mar 2002 19:09:11 -0000 1.7 --- changes.xml 23 Mar 2002 00:03:24 -0000 1.8 *************** *** 2,5 **** --- 2,11 ---- <title>Change History</title> <simplesect> + <title>Changes Since Version 1.0.3</title> + <itemizedlist mark="bullet"> + <listitem><para>Corrected the code for <methodname>FXTreeList#clearItems</methodname> so that after the C++ objects (the tree items) are destroyed, any Ruby instances holding references to those C++ objects are notified of their demise. This one was inadvertently overlooked when other, similar, fixes were made in the previous release. Thanks to Gilles Filippini for catching this!</para></listitem> + </itemizedlist> + </simplesect> + <simplesect> <title>Changes Since Version 0.99.189</title> <itemizedlist mark="bullet"> |
From: Lyle J. <ly...@us...> - 2002-03-23 00:03:27
|
Update of /cvsroot/fxruby/FXRuby/swig-interfaces In directory usw-pr-cvs1:/tmp/cvs-serv27719/swig-interfaces Modified Files: FXTreeList.i Log Message: Corrected the dangling pointer cleanup problem for FXTreeList#clearItems as described by Gilles in SF Bug #533804. Index: FXTreeList.i =================================================================== RCS file: /cvsroot/fxruby/FXRuby/swig-interfaces/FXTreeList.i,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** FXTreeList.i 19 Mar 2002 23:18:40 -0000 1.29 --- FXTreeList.i 23 Mar 2002 00:03:24 -0000 1.30 *************** *** 336,343 **** } } } - - /// Remove all items from list - void clearItems(FXbool notify=FALSE); /// Return item width --- 336,355 ---- } } + + /// Remove all items from list + void clearItems(FXbool notify=FALSE){ + // Save pointer(s) to the soon-to-be-destroyed items + FXObjectListOf<FXTreeItem> items; + FXRbTreeList::enumerateItems(self->getFirstItem(),self->getLastItem(),items); + + // Do the deed + self->clearItems(notify); + + // Now zero-out pointers held by still-alive Ruby objects + for(FXint i=0;i<items.no();i++){ + FXRbNotifyDestroyed(items[i]); + } + } } /// Return item width |
From: Lyle J. <ly...@us...> - 2002-03-22 01:53:33
|
Update of /cvsroot/fxruby/FXRuby/doc In directory usw-pr-cvs1:/tmp/cvs-serv2352 Modified Files: Makefile book.html build.html changes.html differences.html events.html examples.html goals.html library.html opengl.html scintilla.html todo.html tutorial1.html Log Message: Index: Makefile =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Makefile 1 Mar 2002 00:39:38 -0000 1.6 --- Makefile 22 Mar 2002 01:53:30 -0000 1.7 *************** *** 5,8 **** --- 5,9 ---- ######################################################################## + SAXON = java -jar C:\saxon-6.5.1\saxon.jar DOCBOOK_XSL = C:\docbook\docbook-xsl-customized\html\chunk.xsl *************** *** 10,14 **** xml: ! @saxon book.xml $(DOCBOOK_XSL) clean: --- 11,16 ---- xml: ! $(SAXON) book.xml $(DOCBOOK_XSL) ! move /y index.html book.html clean: Index: book.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/book.html,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** book.html 14 Mar 2002 17:03:39 -0000 1.34 --- book.html 22 Mar 2002 01:53:30 -0000 1.35 *************** *** 1,3 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Developing Graphical User Interfaces with FXRuby</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="next" href="goals.html" title="History and Goals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developing Graphical User Interfaces with FXRuby</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Developing Graphical User Interfaces with FXRuby</h1></div><div><h3 class="author">Lyle Johnson</h3></div><div><p class="copyright">Copyright © 2001 J. Lyle Johnson</p></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="goals.html">History and Goals</a></dt><dt>1. <a href="build.html">Building from Source Code</a></dt><dt>2. <a href="examples.html">Examples</a></dt><dt>3. <a href="tutorial1.html">Hello, World!</a></dt><dt>4. <a href="opengl.html">Using OpenGL with FXRuby</a></dt><dt>5. <a href="scintilla.html">Using Scintilla with FXRuby</a></dt><dt>6. <a href="differences.html">Differences between FOX and FXRuby</a></dt><dt>7. <a href="events.html">FXRuby's Message-Target System</a></dt><dt>8. <a href="library.html">The FXRuby Standard Library</a></dt><dt>9. <a href="todo.html">To-do list</a></dt><dt>10. <a href="changes.html">Change History</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> History and Goals</td></tr></table></div></body></html> \ No newline at end of file --- 1,3 ---- <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Developing Graphical User Interfaces with FXRuby</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="next" href="goals.html" title="History and Goals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developing Graphical User Interfaces with FXRuby</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Developing Graphical User Interfaces with FXRuby</h1></div><div><div class="author"><h3 class="author">Lyle Johnson</h3></div></div><div><p class="copyright">Copyright © 2001 J. Lyle Johnson</p></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="goals.html">History and Goals</a></dt><dt>1. <a href="build.html">Building from Source Code</a></dt><dt>2. <a href="examples.html">Examples</a></dt><dt>3. <a href="tutorial1.html">Hello, World!</a></dt><dt>4. <a href="opengl.html">Using OpenGL with FXRuby</a></dt><dt>5. <a href="scintilla.html">Using Scintilla with FXRuby</a></dt><dt>6. <a href="differences.html">Differences between FOX and FXRuby</a></dt><dt>7. <a href="events.html">FXRuby's Message-Target System</a></dt><dt>8. <a href="library.html">The FXRuby Standard Library</a></dt><dt>9. <a href="todo.html">To-do list</a></dt><dt>10. <a href="changes.html">Change History</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> History and Goals</td></tr></table></div></body></html> \ No newline at end of file Index: build.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/build.html,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** build.html 21 Mar 2002 19:09:11 -0000 1.22 --- build.html 22 Mar 2002 01:53:30 -0000 1.23 *************** *** 1,5 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 1. Building from Source Code</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="goals.html" title="History and Goals"><link rel="next" href="examples.html" title="Chapter 2. Examples"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Building from Source Code</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="build"></a>Chapter 1. Building from Source Code</h2></div></div><p>If you're planning to use FXRuby on Windows, with the Pragmatic Programmers' Ruby installer for Windows, you may wish to just download the pre-compiled FXRuby binaries. Otherwise, you will need to compile the shared library for FXRuby from the source code.</p><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e59"></a>The Basics</h2></div></div><p>These instructions assume that you've already downloaded, compiled and installed FOX. Next, you'll need to download the FXRuby source code tarball and unpack it by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>tar xzf FXRuby-1.0.3.tar.gz</b></pre></td></tr></table><p>This will create a new directory called <tt>FXRuby-1.0.3</tt>. Change to the top-level directory and configure the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config</b></pre></td></tr></table><p>By default, the <tt>install.rb</tt> script will look for the FOX include files and library in the standard <tt>/usr/local/include/fox</tt> and <tt>/usr/local/lib</tt> directories, respectively. You can override these locations by passing a few additional arguments to <tt>install.rb</tt> during this step, e.g.</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config -- \ --with-fox-include=/home/lyle/fox-1.0.3/include \ --with-fox-lib=/home/lyle/fox-1.0.3/src/.libs</b></pre></td></tr></table><p>Once the build has been configured, you can start the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb setup</b></pre></td></tr></table><p>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. If you run into problems during the compilation, please check the <a href="build.html#tragedies" title="Things That Can Go Wrong">list of things that can go wrong</a> for workarounds for those problems.</p><p>Once it's finished compiling, install FXRuby by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb install</b></pre></td></tr></table><p>As a quick sanity check, to make sure that all is well, you should probably fire up <tt>irb</tt> and try to import FXRuby:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>irb</b> --- 1,5 ---- <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 1. Building from Source Code</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="index.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="goals.html" title="History and Goals"><link rel="next" href="examples.html" title="Chapter 2. Examples"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Building from Source Code</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="build"></a>Chapter 1. Building from Source Code</h2></div></div><p>If you're planning to use FXRuby on Windows, with the Pragmatic Programmers' Ruby installer for Windows, you may wish to just download the pre-compiled FXRuby binaries. Otherwise, you will need to compile the shared library for FXRuby from the source code.</p><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e59"></a>The Basics</h2></div></div><p>These instructions assume that you've already downloaded, compiled and installed FOX. Next, you'll need to download the FXRuby source code tarball and unpack it by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>tar xzf FXRuby-1.0.3.tar.gz</b></pre></td></tr></table><p>This will create a new directory called <tt>FXRuby-1.0.3</tt>. Change to the top-level directory and configure the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config</b></pre></td></tr></table><p>By default, the <tt>install.rb</tt> script will look for the FOX include files and library in the standard <tt>/usr/local/include/fox</tt> and <tt>/usr/local/lib</tt> directories, respectively. You can override these locations by passing a few additional arguments to <tt>install.rb</tt> during this step, e.g.</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config -- \ --with-fox-include=/home/lyle/fox-1.0.3/include \ --with-fox-lib=/home/lyle/fox-1.0.3/src/.libs</b></pre></td></tr></table><p>Once the build has been configured, you can start the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb setup</b></pre></td></tr></table><p>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. If you run into problems during the compilation, please check the <a href="build.html#tragedies" title="Things That Can Go Wrong">list of things that can go wrong</a> for workarounds for those problems.</p><p>Once it's finished compiling, install FXRuby by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb install</b></pre></td></tr></table><p>As a quick sanity check, to make sure that all is well, you should probably fire up <tt>irb</tt> and try to import FXRuby:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>irb</b> *************** *** 13,23 **** irb(main):001:0> <b><tt>require 'fox'</tt></b> true ! irb(main):002:0></pre></td></tr></table><p>If the import failed (usually with a message along the lines of "Cannot load library"), check the list of things that can go wrong for known problems. If that still doesn't solve your problem, drop me an e-mail or ask around on the Ruby newsgroup or mailing list; it's quite likely that someone else has run into this problem too. Once you do have a working FXRuby installation, you're ready to check out the example programs.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="tragedies"></a>Things That Can Go Wrong</h2></div></div><p><span class="emphasis"><i>"Too many arguments to function..."</i></span></p><p>The include files for Ruby 1.6 still have several function prototypes in the older "K & R" C style, where the function's argument list is not included; for example, the function <tt>rb_thread_wait_for()</tt> takes a single argument of type struct timeval, but its prototype in <tt>intern.h</tt> is:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_thread_wait_for();</pre></td></tr></table><p>Because FXRuby is written in C++, and C++ requires strict ANSI C-style function prototypes, code that attempts to call one of these functions will fail to compile under some compilers. For example, the error message from gcc will look something like this:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">FXRbApp.cpp: In method `long int FXRbApp::onChoreThreads (FXObject *, unsigned int, void *)': /usr/local/lib/ruby/1.6/i686-linux/intern.h:172: too many arguments to function `void rb_thread_wait_for ()' FXRbApp.cpp:100: at this point in file make: *** [FXRbApp.o] Error 1</pre></td></tr></table><p>while the error message from Microsoft's Visual C++ compiler looks something like this:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">FXRbApp.cpp(109): error C2660: 'rb_thread_wait_for' : function does not take 1 parameters NMAKE : fatal error U1077: 'cl' : return code '0x2' ! Stop.</pre></td></tr></table><p>This problem with the Ruby header files appears to have been corrected for Ruby 1.7, but for the time being you should probably do one of two things to work around the problem:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>If you're using gcc version 2.95 or earlier, try modifying the compiler flags (<tt>CFLAGS</tt>) in the FXRuby <tt>Makefile</tt> to include the <tt>-fno-strict-prototype</tt> option; this should instruct the compiler to allow these kinds of discrepancies. Unfortunately, this flag is not supported in more recent versions of gcc (most notably, the questionable "2.96" version shipped with some popular Linux distributions).</p></li><li style="list-style-type: disc"><p>A more direct approach is to just fix the offending declarations in the Ruby include file(s), i.e. change the declaration for <tt>rb_thread_wait_for()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_thread_wait_for(struct timeval);</pre></td></tr></table><p>and change the declaration for <tt>rb_gc_mark()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_gc_mark(VALUE);</pre></td></tr></table></li></ul></div><p><span class="emphasis"><i>"Virtual Memory Exhausted"</i></span></p><p>For FXRuby releases earlier than version 0.99.173 it was common for the compiler to run out of memory trying to compile <tt>core_wrap.cpp</tt>, with an error message like:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">core_wrap.cpp: In function 'void Init_core()': ! core_wrap.cpp:108596: virtual memory exhausted</pre></td></tr></table><p>This failure was due to the use of optimizations by the compiler; the FXRuby source code makes heavy use of C++ templates and some versions of gcc require a lot of memory to process these. Starting with FXRuby version 0.99.173, the <tt>extconf.rb</tt> script <span class="emphasis"><i>should</i></span> disable compiler optimizations when it generates the FXRuby <tt>Makefile</tt>. If you suspect that it's not disabling optimizations (or can see this by watching the compile command lines), try modifying the compiler flags (<tt>CFLAGS</tt>) in the <tt>Makefile</tt> by hand to do so.</p><p><span class="emphasis"><i>"Cannot load library"</i></span></p><p>On Linux and other Unix systems that support shared libraries, FOX is typically installed as a shared library named <tt>libFOX.so</tt>. After all of the source files for FXRuby are compiled, the last step is to link all of the FXRuby object files together with the FOX library (and possibly other system libraries) to produce a new shared library, named <tt>fox.so</tt>, that Ruby can import as an extension module.</p><p>There are a few things that can go wrong when you try to import this extension into Ruby. A common problem is that the operating system cannot locate the FOX shared library (<tt>libFOX.so</tt>) when it tries to dynamically load the FXRuby extension module; when this happens, the error message will look something like:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> LoadError: libFOX-0.99.so.173: cannot open shared object file: No such file or directory - /usr/local/lib/ruby/1.6/i586-linux/fox.so --- 13,23 ---- irb(main):001:0> <b><tt>require 'fox'</tt></b> true ! irb(main):002:0></pre></td></tr></table><p>If the import failed (usually with a message along the lines of "Cannot load library"), check the list of things that can go wrong for known problems. If that still doesn't solve your problem, drop me an e-mail or ask around on the Ruby newsgroup or mailing list; it's quite likely that someone else has run into this problem too. Once you do have a working FXRuby installation, you're ready to check out the example programs.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="tragedies"></a>Things That Can Go Wrong</h2></div></div><p><span class="emphasis"><em>"Too many arguments to function..."</em></span></p><p>The include files for Ruby 1.6 still have several function prototypes in the older "K & R" C style, where the function's argument list is not included; for example, the function <tt>rb_thread_wait_for()</tt> takes a single argument of type struct timeval, but its prototype in <tt>intern.h</tt> is:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_thread_wait_for();</pre></td></tr></table><p>Because FXRuby is written in C++, and C++ requires strict ANSI C-style function prototypes, code that attempts to call one of these functions will fail to compile under some compilers. For example, the error message from gcc will look something like this:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">FXRbApp.cpp: In method `long int FXRbApp::onChoreThreads (FXObject *, unsigned int, void *)': /usr/local/lib/ruby/1.6/i686-linux/intern.h:172: too many arguments to function `void rb_thread_wait_for ()' FXRbApp.cpp:100: at this point in file make: *** [FXRbApp.o] Error 1</pre></td></tr></table><p>while the error message from Microsoft's Visual C++ compiler looks something like this:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">FXRbApp.cpp(109): error C2660: 'rb_thread_wait_for' : function does not take 1 parameters NMAKE : fatal error U1077: 'cl' : return code '0x2' ! Stop.</pre></td></tr></table><p>This problem with the Ruby header files appears to have been corrected for Ruby 1.7, but for the time being you should probably do one of two things to work around the problem:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>If you're using gcc version 2.95 or earlier, try modifying the compiler flags (<tt>CFLAGS</tt>) in the FXRuby <tt>Makefile</tt> to include the <tt>-fno-strict-prototype</tt> option; this should instruct the compiler to allow these kinds of discrepancies. Unfortunately, this flag is not supported in more recent versions of gcc (most notably, the questionable "2.96" version shipped with some popular Linux distributions).</p></li><li style="list-style-type: disc"><p>A more direct approach is to just fix the offending declarations in the Ruby include file(s), i.e. change the declaration for <tt>rb_thread_wait_for()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_thread_wait_for(struct timeval);</pre></td></tr></table><p>and change the declaration for <tt>rb_gc_mark()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_gc_mark(VALUE);</pre></td></tr></table></li></ul></div><p><span class="emphasis"><em>"Virtual Memory Exhausted"</em></span></p><p>For FXRuby releases earlier than version 0.99.173 it was common for the compiler to run out of memory trying to compile <tt>core_wrap.cpp</tt>, with an error message like:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">core_wrap.cpp: In function 'void Init_core()': ! core_wrap.cpp:108596: virtual memory exhausted</pre></td></tr></table><p>This failure was due to the use of optimizations by the compiler; the FXRuby source code makes heavy use of C++ templates and some versions of gcc require a lot of memory to process these. Starting with FXRuby version 0.99.173, the <tt>extconf.rb</tt> script <span class="emphasis"><em>should</em></span> disable compiler optimizations when it generates the FXRuby <tt>Makefile</tt>. If you suspect that it's not disabling optimizations (or can see this by watching the compile command lines), try modifying the compiler flags (<tt>CFLAGS</tt>) in the <tt>Makefile</tt> by hand to do so.</p><p><span class="emphasis"><em>"Cannot load library"</em></span></p><p>On Linux and other Unix systems that support shared libraries, FOX is typically installed as a shared library named <tt>libFOX.so</tt>. After all of the source files for FXRuby are compiled, the last step is to link all of the FXRuby object files together with the FOX library (and possibly other system libraries) to produce a new shared library, named <tt>fox.so</tt>, that Ruby can import as an extension module.</p><p>There are a few things that can go wrong when you try to import this extension into Ruby. A common problem is that the operating system cannot locate the FOX shared library (<tt>libFOX.so</tt>) when it tries to dynamically load the FXRuby extension module; when this happens, the error message will look something like:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> LoadError: libFOX-0.99.so.173: cannot open shared object file: No such file or directory - /usr/local/lib/ruby/1.6/i586-linux/fox.so *************** *** 27,29 **** $ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> ! </pre></td></tr></table><p>If this works, you can of course permanently add the <tt>LD_LIBRARY_PATH</tt> setting to your login file(s) so that you don't have to remember to type it each time. Another approach that should work for Linux is to modify your <tt>/etc/ld.so.conf</tt> file to include the installation directory (e.g. <tt>/usr/local/lib</tt>). If you'd like to do this instead, you'll need to (as root):</p><div class="orderedlist"><ol type="1" compact=""><li><p>Edit your <tt>/etc/ld.so.conf</tt> file and add the directory where <tt>libFOX.so</tt> is installed; and,</p></li><li><p>At the shell prompt, type <b>ldconfig</b> to reload the linker configuration.</p></li></ol></div><p>Another problem that has been reported by users of both Debian GNU/Linux and NetBSD 1.5 is an error message along the lines of:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">/usr/lib/libstdc++.so.2: Undefined symbol "__vt_9exception"...</pre></td></tr></table><p>The fix for this problem is reported to be to modify the FXRuby <tt>Makefile</tt> and add <tt>-lgcc</tt> to the <tt>LIBS</tt> line.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="book.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">History and Goals </td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Examples</td></tr></table></div></body></html> \ No newline at end of file --- 27,29 ---- $ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> ! </pre></td></tr></table><p>If this works, you can of course permanently add the <tt>LD_LIBRARY_PATH</tt> setting to your login file(s) so that you don't have to remember to type it each time. Another approach that should work for Linux is to modify your <tt>/etc/ld.so.conf</tt> file to include the installation directory (e.g. <tt>/usr/local/lib</tt>). If you'd like to do this instead, you'll need to (as root):</p><div class="orderedlist"><ol type="1" compact=""><li><p>Edit your <tt>/etc/ld.so.conf</tt> file and add the directory where <tt>libFOX.so</tt> is installed; and,</p></li><li><p>At the shell prompt, type <b>ldconfig</b> to reload the linker configuration.</p></li></ol></div><p>Another problem that has been reported by users of both Debian GNU/Linux and NetBSD 1.5 is an error message along the lines of:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">/usr/lib/libstdc++.so.2: Undefined symbol "__vt_9exception"...</pre></td></tr></table><p>The fix for this problem is reported to be to modify the FXRuby <tt>Makefile</tt> and add <tt>-lgcc</tt> to the <tt>LIBS</tt> line.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">History and Goals </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Examples</td></tr></table></div></body></html> \ No newline at end of file Index: changes.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/changes.html,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** changes.html 21 Mar 2002 19:09:11 -0000 1.41 --- changes.html 22 Mar 2002 01:53:30 -0000 1.42 *************** *** 1,3 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 10. Change History</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="todo.html" title="Chapter 9. To-do list"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. Change History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="todo.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="changes"></a>Chapter 10. Change History</h2></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1798"></a>Changes Since Version 0.99.189</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Upgraded to the latest version of Minero Aoki's <tt>install.rb</tt> script.</p></li><li style="list-style-type: disc"><p>Switched from using DocBook/SGML to DocBook/XML for the FXRuby documentation. This is mainly a maintenance issue; it's just much less complicated to "publish" documents using DocBook/XML as compared to DocBook/SGML. You should see few (if any) differences in the resulting HTML pages, but let me know if you notice anything squirrely.</p></li><li style="list-style-type: disc"><p>Improved support for customized sorting of list items for the <tt>FXComboBox</tt>, <tt>FXIconList</tt>, <tt>FXList</tt>, <tt>FXListBox</tt>, <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt> classes. The model is different from that used in the C++ FOX library, where you set a global sorting function for each list instance. For FXRuby, you instead just override the list item's <tt><=></tt> method to compare one list item to another. Thanks to Martin Stannard for prompting me to resolve this problem.</p></li><li style="list-style-type: disc"><p>Added instructions about how to modify your <tt>/etc/ld.so.conf</tt> file (on Linux) to include the <tt>libFOX.so</tt> installation directory. Thanks to Giuseppe Cacopardo for providing this information.</p></li><li style="list-style-type: disc"><p>Updated the test cases (again) for use with Nathaniel Talbott's <a href="http://testunit.talbott.ws" target="_top">TestUnit</a>, which is apparently the successor to Lapidary.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>FXCURCursor</tt>, <tt>FXRGBIcon</tt>, <tt>FXRGBImage</tt> classes.</p></li><li style="list-style-type: disc"><p>Fixed a longstanding bug related to the ownership (for garbage collection purposes) of <tt>FXGLGroup</tt> and <tt>FXGLShape</tt> instances. This is the bug that was causing the <tt>glviewer.rb</tt> example program to crash on exit.</p></li><li style="list-style-type: disc"><p>Fixed a different (but also longstanding) bug related to FXRuby's hanging on to "stale" Ruby object references after those Ruby objects had already been garbage-collected. This bug manifested itself in a number of ways, but the most common symptom would be for an object (like an <tt>FXEvent</tt> instance) to suddenly lose its mind and believe it was some other object. Oh, and your program would usually crash at that point. I think this problem is now fixed.</p></li><li style="list-style-type: disc"><p>Added some safeguards for "destructive" functions like <tt>FXList#clearItems</tt>, which can destroy the C++ objects backing-up Ruby objects in FXRuby, so that any outstanding Ruby references to those destroyed C++ objects are left in a safe state when accessed by Ruby's garbage collector.</p></li><li style="list-style-type: disc"><p>Performed a major overhaul on the <tt>shutter.rb</tt> example program, which still demonstrates the <tt>FXShutter</tt> widget but otherwise doesn't resemble its previous incarnation at all.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>raabrowser.rb</tt>) that allows you to browse the Ruby Application Archive via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>babelfish.rb</tt>) that allows you to use the Babelfish translator web service via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new page to the documentation to briefly describe each of the example programs (including screenshots).</p></li><li style="list-style-type: disc"><p>The CVS repository for FXRuby is now hosted at the SourceForge site. For those who would like access to the latest version of FXRuby (in-between official releases) this is now an option. For more details, see the instructions at the <a href="http://sourceforge.net/cvs/?group_id=20243" target="_top">SourceForge project CVS page</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-1.0.3.tar.gz" target="_top">fox-1.0.3</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1928"></a>Changes Since Version 0.99.188</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Fixed a big bug related to the <tt>FXApp#addSignal</tt> and <tt>FXApp#removeSignal</tt> functions, which should accept a string signal name as an argument. The list of recognized signal names was not constructed properly and as a result most any call to these methods with a string signal name would fail. This has been corrected, and the methods now throw exceptions like those thrown from <tt>Process::kill</tt> when the signal name is unrecognized or the argument type is wrong.</p></li><li style="list-style-type: disc"><p>The <tt>imageviewer.rb</tt> example program now supports loading TARGA, ICO and TIFF image files.</p></li><li style="list-style-type: disc"><p>The configuration process on Windows should now detect the presence of <tt>libtiff.lib</tt> properly.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.189.tar.gz" target="_top">fox-0.99.189</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1962"></a>Changes Since Version 0.99.181</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Removed the <tt>-fno-strict-prototype</tt> and <tt>-fpermissive</tt> flags from the <tt>CFLAGS</tt> for Linux builds, since these two flags are no longer supported for more recent versions of gcc. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Some of the source files included in the previous release had DOS-style line endings and this caused gcc to choke while compiling them; this has been fixed. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Updated the FXRuby test cases (such as they are) to use Nathaniel Talbott's <a href="http://lapidary.sourceforge.net" target="_top">Lapidary</a> unit testing framework.</p></li><li style="list-style-type: disc"><p>Migrated yet more code from the C++ extension to pure Ruby versions. Most of the code for the <tt>FXPoint</tt>, <tt>FXRectangle</tt> and <tt>FXSize</tt> classes is now implemented in Ruby.</p></li><li style="list-style-type: disc"><p>Fixed a bug in the <tt>browser.rb</tt> example. I had meant for the methods and constants lists to be sorted but had failed to use the in-place <tt>sort!</tt> method. Thanks to Robert Gustavsson for reporting this.</p></li><li style="list-style-type: disc"><p>Completed a lot of the initial work for integrating the FXScintilla widget into FXRuby. This is not usable yet, but I'm working with Rich Kilmer and others to try to make this happen.</p></li><li style="list-style-type: disc"><p>Updated the build instructions to provide more information about building the Visual C++ version of FXRuby (i.e. for use with the Visual C++ build of Ruby) on Windows. Thanks to a final tip from Martin Stannard we now have a working build for this compiler.</p></li><li style="list-style-type: disc"><p>For fun, added a new example program that downloads today's Dilbert cartoon from the <a href="http://www.dilbertzone.com" target="_top">DilbertZone</a> web site and displays it in an <tt>FXImageViewer</tt> widget. Requires the <tt>html-parser</tt> module, listed in the <a href="http://www.ruby-lang.org/en/raa.html" target="_top">Ruby Application Archive</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.188.tar.gz" target="_top">fox-0.99.188</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2035"></a>Changes Since Version 0.99.180</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Added <tt>slices</tt>, <tt>stacks</tt> and <tt>loops</tt> accessors for the <tt>FXGLCone</tt> and <tt>FXGLCylinder</tt> classes, to provide finer control over the rendering fidelity for these shapes (this was already done for <tt>FXGLSphere</tt> in the previous release).</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.181.tar.gz" target="_top">fox-0.99.181</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2066"></a>Changes Since Version 0.99.174</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Moved the class definitions for <tt>FXGLPoint</tt>, <tt>FXGLLine</tt>, <tt>FXGLCube</tt>, <tt>FXGLCylinder</tt>, <tt>FXGLSphere</tt> and <tt>FXGLCone</tt> to a new library module <tt>fox/glshapes.rb</tt>. The interfaces are the same as the C++ versions of these classes, this is just a "pure Ruby" implementation of the classes instead of wrappers around the C++ classes. See <tt>examples/glviewer.rb</tt> for an example of their use.</p></li><li style="list-style-type: disc"><p>Fixed a bug related to object ownership for GL objects added to a <tt>FXGLGroup</tt>.</p></li><li style="list-style-type: disc"><p>Added support for overriding the virtual <tt>layout</tt> method in classes derived from <tt>FXWindow</tt>. This will allow developers to, for example, develop new kinds of layout managers.</p></li><li style="list-style-type: disc"><p>Replaced the previous WISE-based installer for the Windows version with an Inno Setup-based installer and reorganized things to better reflect the organization used in the standard Ruby installer.</p></li><li style="list-style-type: disc"><p>Updated the setup and build script to the latest version of Minero Aoki's scripts (version 3.0.2). The main change for FXRuby end-users is that the name of the build script is now <tt>install.rb</tt> instead of <tt>setup.rb</tt>.</p></li><li style="list-style-type: disc"><p>Added the <tt>colors.rb</tt> library file, for predefined color names in the <tt>FXColor</tt> namespace. The use of this module allows you to use symbolic names like <tt>FXColor::Red</tt> instead of an RGB constant like FXRGB(255, 0, 0). Many thanks to Jeff Heard for this suggestion and the contributed file.</p></li><li style="list-style-type: disc"><p>The <tt>FXRegion</tt> was accidentally being renamed to <tt>FX_Region</tt> (a little behind-the-scenes magic I'm doing in FXRuby) and as a result you couldn't use this class. Thanks to Steven Grady for catching this bug.</p></li><li style="list-style-type: disc"><p>The <tt>FXFileStream</tt> class now supports a Ruby-style <tt>open</tt> singleton method that provides transactional control for closing the file stream when it's done. See the <tt>image.rb</tt> and <tt>imageviewer.rb</tt> examples for how this works.</p></li><li style="list-style-type: disc"><p>After some discussions at RubyConf and follow-up discussions on the comp.lang.ruby newsgroup, the procedure for attaching events handlers to FXRuby widgets has been greatly simplified. Most of the example programs have been updated to reflect these changes, and a new documentation section has been added to describe how it works. For some of the background, please see <a href="http://www.rubygarden.org/ruby?FXRubyComments" target="_top">this page</a> on the RubyGarden Wiki.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>each_row</tt> and <tt>each_column</tt> iterators for the <tt>FXTable</tt> class. These iterators yield an array of references to <tt>FXTableItem</tt> instances, one per row or column, respectively. Note that the <tt>each</tt> method is just an alias for <tt>each_row</tt>.</p></li><li style="list-style-type: disc"><p>Removed the interfaces for <tt>fxrandom</tt>, <tt>fxmalloc</tt>, <tt>fxcalloc</tt>, <tt>fxresize</tt>, <tt>fxmemdump</tt>, and <tt>fxfree</tt>. These utility functions are not relevant for FXRuby.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>fxhsv_to_rgb</tt> and <tt>fxrgb_to_hsv</tt> so that they return three-element arrays of the converted color components.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>FXWindow#acquireSelection</tt>, <tt>FXWindow#acquireClipboard</tt> and <tt>FXWindow#beginDrag</tt> to take an array of drag types.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>fxsaveBMP</tt>, <tt>fxsaveGIF</tt>, <tt>fxsaveICO</tt>, <tt>fxsavePCX</tt>, <tt>fxsavePNG</tt>, <tt>fxsaveTIF</tt> and <tt>fxsaveXPM</tt> so that they expect a Ruby string (containing the image pixel data) as their second argument.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.180.tar.gz" target="_top">fox-0.99.180</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2259"></a>Changes Since Version 0.99.173</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Moved all of the method name aliases out of the C interface code and into a new library file (<tt>fox/aliases.rb</tt>). This file is loaded automatically so you don't need to change your code. Similarly, moved all of the iterator methods out of the C code and into a library file (<tt>fox/iterators.rb</tt>). The main purpose of these changes is to reduce the size of the C++ code (especially <tt>core_wrap.cpp</tt>) where possible. Obviously, compared to recompiling the C++ source code, it's also much more efficient to quickly patch the Ruby files and re-run when there are problems.</p></li><li style="list-style-type: disc"><p>A few errors made it into the <tt>undolist.rb</tt> library module and the <tt>textedit.rb</tt> example last time; I think these have been fixed.</p></li><li style="list-style-type: disc"><p>I meant to add support for the new <tt>FXPCXIcon</tt> and <tt>FXPCXImage</tt> classes with the last release, but somehow I overlooked those. They are now supported, along with the other new classes introduced by FOX version 0.99.174: <tt>FXTIFIcon</tt>, <tt>FXTIFImage</tt> and <tt>FXProgressDialog</tt>.</p></li><li style="list-style-type: disc"><p>Fixed a bug in the GC-related code for "marking" C++ objects. I had not accounted for the possibility that the pointer passed to my mark functions could be a <tt>NULL</tt> pointer, and as a result the code would seg fault during garbage collection, under some circumstances. Many thanks to Ralf Canis for catching this bug.</p></li><li style="list-style-type: disc"><p>Updated the source code and <tt>extconf.rb</tt> files so that FXRuby configures and builds correctly for the "mswin32" builds. Thanks very much to Lorien Dunn for prompting me to get this stuff up-to-date!</p></li><li style="list-style-type: disc"><p>Fixed things so that the <tt>FXApp#addInput</tt> and <tt>FXApp#removeInput</tt> instance methods work properly for generating input messages. The first argument to both of these methods should be an <tt>IO</tt> object of some kind (specifically, an object that implements a <tt>fileno</tt> method). For more information about how this works, see the "Timers, Chores, Signals and Input Messages" section of the FOX documentation. Also see the new <tt>inputs.rb</tt> program in the <tt>examples</tt> directory for an example of how this works. Thanks to Ralf Canis for reminding me that I left this broken!</p></li><li style="list-style-type: disc"><p>Completed the basic code changes required for <tt>FXObject#handle</tt> to properly convert its message data into something that the C++ objects recognize (see the first item in the FXRuby To-Do List for more information). A lot of message types and identifiers are now handled correctly, especially those that are common to all <tt>FXWindow</tt>s. Most of the more widget-specific messages are not handled yet, and this is going to take awhile to complete; it's just a tedious process.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.cfdrc.com/pub/FOX/fox-0.99.174.tar.gz" target="_top">fox-0.99.174</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2350"></a>Changes Since Version 0.99.172</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Changed the build and installation process to use Minero Aoki's <tt>setup.rb</tt> tools. Looking ahead I can see that FXRuby will probably consist of a core C++ extension module and a collection of Ruby library scripts, and so now was the right time to make that transition.</p><p>If you have previously installed FXRuby (and written programs with the same) there are a few changes that may affect you. First, <tt>setup.rb</tt> will install the shared library (<tt>fox.so</tt>) in your <tt>site_ruby</tt> directory instead of the "core" libraries directory, where it was previously installed. So you should be sure to remove the old version of <tt>fox.so</tt> before installing and using this one.</p><p>The other change to be aware of is that there is now a <tt>fox</tt> directory containing FXRuby library scripts, and the <tt>responder.rb</tt> module is the first entry for this directory. You can import this file into your Ruby scripts with the line:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">require 'fox/responder'</pre></td></tr></table><p>and it's no longer necessary to drag copies of that file around.</p></li><li style="list-style-type: disc"><p>Aliased the <tt>getText</tt> instance method to <tt>to_s</tt> for a number of classes. This change should make things a little more convenient when inspecting the contents of widgets whose primary purpose is text entry or display. Thanks to Barry Shultz for this suggestion.</p></li><li style="list-style-type: disc"><p>Added the <tt>FXWindow#removeChild</tt> method for removing child widgets from a container window. This method doesn't exist for the C++ <tt>FXWindow</tt> class because it isn't needed; in C++ programs you simply delete the C++ object and it automatically gets removed from its parent. Note that after you call <tt>FXWindow#removeChild</tt> any outstanding references to the recently deceased child widget are invalid and should be set to <tt>nil</tt> or otherwise disposed of. Thanks to Ted Meng for noticing this omission.</p></li><li style="list-style-type: disc"><p>Modified some of the OpenGL method calls in <tt>gltest.rb</tt> for compatibility with Ruby/OpenGL 0.32. You should now be able to use Ruby/OpenGL with FXRuby unmodified.</p></li><li style="list-style-type: disc"><p>Added <tt>each()</tt> instance methods for <tt>FXComboBox</tt>, <tt>FXGLGroup</tt>, <tt>FXHeader</tt>, <tt>FXIconList</tt>, <tt>FXList</tt>, <tt>FXListBox</tt>, <tt>FXTreeItem</tt>, <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt> in support of iterating over their sub-items. Also mixed the <tt>Enumerable</tt> module into all of these classes.</p></li><li style="list-style-type: disc"><p>Corrected the implementations of <tt>getData()</tt> and <tt>setData()</tt> for a variety of classes. You should now be able to attach arbitrary (application-defined) data to any FOX object that supports these APIs.</p></li><li style="list-style-type: disc"><p>As a debugging tool, you can now optionally catch exceptions raised in message handlers. To turn on this feature, call the <tt>setIgnoreExceptions(true)</tt> module method. When this is enabled, any exceptions raised in message handler functions will cause a standard stack trace to be dumped to the standard output, but then your application will, for better or worse, proceed normally. Thanks to Ted Meng for this suggestion.</p></li><li style="list-style-type: disc"><p>Extended the interfaces for <tt>FXApp#addSignal</tt> and <tt>FXApp#removeSignal</tt> to accept either a string or integer as their first argument. If it's a string (e.g. "SIGINT" or just "INT") the code will determine the corresponding signal number for you (similar to the <tt>Process.kill</tt> module method). For examples of how to use this, see the <tt>datatarget.rb</tt> or <tt>imageviewer.rb</tt> example programs.</p></li><li style="list-style-type: disc"><p>Corrected the implementations of <tt>fxparsefontdesc()</tt> and <tt>fxunparsefontdesc()</tt> module methods.</p></li><li style="list-style-type: disc"><p>Added a pure Ruby implementation of the standard <tt>FXCommand</tt> and <tt>FXUndoList</tt> classes from the standard FOX library.</p></li><li style="list-style-type: disc"><p>Added the <tt>splitter.rb</tt> example, to demonstrate the <tt>FXSplitter</tt> class and its options.</p></li><li style="list-style-type: disc"><p>Completed the initial version of <tt>browser.rb</tt>, which is just a simple tool to inspect the methods and constants exposed by different FOX classes. Thanks to Albert Wagner for pointing out some bugs in this one and providing me with the motivation to complete it. I don't know how useful it is, but it seems to be a required utility for every GUI toolkit for Ruby ;) If you'd like to suggest further improvements, please feel free!</p></li><li style="list-style-type: disc"><p>Corrected the constructors for <tt>FXXPMIcon</tt> and <tt>FXXPMImage</tt> so that they accept a list of strings as their second argument. The list of strings should be an XPM format image file. You can also pass <tt>nil</tt> to construct an initially-empty icon or image.</p></li><li style="list-style-type: disc"><p>Corrected the message data sent by <tt>FXList</tt> to its message target for the <tt>SEL_SELECTED</tt>, <tt>SEL_DESELECTED</tt>, <tt>SEL_INSERTED</tt>, <tt>SEL_DELETED</tt>, and <tt>SEL_REPLACED</tt> messages. For each of these messages, the data should be an integer indicating the affected list item's index.</p></li><li style="list-style-type: disc"><p>Added typemaps to convert Ruby message data back into C++ void pointers when calling the base class versions of message handlers. Please see the to-do list for a brief discussion of the issues that this fix addressed, and what remains to be done.</p></li><li style="list-style-type: disc"><p>Fixed a subtle GC bug related to object ownership. I'll use the <tt>FXList</tt> and <tt>FXListItem</tt> classes to describe the problem, but it's also relevant for several other FOX classes.</p><p>There are two ways to add a new list item to an <tt>FXList</tt> instance. One of those ways involves creating a new <tt>FXListItem</tt> instance explicitly (i.e. using <tt>FXListItem.new</tt>) and then passing it into an <tt>FXList</tt> instance method like <tt>FXList#appendItem</tt>. Before you add the item to the list, the item is "self-owned"; in other words, if Ruby's garbage collector decides to kill off that <tt>FXListItem</tt> instance, it is appropriate to also destroy the underlying C ++ object. After the list item has been added to an <tt>FXList</tt>, however, the <tt>FXList</tt> owns that list item and is responsible for destroying it.</p><p>This bug became an issue when you added <tt>FXListItem</tt> instances to a list, because the code didn't properly recognize the fact that "ownership" of the list item had been transferred from the <tt>FXListItem</tt> instance to the <tt>FXList</tt>. More to the point, Ruby's garbage collector assumed that it was still OK to destroy the <tt>FXListItem</tt> instances that it knew about, and so objects could get deleted twice. This would usually result in a core dump.</p><p>Many thanks to Albert Wagner for submitting an example program that demonstrated this problem.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.173.tar.gz" target="_top">fox-0.99.173</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2614"></a>Changes Since Version 0.99.167</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Completed the coding for "safe" coexistence with Ruby's garbage collector; it should no longer be necessary to call <tt>GC.disable</tt> at the top of your FXRuby programs. Although all of the example programs now work correctly without disabling the garbage collector, this doesn't mean that there aren't still some bugs lurking. If your FXRuby program(s) crash mysteriously, try adding <tt>GC.disable</tt> to the top to see if it fixes things. If this does make a difference, <span class="emphasis"><i>please</i></span> send me the program (or another that reproduces the problem) so I can track down what's going wrong.</p></li><li style="list-style-type: disc"><p>Added aliases for all classes' accessor functions so that the related properties can be accessed more directly; for example, <tt>FXLabel#getText</tt> is aliased to <tt>FXLabel#text</tt> and <tt>FXLabel#setText</tt> is aliased to <tt>FXLabel#text=</tt>. Although the different forms are functionally equivalent, the new form is often easier to read. For example, consider this snippet of code that modifies a label's text:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">aLabel.setText(aLabel.getText() + " (modified)")</pre></td></tr></table><p>and this version of the same, now using the propery accessor functions:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">aLabel.text += " (modified)"</pre></td></tr></table><p>None of the standard FOX class APIs have been removed, so you shouldn't need to modify any already-working code.</p></li><li style="list-style-type: disc"><p>Corrected the message data sent from the <tt>FXText</tt> widget to its message target for the <tt>SEL_SELECTED</tt>, <tt>SEL_DESELECTED</tt>, <tt>SEL_INSERTED</tt>, <tt>SEL_DELETED</tt> and <tt>SEL_REPLACED</tt> message types. For the first four messages, the associated message data sent to the target will be an array of two integers indicating the starting position in the text buffer and text length for the affected text. For the <tt>SEL_REPLACED</tt> message type, the message data will be an array of three integers, indicating the starting position in the text buffer, the length of the old (replaced) text, and the length of the new text.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.172.tar.gz" target="_top">fox-0.99.172</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2683"></a>Changes Since Version 0.99.166-1</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Corrected the interfaces for <tt>FXInputDialog.getString</tt>, <tt>FXInputDialog.getReal</tt> and <tt>FXInputDialog.getInteger</tt> to either return the requested type or <tt>nil</tt> if the user cancels the dialog.</p></li><li style="list-style-type: disc"><p>Added code at the top of all the examples to disable Ruby's garbage collector, until the issues with GC are resolved.</p></li><li style="list-style-type: disc"><p>Corrected implementations for the overloaded versions of <tt>FXWindow#update</tt>. This method can be invoke with no arguments (in which case it updates the entire window) or with four arguments indicating the x, y, w and h of the client area to be updated.</p></li><li style="list-style-type: disc"><p>Modified how the return values from Ruby message handler functions are interpreted, to make things a little more convenient for programmers. If the result is a numeric type (<tt>Fixnum</tt>, <tt>Bignum</tt> or <tt>Float</tt>) we try to cast it to a long integer but also trap the value to either zero or one. If it's a boolean result we map <tt>false</tt> and <tt>true</tt> to zero and one, respectively. For any other return type (<tt>nil</tt>, strings, etc.) we just assume they meant to return 1. Thanks to Ted Meng for this suggestion.</p></li><li style="list-style-type: disc"><p>Modified the interfaces for <tt>FXFileDialog#getPatternList</tt>, <tt>FXFileSelector#getPatternList</tt>, <tt>FXFileDialog#setPatternList</tt> and <tt>FXFileSelector#setPatternList</tt> to take (or return) an array of strings (one array item per pattern) of the form "C/C++ Files (*.cpp)". This is sort-of a compromise between the currently available overloaded C++ versions of these functions, both of which look pretty awkward in Ruby. For an example of how this works now, see the <tt>imageviewer.rb</tt> example program.</p></li><li style="list-style-type: disc"><p>Added the FOX key cap definitions (i.e. the symbols from <tt>fxkeys.h</tt>) into FXRuby. Thanks to Benedikt Grundmann for pointing out this omission.</p></li><li style="list-style-type: disc"><p>Added initial support for multithreaded FXRuby applications. The current implementation does what is also done in Ruby/GTK; it turns over some idle processing time to the Ruby thread scheduler to let other threads do their thing. As I learn more about Ruby's threading implementation I may try something different, but this seems to work OK for now. As a simple example, I modified the <tt>groupbox.rb</tt> example program so that the clock label that appears in the lower right-hand corner is continuously updated (by a separate thread) instead of just displaying static text.</p><p>If you suspect that FXRuby's threads support is interfering with your application's performance, you may want to try tweaking the amount of time that the main application thread "sleeps" during idle processing; do this by setting the <tt>FXApp</tt> object's <i><tt>sleepTime</tt></i> attribute. The default value for <i><tt>FXApp#sleepTime</tt></i> is 100 milliseconds. You can also disable the threads support completely by calling <tt>FXApp#disableThreads</tt> (and subsequently re-enabl... [truncated message content] |
From: Lyle J. <ly...@us...> - 2002-03-21 23:13:34
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv24432 Modified Files: ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ChangeLog,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** ChangeLog 21 Mar 2002 21:32:56 -0000 1.23 --- ChangeLog 21 Mar 2002 23:13:31 -0000 1.24 *************** *** 1,2 **** --- 1,39 ---- + 2002-03-21 17:04 lyle + + * FXRuby.iss, examples/scintilla_wrapper.rb: Added missing file + (scintilla_wrapper.rb) needed for the Scintilla example. + + 2002-03-21 17:02 lyle + + * FXRuby.iss, examples/iRAA.rb: Added missing file needed for RAA + browser (iRAA.rb) from the SOAP4R distribution. + + 2002-03-21 17:00 lyle + + * ext/fox/: extconf.rb, extconf.rb.tmpl: [no log message] + + 2002-03-21 16:04 lyle + + * FXRuby.iss: [no log message] + + 2002-03-21 15:53 lyle + + * update_website.sh: [no log message] + + 2002-03-21 15:50 lyle + + * doc/: scintilla.html, scintilla.xml: Updated the URL for + FXScintilla 1.45. + + 2002-03-21 15:44 lyle + + * index.html: Modified the comment about the precompiled binaries + for Windows; they are no longer built against a Cygwin-based Ruby + but rather the MSWin32-based Ruby. + + 2002-03-21 15:32 lyle + + * ChangeLog: [no log message] + 2002-03-21 15:16 lyle |
From: Lyle J. <ly...@us...> - 2002-03-21 23:04:14
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv21396 Modified Files: FXRuby.iss Log Message: Added missing file (scintilla_wrapper.rb) needed for the Scintilla example. Index: FXRuby.iss =================================================================== RCS file: /cvsroot/fxruby/FXRuby/FXRuby.iss,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** FXRuby.iss 21 Mar 2002 23:02:38 -0000 1.16 --- FXRuby.iss 21 Mar 2002 23:04:10 -0000 1.17 *************** *** 109,112 **** --- 109,113 ---- Source: "examples\raabrowser.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "raabrowser.rbw"; CopyMode: alwaysoverwrite Source: "examples\scintilla-test.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "scintilla-test.rbw"; CopyMode: alwaysoverwrite + Source: "examples\scintilla_wrapper.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "scintilla_wrapper.rb"; CopyMode: alwaysoverwrite Source: "examples\scribble.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "scribble.rbw"; CopyMode: alwaysoverwrite Source: "examples\scribble-orig.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "scribble-orig.rbw"; CopyMode: alwaysoverwrite |
From: Lyle J. <ly...@us...> - 2002-03-21 23:04:14
|
Update of /cvsroot/fxruby/FXRuby/examples In directory usw-pr-cvs1:/tmp/cvs-serv21396/examples Added Files: scintilla_wrapper.rb Log Message: Added missing file (scintilla_wrapper.rb) needed for the Scintilla example. --- NEW FILE: scintilla_wrapper.rb --- ## ***** WARNING...THIS FILE IS GENERATED BY FROM SCINTILLA.IFACE ## ***** DO NOT MODIFY...MODIFY SCINTILLA.RB INSTEAD module Scintilla ## First line may be used for shbang ## This file defines the interface to Scintilla ## A line starting with ## is a pure comment and should be stripped by readers. ## A line starting with #! is for future shbang use ## A line starting with # followed by a space is a documentation comment and refers ## to the next feature definition. ## Each feature is defined by a line starting with fun, get, set, val or evt. ## cat -> start a category ## fun -> a function ## get -> a property get function ## set -> a property set function ## val -> definition of a constant [...2237 lines suppressed...] SCE_NNCRONTAB_DEFAULT = 0 SCE_NNCRONTAB_COMMENT = 1 SCE_NNCRONTAB_TASK = 2 SCE_NNCRONTAB_SECTION = 3 SCE_NNCRONTAB_KEYWORD = 4 SCE_NNCRONTAB_MODIFIER = 5 SCE_NNCRONTAB_ASTERISK = 6 SCE_NNCRONTAB_NUMBER = 7 SCE_NNCRONTAB_STRING = 8 SCE_NNCRONTAB_ENVIRONMENT = 9 SCE_NNCRONTAB_IDENTIFIER = 10 # Events # GTK+ Specific to work around focus and accelerator problems: # The old name for SCN_UPDATEUI SCN_CHECKBRACE = 2007 end |
From: Lyle J. <ly...@us...> - 2002-03-21 23:02:41
|
Update of /cvsroot/fxruby/FXRuby/examples In directory usw-pr-cvs1:/tmp/cvs-serv20784/examples Added Files: iRAA.rb Log Message: Added missing file needed for RAA browser (iRAA.rb) from the SOAP4R distribution. --- NEW FILE: iRAA.rb --- module RAA InterfaceNS = "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.1" class Category include SOAP::Marshallable @@typeNamespace = InterfaceNS attr_reader :major, :minor def initialize( major, minor = nil ) @major = major @minor = minor end def to_s "#{ @major }/#{ @minor }" end def ==( rhs ) if @major != rhs.major false elsif !@minor or !rhs.minor true else @minor == rhs.minor end end end class Product include SOAP::Marshallable @@typeNamespace = InterfaceNS attr_reader :name attr_accessor :version, :status, :homepage, :download, :license, :description def initialize( name, version = nil, status = nil, homepage = nil, download = nil, license = nil, description = nil ) @name = name @version = version @status = status @homepage = homepage @download = download @license = license @description = description end end class Owner include SOAP::Marshallable @@typeNamespace = InterfaceNS attr_reader :id attr_accessor :email, :name def initialize( email, name ) @email = email @name = name @id = "#{ @email }-#{ @name }" end end class Info include SOAP::Marshallable @@typeNamespace = InterfaceNS attr_accessor :category, :product, :owner, :update def initialize( category = nil, product = nil, owner = nil, update = nil ) @category = category @product = product @owner = owner @update = update end end Methods = { 'getAllListings' => [ 'Array' ], 'getProductTree' => [ 'Hash' ], 'getInfoFromCategory' => [ 'Array', 'category' ], 'getModifiedInfoSince' => [ 'Array', 'time' ], 'getInfoFromName' => [ 'Info', 'name' ], } end |
From: Lyle J. <ly...@us...> - 2002-03-21 23:02:41
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv20784 Modified Files: FXRuby.iss Log Message: Added missing file needed for RAA browser (iRAA.rb) from the SOAP4R distribution. Index: FXRuby.iss =================================================================== RCS file: /cvsroot/fxruby/FXRuby/FXRuby.iss,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** FXRuby.iss 21 Mar 2002 22:04:07 -0000 1.15 --- FXRuby.iss 21 Mar 2002 23:02:38 -0000 1.16 *************** *** 106,109 **** --- 106,110 ---- Source: "examples\inputs.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "inputs.rbw"; CopyMode: alwaysoverwrite Source: "examples\mditest.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "mditest.rbw"; CopyMode: alwaysoverwrite + Source: "examples\iRAA.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "iRAA.rb"; CopyMode: alwaysoverwrite Source: "examples\raabrowser.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "raabrowser.rbw"; CopyMode: alwaysoverwrite Source: "examples\scintilla-test.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "scintilla-test.rbw"; CopyMode: alwaysoverwrite |
From: Lyle J. <ly...@us...> - 2002-03-21 23:00:43
|
Update of /cvsroot/fxruby/FXRuby/ext/fox In directory usw-pr-cvs1:/tmp/cvs-serv20190/ext/fox Modified Files: extconf.rb extconf.rb.tmpl Log Message: Index: extconf.rb =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/extconf.rb,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** extconf.rb 13 Mar 2002 18:18:20 -0000 1.26 --- extconf.rb 21 Mar 2002 23:00:40 -0000 1.27 *************** *** 1,4 **** --- 1,5 ---- #!/bin/env ruby + require 'ftools' require 'mkmf' *************** *** 39,43 **** end ! def isScintillaBuild args = ARGV.delete_if { |e| !(e =~ /--with-scintilla/) } args.length > 0 --- 40,44 ---- end ! def is_scintilla_build? args = ARGV.delete_if { |e| !(e =~ /--with-scintilla/) } args.length > 0 *************** *** 80,86 **** $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + " -fno-strict-prototype -fpermissive -DWIN32 -Iinclude" ! if isScintillaBuild $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") end elsif RUBY_PLATFORM =~ /mswin32/ --- 81,90 ---- $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + " -fno-strict-prototype -fpermissive -DWIN32 -Iinclude" ! if is_scintilla_build? ! File.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exists?('scintilla_wrap.cpp.bak') $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") + else + File.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exists?('scintilla_wrap.cpp') end elsif RUBY_PLATFORM =~ /mswin32/ *************** *** 106,112 **** $CFLAGS = $CFLAGS + "/DWIN32 /GR /GX /Iinclude" $LOCAL_LIBS = $LOCAL_LIBS + "foxst.lib" ! if isScintillaBuild $CFLAGS = $CFLAGS + " /DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla-static") end else --- 110,119 ---- $CFLAGS = $CFLAGS + "/DWIN32 /GR /GX /Iinclude" $LOCAL_LIBS = $LOCAL_LIBS + "foxst.lib" ! if is_scintilla_build? ! File.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exists?('scintilla_wrap.cpp.bak') $CFLAGS = $CFLAGS + " /DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla-static") + else + File.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exists?('scintilla_wrap.cpp') end else *************** *** 124,130 **** $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + "-O0 -Iinclude" ! if isScintillaBuild $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") end end --- 131,140 ---- $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + "-O0 -Iinclude" ! if is_scintilla_build? ! File.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exists?('scintilla_wrap.cpp.bak') $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") + else + File.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exists?('scintilla_wrap.cpp') end end Index: extconf.rb.tmpl =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/extconf.rb.tmpl,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** extconf.rb.tmpl 13 Mar 2002 18:18:20 -0000 1.16 --- extconf.rb.tmpl 21 Mar 2002 23:00:40 -0000 1.17 *************** *** 1,4 **** --- 1,5 ---- #!/bin/env ruby + require 'ftools' require 'mkmf' *************** *** 39,43 **** end ! def isScintillaBuild args = ARGV.delete_if { |e| !(e =~ /--with-scintilla/) } args.length > 0 --- 40,44 ---- end ! def is_scintilla_build? args = ARGV.delete_if { |e| !(e =~ /--with-scintilla/) } args.length > 0 *************** *** 80,86 **** $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + " -fno-strict-prototype -fpermissive -DWIN32 -Iinclude" ! if isScintillaBuild $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") end elsif RUBY_PLATFORM =~ /mswin32/ --- 81,90 ---- $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + " -fno-strict-prototype -fpermissive -DWIN32 -Iinclude" ! if is_scintilla_build? ! File.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exists?('scintilla_wrap.cpp.bak') $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") + else + File.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exists?('scintilla_wrap.cpp') end elsif RUBY_PLATFORM =~ /mswin32/ *************** *** 106,112 **** $CFLAGS = $CFLAGS + "/DWIN32 /GR /GX /Iinclude" $LOCAL_LIBS = $LOCAL_LIBS + "foxst.lib" ! if isScintillaBuild $CFLAGS = $CFLAGS + " /DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla-static") end else --- 110,119 ---- $CFLAGS = $CFLAGS + "/DWIN32 /GR /GX /Iinclude" $LOCAL_LIBS = $LOCAL_LIBS + "foxst.lib" ! if is_scintilla_build? ! File.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exists?('scintilla_wrap.cpp.bak') $CFLAGS = $CFLAGS + " /DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla-static") + else + File.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exists?('scintilla_wrap.cpp') end else *************** *** 124,130 **** $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + "-O0 -Iinclude" ! if isScintillaBuild $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") end end --- 131,140 ---- $libs = append_library($libs, "FOX") $CFLAGS = $CFLAGS + "-O0 -Iinclude" ! if is_scintilla_build? ! File.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exists?('scintilla_wrap.cpp.bak') $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA" $libs = append_library($libs, "scintilla") + else + File.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exists?('scintilla_wrap.cpp') end end |
From: Lyle J. <ly...@us...> - 2002-03-21 22:04:12
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv2107 Modified Files: FXRuby.iss Log Message: Index: FXRuby.iss =================================================================== RCS file: /cvsroot/fxruby/FXRuby/FXRuby.iss,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** FXRuby.iss 21 Mar 2002 19:10:33 -0000 1.14 --- FXRuby.iss 21 Mar 2002 22:04:07 -0000 1.15 *************** *** 28,32 **** Source: "doc\book.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\build.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite - Source: "doc\button.png"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\changes.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\differences.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite --- 28,31 ---- *************** *** 37,44 **** Source: "doc\opengl.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\scintilla.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite - Source: "doc\screenshots.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\todo.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\tutorial1.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\tutorial1.png"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\images\datatarget.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\dialog.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite --- 36,43 ---- Source: "doc\opengl.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\scintilla.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\todo.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\tutorial1.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\tutorial1.png"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite + Source: "doc\images\button.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\datatarget.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\dialog.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite *************** *** 46,50 **** Source: "doc\images\foursplit.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\gltest.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite ! Source: "doc\images\glviewer.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\groupbox.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\header.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite --- 45,49 ---- Source: "doc\images\foursplit.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\gltest.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite ! Source: "doc\images\glviewer.gif"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\groupbox.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite Source: "doc\images\header.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite |
From: Lyle J. <ly...@us...> - 2002-03-21 21:56:48
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv20189 Modified Files: index.html Log Message: Modified the comment about the precompiled binaries for Windows; they are no longer built against a Cygwin-based Ruby but rather the MSWin32-based Ruby. Index: index.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/index.html,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** index.html 14 Mar 2002 17:03:39 -0000 1.18 --- index.html 21 Mar 2002 21:44:39 -0000 1.19 *************** *** 31,35 **** indicates the compatible version of the FOX library that you'll need if you're building from source. The binary distribution for Windows is compatible ! with the standard, Cygwin-based version of Ruby that's available for download from <a href="http://www.pragmaticprogrammer.com/ruby/downloads/ruby-install.html"> The Pragmatic Programmers Site</a>.<p> --- 31,35 ---- indicates the compatible version of the FOX library that you'll need if you're building from source. The binary distribution for Windows is compatible ! with the standard Ruby installer for Windows that's available for download from <a href="http://www.pragmaticprogrammer.com/ruby/downloads/ruby-install.html"> The Pragmatic Programmers Site</a>.<p> |
From: Lyle J. <ly...@us...> - 2002-03-21 21:53:21
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv29267 Modified Files: update_website.sh Log Message: Index: update_website.sh =================================================================== RCS file: /cvsroot/fxruby/FXRuby/update_website.sh,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** update_website.sh 19 Apr 2001 17:13:43 -0000 1.4 --- update_website.sh 21 Mar 2002 21:53:17 -0000 1.5 *************** *** 1,4 **** #!/bin/sh ! tar cvzf website.tar.gz index.html doc/*.html doc/*.png doc/*.gif scp website.tar.gz ly...@fx...:/home/groups/f/fx/fxruby/htdocs rm -f website.tar.gz --- 1,4 ---- #!/bin/sh ! tar cvzf website.tar.gz index.html doc/*.html doc/tutorial1.png doc/images/*.gif doc/images/*.png scp website.tar.gz ly...@fx...:/home/groups/f/fx/fxruby/htdocs rm -f website.tar.gz |
From: Lyle J. <ly...@us...> - 2002-03-21 21:50:43
|
Update of /cvsroot/fxruby/FXRuby/doc In directory usw-pr-cvs1:/tmp/cvs-serv26051 Modified Files: scintilla.html scintilla.xml Log Message: Updated the URL for FXScintilla 1.45. Index: scintilla.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/scintilla.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** scintilla.html 21 Mar 2002 19:09:11 -0000 1.8 --- scintilla.html 21 Mar 2002 21:50:40 -0000 1.9 *************** *** 1,5 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 5. Using Scintilla with FXRuby</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="opengl.html" title="Chapter 4. Using OpenGL with FXRuby"><link rel="next" href="differences.html" title="Chapter 6. Differences between FOX and FXRuby"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Using Scintilla with FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="opengl.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="differences.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="scintilla"></a>Chapter 5. Using Scintilla with FXRuby</h2></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e973"></a>What is Scintilla?</h2></div></div><p><a href="http://www.scintilla.org" target="_top">Scintilla</a> is a free source code editing component developed by Neil Hodgson for the Win32 and GTK+ platforms.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e980"></a>What is FXScintilla?</h2></div></div><p><a href="http://savannah.gnu.org/projects/fxscintilla" target="_top">FXScintilla</a> is a FOX widget that wraps around the Scintilla component, or, if you wish, the FOX "port" of Scintilla. It is being developed by Gilles Filippini, and as of this writing the latest release is available for download from <a href="http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.44.3.tgz" target="_top">http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.44.3.tgz</a>.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e990"></a>Compiling FXScintilla</h2></div></div><p>Gilles' FXScintilla distribution contains everything you need to build the FXScintilla widget and begin using it in your C++-based FOX applications. That is to say, you do not have to separately download the Scintilla source code from the Scintilla home page. When you unpack the FXScintilla tarball, you should get two directories, <tt>scintilla</tt> and <tt>scite</tt>, containing the modified source code for the FOX port of the Scintilla widget. For the purposes of this discussion, we're only interested in getting the <tt>scintilla</tt> portion of the code compiled.</p><p>The <tt>README.fox</tt> file in the <tt>scintilla</tt> directory should provide enough instruction for you to compile the FXScintilla code for either Unix or Microsoft Windows. At the end you should have a static library in the <tt>scintilla/bin</tt> subdirectory, named either <tt>scintilla.a</tt> (for Unix-like platforms) or <tt>scintilla-static.lib</tt> (for Windows).</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1021"></a>Enabling FXScintilla support in FXRuby</h2></div></div><p>The next step is to build a version of FXRuby (from its source code) with the optional FXScintilla support enabled. This process is not so different from the standard build procedure, but you do need to specify a few additional configuration options at the beginning.</p><p>You can configure the build on Unix or Linux systems by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config -- \ --with-scintilla-include=/home/lyle/scintilla/include \ --with-scintilla-lib=/home/lyle/scintilla/bin</b></pre></td></tr></table><p>or, when compiling with Microsoft Visual C++, by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3><b>ruby install.rb config --make-prog=nmake -- \ --- 1,5 ---- <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 5. Using Scintilla with FXRuby</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="opengl.html" title="Chapter 4. Using OpenGL with FXRuby"><link rel="next" href="differences.html" title="Chapter 6. Differences between FOX and FXRuby"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Using Scintilla with FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="opengl.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="differences.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="scintilla"></a>Chapter 5. Using Scintilla with FXRuby</h2></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e973"></a>What is Scintilla?</h2></div></div><p><a href="http://www.scintilla.org" target="_top">Scintilla</a> is a free source code editing component developed by Neil Hodgson for the Win32 and GTK+ platforms.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e980"></a>What is FXScintilla?</h2></div></div><p><a href="http://savannah.gnu.org/projects/fxscintilla" target="_top">FXScintilla</a> is a FOX widget that wraps around the Scintilla component, or, if you wish, the FOX "port" of Scintilla. It is being developed by Gilles Filippini, and as of this writing the latest release is available for download from <a href="http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.45.1.tgz" target="_top">http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.45.1.tgz</a>.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e990"></a>Compiling FXScintilla</h2></div></div><p>Gilles' FXScintilla distribution contains everything you need to build the FXScintilla widget and begin using it in your C++-based FOX applications. That is to say, you do not have to separately download the Scintilla source code from the Scintilla home page. When you unpack the FXScintilla tarball, you should get two directories, <tt>scintilla</tt> and <tt>scite</tt>, containing the modified source code for the FOX port of the Scintilla widget. For the purposes of this discussion, we're only interested in getting the <tt>scintilla</tt> portion of the code compiled.</p><p>The <tt>README.fox</tt> file in the <tt>scintilla</tt> directory should provide enough instruction for you to compile the FXScintilla code for either Unix or Microsoft Windows. At the end you should have a static library in the <tt>scintilla/bin</tt> subdirectory, named either <tt>scintilla.a</tt> (for Unix-like platforms) or <tt>scintilla-static.lib</tt> (for Windows).</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1021"></a>Enabling FXScintilla support in FXRuby</h2></div></div><p>The next step is to build a version of FXRuby (from its source code) with the optional FXScintilla support enabled. This process is not so different from the standard build procedure, but you do need to specify a few additional configuration options at the beginning.</p><p>You can configure the build on Unix or Linux systems by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config -- \ --with-scintilla-include=/home/lyle/scintilla/include \ --with-scintilla-lib=/home/lyle/scintilla/bin</b></pre></td></tr></table><p>or, when compiling with Microsoft Visual C++, by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3><b>ruby install.rb config --make-prog=nmake -- \ Index: scintilla.xml =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/scintilla.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** scintilla.xml 14 Mar 2002 17:03:40 -0000 1.3 --- scintilla.xml 21 Mar 2002 21:50:40 -0000 1.4 *************** *** 7,11 **** <simplesect> <title>What is FXScintilla?</title> ! <para><ulink url="http://savannah.gnu.org/projects/fxscintilla">FXScintilla</ulink> is a FOX widget that wraps around the Scintilla component, or, if you wish, the FOX "port" of Scintilla. It is being developed by Gilles Filippini, and as of this writing the latest release is available for download from <ulink url="http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.44.3.tgz">http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.44.3.tgz</ulink>.</para> </simplesect> <simplesect> --- 7,11 ---- <simplesect> <title>What is FXScintilla?</title> ! <para><ulink url="http://savannah.gnu.org/projects/fxscintilla">FXScintilla</ulink> is a FOX widget that wraps around the Scintilla component, or, if you wish, the FOX "port" of Scintilla. It is being developed by Gilles Filippini, and as of this writing the latest release is available for download from <ulink url="http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.45.1.tgz">http://freesoftware.fsf.org/download/fxscintilla/fxscintilla-1.45.1.tgz</ulink>.</para> </simplesect> <simplesect> |
From: Lyle J. <ly...@us...> - 2002-03-21 21:33:01
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv8938 Modified Files: ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ChangeLog,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** ChangeLog 2 Mar 2002 01:51:06 -0000 1.22 --- ChangeLog 21 Mar 2002 21:32:56 -0000 1.23 *************** *** 1,6 **** ! 2002-03-01 19:49 ljohnson * doc/: changes.html, changes.xml: [no log message] 2002-03-01 19:41 ljohnson --- 1,385 ---- ! 2002-03-21 15:16 lyle ! ! * make-drop.sh: [no log message] [...2293 lines suppressed...] ! swig-interfaces/FXStream.i, swig-interfaces/FXTopWindow.i, ! swig-interfaces/FXVisual.i, swig-interfaces/FXWindow.i, ! swig-interfaces/Makefile, swig-interfaces/fox.i, ! swig-interfaces/fxdefs.i: Initial import of FXRuby source code 2000-12-19 19:28 lyle ! * examples/hello.rb, swig-interfaces/FXAccelTable.i, ! swig-interfaces/FXApp.i, swig-interfaces/FXButton.i, ! swig-interfaces/FXComposite.i, swig-interfaces/FXCursor.i, ! swig-interfaces/FXDrawable.i, swig-interfaces/FXFont.i, ! swig-interfaces/FXFrame.i, swig-interfaces/FXIcon.i, ! swig-interfaces/FXId.i, swig-interfaces/FXImage.i, ! swig-interfaces/FXLabel.i, swig-interfaces/FXMainWindow.i, ! swig-interfaces/FXObject.i, swig-interfaces/FXShell.i, ! swig-interfaces/FXStream.i, swig-interfaces/FXTopWindow.i, ! swig-interfaces/FXVisual.i, swig-interfaces/FXWindow.i, ! swig-interfaces/Makefile, swig-interfaces/fox.i, ! swig-interfaces/fxdefs.i: Initial revision |
From: Lyle J. <ly...@us...> - 2002-03-21 21:16:17
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv1698 Modified Files: make-drop.sh Log Message: Index: make-drop.sh =================================================================== RCS file: /cvsroot/fxruby/FXRuby/make-drop.sh,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** make-drop.sh 21 Mar 2002 19:09:54 -0000 1.16 --- make-drop.sh 21 Mar 2002 21:16:12 -0000 1.17 *************** *** 9,13 **** $PKGDIR/doc/*.html \ $PKGDIR/doc/*.png \ ! $PKGDIR/doc/*.gif \ $PKGDIR/examples/README \ $PKGDIR/examples/*.rb \ --- 9,14 ---- $PKGDIR/doc/*.html \ $PKGDIR/doc/*.png \ ! $PKGDIR/doc/images/*.gif \ ! $PKGDIR/doc/images/*.png \ $PKGDIR/examples/README \ $PKGDIR/examples/*.rb \ |
From: Lyle J. <ly...@us...> - 2002-03-21 19:11:41
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv28317 Modified Files: README Log Message: Adds an explanatory comment about the (purpose of the) rdoc-sources directory to the README file. Index: README =================================================================== RCS file: /cvsroot/fxruby/FXRuby/README,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** README 24 Jan 2002 17:06:27 -0000 1.4 --- README 21 Mar 2002 19:11:36 -0000 1.5 *************** *** 31,34 **** --- 31,38 ---- An archive of the FOX library header files corresponding to this release of FXRuby. + rdoc-sources/ + The beginnings of a set of "fake" Ruby source files for the various + FXRuby classes, which are used to generate RDoc-style documentation. + Not quite ready for prime time, but should be soon. swig-interfaces/ The SWIG interface files used to generate the C++ wrapper code (i.e. |
From: Lyle J. <ly...@us...> - 2002-03-21 19:10:37
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv28076 Modified Files: FXRuby.iss Log Message: Adds a number of new files to the InnoSetup installer script for the Windows installer. Index: FXRuby.iss =================================================================== RCS file: /cvsroot/fxruby/FXRuby/FXRuby.iss,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** FXRuby.iss 29 Jan 2002 22:26:54 -0000 1.13 --- FXRuby.iss 21 Mar 2002 19:10:33 -0000 1.14 *************** *** 4,8 **** [Setup] AppName=FXRuby ! AppVerName=FXRuby 0.99.189 AppPublisherURL=http://fxruby.sourceforge.net AppSupportURL=http://fxruby.sourceforge.net --- 4,8 ---- [Setup] AppName=FXRuby ! AppVerName=FXRuby 1.0.3 AppPublisherURL=http://fxruby.sourceforge.net AppSupportURL=http://fxruby.sourceforge.net *************** *** 14,18 **** InfoBeforeFile=C:\src\FXRuby\README.win32.txt OutputDir=. ! OutputBaseFilename=FXRuby-0.99.189-win32 ; uncomment the following line if you want your installation to run on NT 3.51 too. ; MinVersion=4,3.51 --- 14,18 ---- InfoBeforeFile=C:\src\FXRuby\README.win32.txt OutputDir=. ! OutputBaseFilename=FXRuby-1.0.3-win32 ; uncomment the following line if you want your installation to run on NT 3.51 too. ; MinVersion=4,3.51 *************** *** 31,38 **** Source: "doc\changes.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\differences.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\events.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite - Source: "doc\glviewer.gif"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\goals.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite - Source: "doc\imageviewer.png"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\library.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\opengl.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite --- 31,37 ---- Source: "doc\changes.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\differences.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite + Source: "doc\examples.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\events.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\goals.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\library.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\opengl.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite *************** *** 42,53 **** Source: "doc\tutorial1.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\tutorial1.png"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite ; unit tests Source: "tests\README"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TestFXPoint.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TestFXRange.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TestFXRectangle.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TestFXSize.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\runtest.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\testall.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ; main extension shared library Source: "ext\fox\fox.so"; DestDir: "{app}\lib\ruby\site_ruby\1.6\i586-mswin32"; CopyMode: alwaysoverwrite --- 41,77 ---- Source: "doc\tutorial1.html"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite Source: "doc\tutorial1.png"; DestDir: "{app}\doc\ruby\FXRuby\doc"; CopyMode: alwaysoverwrite + Source: "doc\images\datatarget.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\dialog.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\dilbert.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\foursplit.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\gltest.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\glviewer.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\groupbox.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\header.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\hello.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\hello2.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\image.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\imageviewer.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\mditest.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\raabrowser.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\scribble.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\shutter.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\splitter.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\tabbook.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite + Source: "doc\images\table.png"; DestDir: "{app}\doc\ruby\FXRuby\doc\images"; CopyMode: alwaysoverwrite ; unit tests Source: "tests\README"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TS_All.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXButton.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXFont.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXHMat.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXHVec.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXLight.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXMaterial.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXPoint.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXRange.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXRectangle.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXSize.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ! Source: "tests\TC_FXViewport.rb"; DestDir: "{app}\doc\ruby\FXRuby\tests"; CopyMode: alwaysoverwrite ; main extension shared library Source: "ext\fox\fox.so"; DestDir: "{app}\lib\ruby\site_ruby\1.6\i586-mswin32"; CopyMode: alwaysoverwrite *************** *** 65,68 **** --- 89,93 ---- ; samples Source: "examples\README"; DestDir: "{app}\samples\FXRuby"; CopyMode: alwaysoverwrite + Source: "examples\babelfish.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "babelfish.rbw"; CopyMode: alwaysoverwrite Source: "examples\browser.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "browser.rbw"; CopyMode: alwaysoverwrite Source: "examples\button.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "button.rbw"; CopyMode: alwaysoverwrite *************** *** 82,85 **** --- 107,111 ---- Source: "examples\inputs.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "inputs.rbw"; CopyMode: alwaysoverwrite Source: "examples\mditest.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "mditest.rbw"; CopyMode: alwaysoverwrite + Source: "examples\raabrowser.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "raabrowser.rbw"; CopyMode: alwaysoverwrite Source: "examples\scintilla-test.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "scintilla-test.rbw"; CopyMode: alwaysoverwrite Source: "examples\scribble.rb"; DestDir: "{app}\samples\FXRuby"; DestName: "scribble.rbw"; CopyMode: alwaysoverwrite *************** *** 95,98 **** --- 121,131 ---- Source: "examples\textedit\textedit.rb"; DestDir: "{app}\samples\FXRuby\textedit"; DestName: "textedit.rbw"; CopyMode: alwaysoverwrite ; icons for samples + Source: "examples\icons\AngryGuyInBunnySuit.ico"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite + Source: "examples\icons\FatBot.ico"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite + Source: "examples\icons\FlippedySwitch.ico"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite + Source: "examples\icons\LeGoon.ico"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite + Source: "examples\icons\Net.ico"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite + Source: "examples\icons\RedMacOS.ico"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite + Source: "examples\icons\SawBlade.ico"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite Source: "examples\icons\backview.gif"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite Source: "examples\icons\bigfolder.gif"; DestDir: "{app}\samples\FXRuby\icons"; CopyMode: alwaysoverwrite |
From: Lyle J. <ly...@us...> - 2002-03-21 19:09:58
|
Update of /cvsroot/fxruby/FXRuby In directory usw-pr-cvs1:/tmp/cvs-serv27876 Modified Files: make-drop.sh Log Message: Changed the version number for the make-drop.sh script, and added the ICO icons for the examples/icons directory. Index: make-drop.sh =================================================================== RCS file: /cvsroot/fxruby/FXRuby/make-drop.sh,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** make-drop.sh 5 Mar 2002 20:46:07 -0000 1.15 --- make-drop.sh 21 Mar 2002 19:09:54 -0000 1.16 *************** *** 1,4 **** #!/bin/sh ! PKGDIR=FXRuby-1.0.0 tar -cvzf $PKGDIR.tar.gz \ $PKGDIR/ANNOUNCE \ --- 1,4 ---- #!/bin/sh ! PKGDIR=FXRuby-1.0.3 tar -cvzf $PKGDIR.tar.gz \ $PKGDIR/ANNOUNCE \ *************** *** 14,17 **** --- 14,18 ---- $PKGDIR/examples/*.xml \ $PKGDIR/examples/icons/*.gif \ + $PKGDIR/examples/icons/*.ico \ $PKGDIR/examples/textedit/*.rb \ $PKGDIR/index.html \ |
From: Lyle J. <ly...@us...> - 2002-03-21 19:09:20
|
Update of /cvsroot/fxruby/FXRuby/doc In directory usw-pr-cvs1:/tmp/cvs-serv27523/doc Modified Files: build.html build.xml changes.html changes.xml differences.html events.html examples.html examples.xml library.html opengl.html scintilla.html Log Message: Updated comments in the "examples" section on the "shutter.rb" example, and updated its screenshot as well. Index: build.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/build.html,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** build.html 14 Mar 2002 17:03:39 -0000 1.21 --- build.html 21 Mar 2002 19:09:11 -0000 1.22 *************** *** 10,14 **** C:\ruby-1.6.7><b>nmake</b></pre></td></tr></table><p>After the compilation finished, you installed Ruby somewhere by typing, e.g.,</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\ruby-1.6.7><b>nmake DESTDIR=C:\ruby install</b></pre></td></tr></table><p>Similarly, I'm assuming that you built the FOX library using the Developer Studio project files distributed with the standard FOX source code distribution. Although it's possible to build FXRuby against either the static library build of FOX (<tt>fox.lib</tt>) or the DLL build (<tt>foxdll.dll</tt>), these instructions currently cover only the static library build. Before you get started building FXRuby itself, you'll need to rename the static FOX library from its default filename (<tt>fox.lib</tt>) to <tt>foxst.lib</tt>. The reason for this rename is a charming little quirk in Microsoft's LINK utility and the fact that the eventual output name for the FXRuby DLL is also <tt>fox.so</tt>; for now, just take my word for it. So if your FOX source code distribution and build are found in the <tt>C:\fox-1.0.3</tt> directory, you'd need to rename the file:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\fox-1.0.3\lib><b>rename fox.lib foxst.lib</b></pre></td></tr></table><p>Now you can configure the FXRuby build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3><b>ruby install.rb config --make-prog=nmake -- \ --with-fox-include=C:\fox-1.0.3\include \ ! --with-fox-lib=C:\fox-1.0.3\lib</b></pre></td></tr></table><p>Once the build has been configured, you can start the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb setup</b></pre></td></tr></table><p>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <b>ruby install.rb setup</b> to pick up where you left off).</p><p>Once it's finished compiling, install FXRuby by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb install</b></pre></td></tr></table><p>As a quick sanity check, to make sure that all is well, you should probably fire up <tt>irb</tt> and try to import FXRuby:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> true --- 10,14 ---- C:\ruby-1.6.7><b>nmake</b></pre></td></tr></table><p>After the compilation finished, you installed Ruby somewhere by typing, e.g.,</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\ruby-1.6.7><b>nmake DESTDIR=C:\ruby install</b></pre></td></tr></table><p>Similarly, I'm assuming that you built the FOX library using the Developer Studio project files distributed with the standard FOX source code distribution. Although it's possible to build FXRuby against either the static library build of FOX (<tt>fox.lib</tt>) or the DLL build (<tt>foxdll.dll</tt>), these instructions currently cover only the static library build. Before you get started building FXRuby itself, you'll need to rename the static FOX library from its default filename (<tt>fox.lib</tt>) to <tt>foxst.lib</tt>. The reason for this rename is a charming little quirk in Microsoft's LINK utility and the fact that the eventual output name for the FXRuby DLL is also <tt>fox.so</tt>; for now, just take my word for it. So if your FOX source code distribution and build are found in the <tt>C:\fox-1.0.3</tt> directory, you'd need to rename the file:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\fox-1.0.3\lib><b>rename fox.lib foxst.lib</b></pre></td></tr></table><p>Now you can configure the FXRuby build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3><b>ruby install.rb config --make-prog=nmake -- \ --with-fox-include=C:\fox-1.0.3\include \ ! --with-fox-lib=C:\fox-1.0.3\lib</b></pre></td></tr></table><p>Once the build has been configured, you can start the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3> <b>ruby install.rb setup</b></pre></td></tr></table><p>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <b>ruby install.rb setup</b> to pick up where you left off).</p><p>Once it's finished compiling, install FXRuby by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3> <b>ruby install.rb install</b></pre></td></tr></table><p>As a quick sanity check, to make sure that all is well, you should probably fire up <tt>irb</tt> and try to import FXRuby:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3> <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> true Index: build.xml =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/build.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** build.xml 13 Mar 2002 22:46:21 -0000 1.4 --- build.xml 21 Mar 2002 19:09:11 -0000 1.5 *************** *** 40,49 **** --with-fox-lib=C:\fox-1.0.3\lib</command></screen> <para>Once the build has been configured, you can start the build by typing:</para> ! <screen>$ <command>ruby install.rb setup</command></screen> <para>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <command>ruby install.rb setup</command> to pick up where you left off).</para> <para>Once it's finished compiling, install FXRuby by typing:</para> ! <screen>$ <command>ruby install.rb install</command></screen> <para>As a quick sanity check, to make sure that all is well, you should probably fire up <filename>irb</filename> and try to import FXRuby:</para> ! <screen>$ <command>irb</command> irb(main):001:0> <userinput>require 'fox'</userinput> true --- 40,49 ---- --with-fox-lib=C:\fox-1.0.3\lib</command></screen> <para>Once the build has been configured, you can start the build by typing:</para> ! <screen>C:\FXRuby-1.0.3> <command>ruby install.rb setup</command></screen> <para>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <command>ruby install.rb setup</command> to pick up where you left off).</para> <para>Once it's finished compiling, install FXRuby by typing:</para> ! <screen>C:\FXRuby-1.0.3> <command>ruby install.rb install</command></screen> <para>As a quick sanity check, to make sure that all is well, you should probably fire up <filename>irb</filename> and try to import FXRuby:</para> ! <screen>C:\FXRuby-1.0.3> <command>irb</command> irb(main):001:0> <userinput>require 'fox'</userinput> true Index: changes.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/changes.html,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** changes.html 20 Mar 2002 23:07:24 -0000 1.40 --- changes.html 21 Mar 2002 19:09:11 -0000 1.41 *************** *** 1,3 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 10. Change History</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="todo.html" title="Chapter 9. To-do list"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. Change History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="todo.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="changes"></a>Chapter 10. Change History</h2></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1794"></a>Changes Since Version 0.99.189</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Upgraded to the latest version of Minero Aoki's <tt>install.rb</tt> script.</p></li><li style="list-style-type: disc"><p>Switched from using DocBook/SGML to DocBook/XML for the FXRuby documentation. This is mainly a maintenance issue; it's just much less complicated to "publish" documents using DocBook/XML as compared to DocBook/SGML. You should see few (if any) differences in the resulting HTML pages, but let me know if you notice anything squirrely.</p></li><li style="list-style-type: disc"><p>Improved support for customized sorting of list items for the <tt>FXComboBox</tt>, <tt>FXIconList</tt>, <tt>FXList</tt>, <tt>FXListBox</tt>, <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt> classes. The model is different from that used in the C++ FOX library, where you set a global sorting function for each list instance. For FXRuby, you instead just override the list item's <tt><=></tt> method to compare one list item to another. Thanks to Martin Stannard for prompting me to resolve this problem.</p></li><li style="list-style-type: disc"><p>Added instructions about how to modify your <tt>/etc/ld.so.conf</tt> file (on Linux) to include the <tt>libFOX.so</tt> installation directory. Thanks to Giuseppe Cacopardo for providing this information.</p></li><li style="list-style-type: disc"><p>Updated the test cases (again) for use with Nathaniel Talbott's <a href="http://testunit.talbott.ws" target="_top">TestUnit</a>, which is apparently the successor to Lapidary.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>FXCURCursor</tt>, <tt>FXRGBIcon</tt>, <tt>FXRGBImage</tt> classes.</p></li><li style="list-style-type: disc"><p>Fixed a longstanding bug related to the ownership (for garbage collection purposes) of <tt>FXGLGroup</tt> and <tt>FXGLShape</tt> instances. This is the bug that was causing the <tt>glviewer.rb</tt> example program to crash on exit.</p></li><li style="list-style-type: disc"><p>Fixed a different (but also longstanding) bug related to FXRuby's hanging on to "stale" Ruby object references after those Ruby objects had already been garbage-collected. This bug manifested itself in a number of ways, but the most common symptom would be for an object (like an <tt>FXEvent</tt> instance) to suddenly lose its mind and believe it was some other object. Oh, and your program would usually crash at that point. I think this problem is now fixed.</p></li><li style="list-style-type: disc"><p>Added some safeguards for "destructive" functions like <tt>FXList#clearItems</tt>, which can destroy the C++ objects backing-up Ruby objects in FXRuby, so that any outstanding Ruby references to those destroyed C++ objects are left in a safe state when accessed by Ruby's garbage collector.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>raabrowser.rb</tt>) that allows you to browse the Ruby Application Archive via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>babelfish.rb</tt>) that allows you to use the Babelfish translator web service via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new page to the documentation to briefly describe each of the example programs (including screenshots).</p></li><li style="list-style-type: disc"><p>The CVS repository for FXRuby is now hosted at the SourceForge site. For those who would like access to the latest version of FXRuby (in-between official releases) this is now an option. For more details, see the instructions at the <a href="http://sourceforge.net/cvs/?group_id=20243" target="_top">SourceForge project CVS page</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-1.0.3.tar.gz" target="_top">fox-1.0.3</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1915"></a>Changes Since Version 0.99.188</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Fixed a big bug related to the <tt>FXApp#addSignal</tt> and <tt>FXApp#removeSignal</tt> functions, which should accept a string signal name as an argument. The list of recognized signal names was not constructed properly and as a result most any call to these methods with a string signal name would fail. This has been corrected, and the methods now throw exceptions like those thrown from <tt>Process::kill</tt> when the signal name is unrecognized or the argument type is wrong.</p></li><li style="list-style-type: disc"><p>The <tt>imageviewer.rb</tt> example program now supports loading TARGA, ICO and TIFF image files.</p></li><li style="list-style-type: disc"><p>The configuration process on Windows should now detect the presence of <tt>libtiff.lib</tt> properly.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.189.tar.gz" target="_top">fox-0.99.189</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1949"></a>Changes Since Version 0.99.181</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Removed the <tt>-fno-strict-prototype</tt> and <tt>-fpermissive</tt> flags from the <tt>CFLAGS</tt> for Linux builds, since these two flags are no longer supported for more recent versions of gcc. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Some of the source files included in the previous release had DOS-style line endings and this caused gcc to choke while compiling them; this has been fixed. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Updated the FXRuby test cases (such as they are) to use Nathaniel Talbott's <a href="http://lapidary.sourceforge.net" target="_top">Lapidary</a> unit testing framework.</p></li><li style="list-style-type: disc"><p>Migrated yet more code from the C++ extension to pure Ruby versions. Most of the code for the <tt>FXPoint</tt>, <tt>FXRectangle</tt> and <tt>FXSize</tt> classes is now implemented in Ruby.</p></li><li style="list-style-type: disc"><p>Fixed a bug in the <tt>browser.rb</tt> example. I had meant for the methods and constants lists to be sorted but had failed to use the in-place <tt>sort!</tt> method. Thanks to Robert Gustavsson for reporting this.</p></li><li style="list-style-type: disc"><p>Completed a lot of the initial work for integrating the FXScintilla widget into FXRuby. This is not usable yet, but I'm working with Rich Kilmer and others to try to make this happen.</p></li><li style="list-style-type: disc"><p>Updated the build instructions to provide more information about building the Visual C++ version of FXRuby (i.e. for use with the Visual C++ build of Ruby) on Windows. Thanks to a final tip from Martin Stannard we now have a working build for this compiler.</p></li><li style="list-style-type: disc"><p>For fun, added a new example program that downloads today's Dilbert cartoon from the <a href="http://www.dilbertzone.com" target="_top">DilbertZone</a> web site and displays it in an <tt>FXImageViewer</tt> widget. Requires the <tt>html-parser</tt> module, listed in the <a href="http://www.ruby-lang.org/en/raa.html" target="_top">Ruby Application Archive</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.188.tar.gz" target="_top">fox-0.99.188</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2022"></a>Changes Since Version 0.99.180</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Added <tt>slices</tt>, <tt>stacks</tt> and <tt>loops</tt> accessors for the <tt>FXGLCone</tt> and <tt>FXGLCylinder</tt> classes, to provide finer control over the rendering fidelity for these shapes (this was already done for <tt>FXGLSphere</tt> in the previous release).</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.181.tar.gz" target="_top">fox-0.99.181</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2053"></a>Changes Since Version 0.99.174</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Moved the class definitions for <tt>FXGLPoint</tt>, <tt>FXGLLine</tt>, <tt>FXGLCube</tt>, <tt>FXGLCylinder</tt>, <tt>FXGLSphere</tt> and <tt>FXGLCone</tt> to a new library module <tt>fox/glshapes.rb</tt>. The interfaces are the same as the C++ versions of these classes, this is just a "pure Ruby" implementation of the classes instead of wrappers around the C++ classes. See <tt>examples/glviewer.rb</tt> for an example of their use.</p></li><li style="list-style-type: disc"><p>Fixed a bug related to object ownership for GL objects added to a <tt>FXGLGroup</tt>.</p></li><li style="list-style-type: disc"><p>Added support for overriding the virtual <tt>layout</tt> method in classes derived from <tt>FXWindow</tt>. This will allow developers to, for example, develop new kinds of layout managers.</p></li><li style="list-style-type: disc"><p>Replaced the previous WISE-based installer for the Windows version with an Inno Setup-based installer and reorganized things to better reflect the organization used in the standard Ruby installer.</p></li><li style="list-style-type: disc"><p>Updated the setup and build script to the latest version of Minero Aoki's scripts (version 3.0.2). The main change for FXRuby end-users is that the name of the build script is now <tt>install.rb</tt> instead of <tt>setup.rb</tt>.</p></li><li style="list-style-type: disc"><p>Added the <tt>colors.rb</tt> library file, for predefined color names in the <tt>FXColor</tt> namespace. The use of this module allows you to use symbolic names like <tt>FXColor::Red</tt> instead of an RGB constant like FXRGB(255, 0, 0). Many thanks to Jeff Heard for this suggestion and the contributed file.</p></li><li style="list-style-type: disc"><p>The <tt>FXRegion</tt> was accidentally being renamed to <tt>FX_Region</tt> (a little behind-the-scenes magic I'm doing in FXRuby) and as a result you couldn't use this class. Thanks to Steven Grady for catching this bug.</p></li><li style="list-style-type: disc"><p>The <tt>FXFileStream</tt> class now supports a Ruby-style <tt>open</tt> singleton method that provides transactional control for closing the file stream when it's done. See the <tt>image.rb</tt> and <tt>imageviewer.rb</tt> examples for how this works.</p></li><li style="list-style-type: disc"><p>After some discussions at RubyConf and follow-up discussions on the comp.lang.ruby newsgroup, the procedure for attaching events handlers to FXRuby widgets has been greatly simplified. Most of the example programs have been updated to reflect these changes, and a new documentation section has been added to describe how it works. For some of the background, please see <a href="http://www.rubygarden.org/ruby?FXRubyComments" target="_top">this page</a> on the RubyGarden Wiki.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>each_row</tt> and <tt>each_column</tt> iterators for the <tt>FXTable</tt> class. These iterators yield an array of references to <tt>FXTableItem</tt> instances, one per row or column, respectively. Note that the <tt>each</tt> method is just an alias for <tt>each_row</tt>.</p></li><li style="list-style-type: disc"><p>Removed the interfaces for <tt>fxrandom</tt>, <tt>fxmalloc</tt>, <tt>fxcalloc</tt>, <tt>fxresize</tt>, <tt>fxmemdump</tt>, and <tt>fxfree</tt>. These utility functions are not relevant for FXRuby.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>fxhsv_to_rgb</tt> and <tt>fxrgb_to_hsv</tt> so that they return three-element arrays of the converted color components.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>FXWindow#acquireSelection</tt>, <tt>FXWindow#acquireClipboard</tt> and <tt>FXWindow#beginDrag</tt> to take an array of drag types.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>fxsaveBMP</tt>, <tt>fxsaveGIF</tt>, <tt>fxsaveICO</tt>, <tt>fxsavePCX</tt>, <tt>fxsavePNG</tt>, <tt>fxsaveTIF</tt> and <tt>fxsaveXPM</tt> so that they expect a Ruby string (containing the image pixel data) as their second argument.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.180.tar.gz" target="_top">fox-0.99.180</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2246"></a>Changes Since Version 0.99.173</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Moved all of the method name aliases out of the C interface code and into a new library file (<tt>fox/aliases.rb</tt>). This file is loaded automatically so you don't need to change your code. Similarly, moved all of the iterator methods out of the C code and into a library file (<tt>fox/iterators.rb</tt>). The main purpose of these changes is to reduce the size of the C++ code (especially <tt>core_wrap.cpp</tt>) where possible. Obviously, compared to recompiling the C++ source code, it's also much more efficient to quickly patch the Ruby files and re-run when there are problems.</p></li><li style="list-style-type: disc"><p>A few errors made it into the <tt>undolist.rb</tt> library module and the <tt>textedit.rb</tt> example last time; I think these have been fixed.</p></li><li style="list-style-type: disc"><p>I meant to add support for the new <tt>FXPCXIcon</tt> and <tt>FXPCXImage</tt> classes with the last release, but somehow I overlooked those. They are now supported, along with the other new classes introduced by FOX version 0.99.174: <tt>FXTIFIcon</tt>, <tt>FXTIFImage</tt> and <tt>FXProgressDialog</tt>.</p></li><li style="list-style-type: disc"><p>Fixed a bug in the GC-related code for "marking" C++ objects. I had not accounted for the possibility that the pointer passed to my mark functions could be a <tt>NULL</tt> pointer, and as a result the code would seg fault during garbage collection, under some circumstances. Many thanks to Ralf Canis for catching this bug.</p></li><li style="list-style-type: disc"><p>Updated the source code and <tt>extconf.rb</tt> files so that FXRuby configures and builds correctly for the "mswin32" builds. Thanks very much to Lorien Dunn for prompting me to get this stuff up-to-date!</p></li><li style="list-style-type: disc"><p>Fixed things so that the <tt>FXApp#addInput</tt> and <tt>FXApp#removeInput</tt> instance methods work properly for generating input messages. The first argument to both of these methods should be an <tt>IO</tt> object of some kind (specifically, an object that implements a <tt>fileno</tt> method). For more information about how this works, see the "Timers, Chores, Signals and Input Messages" section of the FOX documentation. Also see the new <tt>inputs.rb</tt> program in the <tt>examples</tt> directory for an example of how this works. Thanks to Ralf Canis for reminding me that I left this broken!</p></li><li style="list-style-type: disc"><p>Completed the basic code changes required for <tt>FXObject#handle</tt> to properly convert its message data into something that the C++ objects recognize (see the first item in the FXRuby To-Do List for more information). A lot of message types and identifiers are now handled correctly, especially those that are common to all <tt>FXWindow</tt>s. Most of the more widget-specific messages are not handled yet, and this is going to take awhile to complete; it's just a tedious process.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.cfdrc.com/pub/FOX/fox-0.99.174.tar.gz" target="_top">fox-0.99.174</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2337"></a>Changes Since Version 0.99.172</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Changed the build and installation process to use Minero Aoki's <tt>setup.rb</tt> tools. Looking ahead I can see that FXRuby will probably consist of a core C++ extension module and a collection of Ruby library scripts, and so now was the right time to make that transition.</p><p>If you have previously installed FXRuby (and written programs with the same) there are a few changes that may affect you. First, <tt>setup.rb</tt> will install the shared library (<tt>fox.so</tt>) in your <tt>site_ruby</tt> directory instead of the "core" libraries directory, where it was previously installed. So you should be sure to remove the old version of <tt>fox.so</tt> before installing and using this one.</p><p>The other change to be aware of is that there is now a <tt>fox</tt> directory containing FXRuby library scripts, and the <tt>responder.rb</tt> module is the first entry for this directory. You can import this file into your Ruby scripts with the line:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">require 'fox/responder'</pre></td></tr></table><p>and it's no longer necessary to drag copies of that file around.</p></li><li style="list-style-type: disc"><p>Aliased the <tt>getText</tt> instance method to <tt>to_s</tt> for a number of classes. This change should make things a little more convenient when inspecting the contents of widgets whose primary purpose is text entry or display. Thanks to Barry Shultz for this suggestion.</p></li><li style="list-style-type: disc"><p>Added the <tt>FXWindow#removeChild</tt> method for removing child widgets from a container window. This method doesn't exist for the C++ <tt>FXWindow</tt> class because it isn't needed; in C++ programs you simply delete the C++ object and it automatically gets removed from its parent. Note that after you call <tt>FXWindow#removeChild</tt> any outstanding references to the recently deceased child widget are invalid and should be set to <tt>nil</tt> or otherwise disposed of. Thanks to Ted Meng for noticing this omission.</p></li><li style="list-style-type: disc"><p>Modified some of the OpenGL method calls in <tt>gltest.rb</tt> for compatibility with Ruby/OpenGL 0.32. You should now be able to use Ruby/OpenGL with FXRuby unmodified.</p></li><li style="list-style-type: disc"><p>Added <tt>each()</tt> instance methods for <tt>FXComboBox</tt>, <tt>FXGLGroup</tt>, <tt>FXHeader</tt>, <tt>FXIconList</tt>, <tt>FXList</tt>, <tt>FXListBox</tt>, <tt>FXTreeItem</tt>, <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt> in support of iterating over their sub-items. Also mixed the <tt>Enumerable</tt> module into all of these classes.</p></li><li style="list-style-type: disc"><p>Corrected the implementations of <tt>getData()</tt> and <tt>setData()</tt> for a variety of classes. You should now be able to attach arbitrary (application-defined) data to any FOX object that supports these APIs.</p></li><li style="list-style-type: disc"><p>As a debugging tool, you can now optionally catch exceptions raised in message handlers. To turn on this feature, call the <tt>setIgnoreExceptions(true)</tt> module method. When this is enabled, any exceptions raised in message handler functions will cause a standard stack trace to be dumped to the standard output, but then your application will, for better or worse, proceed normally. Thanks to Ted Meng for this suggestion.</p></li><li style="list-style-type: disc"><p>Extended the interfaces for <tt>FXApp#addSignal</tt> and <tt>FXApp#removeSignal</tt> to accept either a string or integer as their first argument. If it's a string (e.g. "SIGINT" or just "INT") the code will determine the corresponding signal number for you (similar to the <tt>Process.kill</tt> module method). For examples of how to use this, see the <tt>datatarget.rb</tt> or <tt>imageviewer.rb</tt> example programs.</p></li><li style="list-style-type: disc"><p>Corrected the implementations of <tt>fxparsefontdesc()</tt> and <tt>fxunparsefontdesc()</tt> module methods.</p></li><li style="list-style-type: disc"><p>Added a pure Ruby implementation of the standard <tt>FXCommand</tt> and <tt>FXUndoList</tt> classes from the standard FOX library.</p></li><li style="list-style-type: disc"><p>Added the <tt>splitter.rb</tt> example, to demonstrate the <tt>FXSplitter</tt> class and its options.</p></li><li style="list-style-type: disc"><p>Completed the initial version of <tt>browser.rb</tt>, which is just a simple tool to inspect the methods and constants exposed by different FOX classes. Thanks to Albert Wagner for pointing out some bugs in this one and providing me with the motivation to complete it. I don't know how useful it is, but it seems to be a required utility for every GUI toolkit for Ruby ;) If you'd like to suggest further improvements, please feel free!</p></li><li style="list-style-type: disc"><p>Corrected the constructors for <tt>FXXPMIcon</tt> and <tt>FXXPMImage</tt> so that they accept a list of strings as their second argument. The list of strings should be an XPM format image file. You can also pass <tt>nil</tt> to construct an initially-empty icon or image.</p></li><li style="list-style-type: disc"><p>Corrected the message data sent by <tt>FXList</tt> to its message target for the <tt>SEL_SELECTED</tt>, <tt>SEL_DESELECTED</tt>, <tt>SEL_INSERTED</tt>, <tt>SEL_DELETED</tt>, and <tt>SEL_REPLACED</tt> messages. For each of these messages, the data should be an integer indicating the affected list item's index.</p></li><li style="list-style-type: disc"><p>Added typemaps to convert Ruby message data back into C++ void pointers when calling the base class versions of message handlers. Please see the to-do list for a brief discussion of the issues that this fix addressed, and what remains to be done.</p></li><li style="list-style-type: disc"><p>Fixed a subtle GC bug related to object ownership. I'll use the <tt>FXList</tt> and <tt>FXListItem</tt> classes to describe the problem, but it's also relevant for several other FOX classes.</p><p>There are two ways to add a new list item to an <tt>FXList</tt> instance. One of those ways involves creating a new <tt>FXListItem</tt> instance explicitly (i.e. using <tt>FXListItem.new</tt>) and then passing it into an <tt>FXList</tt> instance method like <tt>FXList#appendItem</tt>. Before you add the item to the list, the item is "self-owned"; in other words, if Ruby's garbage collector decides to kill off that <tt>FXListItem</tt> instance, it is appropriate to also destroy the underlying C++ object. After the list item has been added to an <tt>FXList</tt>, however, the <tt>FXList</tt> owns that list item and is responsible for destroying it.</p><p>This bug became an issue when you added <tt>FXListItem</tt> instances to a list, because the code didn't properly recognize the fact that "ownership" of the list item had been transferred from the <tt>FXListItem</tt> instance to the <tt>FXList</tt>. More to the point, Ruby's garbage collector assumed that it was still OK to destroy the <tt>FXListItem</tt> instances that it knew about, and so objects could get deleted twice. This would usually result in a core dump.</p><p>Many thanks to Albert Wagner for submitting an example program that demonstrated this problem.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.173.tar.gz" target="_top">fox-0.99.173</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2601"></a>Changes Since Version 0.99.167</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Completed the coding for "safe" coexistence with Ruby's garbage collector; it should no longer be necessary to call <tt>GC.disable</tt> at the top of your FXRuby programs. Although all of the example programs now work correctly without disabling the garbage collector, this doesn't mean that there aren't still some bugs lurking. If your FXRuby program(s) crash mysteriously, try adding <tt>GC.disable</tt> to the top to see if it fixes things. If this does make a difference, <span class="emphasis"><i>please</i></span> send me the program (or another that reproduces the problem) so I can track down what's going wrong.</p></li><li style="list-style-type: disc"><p>Added aliases for all classes' accessor functions so that the related properties can be accessed more directly; for example, <tt>FXLabel#getText</tt> is aliased to <tt>FXLabel#text</tt> and <tt>FXLabel#setText</tt> is aliased to <tt>FXLabel#text=</tt>. Although the different forms are functionally equivalent, the new form is often easier to read. For example, consider this snippet of code that modifies a label's text:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">aLabel.setText(aLabel.getText() + " (modified)")</pre></td></tr></table><p>and this version of the same, now using the propery accessor functions:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">aLabel.text += " (modified)"</pre></td></tr></table><p>None of the standard FOX class APIs have been removed, so you shouldn't need to modify any already-working code.</p></li><li style="list-style-type: disc"><p>Corrected the message data sent from the <tt>FXText</tt> widget to its message target for the <tt>SEL_SELECTED</tt>, <tt>SEL_DESELECTED</tt>, <tt>SEL_INSERTED</tt>, <tt>SEL_DELETED</tt> and <tt>SEL_REPLACED</tt> message types. For the first four messages, the associated message data sent to the target will be an array of two integers indicating the starting position in the text buffer and text length for the affected text. For the <tt>SEL_REPLACED</tt> message type, the message data will be an array of three integers, indicating the starting position in the text buffer, the length of the old (replaced) text, and the length of the new text.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.172.tar.gz" target="_top">fox-0.99.172</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2670"></a>Changes Since Version 0.99.166-1</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Corrected the interfaces for <tt>FXInputDialog.getString</tt>, <tt>FXInputDialog.getReal</tt> and <tt>FXInputDialog.getInteger</tt> to either return the requested type or <tt>nil</tt> if the user cancels the dialog.</p></li><li style="list-style-type: disc"><p>Added code at the top of all the examples to disable Ruby's garbage collector, until the issues with GC are resolved.</p></li><li style="list-style-type: disc"><p>Corrected implementations for the overloaded versions of <tt>FXWindow#update</tt>. This method can be invoke with no arguments (in which case it updates the entire window) or with four arguments indicating the x, y, w and h of the client area to be updated.</p></li><li style="list-style-type: disc"><p>Modified how the return values from Ruby message handler functions are interpreted, to make things a little more convenient for programmers. If the result is a numeric type (<tt>Fixnum</tt>, <tt>Bignum</tt> or <tt>Float</tt>) we try to cast it to a long integer but also trap the value to either zero or one. If it's a boolean result we map <tt>false</tt> and <tt>true</tt> to zero and one, respectively. For any other return type (<tt>nil</tt>, strings, etc.) we just assume they meant to return 1. Thanks to Ted Meng for this suggestion.</p></li><li style="list-style-type: disc"><p>Modified the interfaces for <tt>FXFileDialog#getPatternList</tt>, <tt>FXFileSelector#getPatternList</tt>, <tt>FXFileDialog#setPatternList</tt> and <tt>FXFileSelector#setPatternList</tt> to take (or return) an array of strings (one array item per pattern) of the form "C/C++ Files (*.cpp)". This is sort-of a compromise between the currently available overloaded C++ versions of these functions, both of which look pretty awkward in Ruby. For an example of how this works now, see the <tt>imageviewer.rb</tt> example program.</p></li><li style="list-style-type: disc"><p>Added the FOX key cap definitions (i.e. the symbols from <tt>fxkeys.h</tt>) into FXRuby. Thanks to Benedikt Grundmann for pointing out this omission.</p></li><li style="list-style-type: disc"><p>Added initial support for multithreaded FXRuby applications. The current implementation does what is also done in Ruby/GTK; it turns over some idle processing time to the Ruby thread scheduler to let other threads do their thing. As I learn more about Ruby's threading implementation I may try something different, but this seems to work OK for now. As a simple example, I modified the <tt>groupbox.rb</tt> example program so that the clock label that appears in the lower right-hand corner is continuously updated (by a separate thread) instead of just displaying static text.</p><p>If you suspect that FXRuby's threads support is interfering with your application's performance, you may want to try tweaking the amount of time that the main application thread "sleeps" during idle processing; do this by setting the <tt>FXApp</tt> object's <i><tt>sleepTime</tt></i> attribute. The default value for <i><tt>FXApp#sleepTime</tt></i> is 100 milliseconds. You can also disable the threads support completely by calling <tt>FXApp#disableThreads</tt> (and subsequently re-enable it with <tt>FXApp#enableThreads</tt>.</p></li><li style="list-style-type: disc"><p>Started adding <a href="http://homepage1.nifty.com/markey/ruby/rubyunit/index_e.html" target="_top">RubyUnit</a>-style test cases to the <tt>tests</tt> subdirectory. There's not much there yet but we've got to start somewhere!</p></li><li style="list-style-type: disc"><p>Converted most of the documentation over to <a href="http://www.docbook.org" target="_top">DocBook</a> format and reorganized the web page accordingly.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.cfdrc.com/pub/FOX/fox-0.99.167.tar.gz" target="_top">fox-0.99.167</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2787"></a>Changes Since Version 0.99.166</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Corrected a problem with the binary distribution (i.e. the <tt>fox.so</tt> file) for Windows, which made it unusable on most Windows installations. This problem was related to an incompatibility between the versions of Cygwin that I was using to compile FOX and FXRuby, and the version used to compile the standard Ruby 1.6.2 distribution for Windows. Many, many thanks to Pete, Bene and Robert for helping me to test and resolve this issue!</p></li><li style="list-style-type: disc"><p>Added support for FOX data targets, as demonstrated by the new <tt>datatarget.rb</tt> example in the <tt>examples</tt> directory. A data target is a special kind of FOX object that can be designated as the message target of any widget that has an associated "value", and then the value of the data target and that widget become automatically linked to each other. For example, you can create a data target with a string value and then make it the message target for an <tt>FXTextField</tt> widget. From then on, changes made to the text field will be automatically reflected in the data target's value and vice versa. (For those familiar with Tk, this is the same principal as its <tt>TkVariable</tt> class.)</p></li><li style="list-style-type: disc"><p>Made the <tt>extconf.rb</tt> script a lot more intelligent and robust. Now, if you don't explicitly specify the <tt>--with-fox-include</tt> and <tt>--with-fox-lib</tt> arguments it will look in the standard FOX installation locations (<tt>/usr/local/include/fox</tt> and <tt>/usr/local/lib</tt>, respectively). If it doesn't find the appropriate files there either, it will stop with an error message. The new <tt>extconf.rb</tt> script also compares the FOX version number from the FOX's <tt>fxver.h</tt> file to be sure it's consistent with the version of FXRuby that you're building.</p></li><li style="list-style-type: disc"><p>Revived the missing <tt>FXApp#addTimeout</tt> and <tt>FXApp#removeTimeout</tt> methods, which accidentally got clobbered in the 0.99.166 release.</p></li><li style="list-style-type: disc"><p>Corrected the implementation of <tt>FXWindow#getCursorPosition</tt>. Previously it thought it needed three inputs when in fact it doesn't; this method takes no arguments and returns a 3-element array containing the current <tt>x</tt> and <tt>y</tt> positions (in local window coordinates) and a flag indicating the mouse button states.</p></li><li style="list-style-type: disc"><p>Corrected the implementation of <tt>FXDebugTarget.messageTypeName</tt> to return an array of strings instead of an array of symbols (IDs).</p></li><li style="list-style-type: disc"><p>Added missing wrappers for the <tt>FXJPEGImage</tt> and <tt>FXJPEGIcon</tt> classes; somehow these got overlooked previously.</p></li><li style="list-style-type: disc"><p>Corrected several bugs in the example programs <tt>groupbox.rb</tt>, <tt>imageviewer.rb</tt> and <tt>table.rb</tt>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2884"></a>Changes Since Version 0.99.161</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>In previous releases of FXRuby, not all of the constructor arguments for some class constructors were exposed; this was due to an obscure problem with how SWIG generated code for functions with more than nine default arguments. This problem has been corrected and all class constructor argument lists should now be consistent with the C++ library versions of the same.</p></li><li style="list-style-type: disc"><p>Corrected several bugs related to the conversions between FOX's FXbool (boolean) type and Ruby's <tt>true</tt> and <tt>false</tt> values. These bugs manifested themselves in many weird and wonderful ways; the most obvious one was the way that opening up pulldown menus (for example, in the <tt>foursplit.rb</tt> example) would cause the entire program to lock up. If you were seeing some unusual behavior like this in the previous release my best advice is to see if you can still reproduce the problem (and if so, contact me).</p></li><li style="list-style-type: disc"><p>Added several new example programs (<tt>dialog.rb</tt>, <tt>dirlist.rb</tt>, <tt>groupbox.rb</tt>, <tt>header.rb</tt>, <tt>imageviewer.rb</tt>, <tt>tabbook.rb</tt> and <tt>table.rb</tt>) in the <tt>examples</tt> subdirectory.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>FXFile</tt> class' singleton methods. Most or all of this functionality is already available in Ruby's standard library but <tt>FXFile</tt> is included for completeness.</p></li><li style="list-style-type: disc"><p>Generally speaking, I corrected the (Ruby-side) implementations of a lot of functions and I believe that all of the important ones are exposed correctly. See the <tt>ChangeLog</tt> file for specific cases.</p></li><li style="list-style-type: disc"><p>Started work on tutorial documentation (in the <tt>doc</tt> subdirectory) but this isn't very useful yet. Plans are to beef this up considerably next time.</p></li><li style="list-style-type: disc"><p>Updated the API for compatibility with FOX version 0.99.166.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2957"></a>Changes Since Version 0.99.147</h2></div></div><div class="itemizedlist"><ul type="disc"><li><p>The code has been reworked a good deal in an effort to reduce the compile time (although more can and will be done). One part of this change was to break the extension code up into multiple files instead of a single file. The more significant change was to move a lot of inlined template function instantiations out of the FXRuby header file (<tt>FXRuby.h</tt>) and into a separate source code file that only needs to be compiled once. To give you an idea of the compile times after this change, I can now compile FXRuby under Cygwin-on-Win2000 in about 6 minutes (on a Pentium III-700MHz) or under Linux in about 30 minutes (on a Pentium "classic" 133MHz).</p></li><li><p>For classes <tt>FXHeader</tt>, <tt>FXIconList</tt> and <tt>FXList</tt>, added support for the overloaded member functions <tt>appendItem</tt>, <tt>insertItem</tt>, <tt>prependItem</tt>, and <tt>replaceItem</tt>. For classes <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt>, added support for the overloaded member functions <tt>addItemAfter</tt>, <tt>addItemBefore</tt>, <tt>addItemFirst</tt>, and <tt>addItemLast</tt>.</p></li><li><p>Added the <tt>header.rb</tt> example program to demonstrate the <tt>FXHeader</tt> widget.</p></li><li><p>Updated the API for compatibility with FOX version 0.99.161.</p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="todo.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="book.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. To-do list </td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html> \ No newline at end of file --- 1,3 ---- <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 10. Change History</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="todo.html" title="Chapter 9. To-do list"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. Change History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="todo.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="changes"></a>Chapter 10. Change History</h2></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1798"></a>Changes Since Version 0.99.189</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Upgraded to the latest version of Minero Aoki's <tt>install.rb</tt> script.</p></li><li style="list-style-type: disc"><p>Switched from using DocBook/SGML to DocBook/XML for the FXRuby documentation. This is mainly a maintenance issue; it's just much less complicated to "publish" documents using DocBook/XML as compared to DocBook/SGML. You should see few (if any) differences in the resulting HTML pages, but let me know if you notice anything squirrely.</p></li><li style="list-style-type: disc"><p>Improved support for customized sorting of list items for the <tt>FXComboBox</tt>, <tt>FXIconList</tt>, <tt>FXList</tt>, <tt>FXListBox</tt>, <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt> classes. The model is different from that used in the C++ FOX library, where you set a global sorting function for each list instance. For FXRuby, you instead just override the list item's <tt><=></tt> method to compare one list item to another. Thanks to Martin Stannard for prompting me to resolve this problem.</p></li><li style="list-style-type: disc"><p>Added instructions about how to modify your <tt>/etc/ld.so.conf</tt> file (on Linux) to include the <tt>libFOX.so</tt> installation directory. Thanks to Giuseppe Cacopardo for providing this information.</p></li><li style="list-style-type: disc"><p>Updated the test cases (again) for use with Nathaniel Talbott's <a href="http://testunit.talbott.ws" target="_top">TestUnit</a>, which is apparently the successor to Lapidary.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>FXCURCursor</tt>, <tt>FXRGBIcon</tt>, <tt>FXRGBImage</tt> classes.</p></li><li style="list-style-type: disc"><p>Fixed a longstanding bug related to the ownership (for garbage collection purposes) of <tt>FXGLGroup</tt> and <tt>FXGLShape</tt> instances. This is the bug that was causing the <tt>glviewer.rb</tt> example program to crash on exit.</p></li><li style="list-style-type: disc"><p>Fixed a different (but also longstanding) bug related to FXRuby's hanging on to "stale" Ruby object references after those Ruby objects had already been garbage-collected. This bug manifested itself in a number of ways, but the most common symptom would be for an object (like an <tt>FXEvent</tt> instance) to suddenly lose its mind and believe it was some other object. Oh, and your program would usually crash at that point. I think this problem is now fixed.</p></li><li style="list-style-type: disc"><p>Added some safeguards for "destructive" functions like <tt>FXList#clearItems</tt>, which can destroy the C++ objects backing-up Ruby objects in FXRuby, so that any outstanding Ruby references to those destroyed C++ objects are left in a safe state when accessed by Ruby's garbage collector.</p></li><li style="list-style-type: disc"><p>Performed a major overhaul on the <tt>shutter.rb</tt> example program, which still demonstrates the <tt>FXShutter</tt> widget but otherwise doesn't resemble its previous incarnation at all.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>raabrowser.rb</tt>) that allows you to browse the Ruby Application Archive via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>babelfish.rb</tt>) that allows you to use the Babelfish translator web service via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new page to the documentation to briefly describe each of the example programs (including screenshots).</p></li><li style="list-style-type: disc"><p>The CVS repository for FXRuby is now hosted at the SourceForge site. For those who would like access to the latest version of FXRuby (in-between official releases) this is now an option. For more details, see the instructions at the <a href="http://sourceforge.net/cvs/?group_id=20243" target="_top">SourceForge project CVS page</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-1.0.3.tar.gz" target="_top">fox-1.0.3</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1928"></a>Changes Since Version 0.99.188</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Fixed a big bug related to the <tt>FXApp#addSignal</tt> and <tt>FXApp#removeSignal</tt> functions, which should accept a string signal name as an argument. The list of recognized signal names was not constructed properly and as a result most any call to these methods with a string signal name would fail. This has been corrected, and the methods now throw exceptions like those thrown from <tt>Process::kill</tt> when the signal name is unrecognized or the argument type is wrong.</p></li><li style="list-style-type: disc"><p>The <tt>imageviewer.rb</tt> example program now supports loading TARGA, ICO and TIFF image files.</p></li><li style="list-style-type: disc"><p>The configuration process on Windows should now detect the presence of <tt>libtiff.lib</tt> properly.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.189.tar.gz" target="_top">fox-0.99.189</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1962"></a>Changes Since Version 0.99.181</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Removed the <tt>-fno-strict-prototype</tt> and <tt>-fpermissive</tt> flags from the <tt>CFLAGS</tt> for Linux builds, since these two flags are no longer supported for more recent versions of gcc. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Some of the source files included in the previous release had DOS-style line endings and this caused gcc to choke while compiling them; this has been fixed. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Updated the FXRuby test cases (such as they are) to use Nathaniel Talbott's <a href="http://lapidary.sourceforge.net" target="_top">Lapidary</a> unit testing framework.</p></li><li style="list-style-type: disc"><p>Migrated yet more code from the C++ extension to pure Ruby versions. Most of the code for the <tt>FXPoint</tt>, <tt>FXRectangle</tt> and <tt>FXSize</tt> classes is now implemented in Ruby.</p></li><li style="list-style-type: disc"><p>Fixed a bug in the <tt>browser.rb</tt> example. I had meant for the methods and constants lists to be sorted but had failed to use the in-place <tt>sort!</tt> method. Thanks to Robert Gustavsson for reporting this.</p></li><li style="list-style-type: disc"><p>Completed a lot of the initial work for integrating the FXScintilla widget into FXRuby. This is not usable yet, but I'm working with Rich Kilmer and others to try to make this happen.</p></li><li style="list-style-type: disc"><p>Updated the build instructions to provide more information about building the Visual C++ version of FXRuby (i.e. for use with the Visual C++ build of Ruby) on Windows. Thanks to a final tip from Martin Stannard we now have a working build for this compiler.</p></li><li style="list-style-type: disc"><p>For fun, added a new example program that downloads today's Dilbert cartoon from the <a href="http://www.dilbertzone.com" target="_top">DilbertZone</a> web site and displays it in an <tt>FXImageViewer</tt> widget. Requires the <tt>html-parser</tt> module, listed in the <a href="http://www.ruby-lang.org/en/raa.html" target="_top">Ruby Application Archive</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.188.tar.gz" target="_top">fox-0.99.188</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2035"></a>Changes Since Version 0.99.180</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Added <tt>slices</tt>, <tt>stacks</tt> and <tt>loops</tt> accessors for the <tt>FXGLCone</tt> and <tt>FXGLCylinder</tt> classes, to provide finer control over the rendering fidelity for these shapes (this was already done for <tt>FXGLSphere</tt> in the previous release).</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.181.tar.gz" target="_top">fox-0.99.181</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2066"></a>Changes Since Version 0.99.174</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Moved the class definitions for <tt>FXGLPoint</tt>, <tt>FXGLLine</tt>, <tt>FXGLCube</tt>, <tt>FXGLCylinder</tt>, <tt>FXGLSphere</tt> and <tt>FXGLCone</tt> to a new library module <tt>fox/glshapes.rb</tt>. The interfaces are the same as the C++ versions of these classes, this is just a "pure Ruby" implementation of the classes instead of wrappers around the C++ classes. See <tt>examples/glviewer.rb</tt> for an example of their use.</p></li><li style="list-style-type: disc"><p>Fixed a bug related to object ownership for GL objects added to a <tt>FXGLGroup</tt>.</p></li><li style="list-style-type: disc"><p>Added support for overriding the virtual <tt>layout</tt> method in classes derived from <tt>FXWindow</tt>. This will allow developers to, for example, develop new kinds of layout managers.</p></li><li style="list-style-type: disc"><p>Replaced the ... [truncated message content] |