Class Fox::FXSpring
In: rdoc-sources/FXSpring.rb
Parent: FXPacker

The spring widgets, when properly embedded side by side in a horizontal frame or vertical frame widget, behave like a set of connected springs of various lengths.

The third and fourth arguments to the FXSpring.new method (relw and relh) determine the "length" of the spring. You can also change these settings after the widget is constructed using the FXSpring#relativeWidth and FXSpring#relativeHeight accessor methods. The actual length that you specify is not really important; the only thing that counts is the relative length of one spring widget to that of another, although the length does determine the default size. The special value zero may be given for relw (or relh) to cause the spring to calculate its default width (height) normally, just like the FXPacker base class does.

In a typical scenario, either the relative width or height is set to zero, an the flag LAYOUT_FILL_X or LAYOUT_FILL_Y is passed. When placed inside a horizontal frame, the LAYOUT_FILL_X together with the relative widths of the springs will cause a fixed width-ratio between the springs.

You also can mix normal controls and springs together in a horizontal or vertical frames to provide arbitrary stretchable spacing between widgets; in this case, the springs do not need to have any children. Since the spring widget is derived from the FXPacker layout manager, it provides the same layout behavior as FXPacker.

Methods

new  

Attributes

relativeHeight  [RW]  Relative height [Integer]
relativeWidth  [RW]  Relative width [Integer]

Public Class methods

Return an initialized FXSpring instance.

Parameters:

p:the parent widget for this spring [FXComposite]
relw:the relative width [Integer]
relh:the relative height [Integer]
opts:the options [Integer]
x:initial x-position [Integer]
y:initial y-position [Integer]
width:initial width [Integer]
height:initial height [Integer]
padLeft:left-side padding (in pixels) [Integer]
padRight:right-side padding (in pixels) [Integer]
padTop:top-side padding (in pixels) [Integer]
padBottom:bottom-side padding (in pixels) [Integer]
hSpacing:horizontal spacing (in pixels) [Integer]
vSpacing:vertical spacing (in pixels) [Integer]

[Validate]