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

FX::FXDockSite Class Reference

The dock site widget is a widget where dock bars can be docked. More...

#include <FXDockSite.h>

Inheritance diagram for FX::FXDockSite:

FX::FXPacker FX::FXComposite FX::FXWindow FX::FXDrawable FX::FXId FX::FXObject List of all members.

Public Member Functions

 FXDockSite (FXComposite *p, FXuint opts=0, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=0, FXint pr=0, FXint pt=0, FXint pb=0, FXint hs=0, FXint vs=0)
virtual FXint getDefaultWidth ()
virtual FXint getDefaultHeight ()
virtual FXint getWidthForHeight (FXint h)
virtual FXint getHeightForWidth (FXint w)
virtual void layout ()
virtual void moveToolBar (FXDockBar *bar, FXint barx, FXint bary)
virtual void dockToolBar (FXDockBar *bar, FXWindow *before)
virtual void dockToolBar (FXDockBar *bar, FXint barx, FXint bary)
virtual void undockToolBar (FXDockBar *bar)

Detailed Description

The dock site widget is a widget where dock bars can be docked.

Dock site widgets are typically embedded inside the main window, placed against those sides where docking of toolbars is to be allowed. Dock bars placed inside a dock site are laid out in horizontal or vertical bands called galleys. A toolbar with the LAYOUT_DOCK_SAME hint is preferentially placed on the same galley as its previous sibling. A dock bar with the LAYOUT_DOCK_NEXT is always placed on the next galley. Each galley will have at least one dock bar shown in it. Several dock bars may be placed side-by-side inside one galley, unless there is insufficient room. If there is insufficient room to place another dock bar, that dock bar will be moved to the next galley, even though its LAYOUT_DOCK_NEXT option is not set. This implies that when the main window is resized and more room becomes available, it will jump back to its preferred galley. Within a galley, dock bars will be placed from left to right, at the given x and y coordinates, with the constraints that the dock bar will stay within the galley, and do not overlap each other. It is possible to use LAYOUT_FILL_X and/or LAYOUT_FILL_Y to stretch a toolbar to the available space on its galley. The galleys are oriented horizontally if the dock site is placed inside a top level window using LAYOUT_SIDE_TOP or LAYOUT_SIDE_BOTTOM, and vertically oriented if placed with LAYOUT_SIDE_LEFT or LAYOUT_SIDE_RIGHT.


Constructor & Destructor Documentation

FX::FXDockSite::FXDockSite FXComposite p,
FXuint  opts = 0,
FXint  x = 0,
FXint  y = 0,
FXint  w = 0,
FXint  h = 0,
FXint  pl = 0,
FXint  pr = 0,
FXint  pt = 0,
FXint  pb = 0,
FXint  hs = 0,
FXint  vs = 0
 

Construct a toolbar dock layout manager.

Passing LAYOUT_SIDE_TOP or LAYOUT_SIDE_BOTTOM causes the toolbar dock to be oriented horizontally. Passing LAYOUT_SIDE_LEFT or LAYOUT_SIDE_RIGHT causes it to be oriented vertically.


Member Function Documentation

virtual FXint FX::FXDockSite::getDefaultWidth  )  [virtual]
 

Return default width.

This is the width the toolbar dock would have if no toolbars need to be moved to other galleys than they would be logically placed.

Reimplemented from FX::FXPacker.

virtual FXint FX::FXDockSite::getDefaultHeight  )  [virtual]
 

Return default height.

This is the height the toolbar dock would have if no toolbars need to be moved to other galleys than they would be logically placed.

Reimplemented from FX::FXPacker.

virtual FXint FX::FXDockSite::getWidthForHeight FXint  h  )  [virtual]
 

For a vertically oriented dock site, this computes the total width of all the galleys based on any "wrapping" needed to fit the toolbars on a galley.

Reimplemented from FX::FXWindow.

virtual FXint FX::FXDockSite::getHeightForWidth FXint  w  )  [virtual]
 

For a horizontally oriented dock site, this computes the total height of all the galleys based on any "wrapping" needed to fit the toolbars on a galley.

Reimplemented from FX::FXWindow.

virtual void FX::FXDockSite::layout  )  [virtual]
 

Perform layout.

Reimplemented from FX::FXPacker.

virtual void FX::FXDockSite::moveToolBar FXDockBar bar,
FXint  barx,
FXint  bary
[virtual]
 

Move tool bar, changing its options to suite the new position.

Used by the toolbar dragging to rearrange the toolbars inside the toolbar dock.

virtual void FX::FXDockSite::dockToolBar FXDockBar bar,
FXWindow before
[virtual]
 

The dock site is notified that the given bar has been added logically before the given window, and is to placed on a new galley all by itself.

The default implementation adjusts the layout options of the bars accordingly.

virtual void FX::FXDockSite::dockToolBar FXDockBar bar,
FXint  barx,
FXint  bary
[virtual]
 

The dock site is informed that the given bar has been docked at the given coordinates.

The default implementation determines where to insert the newly docked bar and adjusts the layout options of the bars accordingly.

virtual void FX::FXDockSite::undockToolBar FXDockBar bar  )  [virtual]
 

The dock site is informed that the given bar has been removed.

In the default implementation, the dock site fixes the layout options of the remaining bars so they stay in the same place if possible.

Copyright © 1997-2005 Jeroen van der Zijp