diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-10-02 13:38:27 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-10-02 13:38:27 +0000 |
commit | 4df1759a3636108839f9533268c8ce1b7156e132 (patch) | |
tree | c8ce12529845eecb930907829ca1ad3805f79628 /src/gui | |
parent | fcaec2c34641a5dc3da7423e81ad7b1415fe078d (diff) | |
download | mana-4df1759a3636108839f9533268c8ce1b7156e132.tar.gz mana-4df1759a3636108839f9533268c8ce1b7156e132.tar.bz2 mana-4df1759a3636108839f9533268c8ce1b7156e132.tar.xz mana-4df1759a3636108839f9533268c8ce1b7156e132.zip |
Added check for pthread library (needed for FreeBSD, still needs to be checked
on MacOS X) and some cleanups.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/window.cpp | 75 | ||||
-rw-r--r-- | src/gui/window.h | 34 |
2 files changed, 54 insertions, 55 deletions
diff --git a/src/gui/window.cpp b/src/gui/window.cpp index 5b125bd2..2f288fff 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -130,14 +130,16 @@ Window::Window(const std::string& caption, bool modal, Window *parent): Window::~Window() { logger->log("Window::~Window(\"%s\")", getCaption().c_str()); + const std::string &name = mWindowName; // Saving X, Y and Width and Height for resizables in the config - config.setValue(std::string(getWindowName() + "WinX"), getX()); - config.setValue(std::string(getWindowName() + "WinY"), getY()); - if ( resizable ) + config.setValue(name + "WinX", getX()); + config.setValue(name + "WinY", getY()); + + if (resizable) { - config.setValue(std::string(getWindowName() + "WinWidth"), getWidth()); - config.setValue(std::string(getWindowName() + "WinHeight"), getHeight()); + config.setValue(name + "WinWidth", getWidth()); + config.setValue(name + "WinHeight", getHeight()); } instances--; @@ -212,9 +214,8 @@ void Window::setLocationRelativeTo(gcn::Widget* widget) widget->getAbsolutePosition(wx, wy); getAbsolutePosition(x, y); - setPosition( - getX() + (wx + (widget->getWidth() - getWidth()) / 2 - x), - getY() + (wy + (widget->getHeight() - getHeight()) / 2 - y)); + setPosition(getX() + (wx + (widget->getWidth() - getWidth()) / 2 - x), + getY() + (wy + (widget->getHeight() - getHeight()) / 2 - y)); } void Window::setContentSize(int width, int height) @@ -281,15 +282,14 @@ void Window::mousePress(int x, int y, int button) // If the mouse is not inside the content, the press must have been on the // border, and is a candidate for a resize. if (isResizable() && button == 1 && - getGripDimension().isPointInRect(x, y) && - !getContentDimension().isPointInRect(x, y) && - hasMouse() && - !(mMouseDrag && y > (int)getPadding())) + getGripDimension().isPointInRect(x, y) && + !getContentDimension().isPointInRect(x, y) && + hasMouse() && + !(mMouseDrag && y > (int)getPadding())) { mMouseResize = true; mMouseXOffset = x; mMouseYOffset = y; - } } @@ -410,31 +410,26 @@ void Window::mouseRelease(int x, int y, int button) } } -gcn::Rectangle Window::getGripDimension () +gcn::Rectangle Window::getGripDimension() { - return gcn::Rectangle(getWidth() - resizeGrip->getWidth(), getHeight() - resizeGrip->getHeight(), getWidth(), + return gcn::Rectangle(getWidth() - resizeGrip->getWidth(), + getHeight() - resizeGrip->getHeight(), + getWidth(), getHeight()); } -void Window::setWindowName(std::string name) -{ - mWindowName = name; -} - -std::string Window::getWindowName() -{ - return mWindowName; -} - void Window::loadWindowState() { - setPosition((int)config.getValue(std::string(getWindowName() + "WinX"), getX()), - (int)config.getValue(std::string(getWindowName() + "WinY"), getY()) ); + const std::string &name = mWindowName; + + setPosition((int)config.getValue(name + "WinX", getX()), + (int)config.getValue(name + "WinY", getY())); - if ( resizable ) + if (resizable) { - setWidth((int)config.getValue(std::string(getWindowName() + "WinWidth"), getWidth()) ); - setHeight((int)config.getValue(std::string(getWindowName() + "WinHeight"), getHeight()) ); + setWidth((int)config.getValue(name + "WinWidth", getWidth())); + setHeight((int)config.getValue(name + "WinHeight", getHeight())); + if (mContent != NULL) { mContent->setDimension(getContentDimension()); @@ -442,21 +437,23 @@ void Window::loadWindowState() } } -void Window::setDefaultSize(int defaultX, int defaultY, int defaultWidth, int defaultHeight) +void Window::setDefaultSize(int defaultX, int defaultY, + int defaultWidth, int defaultHeight) { - this->defaultX = defaultX; - this->defaultY = defaultY; - this->defaultWidth = defaultWidth; - this->defaultHeight = defaultHeight; + mDefaultX = defaultX; + mDefaultY = defaultY; + mDefaultWidth = defaultWidth; + mDefaultHeight = defaultHeight; - setPosition(defaultX, defaultY); - setContentSize(defaultWidth, defaultHeight); + setPosition(mDefaultX, mDefaultY); + setContentSize(mDefaultWidth, mDefaultHeight); } void Window::resetToDefaultSize() { - setPosition(defaultX, defaultY); - setContentSize(defaultWidth, defaultHeight); + setPosition(mDefaultX, mDefaultY); + setContentSize(mDefaultWidth, mDefaultHeight); + if (mContent != NULL) { mContent->setDimension(getContentDimension()); diff --git a/src/gui/window.h b/src/gui/window.h index c1027518..66330350 100644 --- a/src/gui/window.h +++ b/src/gui/window.h @@ -147,31 +147,33 @@ class Window : public gcn::Window void scheduleDelete(); /** - * Window dragging and resizing mouse related. These methods also makes sure the - * window is not dragged/resized outside of the screen. + * Window dragging and resizing mouse related. These methods also makes + * sure the window is not dragged/resized outside of the screen. */ void mousePress(int x, int y, int button); void mouseMotion(int mx, int my); void mouseRelease(int x, int y, int button); /** - * The position of the resize grip + * Gets the position of the resize grip. */ gcn::Rectangle getGripDimension(); /** - * set Window internal name + * Sets the name of the window. This is not the window title. */ - void setWindowName(std::string name); + void + setWindowName(const std::string &name) { mWindowName = name; } /** - * Get window internal name + * Returns the name of the window. This is not the window title. */ - std::string getWindowName(); + const std::string& + getWindowName() { return mWindowName; } /** - * Read the X, Y, and Width and Height for resizables - * in the config based on its internal name. + * Read the x, y, and width and height for resizables in the config + * based on the name of the window. * That function let the values set with set{X, Y, Height, width}() * if no config value is found. * Don't forget to set these default values and resizable before @@ -184,7 +186,7 @@ class Window : public gcn::Window * (which can be different of the actual ones.) */ virtual void setDefaultSize(int defaultX, int defaultY, - int defaultWidth, int defaultHeight); + int defaultWidth, int defaultHeight); /** * Reset the win pos and size to default. @@ -195,20 +197,20 @@ class Window : public gcn::Window protected: gcn::Container *chrome; /**< Contained container */ Window *parent; /**< The parent window */ - std::string mWindowName; /**< Window internal name */ + std::string mWindowName; /**< Name of the window */ int snapSize; /**< Snap distance to window edge */ bool title; /**< Window has a title bar */ bool modal; /**< Window is modal */ bool resizable; /**< Window can be resized */ - bool mMouseResize; /**< Window is being resized */ - int minWinWidth; /**< Minimum window width */ int minWinHeight; /**< Minimum window height */ int maxWinWidth; /**< Maximum window width */ int maxWinHeight; /**< Maximum window height */ - int defaultX, defaultY; /**< Default Win Pos and size */ - int defaultWidth, defaultHeight; + int mDefaultX; /**< Default window X position */ + int mDefaultY; /**< Default window Y position */ + int mDefaultWidth; /**< Default window width */ + int mDefaultHeight; /**< Default window height */ /** The window container windows add themselves to. */ static WindowContainer* windowContainer; @@ -221,7 +223,7 @@ class Window : public gcn::Window static int instances; /**< Number of Window instances */ static ImageRect border; /**< The window border and background */ - static Image *resizeGrip; /**< The grip to resize window */ + static Image *resizeGrip; /**< The grip to resize window */ }; #endif |