66 lines
1.2 KiB
C++
66 lines
1.2 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#ifndef __NSCENE_MESSAGE__
|
|
#define __NSCENE_MESSAGE__
|
|
|
|
|
|
#include "messaging/messaging.h"
|
|
|
|
|
|
namespace GS {
|
|
namespace S3D {
|
|
class Scene;
|
|
|
|
/*
|
|
@short Scene message enum.
|
|
@author Emmanuel Julien (ejulien@gsworks.fr)
|
|
*/
|
|
enum SceneMessage
|
|
{
|
|
SceneMsg_None = 0, ///< No message.
|
|
|
|
SceneMsg_AddingItem,
|
|
SceneMsg_ItemAdded,
|
|
SceneMsg_DeletingItem,
|
|
SceneMsg_ItemDeleted,
|
|
|
|
SceneMsg_AddingGroup,
|
|
SceneMsg_GroupAdded,
|
|
SceneMsg_DeletingGroup,
|
|
SceneMsg_GroupDeleted,
|
|
|
|
SceneMsg_Clearing,
|
|
SceneMsg_Cleared,
|
|
SceneMsg_Loading,
|
|
SceneMsg_Loaded,
|
|
|
|
SceneMsg_LastMessage
|
|
};
|
|
|
|
/*
|
|
@short Scene message return value.
|
|
@author Emmanuel Julien (ejulien@gsworks.fr)
|
|
*/
|
|
enum SceneReturnValue
|
|
{
|
|
SceneReturn_Ok = 0
|
|
};
|
|
|
|
/// Scene listener.
|
|
struct SceneListener
|
|
{
|
|
virtual SceneReturnValue ProcessMessage(SceneMessage, const Scene *, const void *) = 0;
|
|
};
|
|
|
|
extern Messaging::Broadcaster <SceneMessage, SceneListener, Scene *> g_scene_messenger;
|
|
|
|
} // S3D
|
|
} // GS
|
|
|
|
|
|
#endif // __NSCENE_MESSAGE__
|