iradiant.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __QERPLUGIN_H__
00028 #define __QERPLUGIN_H__
00029
00030 #include "generic/constant.h"
00031 #include "gtkutil/accelerator.h"
00032 #include <string>
00033
00034
00035
00036
00037
00038
00039
00040 typedef struct _GtkWidget GtkWidget;
00041
00042 enum EMessageBoxType
00043 {
00044 eMB_OK, eMB_OKCANCEL, eMB_YESNO, eMB_YESNOCANCEL, eMB_NOYES,
00045 };
00046
00047 enum EMessageBoxIcon
00048 {
00049 eMB_ICONDEFAULT, eMB_ICONERROR, eMB_ICONWARNING, eMB_ICONQUESTION, eMB_ICONASTERISK,
00050 };
00051
00052 enum EMessageBoxReturn
00053 {
00054 eIDOK, eIDCANCEL, eIDYES, eIDNO,
00055 };
00056
00057
00058
00059 typedef EMessageBoxReturn (* PFN_QERAPP_MESSAGEBOX) (GtkWidget *parent, const std::string& text,
00060 const std::string& caption, EMessageBoxType type, EMessageBoxIcon icon);
00061
00062
00063
00064
00065
00066 typedef const char* (* PFN_QERAPP_FILEDIALOG) (GtkWidget *parent, bool open, const std::string& title,
00067 const std::string& path, const std::string& pattern);
00068
00069
00070
00071 template<typename Element> class BasicVector3;
00072 typedef BasicVector3<float> Vector3;
00073 typedef bool (* PFN_QERAPP_COLORDIALOG) (GtkWidget *parent, Vector3& color, const std::string& title);
00074
00075
00076
00077 typedef struct _GtkWidget GtkWidget;
00078 typedef GtkWidget* (* PFN_QERAPP_NEWIMAGE) (const std::string& filename);
00079
00080
00081
00082
00083 namespace scene
00084 {
00085 class Node;
00086 }
00087
00088 class ModuleObserver;
00089
00090 #include "signal/signalfwd.h"
00091 #include "windowobserver.h"
00092 #include "math/Vector3.h"
00093
00094 typedef SignalHandler3<const WindowVector&, ButtonIdentifier, ModifierFlags> MouseEventHandler;
00095 typedef SignalFwd<MouseEventHandler>::handler_id_type MouseEventHandlerId;
00096
00097
00098 enum EViewType
00099 {
00100 YZ = 0, XZ = 1, XY = 2
00101 };
00102
00103 typedef struct _GtkWindow GtkWindow;
00104
00105
00106
00107 struct IRadiant
00108 {
00109 INTEGER_CONSTANT(Version, 1);
00110 STRING_CONSTANT(Name, "radiant");
00111
00114 GtkWindow* (*getMainWindow) ();
00115 const std::string& (*getEnginePath) ();
00116 const std::string& (*getAppPath) ();
00117 const std::string& (*getSettingsPath) ();
00118 const std::string& (*getMapsPath) ();
00119 void (*commandInsert) (const std::string& name, const Callback& callback, const Accelerator& accelerator);
00120
00121 const std::string (*getGamePath) ();
00122 const std::string& (*getGameName) ();
00126 const std::string (*getMapName) ();
00127 scene::Node& (*getMapWorldEntity) ();
00128 float (*getGridSize) ();
00129
00130 const std::string& (*getGameDescriptionKeyValue) (const std::string& key);
00131 const std::string& (*getRequiredGameDescriptionKeyValue) (const std::string& key);
00132
00133 void (*attachGameToolsPathObserver) (ModuleObserver& observer);
00134 void (*detachGameToolsPathObserver) (ModuleObserver& observer);
00135 void (*attachEnginePathObserver) (ModuleObserver& observer);
00136 void (*detachEnginePathObserver) (ModuleObserver& observer);
00137 void (*attachGameNameObserver) (ModuleObserver& observer);
00138 void (*detachGameNameObserver) (ModuleObserver& observer);
00139 void (*attachGameModeObserver) (ModuleObserver& observer);
00140 void (*detachGameModeObserver) (ModuleObserver& observer);
00141
00142 SignalHandlerId (*XYWindowDestroyed_connect) (const SignalHandler& handler);
00143 void (*XYWindowDestroyed_disconnect) (SignalHandlerId id);
00144 MouseEventHandlerId (*XYWindowMouseDown_connect) (const MouseEventHandler& handler);
00145 void (*XYWindowMouseDown_disconnect) (MouseEventHandlerId id);
00146 EViewType (*XYWindow_getViewType) ();
00147 Vector3 (*XYWindow_windowToWorld) (const WindowVector& position);
00148 const char* (*TextureBrowser_getSelectedShader) ();
00149
00150
00151 PFN_QERAPP_MESSAGEBOX m_pfnMessageBox;
00152 PFN_QERAPP_FILEDIALOG m_pfnFileDialog;
00153 PFN_QERAPP_COLORDIALOG m_pfnColorDialog;
00154 PFN_QERAPP_NEWIMAGE m_pfnNewImage;
00155 };
00156
00157
00158 #include "modulesystem.h"
00159
00160 template<typename Type>
00161 class GlobalModule;
00162 typedef GlobalModule<IRadiant> GlobalRadiantModule;
00163
00164 template<typename Type>
00165 class GlobalModuleRef;
00166 typedef GlobalModuleRef<IRadiant> GlobalRadiantModuleRef;
00167
00168 inline IRadiant& GlobalRadiant ()
00169 {
00170 return GlobalRadiantModule::getTable();
00171 }
00172
00173 #endif