VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Public Attributes | Protected Slots | Protected Member Functions | Protected Attributes
makVrf::DtToolButtonWrapperWidget Class Reference

This class will try and space out items such that they will wrap to multiple rows if buttons (or text) of actions are wider than the width of the widget. More...

Inheritance diagram for makVrf::DtToolButtonWrapperWidget:
Inheritance graph
[legend]

Classes

struct  Layout
 

Public Member Functions

 DtToolButtonWrapperWidget (QWidget *parent, const Qt::WindowFlags &flags=0)
 
virtual ~DtToolButtonWrapperWidget ()
 
template<typename T >
T * createPrototype ()
 
template<typename T >
T * createButton ()
 
template<typename T >
T * addAction (const QString &action, bool resetLayout=true)
 Adds a new button with text. Up to caller to determine what to do with the returned tool button. More...
 
template<typename T >
T * addAction (const QIcon &icon, bool resetLayout=true)
 Adds a new button with an icon. More...
 
template<typename T >
T * addAction (QAction *act, bool resetLayout=true)
 Adds a new action into the dialog for sizing. More...
 
virtual int rightMarginForLine (int) const
 If set, right margin for layout line. More...
 
virtual void setRightMarginForLine (int margin, int line=-1)
 Sets the right margin for the given line. More...
 
virtual void removeRightMarginForLine (int line=-1)
 Removes the margin for the line. More...
 
virtual void removeButton (QAbstractButton *, bool resetLayout=true)
 Removes the button specified. Removing the button will also delete it. More...
 
virtual void layoutButtons (bool force=false)
 Reworks given the the new sizes. More...
 
virtual void setButtons (const std::vector< QAbstractButton * > &buttons, bool deleteCurrentButtons=false)
 Sets the buttons of this wrapper widget. More...
 
virtual void setLeftToRightLayout (bool)
 If this is false (default is true) the layout will start on the right and go to the left. More...
 
bool leftToRightLayout () const
 
bool needsLayout () const
 
virtual void setSizeToFit (bool)
 If false (default is true) will lay out buttons in the exact order they are set in instead of trying to lay them out in the most efficient use of available space. More...
 
bool sizeToFit () const
 
int buttonsShown () const
 
const std::vector
< QAbstractButton * > & 
buttons () const
 
std::vector< QAbstractButton * > & buttons ()
 
virtual bool hasButton (QAbstractButton *) const
 
virtual void setIconSize (const QSize &)
 Sets the size of the icons (default is 20x20) More...
 
const QSize & iconSize () const
 
virtual void setIconSpacing (int)
 Sets the spacing between icons. Default is 2. More...
 
int iconSpacing () const
 
virtual void clear ()
 Clears all items. More...
 
virtual void setUseFixedWidth (bool)
 Fix the width of the container to be the maximum width of any row (default is false) More...
 
bool useFixedWidth () const
 
virtual void fixWidth ()
 
virtual void setFixedButtonWidth (int)
 Regardless of size, the fixed button width. -1 will size to text or icon. More...
 
int fixedButtonWidth () const
 
virtual void setFixedButtonHeight (int)
 Fixed button height. More...
 
int fixedButtonHeight () const
 
virtual void setShowMaximum (int)
 Regardless of the number of buttons that could be shown, do not show more than this many. -1 means show all (default) More...
 
int showMaximum () const
 
virtual void setMaximumLines (int)
 Regardless of the number of buttons the maximum number of lines. -1 means show all (default) More...
 
int maximumLines () const
 
bool reachedMaximum () const
 
int numRows () const
 
const std::vector< Layout > & layouts () const
 
std::vector< Layout > & layouts ()
 
virtual void setBlockResizeLayout (bool)
 If set to true do not trigger a layout if resized. Default is false. More...
 
bool blockResizeLayout () const
 
virtual void setSignalResizeLayout (bool)
 If set to true signal that the layout wants to be resized rather than laying it out. Default is false. More...
 
bool signalResizeLayout () const
 

Public Attributes

boost::signals2::signal< void()> signal_resizeLayout
 
boost::signals2::signal< void(bool)> signal_maximumReached
 
boost::signals2::signal< void()> signal_buttonsLayedOut
 
boost::signals2::signal< void(Layout
&, QAbstractButton *)> 
signal_buttonLayedOut
 

Protected Slots

virtual void layoutFromTimer ()
 

Protected Member Functions

virtual void resizeEvent (QResizeEvent *)
 
virtual void showEvent (QShowEvent *)
 
virtual void addToLayout (QAbstractButton *, bool forceLayout=false)
 

Protected Attributes

std::vector< LayoutmyLayouts
 
std::vector< QAbstractButton * > myButtons
 
std::map< int, intmyRightMarginForLine
 
