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

FX::FXDockBar Class Reference

A dock bar widget can be docked inside a dock site widget, or floated around freely. More...

#include <FXDockBar.h>

Inheritance diagram for FX::FXDockBar:
FX::FXPacker FX::FXComposite FX::FXWindow FX::FXDrawable FX::FXId FX::FXObject FX::FXToolBar FX::FXMenuBar

List of all members.

Public Types

enum  {
  ID_DOCK_FLOAT = FXPacker::ID_LAST, ID_DOCK_TOP, ID_DOCK_BOTTOM, ID_DOCK_LEFT,
  ID_DOCK_RIGHT, ID_DOCK_FLIP, ID_TOOLBARGRIP, ID_TIMER,
  ID_LAST
}
enum  {
  ALLOW_NOWHERE = 0, ALLOW_TOP = 1, ALLOW_BOTTOM = 2, ALLOW_LEFT = 4,
  ALLOW_RIGHT = 8, ALLOW_HORIZONTAL = ALLOW_TOP|ALLOW_BOTTOM, ALLOW_VERTICAL = ALLOW_LEFT|ALLOW_RIGHT, ALLOW_EVERYWHERE = ALLOW_HORIZONTAL|ALLOW_VERTICAL
}

Public Member Functions

long onCmdUndock (FXObject *, FXSelector, void *)
long onUpdUndock (FXObject *, FXSelector, void *)
long onCmdDockTop (FXObject *, FXSelector, void *)
long onUpdDockTop (FXObject *, FXSelector, void *)
long onCmdDockBottom (FXObject *, FXSelector, void *)
long onUpdDockBottom (FXObject *, FXSelector, void *)
long onCmdDockLeft (FXObject *, FXSelector, void *)
long onUpdDockLeft (FXObject *, FXSelector, void *)
long onCmdDockRight (FXObject *, FXSelector, void *)
long onUpdDockRight (FXObject *, FXSelector, void *)
long onUpdDockFlip (FXObject *, FXSelector, void *)
long onBeginDragGrip (FXObject *, FXSelector, void *)
long onEndDragGrip (FXObject *, FXSelector, void *)
long onDraggedGrip (FXObject *, FXSelector, void *)
long onPopupMenu (FXObject *, FXSelector, void *)
long onDockTimer (FXObject *, FXSelector, void *)
 FXDockBar (FXComposite *p, FXComposite *q, FXuint opts=LAYOUT_TOP|LAYOUT_LEFT|LAYOUT_FILL_X, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=3, FXint pr=3, FXint pt=2, FXint pb=2, FXint hs=DEFAULT_SPACING, FXint vs=DEFAULT_SPACING)
 Construct a floatable dock bar, with a default parent p and an alternate parent q.
 FXDockBar (FXComposite *p, FXuint opts, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=2, FXint pr=3, FXint pt=3, FXint pb=2, FXint hs=DEFAULT_SPACING, FXint vs=DEFAULT_SPACING)
 Construct a non-floatable dock bar.
FXbool isDocked () const
 Return true if docked.
FXbool insideDock (FXDockSite *docksite, FXint barx, FXint bary)
 Check if the dock bar would dock or undock if at locaton barx, bary.
void setDryDock (FXComposite *dry)
 Set parent when docked.
void setWetDock (FXComposite *wet)
 Set parent when floating.
FXCompositegetDryDock () const
 Return parent when docked.
FXCompositegetWetDock () const
 Return parent when floating.
FXDockSitefindDockAtSide (FXuint side=LAYOUT_SIDE_TOP)
 Search for dock against given side of main window.
FXDockSitefindDockNear (FXint rootx, FXint rooty)
 Search for dock close to coordinates rootx, rooty.
virtual void dock (FXDockSite *docksite, FXWindow *other=NULL, FXbool notify=false)
 Dock the bar against the given side, after some other widget.
virtual void dock (FXDockSite *docksite, FXint localx, FXint localy, FXbool notify)
 Dock the bar against the given side, near the given position relative to the toolbar dock's origin.
virtual void undock (FXint rootx, FXint rooty, FXbool notify=false)
 Undock or float the bar.
void allowedSides (FXuchar allow)
 Change set of sides (a combination of ALLOW_TOP, ALLOW_LEFT, etc.), where docking is allowed.
FXuchar allowedSides () const
 Return set of sides where docking is allowed.
virtual void save (FXStream &store) const
 Save toolbar to a stream.
virtual void load (FXStream &store)
 Load toolbar from a stream.
virtual ~FXDockBar ()
 Destroy.

Protected Types

