CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Attributes
FWDialogBuilder Class Reference

#include <FWDialogBuilder.h>

Inheritance diagram for FWDialogBuilder:
FWLayoutBuilder

Public Member Functions

FWDialogBuilderaddCheckbox (const char *text, TGCheckButton **out=0)
 
FWDialogBuilderaddColorPicker (const FWColorManager *manager, FWColorSelect **out=0)
 
FWDialogBuilderaddHSeparator (size_t horizontalPadding=4, size_t verticalPadding=3)
 
FWDialogBuilderaddHSlider (size_t size, TGHSlider **out=0)
 
FWDialogBuilderaddHtml (TGHtml **out=0)
 
FWDialogBuilderaddLabel (const char *text, size_t fontSize=12, size_t weight=0, TGLabel **out=0)
 
FWDialogBuilderaddNumberEntry (float defaultValue, size_t digits, TGNumberFormat::EStyle style, int min, int max, TGNumberEntry **out)
 
FWDialogBuilderaddTable (FWTableManagerBase *manager, FWTableWidget **out=0)
 
FWDialogBuilderaddTextButton (const char *text, TGTextButton **out=0)
 
FWDialogBuilderaddTextEdit (const char *defaultText=0, TGTextEdit **out=0)
 
FWDialogBuilderaddTextEntry (const char *defaultText, TGTextEntry **out)
 
FWDialogBuilderaddTextView (const char *defaultText=0, TGTextView **out=0)
 
FWDialogBuilderaddValidatingTextEntry (const char *defaultText, FWGUIValidatingTextEntry **out)
 
FWDialogBuilderbeginTab (const char *label)
 
FWDialogBuilderendTab (void)
 
FWDialogBuilderexpand (size_t expandX=true, size_t expandY=false)
 
FWDialogBuilderfloatLeft (size_t spacing=3)
 
FWDialogBuilderframeSpaceDown (size_t spacing=3)
 
FWDialogBuilderframeSpaceLeft (size_t spacing=3)
 
FWDialogBuilderframeSpaceLeftRight (size_t spacing=3)
 
FWDialogBuilderframeSpaceRight (size_t spacing=3)
 
FWDialogBuilderframeSpaceUp (size_t spacing=3)
 
FWDialogBuilderframeSpaceUpDown (size_t spacing=3)
 
 FWDialogBuilder (TGCompositeFrame *window, FWDialogBuilder *parent=0, bool expandY=true)
 
FWDialogBuilderhSpacer (size_t size=0)
 
FWDialogBuilderindent (int left=2, int right=-1)
 
FWDialogBuildernewRow ()
 
FWDialogBuilderspaceDown (size_t spacing=3)
 
FWDialogBuilderspaceLeft (size_t spacing=3)
 
FWDialogBuilderspaceLeftRight (size_t spacing=3)
 
FWDialogBuilderspaceRight (size_t spacing=3)
 
FWDialogBuilderspaceUp (size_t spacing=3)
 
FWDialogBuilderspaceUpDown (size_t spacing=3)
 
FWDialogBuildertabs (TGTab **out)
 
FWDialogBuilderunindent (void)
 
FWDialogBuilderuntabs (void)
 
FWDialogBuildervSpacer (size_t size=0)
 

Protected Member Functions

template<class T >
FWDialogBuilderextract (T *in, T **out)
 
- Protected Member Functions inherited from FWLayoutBuilder
TGCompositeFrame * currentFrame (void)
 
FWLayoutBuilderexpand (bool expandX=true, bool expandY=false)
 
FWLayoutBuilderfloatLeft (size_t spacing)
 
void frameForTab ()
 
FWLayoutBuilderframeSpaceDown (size_t spacing)
 
FWLayoutBuilderframeSpaceLeft (size_t spacing)
 
FWLayoutBuilderframeSpaceRight (size_t spacing)
 