QSize myIconSize
 
int myIconSpacing
 
int myMaximumLines
 
bool myNeedsLayout
 
bool myReachedMaximum
 
int myFixedButtonWidth
 
int myFixedButtonHeight
 
bool mySizeToFit
 
bool myLeftToRightLayout
 
int myShowMaximum
 
int myButtonsShown
 
bool myInResize
 
bool mySetTimer
 
bool myBlockResizeLayout
 
bool mySignalResizeLayout
 
bool myUseFixedWidth
 

Detailed Description

This class will try and space out items such that they will wrap to multiple rows if buttons (or text) of actions are wider than the width of the widget.

Each row will be broken up into chunks of icon width wide items + spacing. If there is text it will take up that many columns on a line. If it is widget than a whole line it will be on it's own line, cut off at the maximum length

Constructor & Destructor Documentation

makVrf::DtToolButtonWrapperWidget::DtToolButtonWrapperWidget ( QWidget *  parent,
const Qt::WindowFlags &  flags = 0 
)
virtual makVrf::DtToolButtonWrapperWidget::~DtToolButtonWrapperWidget ( )
virtual

Member Function Documentation

template<typename T >
T* makVrf::DtToolButtonWrapperWidget::createPrototype ( )
inline
template<typename T >
T* makVrf::DtToolButtonWrapperWidget::createButton ( )
inline
template<typename T >
T* makVrf::DtToolButtonWrapperWidget::addAction ( const QString &  action,
bool  resetLayout = true 
)
inline

Adds a new button with text. Up to caller to determine what to do with the returned tool button.

template<typename T >
T* makVrf::DtToolButtonWrapperWidget::addAction ( const QIcon &  icon,
bool  resetLayout = true 
)
inline

Adds a new button with an icon.

template<typename T >
T* makVrf::DtToolButtonWrapperWidget::addAction ( QAction act,
bool  resetLayout = true 
)
inline

Adds a new action into the dialog for sizing.

virtual int makVrf::DtToolButtonWrapperWidget::rightMarginForLine ( int  ) const
virtual

If set, right margin for layout line.

virtual void makVrf::DtToolButtonWrapperWidget::setRightMarginForLine ( int  margin,
int  line = -1 
)
virtual

Sets the right margin for the given line.

-1 means all lines. You can set -1 for all lines and then a line number for a specific line

virtual void makVrf::DtToolButtonWrapperWidget::removeRightMarginForLine ( int  line = -1)
virtual

Removes the margin for the line.

virtual void makVrf::DtToolButtonWrapperWidget::removeButton ( QAbstractButton *  ,
bool  resetLayout = true 
)
virtual

Removes the button specified. Removing the button will also delete it.

virtual void makVrf::DtToolButtonWrapperWidget::layoutButtons ( bool  force = false)
virtual

Reworks given the the new sizes.

virtual void makVrf::DtToolButtonWrapperWidget::setButtons ( const std::vector< QAbstractButton * > &  buttons,
bool  deleteCurrentButtons = false 
)
virtual

Sets the buttons of this wrapper widget.

This widget will take ownership of buttons. Note that setting these buttons will not delete the old buttons. If you wish to delete the old buttons have the deleteCurrentButtons as true

virtual void makVrf::DtToolButtonWrapperWidget::setLeftToRightLayout ( bool  )
virtual

If this is false (default is true) the layout will start on the right and go to the left.

bool makVrf::DtToolButtonWrapperWidget::leftToRightLayout ( ) const
inline
bool makVrf::DtToolButtonWrapperWidget::needsLayout ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::setSizeToFit ( bool  )
virtual

If false (default is true) will lay out buttons in the exact order they are set in instead of trying to lay them out in the most efficient use of available space.

bool makVrf::DtToolButtonWrapperWidget::sizeToFit ( ) const
inline
int makVrf::DtToolButtonWrapperWidget::buttonsShown ( ) const
inline
const std::vector<QAbstractButton*>& makVrf::DtToolButtonWrapperWidget::buttons ( ) const
inline
std::vector<QAbstractButton*>& makVrf::DtToolButtonWrapperWidget::buttons ( )
inline
virtual bool makVrf::DtToolButtonWrapperWidget::hasButton ( QAbstractButton *  ) const
virtual
virtual void makVrf::DtToolButtonWrapperWidget::setIconSize ( const QSize &  )
virtual

Sets the size of the icons (default is 20x20)

const QSize& makVrf::DtToolButtonWrapperWidget::iconSize ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::setIconSpacing ( int  )
virtual

Sets the spacing between icons. Default is 2.

int makVrf::DtToolButtonWrapperWidget::iconSpacing ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::clear ( )
virtual

Clears all items.

