Class Fox::FX4Splitter
In: rdoc-sources/FX4Splitter.rb
Parent: FXComposite

The four-way splitter is a layout manager which manages four children like four panes in a window. You can use a four-way splitter for example in a CAD program where you may want to maintain three orthographic views, and one oblique view of a model. The four-way splitter allows interactive repartitioning of the panes by means of moving the central splitter bars. When the four-way splitter is itself resized, each child is proportionally resized, maintaining the same split-percentage.

Events

The following messages are sent by FX4Splitter to its target:

SEL_LEFTBUTTONPRESS:sent when the left mouse button goes down; the message data is an FXEvent instance.
SEL_LEFTBUTTONRELEASE:sent when the left mouse button goes up; the message data is an FXEvent instance.
SEL_COMMAND:sent at the end of a resize operation, to signal that the resize is complete
SEL_CHANGED:sent continuously while a resize operation is occurring

Splitter options

FOURSPLITTER_TRACKING:Track continuously during split
FOURSPLITTER_NORMAL:Normal mode (no continuous tracking)

Expansion options

ExpandNone:None expanded
ExpandTopLeft:Expand top left child
ExpandTopRight:Expand top right child
ExpandBottomLeft:Expand bottom left child
ExpandBottomRight:Expand bottom right child
ExpandTop:Expand top children
ExpandBottom:Expand bottom children
ExpandLeft:Expand left children
ExpandRight:Expand right children
ExpandAll:Expand all children

Message identifiers

ID_EXPAND_NONE:None expanded
ID_EXPAND_TOP:Expand top left and top right panes
ID_EXPAND_BOTTOM:Expand bottom left and bottom right panes
ID_EXPAND_LEFT:Expand leftmost panes
ID_EXPAND_RIGHT:Expand rightmost panes
ID_EXPAND_TOPLEFT:Expand top left pane
ID_EXPAND_TOPRIGHT:Expand top right pane
ID_EXPAND_BOTTOMLEFT:Expand bottom left pane
ID_EXPAND_BOTTOMRIGHT:Expand bottom right pane
ID_EXPAND_ALL:Expand all panes

Methods

getHSplit   getVSplit   new   new   setHSplit   setVSplit  

Attributes

barSize  [RW]  Splitter bar width, in pixels [Integer]
bottomLeft  [R]  Bottom left child window, if any [FXWindow]
bottomRight  [R]  Bottom right child window, if any [FXWindow]
expanded  [RW]  Currently expanded child (some combination of the expansion flags, or zero if no panes are expanded)
hSplit  [RW]  Horizontal split fraction [Integer]
splitterStyle  [RW]  Current splitter style, either FOURSPLITTER_TRACKING or FOURSPLITTER_NORMAL
topLeft  [R]  Top left child window, if any [FXWindow]
topRight  [R]  Top right child window, if any [FXWindow]
vSplit  [RW]  Vertical split fraction [Integer]

Public Class methods

Return an initialized FX4Splitter instance, initially shown as four unexpanded panes

Parameters:

p:the parent widget for this splitter [FXComposite]
opts:the options [Integer]
x:initial x-position [Integer]
y:initial y-position [Integer]
width:initial width [Integer]
height:initial height [Integer]

Return an initialized FX4Splitter instance, initially shown as four unexpanded panes; notifies tgt about size changes.

Parameters:

p:the parent widget for this splitter [FXComposite]
target:message target [FXObject]
selector:message identifier [Integer]
opts:the options [Integer]
x:initial x-position [Integer]
y:initial y-position [Integer]
width:initial width [Integer]
height:initial height [Integer]

Public Instance methods

Return the horizontal split fraction, an integer between 0 and 10000 inclusive. See FX4Splitter#setHSplit for more information.

Return the vertical split fraction, an integer between 0 and 10000 inclusive. See FX4Splitter#setVSplit for more information.

Change horizontal split fraction. The split fraction s is an integer value between 0 and 10000 (inclusive), indicating how much space to allocate to the leftmost panes. For example, to split the panes at 35 percent, use:

  fourSplitter.setHSplit(3500)

or just:

  fourSplitter.hSplit = 3500

Change vertical split fraction. The split fraction s is an integer value between 0 and 10000 (inclusive), indicating how much space to allocate to the topmost panes. For example, to split the panes at 35 percent, use:

  fourSplitter.setVSplit(3500)

or just:

  fourSplitter.vSplit = 3500

[Validate]