1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef ENGINE_EDITOR_H
4#define ENGINE_EDITOR_H
5#include "kernel.h"
6
7class IEditor : public IInterface
8{
9 MACRO_INTERFACE("editor")
10public:
11 virtual ~IEditor() {}
12 virtual void Init() = 0;
13 virtual void OnUpdate() = 0;
14 virtual void OnRender() = 0;
15 virtual void OnActivate() = 0;
16 virtual void OnWindowResize() = 0;
17 virtual void OnClose() = 0;
18 virtual void OnDialogClose() = 0;
19 virtual bool HasUnsavedData() const = 0;
20 virtual bool HandleMapDrop(const char *pFilename, int StorageType) = 0;
21 virtual bool Load(const char *pFilename, int StorageType) = 0;
22 virtual bool Save(const char *pFilename) = 0;
23 virtual void UpdateMentions() = 0;
24 virtual void ResetMentions() = 0;
25 virtual void OnIngameMoved() = 0;
26 virtual void ResetIngameMoved() = 0;
27};
28
29extern IEditor *CreateEditor();
30#endif
31