enum  {
  DRAG_NONE = 0, DRAG_TOP = 1, DRAG_BOTTOM = 2, DRAG_LEFT = 4,
  DRAG_RIGHT = 8, DRAG_TOPLEFT = (DRAG_TOP|DRAG_LEFT), DRAG_TOPRIGHT = (DRAG_TOP|DRAG_RIGHT), DRAG_BOTTOMLEFT = (DRAG_BOTTOM|DRAG_LEFT),
  DRAG_BOTTOMRIGHT = (DRAG_BOTTOM|DRAG_RIGHT)
}

Protected Member Functions

FXbool isAllowable (FXuint hints) const

Protected Attributes

FXCompositedrydock
FXCompositewetdock
FXint gripx
FXint gripy
FXuchar allowed

Detailed Description

A dock bar widget can be docked inside a dock site widget, or floated around freely.

Users can move, undock, and dock the dock bar widget by means of a handle such as a tool bar grip. When docking, the dock bar sends a SEL_DOCKED message to its target; when undocking, it sends a SEL_FLOATED message. In either case the dock site involved is passed in the void* pointer argument of the message.


Member Enumeration Documentation

anonymous enum
Enumerator:
ID_DOCK_TOP 

Undock the dock bar.

ID_DOCK_BOTTOM 

Dock on the top.

ID_DOCK_LEFT 

Dock on the bottom.

ID_DOCK_RIGHT 

Dock on the left.

ID_DOCK_FLIP 

Dock on the right.

ID_TOOLBARGRIP 

Flip orientation.

ID_TIMER 

Tool bar grip.

anonymous enum
Enumerator:
ALLOW_TOP 

Don't allow docking anywhere.

ALLOW_BOTTOM 

Docking at the top only.

ALLOW_LEFT 

Docking at the bottom only.

ALLOW_RIGHT 

Docking at the left only.

ALLOW_HORIZONTAL 

Docking at the right only.

ALLOW_VERTICAL 

Docking at the top and bottom.

ALLOW_EVERYWHERE 

Docking at the left and right.


Constructor & Destructor Documentation

FX::FXDockBar::FXDockBar ( FXComposite p,
FXComposite q,
FXuint  opts = LAYOUT_TOP|LAYOUT_LEFT|LAYOUT_FILL_X,
FXint  x = 0,
FXint  y = 0,
FXint  w = 0,
FXint  h = 0,
FXint  pl = 3,
FXint  pr = 3,
FXint  pt = 2,
FXint  pb = 2,
FXint  hs = DEFAULT_SPACING,
FXint  vs = DEFAULT_SPACING 
)

Construct a floatable dock bar, with a default parent p and an alternate parent q.

To allow docking and dragging the default parent p must be of type FXDockSite, and the alternate parent q must be of type FXToolBarShell. Normally, the dock bar is docked under a window p of type FXDockSite. When floated, the toolbar can be docked under window q, which is usually an kind of FXToolBarShell window.

FX::FXDockBar::FXDockBar ( FXComposite p,
FXuint  opts,
FXint  x = 0,
FXint  y = 0,
FXint  w = 0,
FXint  h = 0,
FXint  pl = 2,
FXint  pr = 3,
FXint  pt = 3,
FXint  pb = 2,
FXint  hs = DEFAULT_SPACING,
FXint  vs = DEFAULT_SPACING 
)

Construct a non-floatable dock bar.

The dock bar can not be undocked.


Member Function Documentation

void FX::FXDockBar::allowedSides ( FXuchar  allow) [inline]

Change set of sides (a combination of ALLOW_TOP, ALLOW_LEFT, etc.), where docking is allowed.

The default is to allow docking on all sides.

virtual void FX::FXDockBar::dock ( FXDockSite docksite,
FXWindow other = NULL,
FXbool  notify = false 
) [virtual]

Dock the bar against the given side, after some other widget.

However, if after is -1, it will be docked as the innermost bar just before the work-area, while if after is 0, if will be docked as the outermost bar.

Reimplemented in FX::FXToolBar.

void FX::FXDockBar::setDryDock ( FXComposite dry)

Set parent when docked.

If it was docked, reparent under the new docking window.

void FX::FXDockBar::setWetDock ( FXComposite wet)

Set parent when floating.

If it was undocked, then reparent under the new floating window.

virtual void FX::FXDockBar::undock ( FXint  rootx,
FXint  rooty,
FXbool  notify = false 
) [virtual]

Undock or float the bar.

The initial position of the wet dock is a few pixels below and to the right of the original docked position.


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

Copyright © 1997-2011 Jeroen van der Zijp