CMS 3D CMS Logo

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

#include <FWDialogBuilder.h>

Inheritance diagram for FWLayoutBuilder:
FWDialogBuilder

Protected Member Functions

TGCompositeFrame * currentFrame (void)
 
FWLayoutBuilderexpand (bool expandX=true, bool expandY=false)
 
FWLayoutBuilderfloatLeft (size_t spacing)
 
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

TGCompositeFrame * m_currentFrame
 
TGLayoutHints * m_currentFrameHints
 
TGLayoutHints * m_currentHints
 
bool m_floatLeft
 
std::vector< TGVerticalFrame * > m_framesStack
 
size_t m_leftSpacing
 
size_t m_topSpacing
 
TGCompositeFrame * m_window
 

Detailed Description

Definition at line 24 of file FWDialogBuilder.h.

Constructor & Destructor Documentation

FWLayoutBuilder::FWLayoutBuilder ( TGCompositeFrame *  window,
bool  expandY = true 
)
protected

Definition at line 20 of file FWDialogBuilder.cc.

References m_framesStack, and m_window.

21  : m_window(window),
22  m_currentFrame(0),
23  m_floatLeft(false),
24  m_topSpacing(0),
25  m_leftSpacing(0),
26  m_currentHints(0),
28 {
29  TGVerticalFrame *mainFrame = new TGVerticalFrame(window);
30  TGLayoutHints *hints = new TGLayoutHints(expandY ? kLHintsExpandX|kLHintsExpandY : kLHintsExpandX,
31  0, 0, 0, 0);
32  m_window->AddFrame(mainFrame, hints);
33  m_framesStack.push_back(mainFrame);
34 }
TGCompositeFrame * m_window
def window
Definition: svgfig.py:642
std::vector< TGVerticalFrame * > m_framesStack
TGLayoutHints * m_currentHints
TGCompositeFrame * m_currentFrame
TGLayoutHints * m_currentFrameHints

Member Function Documentation

TGCompositeFrame* FWLayoutBuilder::currentFrame ( void  )
inlineprotected
FWLayoutBuilder & FWLayoutBuilder::expand ( bool  expandX = true,
bool  expandY = false 
)
protected

Set whether or not the previous layout element should expand and in which direction.

Definition at line 157 of file FWDialogBuilder.cc.

References m_currentHints.

Referenced by FWDialogBuilder::expand(), and indent().