FWLayoutBuilderframeSpaceUp (size_t spacing)
 
 FWLayoutBuilder (TGCompositeFrame *window, bool expandY=true)
 
FWLayoutBuilderindent (int left=2, int right=-1)
 
bool isFloatingLeft ()
 
FWLayoutBuildernewRow ()
 
TGCompositeFrame * nextFrame ()
 
TGLayoutHints * nextHints ()
 
FWLayoutBuilderspaceDown (size_t spacing)
 
FWLayoutBuilderspaceLeft (size_t spacing)
 
FWLayoutBuilderspaceRight (size_t spacing)
 
FWLayoutBuilderspaceUp (size_t spacing)
 
FWLayoutBuilderunindent (void)
 
TGVerticalFrame * verticalFrame ()
 

Private Attributes

FWDialogBuilderm_parent
 
TGTab * m_tabs
 

Detailed Description

Helper class to construct dialogs in a more readable ways.

Encapsulated TGUI layout hiccups and exposes the developer an API which
allows to layout items in a top->bottom, right->left manner.

Example:

  FWDialogBuilder builder(parent);
  parent.newRow(2)              // New row which has a 2 pixel padding on top.
        .addLabel("MyLabel:")    // A new label.
        .indent(20)             // Whatever follows is indented 20 pixels 

on the right. .addLabel("MyLabel2") // Another label. .spaceDown(4) .addTextButton("Aligned to MyLabel2 ").floatLeft() .addTextButton("Same Row as previous") .unindent() // back one level in the indentation. .addLabel("Aligned to MyLabel:")

Because in ROOT layout and parenting of widgets are mixed we need to take responsibility for creating the widget objects (sigh!), so we have one "addXYZ" method per widget that can be added. If we find our way around this it would be better to have a generic "addWidget()" method and create widgets outside this class.

TODO: For higher configurability we should have an "addWithCallback(Callbak)" method which can be used to specify a generic widget creation action.

Definition at line 94 of file FWDialogBuilder.h.

Constructor & Destructor Documentation

FWDialogBuilder::FWDialogBuilder ( TGCompositeFrame *  window,
FWDialogBuilder parent = 0,
bool  expandY = true 
)
Helper class to construct dialogs in a more readable ways.

Encapsulated TGUI layout hiccups and exposes the developer an API which
allows to layout items in a top->bottom, right->left manner.

Example:

  FWDialogBuilder builder(parent);
  parent.newRow(2)              // New row which has a 2 pixel padding on top.
        .addLabel("MyLabel:")    // A new label.
        .indent(20)             // Whatever follows is indented 20 pixels 

on the right. .addLabel("MyLabel2") // Another label. .spaceDown(4) .addTextButton("Aligned to MyLabel2 ").floatLeft() .addTextButton("Same Row as previous") .unindent() // back one level in the indentation. .addLabel("Aligned to MyLabel:")

Because in ROOT layout and parenting of widgets are mixed we need to take responsibility for creating the widget objects (sigh!), so we have one "addXYZ" method per widget that can be added. If we find our way around this it would be better to have a generic "addWidget()" method and create widgets outside this class.

TODO: For higher configurability we should have an "addWithCallback(Callbak)" method which can be used to specify a generic widget creation action.

Definition at line 241 of file FWDialogBuilder.cc.

Member Function Documentation

FWDialogBuilder & FWDialogBuilder::addCheckbox ( const char *  text,
TGCheckButton **  out = 0 
)

Definition at line 411 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addColorPicker ( const FWColorManager manager,
FWColorSelect **  out = 0 
)

Definition at line 336 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addHSeparator ( size_t  horizontalPadding = 4,
size_t  verticalPadding = 3 
)

Definition at line 434 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addHSlider ( size_t  size,
TGHSlider **  out = 0 
)

Definition at line 350 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addHtml ( TGHtml **  out = 0)

Definition at line 315 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addLabel ( const char *  text,
size_t  fontSize = 12,
size_t  weight = 0,
TGLabel **  out = 0 
)

