Class Fox::FX4Splitter

In: | 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)

# Message identifiers

`ID_EXPAND_ALL`: | Expand all four panes
`ID_EXPAND_TOPLEFT`: | Expand the top left pane
`ID_EXPAND_TOPRIGHT`: | Expand the top right pane
`ID_EXPAND_BOTTOMLEFT`: | Expand the bottom left pane
`ID_EXPAND_BOTTOMRIGHT`: | Expand the bottom right pane

Methods

new new

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 (0, 1, 2 or 3) or -1 if not expanded [Integer]
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

new(parent, opts=FOURSPLITTER_NORMAL, x=0, y=0, width=0, height=0) {|theSplitter | ...}

Create 4-way splitter, initially shown as four unexpanded panes

new(parent, target, selector, opts=FOURSPLITTER_NORMAL, x=0, y=0, width=0, height=0) {|theSplitter | ...}

Create 4-way splitter, initially shown as four unexpanded panes; notifies target about size changes