CMS 3D CMS Logo

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)
 
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

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 19 of file FWDialogBuilder.cc.

References m_framesStack, and m_window.

20  : m_window(window),
21  m_currentFrame(nullptr),
22  m_floatLeft(false),
23  m_topSpacing(0),
24  m_leftSpacing(0),
25  m_currentHints(nullptr),
26  m_currentFrameHints(nullptr) {
27  TGVerticalFrame *mainFrame = new TGVerticalFrame(window);
28  TGLayoutHints *hints = new TGLayoutHints(expandY ? kLHintsExpandX | kLHintsExpandY : kLHintsExpandX, 0, 0, 0, 0);
29  m_window->AddFrame(mainFrame, hints);
30  m_framesStack.push_back(mainFrame);
31 }
TGCompositeFrame * m_window
std::vector< TGVerticalFrame * > m_framesStack
TGLayoutHints * m_currentHints
TGCompositeFrame * m_currentFrame
TGLayoutHints * m_currentFrameHints
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
Definition: svgfig.py:643

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 125 of file FWDialogBuilder.cc.

References m_currentHints.

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

125  {
126  UInt_t style = 0;
127  style |= expandX ? kLHintsExpandX : 0;
128  style |= expandY ? kLHintsExpandY : 0;
129 
130  if (m_currentHints)
131  m_currentHints->SetLayoutHints(style);
132  return *this;
133 }
TGLayoutHints * m_currentHints
Definition: style.py:1
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 68 of file FWDialogBuilder.cc.

References m_floatLeft, and m_leftSpacing.

Referenced by currentFrame(), and FWDialogBuilder::floatLeft().

68  {
69  m_floatLeft = true;
70  m_leftSpacing = spacing;
71  return *this;
72 }
void FWLayoutBuilder::frameForTab ( )
protected

Definition at line 158 of file FWDialogBuilder.cc.

References m_currentFrame, and m_framesStack.

Referenced by isFloatingLeft(), and FWDialogBuilder::tabs().

158  {
159  m_currentFrame = new TGVerticalFrame(m_framesStack.back());
160  m_currentFrame->SetBackgroundColor(0x000000);
161  m_framesStack.back()->AddFrame(m_currentFrame, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));
162  // m_frameStack.push_back(m_currentFrame);
163 }
std::vector< TGVerticalFrame * > m_framesStack
TGCompositeFrame * m_currentFrame
FWLayoutBuilder & FWLayoutBuilder::frameSpaceDown ( size_t  spacing)
protected

Definition at line 104 of file FWDialogBuilder.cc.

References m_currentFrameHints.

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

104  {
106  m_currentFrameHints->SetPadBottom(spacing);
107  return *this;
108 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::frameSpaceLeft ( size_t  spacing)
protected

Definition at line 110 of file FWDialogBuilder.cc.

References m_currentFrameHints.

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

110  {
112  m_currentFrameHints->SetPadLeft(spacing);
113  return *this;
114 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::frameSpaceRight ( size_t  spacing)
protected

Definition at line 116 of file FWDialogBuilder.cc.

References m_currentFrameHints.

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

116  {
118  m_currentFrameHints->SetPadRight(spacing);
119  return *this;
120 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::frameSpaceUp ( size_t  spacing)
protected

Definition at line 98 of file FWDialogBuilder.cc.

References m_currentFrameHints.

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

98  {
100  m_currentFrameHints->SetPadTop(spacing);
101  return *this;
102 }
TGLayoutHints * m_currentFrameHints
FWLayoutBuilder & FWLayoutBuilder::indent ( int  left = 2,
int  right = -1 
)
protected

Definition at line 40 of file FWDialogBuilder.cc.

References expand(), m_currentHints, m_framesStack, newRow(), and class-composition::parent.

Referenced by ntuplePrintersDiff.TrackingParticlePrinter::_parentageChain(), FWDialogBuilder::indent(), ntuplePrintersDiff.SeedPrinter::printHits(), ntuplePrintersDiff.TrackPrinter::printHits(), and ntuplePrintersDiff.TrackingParticlePrinter::printTrackingParticle().

40  {
41  if (right < 0)
42  right = left;
43 
44  TGVerticalFrame *parent = m_framesStack.back();
45  TGLayoutHints *hints = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, left, right, 0, 0);
46  m_currentHints = nullptr;
47  m_framesStack.push_back(new TGVerticalFrame(parent));
48  parent->AddFrame(m_framesStack.back(), hints);
49  return newRow().expand(true, false);
50 }
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 44 of file FWDialogBuilder.h.

References frameForTab(), m_floatLeft, nextFrame(), nextHints(), and verticalFrame().

Referenced by nextFrame().

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

Definition at line 33 of file FWDialogBuilder.cc.

References m_currentFrame, m_currentFrameHints, m_currentHints, and m_framesStack.

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

33  {
34  m_currentFrameHints = m_currentHints = new TGLayoutHints(kLHintsExpandX);
35  m_currentFrame = new TGHorizontalFrame(m_framesStack.back());
36  m_framesStack.back()->AddFrame(m_currentFrame, m_currentHints);
37  return *this;
38 }
std::vector< TGVerticalFrame * > m_framesStack
TGLayoutHints * m_currentHints
TGCompositeFrame * m_currentFrame
TGLayoutHints * m_currentFrameHints
TGCompositeFrame * FWLayoutBuilder::nextFrame ( )
protected
TGLayoutHints * FWLayoutBuilder::nextHints ( )
protected
FWLayoutBuilder & FWLayoutBuilder::spaceDown ( size_t  spacing)
protected

Definition at line 80 of file FWDialogBuilder.cc.

References m_currentHints.

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

80  {
81  if (m_currentHints)
82  m_currentHints->SetPadBottom(spacing);
83  return *this;
84 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::spaceLeft ( size_t  spacing)
protected

Definition at line 86 of file FWDialogBuilder.cc.

References m_currentHints.

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

86  {
87  if (m_currentHints)
88  m_currentHints->SetPadLeft(spacing);
89  return *this;
90 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::spaceRight ( size_t  spacing)
protected

Definition at line 92 of file FWDialogBuilder.cc.

References m_currentHints.

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

92  {
93  if (m_currentHints)
94  m_currentHints->SetPadRight(spacing);
95  return *this;
96 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::spaceUp ( size_t  spacing)
protected

Definition at line 74 of file FWDialogBuilder.cc.

References m_currentHints.

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

74  {
75  if (m_currentHints)
76  m_currentHints->SetPadTop(spacing);
77  return *this;
78 }
TGLayoutHints * m_currentHints
FWLayoutBuilder & FWLayoutBuilder::unindent ( void  )
protected

Removes all the frames on the stack since last indent.

Definition at line 59 of file FWDialogBuilder.cc.

References m_framesStack.

Referenced by FWDialogBuilder::unindent().

59  {
60  assert(!m_framesStack.empty());
61  m_framesStack.pop_back();
62  return *this;
63 }
std::vector< TGVerticalFrame * > m_framesStack
TGVerticalFrame * FWLayoutBuilder::verticalFrame ( void  )
protected

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

Definition at line 53 of file FWDialogBuilder.cc.

References m_framesStack.

Referenced by FWDialogBuilder::addTable(), and isFloatingLeft().

53  {
54  assert(m_framesStack.size());
55  return m_framesStack.back();
56 }
std::vector< TGVerticalFrame * > m_framesStack

Member Data Documentation

TGCompositeFrame* FWLayoutBuilder::m_currentFrame
private

Definition at line 55 of file FWDialogBuilder.h.

Referenced by currentFrame(), frameForTab(), 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 frameForTab(), 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().