From 75668f13e61ef137d1835b3d60e6de9a7a9ecb42 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sun, 19 Dec 2004 00:06:24 +0000 Subject: Implemented setLocationRelativeTo method on Window allowing the dialogs to be centered on screen. --- src/gui/window.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/gui/window.cpp') 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); -- cgit v1.2.3-70-g09d2