Definition at line 270 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addNumberEntry ( float  defaultValue,
size_t  digits,
TGNumberFormat::EStyle  style,
int  min,
int  max,
TGNumberEntry **  out 
)

Definition at line 393 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addTable ( FWTableManagerBase manager,
FWTableWidget **  out = 0 
)

Definition at line 422 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addTextButton ( const char *  text,
TGTextButton **  out = 0 
)

Definition at line 362 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addTextEdit ( const char *  defaultText = 0,
TGTextEdit **  out = 0 
)

Definition at line 324 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addTextEntry ( const char *  defaultText,
TGTextEntry **  out 
)

Definition at line 382 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addTextView ( const char *  defaultText = 0,
TGTextView **  out = 0 
)

Definition at line 303 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::addValidatingTextEntry ( const char *  defaultText,
FWGUIValidatingTextEntry **  out 
)

Definition at line 372 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::beginTab ( const char *  label)

Adds a new tab called label. A new tab gets a new builder so that tab building is completely scoped.

Definition at line 493 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::endTab ( void  )

When we are done with the tab, we delete ourself and return the parent.

Definition at line 504 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::expand ( size_t  expandX = true,
size_t  expandY = false 
)

Definition at line 611 of file FWDialogBuilder.cc.

template<class T >
FWDialogBuilder& FWDialogBuilder::extract ( T in,
T **  out 
)
inlineprotected

Definition at line 164 of file FWDialogBuilder.h.

FWDialogBuilder & FWDialogBuilder::floatLeft ( size_t  spacing = 3)

Definition at line 512 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::frameSpaceDown ( size_t  spacing = 3)

Definition at line 573 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::frameSpaceLeft ( size_t  spacing = 3)

Definition at line 588 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::frameSpaceLeftRight ( size_t  spacing = 3)

Definition at line 602 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::frameSpaceRight ( size_t  spacing = 3)

Definition at line 595 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::frameSpaceUp ( size_t  spacing = 3)

Definition at line 566 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::frameSpaceUpDown ( size_t  spacing = 3)

Definition at line 580 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::hSpacer ( size_t  size = 0)

Definition at line 637 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::indent ( int  left = 2,
int  right = -1 
)

Definition at line 256 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::newRow ( void  )

Definition at line 249 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::spaceDown ( size_t  spacing = 3)

Definition at line 526 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::spaceLeft ( size_t  spacing = 3)

Definition at line 541 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::spaceLeftRight ( size_t  spacing = 3)

Definition at line 555 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::spaceRight ( size_t  spacing = 3)

Definition at line 548 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::spaceUp ( size_t  spacing = 3)

Definition at line 519 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::spaceUpDown ( size_t  spacing = 3)

Definition at line 533 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::tabs ( TGTab **  out)
Support for tabs.

This is done by creating a new DialogBuilder and returning it for each
of the added tabs.

builder.tabs()               // Adds a TGTab widget to the current frame.
       .beginTab("Foo")      // Add a tab to the TGTab.
       .textButton("In Foo") // This is inside the tab "Foo", the layouting

is independent from previous calls since a separate builder was returned by

       .endTab("Foo")        // End of the tab.
       .beginTab("Bar")
       .endTab("")
       .untabs();            // Tabs completed.
       .textButton("Main scope") // This is on the same level as the TGTab.

Definition at line 467 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::unindent ( void  )

Definition at line 263 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::untabs ( void  )

Definition at line 481 of file FWDialogBuilder.cc.

FWDialogBuilder & FWDialogBuilder::vSpacer ( size_t  size = 0)

Definition at line 618 of file FWDialogBuilder.cc.

Member Data Documentation

FWDialogBuilder* FWDialogBuilder::m_parent
private

Definition at line 172 of file FWDialogBuilder.h.

TGTab* FWDialogBuilder::m_tabs
private

Definition at line 173 of file FWDialogBuilder.h.