From 6bf10c93c857d4b53eadf404da1b9b53fb4d8c93 Mon Sep 17 00:00:00 2001 From: Jan-Peter Nilsson Date: Sat, 6 Nov 2010 11:25:16 +0100 Subject: [PATCH] Create a base class for dialog windows --- apps/openmw/CMakeLists.txt | 2 ++ apps/openmw/mwgui/window_base.cpp | 25 +++++++++++++++++++++++++ apps/openmw/mwgui/window_base.hpp | 27 +++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 apps/openmw/mwgui/window_base.cpp create mode 100644 apps/openmw/mwgui/window_base.hpp diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 78477aae4c..88aaaecd48 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -45,6 +45,7 @@ set(GAMEGUI_HEADER mwgui/console.hpp mwgui/dialogue.hpp mwgui/dialogue_history.hpp + mwgui/window_base.hpp ) set(GAMEGUI mwgui/window_manager.cpp @@ -58,6 +59,7 @@ set(GAMEGUI mwgui/review.cpp mwgui/dialogue.cpp mwgui/dialogue_history.cpp + mwgui/window_base.cpp ) source_group(apps\\openmw\\mwgui FILES ${GAMEGUI_HEADER} ${GAMEGUI}) diff --git a/apps/openmw/mwgui/window_base.cpp b/apps/openmw/mwgui/window_base.cpp new file mode 100644 index 0000000000..d6c0a8bfca --- /dev/null +++ b/apps/openmw/mwgui/window_base.cpp @@ -0,0 +1,25 @@ +#include "window_base.hpp" +#include "../mwworld/environment.hpp" +#include "window_manager.hpp" + +using namespace MWGui; + +WindowBase::WindowBase(const std::string& parLayout, MWWorld::Environment& parEnvironment) + : Layout(parLayout) + , environment(parEnvironment) +{ +} + +void WindowBase::open() +{ +} + +void WindowBase::center() +{ + // Centre dialog + MyGUI::IntSize gameWindowSize = environment.mWindowManager->getGui()->getViewSize(); + MyGUI::IntCoord coord = mMainWidget->getCoord(); + coord.left = (gameWindowSize.width - coord.width)/2; + coord.top = (gameWindowSize.height - coord.height)/2; + mMainWidget->setCoord(coord); +} diff --git a/apps/openmw/mwgui/window_base.hpp b/apps/openmw/mwgui/window_base.hpp new file mode 100644 index 0000000000..931e7ece1e --- /dev/null +++ b/apps/openmw/mwgui/window_base.hpp @@ -0,0 +1,27 @@ +#ifndef MWGUI_WINDOW_BASE_H +#define MWGUI_WINDOW_BASE_H + +#include + +namespace MWWorld +{ + class Environment; +} + +namespace MWGui +{ + class WindowBase: public OEngine::GUI::Layout + { + public: + WindowBase(const std::string& parLayout, MWWorld::Environment& parEnvironment); + + virtual void open(); + void center(); + + protected: + MWWorld::Environment& environment; + }; +} + +#endif +