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

View File

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

View File

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