Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members

FX::FX4Splitter Class Reference

The four-way splitter is a layout manager which manages four children like four panes in a window. More...

#include <FX4Splitter.h>

Inheritance diagram for FX::FX4Splitter:
FX::FXComposite FX::FXWindow FX::FXDrawable FX::FXId FX::FXObject

List of all members.

Public Types

enum  {
  ExpandNone = 0, ExpandTopLeft = 1, ExpandTopRight = 2, ExpandBottomLeft = 4,
  ExpandBottomRight = 8, ExpandTop = ExpandTopLeft|ExpandTopRight, ExpandBottom = ExpandBottomLeft|ExpandBottomRight, ExpandLeft = ExpandTopLeft|ExpandBottomLeft,
  ExpandRight = ExpandTopRight|ExpandBottomRight, ExpandCriss = ExpandTopRight|ExpandBottomLeft, ExpandCross = ExpandTopLeft|ExpandBottomRight, ExpandAll = ExpandLeft|ExpandRight
}
enum  {
  ID_EXPAND_NONE = FXComposite::ID_LAST+ExpandNone, ID_EXPAND_TOP = ID_EXPAND_NONE+ExpandTop, ID_EXPAND_BOTTOM = ID_EXPAND_NONE+ExpandBottom, ID_EXPAND_LEFT = ID_EXPAND_NONE+ExpandLeft,
  ID_EXPAND_RIGHT = ID_EXPAND_NONE+ExpandRight, ID_EXPAND_TOPLEFT = ID_EXPAND_NONE+ExpandTopLeft, ID_EXPAND_TOPRIGHT = ID_EXPAND_NONE+ExpandTopRight, ID_EXPAND_BOTTOMLEFT = ID_EXPAND_NONE+ExpandBottomLeft,
  ID_EXPAND_BOTTOMRIGHT = ID_EXPAND_NONE+ExpandBottomRight, ID_EXPAND_ALL = ID_EXPAND_NONE+ExpandAll, ID_LAST
}

Public Member Functions

long onLeftBtnPress (FXObject *, FXSelector, void *)
long onLeftBtnRelease (FXObject *, FXSelector, void *)
long onMotion (FXObject *, FXSelector, void *)
long onFocusUp (FXObject *, FXSelector, void *)
long onFocusDown (FXObject *, FXSelector, void *)
long onFocusLeft (FXObject *, FXSelector, void *)
long onFocusRight (FXObject *, FXSelector, void *)
long onCmdExpand (FXObject *, FXSelector, void *)
long onUpdExpand (FXObject *, FXSelector, void *)
 FX4Splitter (FXComposite *p, FXuint opts=FOURSPLITTER_NORMAL, FXint x=0, FXint y=0, FXint w=0, FXint h=0)
 Create 4-way splitter, initially shown as four unexpanded panes.
 FX4Splitter (FXComposite *p, FXObject *tgt, FXSelector sel, FXuint opts=FOURSPLITTER_NORMAL, FXint x=0, FXint y=0, FXint w=0, FXint h=0)
 Create 4-way splitter, initially shown as four unexpanded panes; notifies target about size changes.
FXWindowgetTopLeft () const
 Get top left child, if any.
FXWindowgetTopRight () const
 Get top right child, if any.
FXWindowgetBottomLeft () const
 Get bottom left child, if any.
FXWindowgetBottomRight () const
 Get bottom right child, if any.
FXint getHSplit () const
 Get horizontal split fraction.
FXint getVSplit () const
 Get vertical split fraction.
void setHSplit (FXint s)
 Change horizontal split fraction.
void setVSplit (FXint s)
 Change vertical split fraction.
virtual void layout ()
 Perform layout.
virtual FXint getDefaultWidth ()
 Get default width.
virtual FXint getDefaultHeight ()
 Get default height.
FXuint getSplitterStyle () const
 Return current splitter style.
void setSplitterStyle (FXuint style)
 Change splitter style.
void setBarSize (FXint bs)
 Change splitter bar width.
FXint getBarSize () const
 Get splitter bar width.
void setExpanded (FXuint set=FX4Splitter::ExpandAll)
 Change set of expanded children.
FXuint getExpanded () const
 Get set of expanded children.
virtual void save (FXStream &store) const
 Save to stream.
virtual void load (FXStream &store)
 Load from stream.

Protected Member Functions

FXuchar getMode (FXint x, FXint y)
void moveSplit (FXint x, FXint y)
void drawSplit (FXint x, FXint y, FXuint m)
void adjustLayout ()

Detailed Description

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. The four-way splitter widget sends a SEL_CHANGED to its target during the resizing of the panes; at the end of the resize interaction, it sends a SEL_COMMAND to signify that the resize operation is complete. It is possible to expand or collapse one or more of the sub-panes of the four-way splitter; by default, all four panes are expanded. When a pane is collapsed, the remaining panes will fill the space left. If the FOURSPLITTER_HORIZONTAL flag is in effect (default), the remaining panels expand horizontally to fill the space; conversely, if FOURSPLITTER_VERTICAL is passed then the remaining panels will expand vertically to accomodate the extra space. The flag FOURSPLITTER_TRACKING causes the contents to be redrawn interactively as the split-division is adjusted; otherwise the contents will be redrawn only after the resizing is finished.


Member Enumeration Documentation

anonymous enum
Enumerator:
ExpandTopLeft 

None expanded.

ExpandTopRight 

Expand top left child.

ExpandBottomLeft 

Expand top right child.

ExpandBottomRight 

Expand bottom left child.

ExpandTop 

Expand bottom right child.

ExpandBottom 

Expand top children.

ExpandLeft 

Expand bottom children.

ExpandRight 

Expand left children.

ExpandCriss 

Expand right children.

ExpandCross 

Expand diagonally opposing children.

ExpandAll 

Expand diagonally opposing children.


The documentation for this class was generated from the following file:

Copyright © 1997-2011 Jeroen van der Zijp