diff options
Diffstat (limited to 'src/menu/drawable_control.cpp')
-rw-r--r-- | src/menu/drawable_control.cpp | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/src/menu/drawable_control.cpp b/src/menu/drawable_control.cpp index cf44aa73..6ee5100c 100644 --- a/src/menu/drawable_control.cpp +++ b/src/menu/drawable_control.cpp @@ -35,14 +35,14 @@ namespace usdx log4cpp::Category::getInstance("usdx.menu.drawable_control"); DrawableControl::DrawableControl(Container* parent) - : Control(parent), parent(parent) + : Control(parent), position(0, 0), parent(parent) { ContainerHelper(this).add(parent); } DrawableControl::DrawableControl(Container* parent, const ContainerHelper& helper) - : Control(parent), parent(parent) + : Control(parent), position(0, 0), parent(parent) { helper.add(parent); } @@ -59,9 +59,44 @@ namespace usdx { glLoadIdentity(); + { + // position + boost::mutex::scoped_lock lock(position_mutex); + glTranslatef(position.get_x(), position.get_y(), 0.0f); + } + Drawable::repaint(); } + void DrawableControl::set_position(const Point<int>& position) + { + boost::mutex::scoped_lock lock(position_mutex); + this->position = position; + } + + void DrawableControl::set_position(int left, int top) + { + boost::mutex::scoped_lock lock(position_mutex); + this->position = Point<int>(left, top); + } + + + const Point<int>& DrawableControl::get_position(void) const + { + return position; + } + + int DrawableControl::get_left(void) const + { + return position.get_x(); + } + + int DrawableControl::get_top(void) const + { + return position.get_y(); + } + + DrawableControl::ContainerHelper::ContainerHelper(DrawableControl* self) : self(self) { |