27 #include "ginteractor.h" 29 class _Internal_QContainer;
143 virtual void addToGrid(
GInteractor* interactor,
int row,
int col,
int rowspan = 1,
int colspan = 1);
152 virtual void addToGrid(
GInteractor& interactor,
int row,
int col,
int rowspan = 1,
int colspan = 1);
187 virtual void clear();
221 virtual std::vector<GInteractor*>
getDescendents(
const string& type =
"")
const;
358 string
getType()
const override;
462 virtual void remove(
int index);
519 virtual void setAlignment(HorizontalAlignment halign, VerticalAlignment valign);
540 virtual void setPadding(
double topBottom,
double leftRight);
546 virtual void setPadding(
double top,
double right,
double bottom,
double left);
591 virtual void setRegionAlignment(
const string& region,
const string& halign,
const string& valign);
633 _Internal_QContainer* _iqcontainer;
634 std::vector<GInteractor*> _interactors;
635 std::map<Region, std::vector<GInteractor*>> _interactorsByRegion;
638 friend class _Internal_QContainer;
641 static Region stringToRegion(
const string& regionStr);
649 class _Internal_QContainer :
public QWidget,
public _Internal_QWidget {
654 _Internal_QContainer(
GContainer* gcontainer,
int rows,
int cols, QWidget* parent =
nullptr);
655 QSize sizeHint()
const override;
660 HorizontalAlignment _halign;
661 VerticalAlignment _valign;
684 QVBoxLayout* _overallLayout;
685 QHBoxLayout* _northLayout;
686 QHBoxLayout* _southLayout;
687 QVBoxLayout* _westLayout;
688 QVBoxLayout* _eastLayout;
689 QHBoxLayout* _centerLayout;
690 QHBoxLayout* _middleLayout;
691 std::map<GContainer::Region, HorizontalAlignment> _halignMap;
692 std::map<GContainer::Region, VerticalAlignment> _valignMap;
693 std::map<GContainer::Region, bool> _regionStretchMap;
695 virtual void add(QWidget* widget);
696 virtual void addToGrid(QWidget* widget,
int row,
int col,
int rowspan = 1,
int colspan = 1);
698 virtual void clear();
700 virtual bool contains(QWidget* widget)
const;
701 void detach()
override;
703 virtual void fixMargin(QLayout* layout,
bool hasStretch =
false);
704 virtual HorizontalAlignment getHorizontalAlignment()
const;
705 virtual VerticalAlignment getVerticalAlignment()
const;
707 virtual int getMargin()
const;
708 QSize getPreferredSize()
const override;
709 virtual QLayout* getQLayout()
const;
710 virtual int getSpacing()
const;
711 virtual void insert(
int i, QWidget* widget);
716 virtual void remove(QWidget* widget);
718 virtual void remove(
int i);
720 virtual void setHorizontalAlignment(HorizontalAlignment halign);
722 virtual void setMargin(
int margin);
723 virtual void setPadding(
int padding);
724 virtual void setPadding(
int left,
int top,
int right,
int bottom);
726 HorizontalAlignment halign,
727 VerticalAlignment valign);
729 HorizontalAlignment halign);
732 VerticalAlignment valign);
733 virtual void setSpacing(
int spacing);
734 virtual void setVerticalAlignment(VerticalAlignment valign);
739 #endif // _gcontainer_h virtual double getRegionWidth(Region region) const
Returns the width in pixels of the given region of this container, which is assumed to use a border l...
Definition: gcontainer.cpp:282
virtual void add(GInteractor *interactor)
Adds the given interactor to the end of the list of interactors in this container.
Definition: gcontainer.cpp:65
This struct contains real-valued width and height fields.
Definition: gtypes.h:39
virtual const std::vector< GInteractor * > & getInteractors() const
Returns a vector of all children interactors in this container.
Definition: gcontainer.cpp:197
virtual double getSpacing() const
Returns the spacing between widgets in this container in pixels.
Definition: gcontainer.cpp:290
virtual GDimension getRegionSize(Region region) const
Returns the width and height in pixels of the given region of this container, which is assumed to use...
Definition: gcontainer.cpp:268
static const int MARGIN_DEFAULT
Default margin around each interactor.
Definition: gcontainer.h:74
virtual bool isEmpty() const
Returns true if the container does not contain any interactors.
Definition: gcontainer.cpp:349
virtual double getPaddingBottom() const
Returns the padding on the bottom side of this container in pixels.
Definition: gcontainer.cpp:239
Definition: gcontainer.h:85
virtual double getPadding() const
Returns the padding inside this container in pixels.
Definition: gcontainer.cpp:234
GDimension getPreferredSize() const override
Returns a GDimension structure storing the width and height in pixels that this interactor would pref...
Definition: gcontainer.cpp:255
virtual double getMargin() const
Returns the margin around each widget in this container in pixels.
Definition: gcontainer.cpp:230
virtual void setSpacing(double px)
Sets the spacing between interactors in this container.
Definition: gcontainer.cpp:523
virtual bool contains(GInteractor *interactor) const
Returns true if the given interactor is found in this container.
Definition: gcontainer.cpp:163
virtual void setRegionVerticalAlignment(string region, string valign)
Sets the vertical alignment of interactors in the given region of this container, which is assumed to...
Definition: gcontainer.cpp:519
virtual bool regionContains(GInteractor *interactor, Region region) const
Returns true if the given interactor is found in the given region of this container, which is assumed to use a border layout.
Definition: gcontainer.cpp:353
virtual void insertToRegion(int index, GInteractor *interactor, Region region)
Adds the given interactor to the given layout region within this container just before the given inde...
Definition: gcontainer.cpp:321
virtual void addToGrid(GInteractor *interactor, int row, int col, int rowspan=1, int colspan=1)
Adds the given interactor to the given row and column in this container, which is assumed to use a gr...
Definition: gcontainer.cpp:85
virtual Layout getLayout() const
Returns the type of layout used by this container.
Definition: gcontainer.cpp:226
~GContainer() override
Frees memory allocated internally by the container.
Definition: gcontainer.cpp:59
QWidget* getWidget() const override
Returns a direct pointer to the internal Qt widget being wrapped by this interactor.
Definition: gcontainer.cpp:298
virtual void setRegionAlignment(Region region, HorizontalAlignment halign)
Sets the horizontal alignment of interactors in the given region of this container, which is assumed to use a border layout.
Definition: gcontainer.cpp:477
virtual void setPadding(double px)
Sets the padding on all 4 sides around widgets in this container.
Definition: gcontainer.cpp:463
Definition: gcontainer.h:97
virtual double getPaddingLeft() const
Returns the padding on the left side of this container in pixels.
Definition: gcontainer.cpp:243
virtual GInteractor * getInteractorByRegion(int i, Region region) const
Returns the child interactor at the given 0-based index within the given region in this container...
Definition: gcontainer.cpp:205
virtual void insert(int index, GInteractor *interactor)
Adds the given interactor to this container just before the given index.
Definition: gcontainer.cpp:302
virtual void setHorizontalAlignment(HorizontalAlignment halign)
Sets the horizontal alignment of interactors in this container.
Definition: gcontainer.cpp:451
virtual GInteractor * getInteractor(int i) const
Returns the child interactor at the given 0-based index in this container.
Definition: gcontainer.cpp:193
Definition: gcontainer.h:101
virtual void setAlignment(HorizontalAlignment halign, VerticalAlignment valign)
Sets the horizontal and vertical alignment of interactors in this container.
Definition: gcontainer.cpp:446
_Internal_QWidget* getInternalWidget() const override
Returns a direct pointer to the internal Qt widget being wrapped by this interactor.
Definition: gcontainer.cpp:222
virtual void removeFromRegion(GInteractor *interactor, Region region)
Removes the given interactor from the given region within this container, which is assumed to use a b...
Definition: gcontainer.cpp:403
virtual void clear()
Removes all interactors from this container.
Definition: gcontainer.cpp:134
virtual double getRegionHeight(Region region) const
Returns the height in pixels of the given region of this container, which is assumed to use a border ...
Definition: gcontainer.cpp:260
static const int SPACING_DEFAULT
Default spacing between neighboring interactors.
Definition: gcontainer.h:79
Region
The five regions of border layouts.
Definition: gcontainer.h:96
This abstract class is the superclass for all graphical interactors.
Definition: ginteractor.h:48
Definition: gcontainer.h:86
virtual void setVerticalAlignment(VerticalAlignment valign)
Sets the vertical alignment of interactors in this container.
Definition: gcontainer.cpp:529
Definition: gcontainer.h:98
Layout
The various layout management styles that containers can use.
Definition: gcontainer.h:84
string getType() const override
Returns a string representing the class name of this interactor, such as "GButton" or "GCheckBox"...
Definition: gcontainer.cpp:294
virtual double getPaddingRight() const
Returns the padding on the right side of this container in pixels.
Definition: gcontainer.cpp:247
virtual void addToRegion(GInteractor *interactor, Region region)
Adds the given interactor to the given region in this container, which is assumed to use a border lay...
Definition: gcontainer.cpp:101
virtual void clearRegion(Region region)
Removes all interactors from the given region of this container, which is assumed to use a border lay...
Definition: gcontainer.cpp:146
Definition: gcontainer.h:100
This class represents a graphics window that supports simple graphics.
Definition: gwindow.h:98
virtual std::vector< GInteractor * > getDescendents(string type="") const
Returns all interactors that are children or descendents inside this container.
Definition: gcontainer.cpp:175
virtual int getInteractorCount() const
Returns the number of children interactors in this container.
Definition: gcontainer.cpp:201
Definition: gcontainer.h:99
Definition: gcontainer.h:87
virtual void setMargin(double px)
Sets the margin in pixels around interactors in this container.
Definition: gcontainer.cpp:457
GContainer(Layout layout=LAYOUT_FLOW_HORIZONTAL, QWidget* parent=nullptr)
Creates a new container with the given layout.
Definition: gcontainer.cpp:41
Definition: gcontainer.h:89
virtual void setRegionHorizontalAlignment(Region region, HorizontalAlignment halign)
Sets the horizontal alignment of interactors in the given region of this container, which is assumed to use a border layout.
Definition: gcontainer.cpp:503
virtual double getPaddingTop() const
Returns the padding on the top side of this container in pixels.
Definition: gcontainer.cpp:251
Definition: gcontainer.h:88
virtual int getInteractorCountByRegion(Region region) const
Returns the number of children interactors within the given region in this container, which is assumed to use a border layout.
Definition: gcontainer.cpp:213
A GContainer is a logical grouping for interactors.
Definition: gcontainer.h:69