libyui
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions

YLayoutBox Class Reference

Inheritance diagram for YLayoutBox:
YWidget

List of all members.

Public Types

typedef vector< int > sizeVector
typedef vector< int > posVector

Public Member Functions

virtual ~YLayoutBox ()
virtual const char * widgetClass () const
YUIDimension primary () const
YUIDimension secondary () const
bool debugLayout () const
void setDebugLayout (bool deb=true)
virtual int preferredSize (YUIDimension dim)
virtual int preferredWidth ()
virtual int preferredHeight ()
virtual void setSize (int newWidth, int newHeight)
virtual bool stretchable (YUIDimension dimension) const
virtual void moveChild (YWidget *child, int newX, int newY)=0

Static Public Member Functions

static bool isLayoutStretch (YWidget *child, YUIDimension dimension)

Protected Member Functions

 YLayoutBox (YWidget *parent, YUIDimension dim)
int childrenTotalWeight (YUIDimension dimension)
int childrenMaxPreferredSize (YUIDimension dimension)
int totalNonWeightedChildrenPreferredSize (YUIDimension dimension)
int countNonWeightedChildren (YUIDimension dimension)
int countStretchableChildren (YUIDimension dimension)
int countLayoutStretchChildren (YUIDimension dimension)
YWidgetfindDominatingChild ()
void calcPrimaryGeometry (int newSize, sizeVector &childSize, posVector &childPos)
void calcSecondaryGeometry (int newSize, sizeVector &childSize, posVector &childPos)
void doResize (sizeVector &width, sizeVector &height, posVector &x_pos, posVector &y_pos)

Constructor & Destructor Documentation

YLayoutBox::YLayoutBox ( YWidget parent,
YUIDimension  dim 
) [protected]

Constructor.

Creates a VBox for dim == YD_VERT or a HBox for YD_HORIZ.

YLayoutBox::~YLayoutBox ( ) [virtual]

Destructor.


Member Function Documentation

void YLayoutBox::calcPrimaryGeometry ( int  newSize,
sizeVector &  childSize,
posVector &  childPos 
) [protected]

Calculate the sizes and positions of all children in the primary dimension and store them in "childSize" and "childPos".

void YLayoutBox::calcSecondaryGeometry ( int  newSize,
sizeVector &  childSize,
posVector &  childPos 
) [protected]

Calculate the sizes and positions of all children in the secondary dimension and store them in "childSize" and "childPos".

int YLayoutBox::childrenMaxPreferredSize ( YUIDimension  dimension) [protected]

Return the maximum preferred size of all children in the specified dimension.

int YLayoutBox::childrenTotalWeight ( YUIDimension  dimension) [protected]

Add up all the children's weights.

int YLayoutBox::countLayoutStretchChildren ( YUIDimension  dimension) [protected]

Count the number of "rubber bands", i.e. the number of stretchable layout spacings ( e.g. {H|V}Weight, {H|V}Spacing ). Only those without a weight are counted.

int YLayoutBox::countNonWeightedChildren ( YUIDimension  dimension) [protected]

Count the number of non-weighted children.

int YLayoutBox::countStretchableChildren ( YUIDimension  dimension) [protected]

Count the number of stretchable ( non-weighted ) children. Note: Weighted children are _always_ considered stretchable.

bool YLayoutBox::debugLayout ( ) const

Returns 'true' if layout debugging (verbose logging during layout) is on.

void YLayoutBox::doResize ( sizeVector &  width,
sizeVector &  height,
posVector &  x_pos,
posVector &  y_pos 
) [protected]

Actually perform resizing and moving the child widgets to the appropriate position.

The vectors passed are the sizes previously calculated by calcPrimaryGeometry() and calcSecondaryGeometry().

YWidget * YLayoutBox::findDominatingChild ( ) [protected]

Determine the number of the "dominating child" - the child widget that determines the overall size with respect to its weight.

Return 0 if there is no dominating child, i.e. none of the children has a weight specified.

bool YLayoutBox::isLayoutStretch ( YWidget child,
YUIDimension  dimension 
) [static]

Check if this is a layout stretch widget in the specfied dimension, i.e. an empty widget that is stretchable.

virtual void YLayoutBox::moveChild ( YWidget child,
int  newX,
int  newY 
) [pure virtual]

Move a child to a new position.

Derived classes are required to implement this.

int YLayoutBox::preferredHeight ( ) [virtual]

Preferred height of the widget.

Reimplemented from YWidget.

Implements YWidget.

int YLayoutBox::preferredSize ( YUIDimension  dim) [virtual]

Preferred size of the widget in the specified dimension.

Reimplemented from YWidget.

Reimplemented from YWidget.

int YLayoutBox::preferredWidth ( ) [virtual]

Preferred width of the widget.

Reimplemented from YWidget.

Implements YWidget.

YUIDimension YLayoutBox::primary ( ) const

Return the primary dimension, i.e., the dimension this LayoutBox lays out its children in: YD_VERT for a VBox, YD_HORIZ for a HBox.

YUIDimension YLayoutBox::secondary ( ) const

Return the secondary dimension.

void YLayoutBox::setDebugLayout ( bool  deb = true)

Enable or disable layout debugging.

void YLayoutBox::setSize ( int  newWidth,
int  newHeight 
) [virtual]

Sets the size of the layout box. This is where the layout policy is implemented.

Derived classes can reimplement this, but this base class method should be called in the reimplemented function.

Reimplemented from YWidget.

Implements YWidget.

bool YLayoutBox::stretchable ( YUIDimension  dimension) const [virtual]

Returns the stretchability of the layout box: The layout box is stretchable if one of the children is stretchable in this dimension or if one of the child widgets has a layout weight in this dimension.

Reimplemented from YWidget.

Reimplemented from YWidget.

int YLayoutBox::totalNonWeightedChildrenPreferredSize ( YUIDimension  dimension) [protected]

Add up all the non-weighted children's preferred sizes in the specified dimension.

const char * YLayoutBox::widgetClass ( ) const [virtual]

Returns a descriptive name of this widget class for logging, debugging etc.

Reimplemented from YWidget.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations Friends