29 #include "ginteractor.h" 33 class _Internal_QContainer;
147 virtual void addToGrid(
GInteractor* interactor,
int row,
int col,
int rowspan = 1,
int colspan = 1);
156 virtual void addToGrid(
GInteractor& interactor,
int row,
int col,
int rowspan = 1,
int colspan = 1);
191 virtual void clear();
225 virtual std::vector<GInteractor*>
getDescendents(
const string& type =
"")
const;
362 string
getType()
const override;
466 virtual void remove(
int index);
544 virtual void setPadding(
double topBottom,
double leftRight);
550 virtual void setPadding(
double top,
double right,
double bottom,
double left);
595 virtual void setRegionAlignment(
const string& region,
const string& halign,
const string& valign);
637 _Internal_QContainer* _iqcontainer;
638 std::vector<GInteractor*> _interactors;
639 std::map<Region, std::vector<GInteractor*>> _interactorsByRegion;
642 friend class _Internal_QContainer;
645 static Region stringToRegion(
const string& regionStr);
653 class _Internal_QContainer :
public QWidget,
public _Internal_QWidget {
658 _Internal_QContainer(
GContainer* gcontainer,
int rows,
int cols, QWidget* parent =
nullptr);
659 QSize sizeHint()
const override;
688 QVBoxLayout* _overallLayout;
689 QHBoxLayout* _northLayout;
690 QHBoxLayout* _southLayout;
691 QVBoxLayout* _westLayout;
692 QVBoxLayout* _eastLayout;
693 QHBoxLayout* _centerLayout;
694 QHBoxLayout* _middleLayout;
695 std::map<GContainer::Region, HorizontalAlignment> _halignMap;
696 std::map<GContainer::Region, VerticalAlignment> _valignMap;
697 std::map<GContainer::Region, bool> _regionStretchMap;
699 virtual void add(QWidget* widget);
700 virtual void addToGrid(QWidget* widget,
int row,
int col,
int rowspan = 1,
int colspan = 1);
702 virtual void clear();
704 virtual bool contains(QWidget* widget)
const;
705 void detach()
override;
707 virtual void fixMargin(QLayout* layout,
bool hasStretch =
false);
711 virtual int getMargin()
const;
712 QSize getPreferredSize()
const override;
713 virtual QLayout* getQLayout()
const;
714 virtual int getSpacing()
const;
715 virtual void insert(
int i, QWidget* widget);
720 virtual void remove(QWidget* widget);
722 virtual void remove(
int i);
726 virtual void setMargin(
int margin);
727 virtual void setPadding(
int padding);
728 virtual void setPadding(
int left,
int top,
int right,
int bottom);
737 virtual void setSpacing(
int spacing);
745 #endif // _gcontainer_h A GContainer is a logical grouping for interactors.
Definition: gcontainer.h:73
This class represents a graphics window that supports simple graphics.
Definition: gwindow.h:102
HorizontalAlignment
The supported kinds of horizontal alignment of a widget or onscreen object.
Definition: gtypes.h:136
Definition: gcontainer.h:103
Definition: gcontainer.h:104
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:89
static const int SPACING_DEFAULT
Default spacing between neighboring interactors.
Definition: gcontainer.h:83
virtual bool contains(GInteractor *interactor) const
Returns true if the given interactor is found in this container.
Definition: gcontainer.cpp:167
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:105
virtual void setAlignment(HorizontalAlignment halign, VerticalAlignment valign)
Sets the horizontal and vertical alignment of interactors in this container.
Definition: gcontainer.cpp:450
virtual double getPaddingTop() const
Returns the padding on the top side of this container in pixels.
Definition: gcontainer.cpp:255
GDimension getPreferredSize() const override
Returns a GDimension structure storing the width and height in pixels that this interactor would pref...
Definition: gcontainer.cpp:259
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:523
virtual double getPaddingRight() const
Returns the padding on the right side of this container in pixels.
Definition: gcontainer.cpp:251
Definition: gcontainer.h:91
Definition: gcontainer.h:89
virtual void insert(int index, GInteractor *interactor)
Adds the given interactor to this container just before the given index.
Definition: gcontainer.cpp:306
Definition: gcontainer.h:101
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:357
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:407
Region
The five regions of border layouts.
Definition: gcontainer.h:100
QWidget* getWidget() const override
Returns a direct pointer to the internal Qt widget being wrapped by this interactor.
Definition: gcontainer.cpp:302
This abstract class is the superclass for all graphical interactors.
Definition: ginteractor.h:52
Definition: gcontainer.h:105
virtual const std::vector< GInteractor * > & getInteractors() const
Returns a vector of all children interactors in this container.
Definition: gcontainer.cpp:201
virtual double getSpacing() const
Returns the spacing between widgets in this container in pixels.
Definition: gcontainer.cpp:294
virtual double getPadding() const
Returns the padding inside this container in pixels.
Definition: gcontainer.cpp:238
virtual Layout getLayout() const
Returns the type of layout used by this container.
Definition: gcontainer.cpp:230
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:209
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:264
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:272
virtual void clear()
Removes all interactors from this container.
Definition: gcontainer.cpp:138
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:325
virtual int getInteractorCount() const
Returns the number of children interactors in this container.
Definition: gcontainer.cpp:205
virtual std::vector< GInteractor * > getDescendents(string type="") const
Returns all interactors that are children or descendents inside this container.
Definition: gcontainer.cpp:179
_Internal_QWidget* getInternalWidget() const override
Returns a direct pointer to the internal Qt widget being wrapped by this interactor.
Definition: gcontainer.cpp:226
Definition: gcontainer.h:92
This struct contains real-valued width and height fields.
Definition: gtypes.h:43
Layout
The various layout management styles that containers can use.
Definition: gcontainer.h:88
virtual void setVerticalAlignment(VerticalAlignment valign)
Sets the vertical alignment of interactors in this container.
Definition: gcontainer.cpp:533
GContainer(Layout layout=LAYOUT_FLOW_HORIZONTAL, QWidget* parent=nullptr)
Creates a new container with the given layout.
Definition: gcontainer.cpp:45
virtual void setHorizontalAlignment(HorizontalAlignment halign)
Sets the horizontal alignment of interactors in this container.
Definition: gcontainer.cpp:455
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:507
virtual void setMargin(double px)
Sets the margin in pixels around interactors in this container.
Definition: gcontainer.cpp:461
virtual GInteractor * getInteractor(int i) const
Returns the child interactor at the given 0-based index in this container.
Definition: gcontainer.cpp:197
~GContainer() override
Frees memory allocated internally by the container.
Definition: gcontainer.cpp:63
virtual void setPadding(double px)
Sets the padding on all 4 sides around widgets in this container.
Definition: gcontainer.cpp:467
static const int MARGIN_DEFAULT
Default margin around each interactor.
Definition: gcontainer.h:78
virtual double getPaddingLeft() const
Returns the padding on the left side of this container in pixels.
Definition: gcontainer.cpp:247
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:217
virtual void add(GInteractor *interactor)
Adds the given interactor to the end of the list of interactors in this container.
Definition: gcontainer.cpp:69
Definition: gcontainer.h:93
string getType() const override
Returns a string representing the class name of this interactor, such as "GButton" or "GCheckBox"...
Definition: gcontainer.cpp:298
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:286
Definition: gcontainer.h:102
virtual double getMargin() const
Returns the margin around each widget in this container in pixels.
Definition: gcontainer.cpp:234
virtual void setSpacing(double px)
Sets the spacing between interactors in this container.
Definition: gcontainer.cpp:527
virtual double getPaddingBottom() const
Returns the padding on the bottom side of this container in pixels.
Definition: gcontainer.cpp:243
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:481
Definition: gcontainer.h:90
virtual bool isEmpty() const
Returns true if the container does not contain any interactors.
Definition: gcontainer.cpp:353
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:150
VerticalAlignment
The supported kinds of vertical alignment of a widget or onscreen object.
Definition: gtypes.h:147