aboutsummaryrefslogtreecommitdiffstats
path: root/src/menu/drawable_control.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/menu/drawable_control.cpp')
-rw-r--r--src/menu/drawable_control.cpp39
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)
{