Project

General

Profile

SO3Engine
SO3ObjWindowWidgetFactory.cpp
Go to the documentation of this file.
1/*
2-----------------------------------------------------------------------------
3This source file is part of OpenSpace3D
4For the latest info, see http://www.openspace3d.com
5
6Copyright (c) 2012 I-maginer
7
8This program is free software; you can redistribute it and/or modify it under
9the terms of the GNU Lesser General Public License as published by the Free Software
10Foundation; either version 2 of the License, or (at your option) any later
11version.
12
13This program is distributed in the hope that it will be useful, but WITHOUT
14ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16
17You should have received a copy of the GNU Lesser General Public License along with
18this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20http://www.gnu.org/copyleft/lesser.txt
21
22-----------------------------------------------------------------------------
23*/
24
33
34namespace SO3
35{
36
38{
39 Ogre::Root::getSingleton().addFrameListener(this);
40}
41
43{
44 Ogre::Root::getSingleton().removeFrameListener(this);
45}
46
47SWidget* SObjWindowWidgetFactory::CreateWidgetImpl(SScene* targetScene, const std::string& widgetName, const int& xPos, const int& yPos, const unsigned short& width, const unsigned short& height, SViewPort* targetViewport, const unsigned int& widgetZOrder)
48{
49 SObjWindowWidget* objWindowWidget = new SObjWindowWidget(targetScene, widgetName, xPos, yPos, width, height, targetViewport, widgetZOrder);
50 objWindowWidgetList.insert(objWindowWidget);
51 return objWindowWidget;
52}
53
54SWidget* SObjWindowWidgetFactory::CreateWidgetImpl(SScene* targetScene, const std::string& widgetName, const int& xPos, const int& yPos, const unsigned short& width, const unsigned short& height, SViewPort* targetViewport)
55{
56 SObjWindowWidget* objWindowWidget = new SObjWindowWidget(targetScene, widgetName, xPos, yPos, width, height, targetViewport);
57 objWindowWidgetList.insert(objWindowWidget);
58 return objWindowWidget;
59}
60
61SWidget* SObjWindowWidgetFactory::CreateWidgetImpl(SScene* targetScene, const std::string& widgetName, const unsigned short& width, const unsigned short& height, SMaterial* targetMaterial, const unsigned short& targetTechnique, const unsigned short& targetPass, const unsigned short& targetTextureUnit)
62{
63 SObjWindowWidget* objWindowWidget = new SObjWindowWidget(targetScene, widgetName, width, height, targetMaterial, targetTechnique, targetPass, targetTextureUnit);
64 objWindowWidgetList.insert(objWindowWidget);
65 return objWindowWidget;
66}
67
69{
70 if(existingWidget)
71 {
72 ObjWindowWidgetList::iterator iSearchedObjWindowWidget = objWindowWidgetList.find(static_cast<SObjWindowWidget*>(existingWidget));
73 objWindowWidgetList.erase(iSearchedObjWindowWidget);
74 delete(existingWidget);
75 existingWidget = 0;
76 }
77}
78
79bool SObjWindowWidgetFactory::frameStarted(const Ogre::FrameEvent& evt)
80{
81 // Update all managed widgets
82 ObjWindowWidgetList::iterator iObjWindowWidgetList = objWindowWidgetList.begin();
83 while(iObjWindowWidgetList != objWindowWidgetList.end())
84 {
85 (*iObjWindowWidgetList)->Update();
86 iObjWindowWidgetList++;
87 }
88 return true;
89}
90
91}
virtual void DeleteWidgetImpl(SWidget *existingWidget)
virtual SWidget * CreateWidgetImpl(SScene *targetScene, const std::string &widgetName, const int &xPos, const int &yPos, const unsigned short &width, const unsigned short &height, SViewPort *targetViewport, const unsigned int &widgetZOrder)
virtual bool frameStarted(const Ogre::FrameEvent &evt)