virtual void makVrf::DtToolButtonWrapperWidget::setUseFixedWidth ( bool  )
virtual

Fix the width of the container to be the maximum width of any row (default is false)

bool makVrf::DtToolButtonWrapperWidget::useFixedWidth ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::fixWidth ( )
virtual
virtual void makVrf::DtToolButtonWrapperWidget::setFixedButtonWidth ( int  )
virtual

Regardless of size, the fixed button width. -1 will size to text or icon.

int makVrf::DtToolButtonWrapperWidget::fixedButtonWidth ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::setFixedButtonHeight ( int  )
virtual

Fixed button height.

If -1 will use default. This is only valid for buttons that are used as text. For icons use icon size

int makVrf::DtToolButtonWrapperWidget::fixedButtonHeight ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::setShowMaximum ( int  )
virtual

Regardless of the number of buttons that could be shown, do not show more than this many. -1 means show all (default)

int makVrf::DtToolButtonWrapperWidget::showMaximum ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::setMaximumLines ( int  )
virtual

Regardless of the number of buttons the maximum number of lines. -1 means show all (default)

int makVrf::DtToolButtonWrapperWidget::maximumLines ( ) const
inline
bool makVrf::DtToolButtonWrapperWidget::reachedMaximum ( ) const
inline
int makVrf::DtToolButtonWrapperWidget::numRows ( ) const
inline
const std::vector<Layout>& makVrf::DtToolButtonWrapperWidget::layouts ( ) const
inline
std::vector<Layout>& makVrf::DtToolButtonWrapperWidget::layouts ( )
inline
virtual void makVrf::DtToolButtonWrapperWidget::setBlockResizeLayout ( bool  )
virtual

If set to true do not trigger a layout if resized. Default is false.

bool makVrf::DtToolButtonWrapperWidget::blockResizeLayout ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::setSignalResizeLayout ( bool  )
virtual

If set to true signal that the layout wants to be resized rather than laying it out. Default is false.

bool makVrf::DtToolButtonWrapperWidget::signalResizeLayout ( ) const
inline
virtual void makVrf::DtToolButtonWrapperWidget::layoutFromTimer ( )
protectedvirtualslot
virtual void makVrf::DtToolButtonWrapperWidget::resizeEvent ( QResizeEvent *  )
protectedvirtual
virtual void makVrf::DtToolButtonWrapperWidget::showEvent ( QShowEvent *  )
protectedvirtual
virtual void makVrf::DtToolButtonWrapperWidget::addToLayout ( QAbstractButton *  ,
bool  forceLayout = false 
)
protectedvirtual

Member Data Documentation

boost::signals2::signal<void ()> makVrf::DtToolButtonWrapperWidget::signal_resizeLayout
boost::signals2::signal<void (bool)> makVrf::DtToolButtonWrapperWidget::signal_maximumReached
boost::signals2::signal<void ()> makVrf::DtToolButtonWrapperWidget::signal_buttonsLayedOut
boost::signals2::signal<void (Layout&, QAbstractButton*)> makVrf::DtToolButtonWrapperWidget::signal_buttonLayedOut
std::vector<Layout> makVrf::DtToolButtonWrapperWidget::myLayouts
protected
std::vector<QAbstractButton*> makVrf::DtToolButtonWrapperWidget::myButtons
protected
std::map<int, int> makVrf::DtToolButtonWrapperWidget::myRightMarginForLine
protected
QSize makVrf::DtToolButtonWrapperWidget::myIconSize
protected
int makVrf::DtToolButtonWrapperWidget::myIconSpacing
protected
int makVrf::DtToolButtonWrapperWidget::myMaximumLines
protected
bool makVrf::DtToolButtonWrapperWidget::myNeedsLayout
protected
bool makVrf::DtToolButtonWrapperWidget::myReachedMaximum
protected
int makVrf::DtToolButtonWrapperWidget::myFixedButtonWidth
protected
int makVrf::DtToolButtonWrapperWidget::myFixedButtonHeight
protected
bool makVrf::DtToolButtonWrapperWidget::mySizeToFit
protected
bool makVrf::DtToolButtonWrapperWidget::myLeftToRightLayout
protected
int makVrf::DtToolButtonWrapperWidget::myShowMaximum
protected
int makVrf::DtToolButtonWrapperWidget::myButtonsShown
protected
bool makVrf::DtToolButtonWrapperWidget::myInResize
protected
bool makVrf::DtToolButtonWrapperWidget::mySetTimer
protected
bool makVrf::DtToolButtonWrapperWidget::myBlockResizeLayout
protected
bool makVrf::DtToolButtonWrapperWidget::mySignalResizeLayout
protected
bool makVrf::DtToolButtonWrapperWidget::myUseFixedWidth
protected

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

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)