diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2012-03-22 22:33:22 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-01-05 17:17:52 +0100 |
commit | 3d6a2c963c24212a0650f6dce5c1a47899f0e387 (patch) | |
tree | 5c69cee69b43c5e049a9bde34a4fd4fd77bb7b86 /src/menu/drawable_control.cpp | |
parent | 37d83729fd3bc90930c4f7a9aa2ec8fdf21b9fed (diff) | |
download | usdx-3d6a2c963c24212a0650f6dce5c1a47899f0e387.tar.gz usdx-3d6a2c963c24212a0650f6dce5c1a47899f0e387.tar.xz usdx-3d6a2c963c24212a0650f6dce5c1a47899f0e387.zip |
menu/drawable_control: added position, glTransform to position before drawing
software_mouse_pointer does not need an own position anymore and
simply draw it without position change
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) { |