|
|
@@ -19,6 +19,9 @@ |
|
|
|
|
|
|
|
START_NAMESPACE_DGL |
|
|
|
|
|
|
|
typedef std::list<SubWidgetWithSizeHint>::iterator SubWidgetWithSizeHintIterator; |
|
|
|
typedef std::list<HorizontalLayout*>::iterator HorizontalLayoutIterator; |
|
|
|
|
|
|
|
// -------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
template<> // horizontal |
|
|
@@ -26,8 +29,9 @@ uint Layout<true>::setAbsolutePos(int x, const int y, const uint padding) |
|
|
|
{ |
|
|
|
uint maxHeight = 0; |
|
|
|
|
|
|
|
for (SubWidgetWithSizeHint& s : widgets) |
|
|
|
for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) |
|
|
|
{ |
|
|
|
SubWidgetWithSizeHint& s(*it); |
|
|
|
maxHeight = std::max(maxHeight, s.widget->getHeight()); |
|
|
|
s.widget->setAbsolutePos(x, y); |
|
|
|
x += s.widget->getWidth(); |
|
|
@@ -44,8 +48,9 @@ void Layout<true>::setSize(const uint width, const uint padding) |
|
|
|
uint nonFixedWidth = width; |
|
|
|
uint numDynamiclySizedWidgets = 0; |
|
|
|
|
|
|
|
for (SubWidgetWithSizeHint& s : widgets) |
|
|
|
for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) |
|
|
|
{ |
|
|
|
SubWidgetWithSizeHint& s(*it); |
|
|
|
maxHeight = std::max(maxHeight, s.widget->getHeight()); |
|
|
|
|
|
|
|
if (s.sizeHint == Fixed) |
|
|
@@ -58,8 +63,9 @@ void Layout<true>::setSize(const uint width, const uint padding) |
|
|
|
? (nonFixedWidth - padding * numDynamiclySizedWidgets) / numDynamiclySizedWidgets |
|
|
|
: 0; |
|
|
|
|
|
|
|
for (SubWidgetWithSizeHint& s : widgets) |
|
|
|
for (SubWidgetWithSizeHintIterator it=widgets.begin(), end=widgets.end(); it != end; ++it) |
|
|
|
{ |
|
|
|
SubWidgetWithSizeHint& s(*it); |
|
|
|
if (s.sizeHint != Fixed) |
|
|
|
s.widget->setSize(widthPerWidget, maxHeight); |
|
|
|
else |
|
|
@@ -71,8 +77,9 @@ void Layout<true>::setSize(const uint width, const uint padding) |
|
|
|
|
|
|
|
void VerticallyStackedHorizontalLayout::setAbsolutePos(const int x, int y, const uint padding) |
|
|
|
{ |
|
|
|
for (HorizontalLayout* l : items) |
|
|
|
for (HorizontalLayoutIterator it=items.begin(), end=items.end(); it != end; ++it) |
|
|
|
{ |
|
|
|
HorizontalLayout* l(*it); |
|
|
|
y += l->setAbsolutePos(x, y, padding); |
|
|
|
y += padding; |
|
|
|
} |
|
|
@@ -80,8 +87,11 @@ void VerticallyStackedHorizontalLayout::setAbsolutePos(const int x, int y, const |
|
|
|
|
|
|
|
void VerticallyStackedHorizontalLayout::setWidth(const uint width, const uint padding) |
|
|
|
{ |
|
|
|
for (HorizontalLayout* l : items) |
|
|
|
for (HorizontalLayoutIterator it=items.begin(), end=items.end(); it != end; ++it) |
|
|
|
{ |
|
|
|
HorizontalLayout* l(*it); |
|
|
|
l->setSize(width, padding); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// -------------------------------------------------------------------------------------------------------------------- |
|
|
|