/********************************************************************
*
* Created: 18/3/2014 16:13
*
* File: fsCGuiMessageDispatcher.h
*
* Author: Mick Waites
*
* Purpose: Event message dispatch system for the GUI system.
*
*********************************************************************/
#ifndef fsCGuiMessageDispatcherhdr
#define fsCGuiMessageDispatcherhdr
#include <fsCore/src/fsTSingleton.h>
#include "../fsIMessageDispatcher.h"
class fsINode;
class fsCGuiMessageDispatcher : public fsIMessageDispatcher, public fsTSingleton<fsCGuiMessageDispatcher>
{
friend class fsTSingleton<fsCGuiMessageDispatcher>;
public:
static const fsCUniqueId mTutorialButtonPressedMsg;
static const fsCUniqueId mEventCloseGuiMsg;
static const fsCUniqueId mEventLoadGuiTutorialMsg;
static const fsCUniqueId mEventLoadGuiMsg;
static const fsCUniqueId mEventLaunchBrowserMsg;
static const fsCUniqueId mEventLoadLevelMsg;
static const fsCUniqueId mEventLoadChapterMsg;
protected:
fsBool messageDispatchDo(const fsCUniqueId& pMessageType, const sMessageParameters& pParam) override;
fsCGuiMessageDispatcher();
virtual ~fsCGuiMessageDispatcher();<--- Destructor in derived class
private:
fsBool entityHasGuiComponentGet(const fsINode* pNode) const;
static void closeGuiMessageHandle(const sMessageParameters& pParam);
void loadGuiMessageHandle(const sMessageParameters& pParam) const;
void loadLevelMessageHandle(const sMessageParameters& pParam) const;
void loadChapterMessageHandle(const sMessageParameters& pParam) const;
};
#endif