Don't access container's children directly

master
Peter Nelson 2013-02-04 07:35:40 +00:00
parent 2841c71f7f
commit f9417010be
3 changed files with 22 additions and 12 deletions

View File

@ -72,7 +72,7 @@ void PTapUI::InitWidgets()
t->y = 0;
t->w = widget->w;
t->h = 25;
this->widget->children.push_back(t);
this->widget->Pack(t);
int slide_w = 25;
int slide_h = c_h - 25;
@ -93,7 +93,7 @@ void PTapUI::InitWidgets()
c3->y = c->y + 25;
c3->w = slide_w * 2;
c3->h = slide_h;
c->children.push_back(c3);
c->Pack(c3);
*/
Container *c2 = new Container();
if (i >= TAPS) c2->colour = Colour(1, 1, 1, 0.15f);
@ -102,7 +102,7 @@ void PTapUI::InitWidgets()
c2->y = c->y + 25;
c2->w = slide_w * TAPS;
c2->h = slide_h;
c->children.push_back(c2);
c->Pack(c2);
Container *c3 = new Container();
if (i >= TAPS) c3->colour = Colour(1, 1, 1, 0.15f);
@ -111,7 +111,7 @@ void PTapUI::InitWidgets()
c3->y = c->y + 25;
c3->w = slide_w * 2;
c3->h = slide_h;
c->children.push_back(c3);
c->Pack(c3);
Container *c4 = new Container();
if (i >= TAPS) c4->colour = Colour(1, 1, 1, 0.15f);
@ -120,7 +120,7 @@ void PTapUI::InitWidgets()
c4->y = c->y + 25;
c4->w = slide_w;
c4->h = slide_h;
c->children.push_back(c4);
c->Pack(c4);
if (i < TAPS) {
snprintf(tmp, sizeof tmp, "Tap %d", i + 1);
@ -146,7 +146,7 @@ void PTapUI::InitWidgets()
slider->max = 1.f;
slider->port = (i * 10) + 4 + j;
// slider->Pad(padding, padding);
c2->children.push_back(slider);
c2->Pack(slider);
}
for (int j = 0; j < 2; j++) {
@ -162,7 +162,7 @@ void PTapUI::InitWidgets()
slider->max = 1.f;
slider->port = (i * 10) + 4 + TAPS + j;
// slider->Pad(padding, padding);
c3->children.push_back(slider);
c3->Pack(slider);
}
for (int j = 0; j < 1; j++) {
@ -179,7 +179,7 @@ void PTapUI::InitWidgets()
slider->max = 1.f;
slider->port = (i * 10) + 4 + TAPS + 2 + j;
// slider->Pad(padding, padding);
c4->children.push_back(slider);
c4->Pack(slider);
}
if (i < TAPS) {
@ -188,7 +188,7 @@ void PTapUI::InitWidgets()
c5->y = c->y + 25;
c5->w = c->w - (c5->x - c->x);
c5->h = slide_h;
c->children.push_back(c5);
c->Pack(c5);
Knob *k = new Knob();
strncpy(k->group, tmp, sizeof k->group);
@ -201,10 +201,10 @@ void PTapUI::InitWidgets()
k->max = 10.f;
k->port = (i * 10) + 4 + 9;
// k->Pad(padding, padding);
c5->children.push_back(k);
c5->Pack(k);
}
this->widget->children.push_back(c);
this->widget->Pack(c);
}
tooltip = new Label();
@ -212,7 +212,7 @@ void PTapUI::InitWidgets()
tooltip->y = 10;
tooltip->colour = Colour(1, 1, 1, 1);
tooltip->SetLabel("INIT");
this->widget->children.push_back(tooltip);
this->widget->Pack(tooltip);
}
static void *ui_thread(void *ptr)

View File

@ -109,3 +109,8 @@ Widget *Container::GetWidget(uint32_t port)
return NULL;
}
void Container::Pack(Widget *widget)
{
this->children.push_back(widget);
}

View File

@ -4,7 +4,10 @@
#include <list>
struct Container : Widget {
protected:
std::list<Widget *> children;
public:
Colour colour;
Colour frame;
bool back;
@ -16,6 +19,8 @@ struct Container : Widget {
/* virtual */ Widget *GetWidget(uint32_t port);
/* virtual */ void OnPaint(const PUi *pui) const;
/* virtual */ void Pack(Widget *widget);
};
#endif /* CONTAINER_H */