00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "HBox.h"
00010
00011 #include "minmax.h"
00012
00013
00014
00015
00016
00017 HBox::HBox()
00018 {
00019 m_w = 0;
00020 m_h = 0;
00021 }
00022
00023
00024
00025
00026 void
00027 HBox::addWidget(IWidget *new_widget)
00028 {
00029 m_widgets.push_back(new_widget);
00030 new_widget->setShift(m_shift.plus(V2(m_w, 0)));
00031 m_w += new_widget->getW();
00032 m_h = max(m_h, new_widget->getH());
00033 }
00034
00035
00036
00037
00038 void
00039 HBox::setShift(const V2 &shift)
00040 {
00041 m_shift = shift;
00042 int width = 0;
00043 t_widgets::iterator end = m_widgets.end();
00044 for (t_widgets::iterator i = m_widgets.begin(); i != end; ++i) {
00045 (*i)->setShift(m_shift.plus(V2(width, 0)));
00046 width += (*i)->getW();
00047 }
00048 }
00049
00050