/********************************************************************
*
* Created: 23/4/2014 16:49
*
* File: fsCNotificationsGui.h
*
* Author: Mick Waites
*
* Purpose: Drop down queued notifications system
*
*********************************************************************/
#ifndef fsCNotificationsGuihdr
#define fsCNotificationsGuihdr
#include <vector>
#include <fsCore/src/fsCUniqueId.h>
#include "../../../src/fsCGraph.h"
#include "fsIGuiComponent.h"
class fsCNotificationsGui : public fsIGuiComponent
{
friend class fsCComponentFactory;
public:
static const fsCUniqueId mTypeId;
static void create();
static fsCNotificationsGui* instanceGet();
void notificationAddToQueue(const fsStr& pMessage);
protected:
void updateDo(fsS32 pDeltaMs) override;
void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
static fsIComponent* create(fsCEntity* pParent);
fsCNotificationsGui(fsCEntity* pParent);
virtual ~fsCNotificationsGui();<--- Destructor in derived class
private:
fsBool messageIsUniqueGet(const fsStr& pMessage) const;
void positionInit();
static fsCNotificationsGui* mInstance;
std::vector<fsStr> mPendingNotifications;
fsCGraph<fsF32> mPosYGraph;
fsS32 mElapsedTimeMs;
fsBool mActive;
};
#endif