diff options
Diffstat (limited to 'src/gui/window.cpp')
-rw-r--r-- | src/gui/window.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/gui/window.cpp b/src/gui/window.cpp index c038312c..a75dd242 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -48,6 +48,7 @@ Window::Window(std::string text) : // Add chrome chrome = new gcn::Container(); chrome->setOpaque(false); + chrome->setY(titlebarHeight); gcn::Container::add(chrome); } @@ -115,6 +116,37 @@ void Window::setDimension(const gcn::Rectangle &dimension) dimension.width, dimension.height)); } +void Window::setWidth(int width) +{ + gcn::Container::setWidth(width); + chrome->setWidth(width); +} + +void Window::setHeight(int height) +{ + gcn::Container::setHeight(height + titlebarHeight); + chrome->setHeight(height); +} + +void Window::setLocationRelativeTo(gcn::Widget* widget) +{ + int wx, wy; + int x, y; + + widget->getAbsolutePosition(wx, wy); + getAbsolutePosition(x, y); + + setPosition( + getX() + (wx + (widget->getWidth() - getWidth()) / 2 - x), + getY() + (wy + (widget->getHeight() - getHeight()) / 2 - y)); +} + +void Window::setSize(int width, int height) +{ + setWidth(width); + setHeight(height); +} + void Window::add(gcn::Widget *w) { chrome->add(w); |