158 {
159  UInt_t style = 0;
160  style |= expandX ? kLHintsExpandX : 0;
161  style |= expandY ? kLHintsExpandY : 0;
162 
163  if (m_currentHints)
164  m_currentHints->SetLayoutHints(style);
165  return *this;
166 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::floatLeft ( size_t  spacing)
protected

Make sure that the current layout element is going to float on the left of the next one.

Definition at line 81 of file FWDialogBuilder.cc.

References m_floatLeft, and m_leftSpacing.

Referenced by FWDialogBuilder::floatLeft().

82 {
83  m_floatLeft = true;
84  m_leftSpacing = spacing;
85  return *this;
86 }
FWLayoutBuilder & FWLayoutBuilder::frameSpaceDown ( size_t  spacing)
protected

Definition at line 130 of file FWDialogBuilder.cc.

References m_currentFrameHints.

Referenced by FWDialogBuilder::frameSpaceDown(), and FWDialogBuilder::frameSpaceUpDown().

131 {
133  m_currentFrameHints->SetPadBottom(spacing);
134  return *this;
135 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::frameSpaceLeft ( size_t  spacing)
protected

Definition at line 138 of file FWDialogBuilder.cc.

References m_currentFrameHints.

Referenced by FWDialogBuilder::frameSpaceLeft(), and FWDialogBuilder::frameSpaceLeftRight().

139 {
141  m_currentFrameHints->SetPadLeft(spacing);
142  return *this;
143 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::frameSpaceRight ( size_t  spacing)
protected

Definition at line 146 of file FWDialogBuilder.cc.

References m_currentFrameHints.

Referenced by FWDialogBuilder::frameSpaceLeftRight(), and FWDialogBuilder::frameSpaceRight().

147 {
149  m_currentFrameHints->SetPadRight(spacing);
150  return *this;
151 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::frameSpaceUp ( size_t  spacing)
protected

Definition at line 122 of file FWDialogBuilder.cc.

References m_currentFrameHints.

Referenced by FWDialogBuilder::frameSpaceUp(), and FWDialogBuilder::frameSpaceUpDown().

123 {
125  m_currentFrameHints->SetPadTop(spacing);
126  return *this;
127 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::indent ( int  left = 2,
int  right = -1 
)
protected

Definition at line 46 of file FWDialogBuilder.cc.

References expand(), m_currentHints, m_framesStack, newRow(), and dbtoconf::parent.

Referenced by FWDialogBuilder::indent().

47 {
48  if (right < 0)
49  right = left;
50 
51  TGVerticalFrame *parent = m_framesStack.back();
52  TGLayoutHints *hints = new TGLayoutHints(kLHintsExpandX|kLHintsExpandY,
53  left, right, 0, 0);
54  m_currentHints = 0;
55  m_framesStack.push_back(new TGVerticalFrame(parent));
56  parent->AddFrame(m_framesStack.back(), hints);
57  return newRow().expand(true, false);
58 }
list parent
Definition: dbtoconf.py:74
std::vector< TGVerticalFrame * > m_framesStack
TGLayoutHints * m_currentHints
FWLayoutBuilder & newRow()
FWLayoutBuilder & expand(bool expandX=true, bool expandY=false)
bool FWLayoutBuilder::isFloatingLeft ( )
inlineprotected

Definition at line 45 of file FWDialogBuilder.h.

References m_floatLeft.

Referenced by nextFrame().

45 { return m_floatLeft; }
FWLayoutBuilder & FWLayoutBuilder::newRow ( void  )
protected

Definition at line 37 of file FWDialogBuilder.cc.

References m_currentFrame, m_currentFrameHints, m_currentHints, and m_framesStack.

Referenced by indent(), FWDialogBuilder::newRow(), and nextFrame().

38 {
39  m_currentFrameHints = m_currentHints = new TGLayoutHints(kLHintsExpandX);
40  m_currentFrame = new TGHorizontalFrame(m_framesStack.back());
41  m_framesStack.back()->AddFrame(m_currentFrame, m_currentHints);
42  return *this;
43 }
std::vector< TGVerticalFrame * > m_framesStack
TGLayoutHints * m_currentHints
TGCompositeFrame * m_currentFrame
TGLayoutHints * m_currentFrameHints
TGCompositeFrame * FWLayoutBuilder::nextFrame ( )
protected
TGLayoutHints * FWLayoutBuilder::nextHints ( )
protected

Definition at line 170 of file FWDialogBuilder.cc.

References m_currentHints, m_floatLeft, m_leftSpacing, and m_topSpacing.

Referenced by FWDialogBuilder::addCheckbox(), FWDialogBuilder::addColorPicker(), FWDialogBuilder::addHSlider(), FWDialogBuilder::addHtml(), FWDialogBuilder::addLabel(), FWDialogBuilder::addNumberEntry(), FWDialogBuilder::addTextButton(), FWDialogBuilder::addTextEdit(), FWDialogBuilder::addTextEntry(), FWDialogBuilder::addTextView(), FWDialogBuilder::addValidatingTextEntry(), FWDialogBuilder::hSpacer(), FWDialogBuilder::tabs(), and FWDialogBuilder::vSpacer().

171 {
172  if (m_floatLeft)
173  {
174  size_t left = m_leftSpacing;
175  m_floatLeft = false;
176  m_leftSpacing = 0;
177  assert(m_currentHints);
178  m_currentHints = new TGLayoutHints(kLHintsExpandX, left, 0,
179  m_currentHints->GetPadTop(), 0);
180  }
181  else
182  {
183  size_t top = m_topSpacing;
184  m_topSpacing = 3;
185  m_currentHints = new TGLayoutHints(kLHintsExpandX, 0, 0, top, 0);
186  }
187  return m_currentHints;
188 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::spaceDown ( size_t  spacing)
protected

Definition at line 97 of file FWDialogBuilder.cc.

References m_currentHints.

Referenced by FWDialogBuilder::spaceDown(), and FWDialogBuilder::spaceUpDown().

98 {
99  if (m_currentHints)
100  m_currentHints->SetPadBottom(spacing);
101  return *this;
102 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::spaceLeft ( size_t  spacing)
protected

Definition at line 105 of file FWDialogBuilder.cc.

References m_currentHints.

Referenced by FWDialogBuilder::spaceLeft(), and FWDialogBuilder::spaceLeftRight().

106 {
107  if (m_currentHints)
108  m_currentHints->SetPadLeft(spacing);
109  return *this;
110 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::spaceRight ( size_t  spacing)
protected

Definition at line 113 of file FWDialogBuilder.cc.

References m_currentHints.

Referenced by FWDialogBuilder::spaceLeftRight(), and FWDialogBuilder::spaceRight().

114 {
115  if (m_currentHints)
116  m_currentHints->SetPadRight(spacing);
117  return *this;
118 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::spaceUp ( size_t  spacing)
protected

Definition at line 89 of file FWDialogBuilder.cc.

References m_currentHints.

Referenced by FWDialogBuilder::spaceUp(), and FWDialogBuilder::spaceUpDown().

90 {
91  if (m_currentHints)
92  m_currentHints->SetPadTop(spacing);
93  return *this;
94 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::unindent ( void  )
protected

Removes all the frames on the stack since last indent.

Definition at line 70 of file FWDialogBuilder.cc.

References m_framesStack.

Referenced by FWDialogBuilder::unindent().

71 {
72  assert(!m_framesStack.empty());
73  m_framesStack.pop_back();
74  return *this;
75 }
std::vector< TGVerticalFrame * > m_framesStack
TGVerticalFrame * FWLayoutBuilder::verticalFrame ( void  )
protected

Return the last vertical frame, for more control on the layout.

Definition at line 62 of file FWDialogBuilder.cc.

References m_framesStack.

Referenced by FWDialogBuilder::addTable().

63 {
64  assert(m_framesStack.size());
65  return m_framesStack.back();
66 }
std::vector< TGVerticalFrame * > m_framesStack

Member Data Documentation

TGCompositeFrame* FWLayoutBuilder::m_currentFrame
private

Definition at line 55 of file FWDialogBuilder.h.

Referenced by currentFrame(), and newRow().

TGLayoutHints* FWLayoutBuilder::m_currentFrameHints
private
TGLayoutHints* FWLayoutBuilder::m_currentHints
private

Definition at line 60 of file FWDialogBuilder.h.

Referenced by expand(), indent(), newRow(), nextHints(), spaceDown(), spaceLeft(), spaceRight(), and spaceUp().

bool FWLayoutBuilder::m_floatLeft
private

Definition at line 57 of file FWDialogBuilder.h.

Referenced by floatLeft(), isFloatingLeft(), and nextHints().

std::vector<TGVerticalFrame *> FWLayoutBuilder::m_framesStack
private

Definition at line 53 of file FWDialogBuilder.h.

Referenced by FWLayoutBuilder(), indent(), newRow(), unindent(), and verticalFrame().

size_t FWLayoutBuilder::m_leftSpacing
private

Definition at line 59 of file FWDialogBuilder.h.

Referenced by floatLeft(), and nextHints().

size_t FWLayoutBuilder::m_topSpacing
private

Definition at line 58 of file FWDialogBuilder.h.

Referenced by nextHints().

TGCompositeFrame* FWLayoutBuilder::m_window
private

Definition at line 51 of file FWDialogBuilder.h.

Referenced by FWLayoutBuilder().