Go to the documentation of this file.00001 #ifndef __OVERLAY_HELPER_H
00002 #define __OVERLAY_HELPER_H
00003
00004 #include "DS_List.h"
00005
00006 namespace Ogre
00007 {
00008 class RenderWindow;
00009 class SceneManager;
00010 class OverlayContainer;
00011 class TextAreaOverlayElement;
00012 class BorderPanelOverlayElement;
00013 class OverlayElement;
00014 class Overlay;
00015 }
00016
00017
00018
00019 class OverlayHelper
00020 {
00021 public:
00022 OverlayHelper();
00023 ~OverlayHelper();
00024 void Startup(void);
00025 void Shutdown(void);
00026 void Update(unsigned int elapsedTimeMS);
00027
00028
00029 Ogre::Overlay* GetGlobalOverlay(void) const;
00030
00031
00032 void FadeOverlayElement(Ogre::OverlayElement* element, unsigned int totalTime, unsigned int fadeTimeMS, float finalAlpha, bool deleteAfterFade);
00033
00034
00035 Ogre::OverlayContainer* CreatePanel(const char *instanceName, bool addToGlobalOverlay=true);
00036
00037
00038 Ogre::TextAreaOverlayElement *CreateTextArea(const char *instanceName, const char *fontName, Ogre::OverlayContainer* parent);
00039
00040
00041 Ogre::BorderPanelOverlayElement *CreateBorderPanel(const char *instanceName, Ogre::OverlayContainer* parent);
00042
00043
00044
00045 void SafeDestroyOverlayElement(Ogre::OverlayElement *item);
00046
00047
00048 struct TimedOverlay
00049 {
00050 TimedOverlay();
00051 ~TimedOverlay();
00052 TimedOverlay(Ogre::OverlayElement *overlayElement, unsigned int totalTime, unsigned int fadeTimeMS, float finalAlpha, bool deleteAfterFade);
00053 Ogre::OverlayElement *overlayElement;
00054 unsigned int remainingTimeMS;
00055 unsigned int fadeTimeMS;
00056 float finalAlpha;
00057 float startFadeAlpha;
00058 bool deleteAfterFade;
00059 };
00060
00061 protected:
00062
00063
00064 DataStructures::List<TimedOverlay> timedOverlays;
00065 Ogre::Overlay* globalOverlay;
00066 unsigned int fadeTimeMSMS;
00067 };
00068
00069 #endif