topical media & game development

talk show tell print

lib-game-delta3d-demos-fireFighter-helpwindow.cpp / cpp



  /*
   * Delta3D Open Source Game and Simulation Engine
   * Copyright (C) 2005, BMH Associates, Inc.
   *
   * This library is free software; you can redistribute it and/or modify it under
   * the terms of the GNU Lesser General Public License as published by the Free
   * Software Foundation; either version 2.1 of the License, or (at your option)
   * any later version.
   *
   * This library is distributed in the hope that it will be useful, but WITHOUT
   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
   * details.
   *
   * You should have received a copy of the GNU Lesser General Public License
   * along with this library; if not, write to the Free Software Foundation, Inc.,
   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
   *
   *
author: William E. Johnson II */
include <fireFighter/helpwindow.h> include <fireFighter/exception.h> //solves a problem with the prefix headers ifdef None #undef None endif include <CEGUI.h> HelpWindow::HelpWindow(CEGUI::Window* mainWindow) : mIsEnabled(false) , mOverlay(NULL) , mHeaderText(NULL) , mBinocsText(NULL) , mLRFText(NULL) , mCompassText(NULL) , mGPSText(NULL) , mToggleFullScreen(NULL) , mMagnifyModels(NULL) { mMainWindow = NULL; InitGui(mainWindow); } HelpWindow::~HelpWindow() { mOverlay->removeChildWindow(mHeaderText); mOverlay->removeChildWindow(mBinocsText); mOverlay->removeChildWindow(mLRFText); mOverlay->removeChildWindow(mCompassText); mOverlay->removeChildWindow(mGPSText); mOverlay->removeChildWindow(mToggleFullScreen); mOverlay->removeChildWindow(mMagnifyModels); if (mMainWindow != NULL) { mMainWindow->removeChildWindow(mOverlay); } mHeaderText->destroy(); mBinocsText->destroy(); mLRFText->destroy(); mCompassText->destroy(); mGPSText->destroy(); mToggleFullScreen->destroy(); mMagnifyModels->destroy(); mOverlay->destroy(); } void HelpWindow::Enable(bool enable) { mIsEnabled = enable; mIsEnabled ? mOverlay->show() : mOverlay->hide(); } void HelpWindow::InitGui(CEGUI::Window* mainWindow) { try { mMainWindow = mainWindow; CEGUI::WindowManager* wm = CEGUI::WindowManager::getSingletonPtr(); mOverlay = static_cast<CEGUI::FrameWindow*>(wm->createWindow("WindowsLook/FrameWindow", "help_window")); mOverlay->setProperty("AlwaysOnTop", "True"); if (mMainWindow != NULL) { mMainWindow->addChildWindow(mOverlay); } mHeaderText = wm->createWindow("WindowsLook/StaticText", "header_helptext"); mBinocsText = wm->createWindow("WindowsLook/StaticText", "binocs_helptext"); mLRFText = wm->createWindow("WindowsLook/StaticText", "lrf_helptext"); mCompassText = wm->createWindow("WindowsLook/StaticText", "compass_helptext"); mGPSText = wm->createWindow("WindowsLook/StaticText", "gps_helptext"); mToggleFullScreen = wm->createWindow("WindowsLook/StaticText", "fullscreen_helptext"); mMagnifyModels = wm->createWindow("WindowsLook/StaticText", "magnifiy_helptext"); mOverlay->addChildWindow(mHeaderText); mOverlay->addChildWindow(mBinocsText); mOverlay->addChildWindow(mLRFText); mOverlay->addChildWindow(mCompassText); mOverlay->addChildWindow(mGPSText); mOverlay->addChildWindow(mToggleFullScreen); mOverlay->addChildWindow(mMagnifyModels); mOverlay->setPosition(CEGUI::UVector2(cegui_reldim(0.0f), cegui_reldim(0.0f))); mOverlay->setSize(CEGUI::UVector2(cegui_reldim(1.0f), cegui_reldim(1.0f))); //mOverlay->setFrameEnabled(false); mHeaderText->setFont("DejaVuSans-10"); mHeaderText->setText("Controls"); mHeaderText->setPosition(CEGUI::UVector2(cegui_reldim(0.33f), cegui_reldim(0.0f))); mHeaderText->setSize(CEGUI::UVector2(cegui_reldim(0.8f), cegui_reldim(0.25f))); mHeaderText->setProperty("FrameEnabled", "false"); mHeaderText->setProperty("BackgroundEnabled", "false"); mHeaderText->setHorizontalAlignment(CEGUI::HA_CENTRE); mBinocsText->setFont("DejaVuSans-10"); mBinocsText->setText("WASD: Move Forward/Backward/Strafe"); mBinocsText->setPosition(CEGUI::UVector2(cegui_reldim(0.01f), cegui_reldim(0.1f))); mBinocsText->setSize(CEGUI::UVector2(cegui_reldim(0.8f), cegui_reldim(0.25f))); mBinocsText->setProperty("FrameEnabled", "false"); mBinocsText->setProperty("BackgroundEnabled", "false"); mBinocsText->setHorizontalAlignment(CEGUI::HA_LEFT); mLRFText->setFont("DejaVuSans-10"); mLRFText->setText("Mouse: Look"); mLRFText->setPosition(CEGUI::UVector2(cegui_reldim(0.01f), cegui_reldim(0.2f))); mLRFText->setSize(CEGUI::UVector2(cegui_reldim(1.0f), cegui_reldim(0.25f))); mLRFText->setProperty("FrameEnabled", "false"); mLRFText->setProperty("BackgroundEnabled", "false"); mLRFText->setHorizontalAlignment(CEGUI::HA_LEFT); mCompassText->setFont("DejaVuSans-10"); mCompassText->setText("F: Activate currently viewed item"); mCompassText->setPosition(CEGUI::UVector2(cegui_reldim(0.01f), cegui_reldim(0.3f))); mCompassText->setSize(CEGUI::UVector2(cegui_reldim(0.8f), cegui_reldim(0.25f))); mCompassText->setProperty("FrameEnabled", "false"); mCompassText->setProperty("BackgroundEnabled", "false"); mCompassText->setHorizontalAlignment(CEGUI::HA_LEFT); mGPSText->setFont("DejaVuSans-10"); mGPSText->setText("[]: Change inventory item"); mGPSText->setPosition(CEGUI::UVector2(cegui_reldim(0.01f), cegui_reldim(0.4f))); mGPSText->setSize(CEGUI::UVector2(cegui_reldim(0.8f), cegui_reldim(0.25f))); mGPSText->setProperty("FrameEnabled", "false"); mGPSText->setProperty("BackgroundEnabled", "false"); mGPSText->setHorizontalAlignment(CEGUI::HA_LEFT); mToggleFullScreen->setFont("DejaVuSans-10"); mToggleFullScreen->setText("Left Click: Use current inventory item"); mToggleFullScreen->setPosition(CEGUI::UVector2(cegui_reldim(0.01f), cegui_reldim(0.5f))); mToggleFullScreen->setSize(CEGUI::UVector2(cegui_reldim(0.8f), cegui_reldim(0.25f))); mToggleFullScreen->setProperty("FrameEnabled", "false"); mToggleFullScreen->setProperty("BackgroundEnabled", "false"); mToggleFullScreen->setHorizontalAlignment(CEGUI::HA_LEFT); mMagnifyModels->setFont("DejaVuSans-10"); mMagnifyModels->setText("Esc: Return to menu"); mMagnifyModels->setPosition(CEGUI::UVector2(cegui_reldim(0.01f), cegui_reldim(0.6f))); mMagnifyModels->setSize(CEGUI::UVector2(cegui_reldim(0.8f), cegui_reldim(0.25f))); mMagnifyModels->setProperty("FrameEnabled", "false"); mMagnifyModels->setProperty("BackgroundEnabled", "false"); mMagnifyModels->setHorizontalAlignment(CEGUI::HA_LEFT); mCloseButton = static_cast<CEGUI::PushButton*>(wm->createWindow("WindowsLook/Button", "Close Button")); mCloseButton->setText("Close"); mCloseButton->setSize(CEGUI::UVector2(cegui_reldim(0.1f), cegui_reldim(0.1f))); mCloseButton->setPosition(CEGUI::UVector2(cegui_reldim(0.0f), cegui_reldim(0.8f))); mCloseButton->setMouseCursor(NULL); mCloseButton->setHorizontalAlignment(CEGUI::HA_CENTRE); mOverlay->addChildWindow(mCloseButton); mOverlay->setDragMovingEnabled(false); mOverlay->setSizingBorderThickness(0); mOverlay->setSizingEnabled(false); Enable(false); } catch(const CEGUI::Exception& e) { std::ostringstream oss; oss << "CEGUI exception caught: " << e.getMessage().c_str(); throw dtUtil::Exception(ExceptionEnum::CEGUI_EXCEPTION, oss.str(), __FILE__, __LINE__); } }


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.