From f9417010be39bbb83091c816f1f6235d95afa71a Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Mon, 4 Feb 2013 07:35:40 +0000 Subject: [PATCH] Don't access container's children directly --- ptap/ptapui.cpp | 24 ++++++++++++------------ pui/container.cpp | 5 +++++ pui/container.h | 5 +++++ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ptap/ptapui.cpp b/ptap/ptapui.cpp index ad4b968..3135074 100644 --- a/ptap/ptapui.cpp +++ b/ptap/ptapui.cpp @@ -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) diff --git a/pui/container.cpp b/pui/container.cpp index 1aa8fe6..e559851 100644 --- a/pui/container.cpp +++ b/pui/container.cpp @@ -109,3 +109,8 @@ Widget *Container::GetWidget(uint32_t port) return NULL; } + +void Container::Pack(Widget *widget) +{ + this->children.push_back(widget); +} diff --git a/pui/container.h b/pui/container.h index bad711b..e3a1e22 100644 --- a/pui/container.h +++ b/pui/container.h @@ -4,7 +4,10 @@ #include struct Container : Widget { +protected: std::list 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 */