-/*\r
-Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
-For a list of contributors, see the accompanying CONTRIBUTORS file.\r
-\r
-This file is part of GtkRadiant.\r
-\r
-GtkRadiant is free software; you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation; either version 2 of the License, or\r
-(at your option) any later version.\r
-\r
-GtkRadiant is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
-GNU General Public License for more details.\r
-\r
-You should have received a copy of the GNU General Public License\r
-along with GtkRadiant; if not, write to the Free Software\r
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\r
-*/\r
-\r
-#ifndef _MAINFRAME_H_\r
-#define _MAINFRAME_H_\r
-\r
-#include "xywindow.h"\r
-#include "texwindow.h"\r
-#include "zwindow.h"\r
-#include "camwindow.h"\r
-#include "watchbsp.h"\r
-\r
-#include "pluginmanager.h"\r
-#include "plugin.h"\r
-\r
-#include "gtkr_vector.h"\r
-\r
-#ifdef __APPLE__\r
-#define __toascii(c) ((c) & 0x7f) \r
-#endif\r
-\r
-const int RAD_SHIFT = 0x01;\r
-const int RAD_ALT = 0x02;\r
-const int RAD_CONTROL = 0x04;\r
-const int RAD_PRESS = 0x08;\r
-\r
-struct SCommandInfo\r
-{\r
- char* m_strCommand;\r
- unsigned int m_nKey;\r
- unsigned int m_nModifiers;\r
- unsigned int m_nCommand;\r
- char* m_strMenu;\r
-};\r
-\r
-struct SKeyInfo\r
-{\r
- char* m_strName;\r
- unsigned int m_nVKKey;\r
-};\r
-\r
-#define ID_FILE_NEW 0xE100\r
-#define ID_FILE_OPEN 0xE101\r
-#define ID_FILE_SAVE 0xE103\r
-#define ID_EDIT_UNDO 0xE12B\r
-#define ID_EDIT_REDO 0xE12C\r
-#define ID_HELP 0xE146\r
-#define ID_FILE_RECENT1 0xE110\r
-#define ID_FILE_RECENT2 0xE111\r
-#define ID_FILE_RECENT3 0xE112\r
-#define ID_FILE_RECENT4 0xE113\r
-\r
-#define IDC_BTN_FACEFIT 1143\r
-#define ID_ENTITY_START 22800\r
-#define ID_ENTITY_END 32000 //leo\r
-//#define ID_ENTITY_END 33500\r
-#define ID_VIEW_XY 32772\r
-#define ID_VIEW_SIDE 32773\r
-#define ID_VIEW_FRONT 32774\r
-#define ID_CAMERATOGGLE 32775\r
-#define ID_VIEW_CAMERATOGGLE 32776\r
-#define ID_BUTTON32777 32777\r
-#define ID_BUTTON32778 32778\r
-#define ID_TEXTURES_POPUP 32780\r
-#define ID_POPUP_SELECTION 32782\r
-#define ID_VIEW_CHANGE 32783\r
-#define ID_VIEW_CAMERAUPDATE 32784\r
-#define ID_VIEW_CLIPPER 32785\r
-#define ID_PREFS 32786\r
-#define ID_TOGGLE_LOCK 32787\r
-#define ID_EDIT_MAPINFO 32788\r
-#define ID_EDIT_ENTITYINFO 32789\r
-#define ID_BRUSH_SCRIPTS 32790\r
-#define ID_VIEW_NEXTVIEW 32791\r
-#define ID_HELP_COMMANDLIST 32792\r
-#define ID_FILE_NEWPROJECT 32793\r
-#define ID_SNAPTOGRID 32795\r
-#define ID_VIEW_CENTERVIEW 32796\r
-#define ID_SPLIT_SELECTED 32823\r
-#define ID_CLIP_SELECTED 32824\r
-#define ID_FLIP_CLIP 32825\r
-#define ID_TOGGLEVIEW_YZ 32831\r
-#define ID_TOGGLEVIEW_XZ 32832\r
-#define ID_COLORS_GRIDTEXT 32833\r
-#define ID_COLORS_BRUSH 32834\r
-#define ID_COLORS_SELECTEDBRUSH 32835\r
-#define ID_COLORS_CLIPPER 32836\r
-#define ID_COLORS_GRIDBLOCK 32837\r
-#define ID_COLORS_VIEWNAME 32838\r
-#define ID_COLOR_SETORIGINAL 32839\r
-#define ID_COLOR_SETQER 32840\r
-#define ID_COLOR_SETBLACK 32841\r
-#define ID_COLOR_SETYDNAR 37001 /* ydnar */\r
-#define ID_BYEBYE 32842\r
-#define ID_SELECT_SCALE 32843\r
-#define ID_SELECT_MOUSEROTATE 32844\r
-#define ID_COLORS_SELECTEDBRUSH3D 32845\r
-#define ID_COLORS_CAMERABACK 32846\r
-#define ID_TEXTURE_REPLACESELECTED 32859\r
-#define ID_TEXTURE_REPLACEALL 32860\r
-#define ID_SELECT_MOUSESCALE 32866\r
-#define ID_SCALELOCKX 32867\r
-#define ID_SCALELOCKY 32868\r
-#define ID_SCALELOCKZ 32869\r
-#define ID_VIEW_CUBICCLIPPING 32870\r
-#define ID_FILE_PROJECTSETTINGS 32875\r
-#define ID_VIEW_CUBEOUT 32876\r
-#define ID_VIEW_CUBEIN 32877\r
-#define ID_NODES_LOADNODES 32878\r
-#define ID_NODES_SHOWNODES 32879\r
-#define ID_NODES_SHOWLINKS 32880\r
-#define ID_NODES_REMOVEALLNODES 32881\r
-#define ID_NODES_COUNTNODES 32882\r
-#define ID_NODES_GIVEMONEYTONELNO 32883\r
-#define ID_FILE_SAVEREGION 32887\r
-#define ID_FILE_LOADREGION 32888\r
-#define ID_SELECTION_MOVEDOWN 32890\r
-#define ID_TOOLBAR_MAIN 32891\r
-#define ID_SELECTION_MOVEUP 32892\r
-//#define ID_TOOLBAR_TEXTURE 32892\r
-#define ID_BRUSH_MAKECONE 32896\r
-#define ID_TEXTURES_LOAD 32897\r
-#define ID_TOGGLE_ROTATELOCK 32898\r
-#define ID_FILE_IMPORTMAP 32911\r
-#define ID_FILE_EXPORTMAP 32912\r
-#define ID_EDIT_LOADPREFAB 32913\r
-#define ID_SELECTION_SELECT_NUDGELEFT 32916\r
-#define ID_SELECTION_SELECT_NUDGERIGHT 32917\r
-#define ID_SELECTION_SELECT_NUDGEUP 32918\r
-#define ID_SELECTION_SELECT_NUDGEDOWN 32919\r
-#define ID_TEXTURES_LOADLIST 32920\r
-#define ID_DONTSELECTCURVE 32923\r
-#define ID_CONVERTCURVES 32924\r
-#define ID_PATCH_SHOWBOUNDINGBOX 32926\r
-#define ID_CURVE_SIMPLEPATCHMESH 32927\r
-#define ID_PATCH_WIREFRAME 32928\r
-#define ID_PATCH_WELD 32929\r
-#define ID_CURVE_PATCHTUBE 32930\r
-#define ID_CURVE_PATCHCONE 32931\r
-#define ID_CURVE_PATCHENDCAP 32932\r
-#define ID_CURVE_PATCHBEVEL 32933\r
-#define ID_PATCH_DRILLDOWN 32936\r
-#define ID_CURVE_LOADPATCHFILE 32937\r
-#define ID_CURVE_INSERTROW 32938\r
-#define ID_CURVE_INSERTCOLUMN 32939\r
-#define ID_CURVE_DELETEROW 32940\r
-#define ID_CURVE_DELETECOLUMN 32941\r
-#define ID_BUTTON32942 32942\r
-//#define ID_PATCH_INSDEL 32942\r
-#define ID_CURVE_INSERT_ADDCOLUMN 32943\r
-#define ID_CURVE_INSERT_INSERTCOLUMN 32944\r
-#define ID_CURVE_INSERT_ADDROW 32945\r
-#define ID_CURVE_INSERT_INSERTROW 32946\r
-#define ID_CURVE_DELETE_FIRSTCOLUMN 32947\r
-#define ID_CURVE_DELETE_LASTCOLUMN 32948\r
-#define ID_CURVE_DELETE_FIRSTROW 32949\r
-#define ID_CURVE_DELETE_LASTROW 32950\r
-#define ID_CURVE_NEGATIVE 32951\r
-#define ID_PATCH_BEND 32952\r
-#define ID_CURVE_PATCHDENSETUBE 32955\r
-#define ID_CURVE_PATCHVERYDENSETUBE 32956\r
-#define ID_CURVE_CAP 32957\r
-#define ID_CURVE_REDISPERSE_ROWS 32961\r
-#define ID_PATCH_NATURALIZE 32963\r
-#define ID_CURVE_PATCHSQUARE 32964\r
-#define ID_BRUSH_PRIMITIVES_SPHERE 32965\r
-#define ID_BRUSH_PRIMITIVES_TORUS 32966\r
-#define ID_TEXTURES_TEXTUREWINDOWSCALE_200 32967\r
-#define ID_TEXTURES_TEXTUREWINDOWSCALE_100 32968\r
-#define ID_TEXTURES_TEXTUREWINDOWSCALE_50 32969\r
-#define ID_TEXTURES_TEXTUREWINDOWSCALE_25 32970\r
-#define ID_TEXTURES_TEXTUREWINDOWSCALE_10 32971\r
-#define ID_CURVE_NEGATIVETEXTUREX 32972\r
-#define ID_TEXTURES_FLUSH 32973\r
-#define ID_CURVE_OVERLAY_SET 32974\r
-#define ID_CURVE_OVERLAY_CLEAR 32975\r
-#define ID_CURVE_NEGATIVETEXTUREY 32976\r
-#define ID_CURVE_THICKEN 32977\r
-#define ID_CURVE_CYCLECAP 32978\r
-#define ID_CURVE_MATRIX_TRANSPOSE 32981\r
-#define ID_PLUGINS_REFRESH 32982\r
-#define ID_TEXTURES_RELOADSHADERS 32983\r
-#define ID_VIEW_ENTITIESAS_BOUNDINGBOX 32984\r
-#define ID_VIEW_ENTITIESAS_WRITEFRAME 32985\r
-#define ID_VIEW_ENTITIESAS_SELECTEDWIREFRAME 32986\r
-#define ID_VIEW_ENTITIESAS_SELECTEDSKINNED 32987\r
-#define ID_VIEW_ENTITIESAS_SKINNED 32988\r
-#define ID_VIEW_ENTITIESAS_SKINNEDANDBOXED 32989\r
-#define ID_SHOW_ENTITIES 32990\r
-#define ID_VIEW_ENTITIESAS_WIREFRAME 32991\r
-#define ID_VIEW_OPENGLLIGHTING 32998\r
-#define ID_EDIT_SAVEPREFAB 33001\r
-#define ID_CURVE_MOREENDCAPSBEVELS_SQUAREENDCAP 33002\r
-#define ID_CURVE_MOREENDCAPSBEVELS_SQUAREBEVEL 33003\r
-#define ID_CURVE_PRIMITIVES_SPHERE 33005\r
-#define ID_VIEW_HIDESHOW_HIDESELECTED 33006\r
-#define ID_VIEW_HIDESHOW_SHOWHIDDEN 33007\r
-#define ID_TEXTURES_SHADERS_SHOW 33008\r
-//#define ID_SELECTION_CSGADD 33009\r
-#define ID_SELECTION_CSGMERGE 33011\r
-#define ID_TEXTURES_FLUSH_UNUSED 33014\r
-#define ID_DROP_GROUP_REMOVE 33016\r
-#define ID_DROP_GROUP_ADDTO_WORLD 33017\r
-#define ID_DROP_GROUP_NEWGROUP 33018\r
-#define ID_DROP_GROUP_NAME 33019\r
-#define ID_DROP_GROUP_ADDTO 33020\r
-#define ID_VIEW_SHOWANGLES 33021\r
-#define ID_VIEW_SHOWWORKZONE 33022\r
-#define ID_TEXTURE_FLUSH 33023\r
-#define ID_TEXTURES_SHOWSHADERS 33025\r
-#define ID_DONTSELECTMODEL 33027\r
-#define ID_TEXTURES_SHADERLISTONLY 33030\r
-#define ID_PLUGIN_START 33800\r
-#define ID_PLUGIN_END 33999\r
-#define ID_FILE_EXIT 40002\r
-#define ID_FILE_SAVEAS 40004\r
-#define ID_VIEW_CENTER 40005\r
-#define ID_VIEW_UPFLOOR 40006\r
-#define ID_VIEW_DOWNFLOOR 40007\r
-#define ID_BRUSH_FLIPX 40008\r
-#define ID_BRUSH_FLIPY 40009\r
-#define ID_BRUSH_FLIPZ 40010\r
-#define ID_BRUSH_ROTATEX 40011\r
-#define ID_BRUSH_ROTATEY 40012\r
-#define ID_BRUSH_ROTATEZ 40013\r
-#define ID_BSP_FULLVIS 40016\r
-#define ID_BSP_FASTVIS 40017\r
-#define ID_BSP_NOVIS 40018\r
-#define ID_BSP_RELIGHT 40019\r
-#define ID_BSP_ENTITIES 40020\r
-#define ID_FILE_POINTFILE 40021\r
-#define ID_VIEW_100 40022\r
-#define ID_VIEW_75 40023\r
-#define ID_VIEW_50 40024\r
-#define ID_VIEW_25 40025\r
-#define ID_VIEW_12 40026\r
-#define ID_TEXTURES_SHOWALL 40033\r
-#define ID_TEXTURES_SHOWINUSE 40034\r
-#define ID_TEXTURES_TOGGLEVIEW 40037\r
-#define ID_SELECTION_CREATEENTITY 40039\r
-#define ID_SELECTION_EDITENTITY 40040\r
-#define ID_MISC_BENCHMARK 40041\r
-#define ID_REGION_OFF 40043\r
-#define ID_REGION_SETXY 40044\r
-#define ID_REGION_SETBRUSH 40045\r
-#define ID_SELECTION_MAKEHOLLOW 40046\r
-#define ID_SELECTION_SELECTPARTIALTALL 40047\r
-#define ID_SELECTION_SELECTCOMPLETETALL 40048\r
-#define ID_SELECTION_CSGSUBTRACT 40049\r
-#define ID_SELECTION_SELECTTOUCHING 40050\r
-#define ID_VIEW_NEAREST 40052\r
-#define ID_VIEW_NEARESTMIPMAP 40053\r
-#define ID_VIEW_LINEAR 40054\r
-#define ID_VIEW_BILINEAR 40055\r
-#define ID_VIEW_BILINEARMIPMAP 40056\r
-#define ID_VIEW_TRILINEAR 40057\r
-#define ID_TEXTURES_WIREFRAME 40058\r
-#define ID_TEXTURES_FLATSHADE 40059\r
-#define ID_VIEW_SHOWNAMES 40060\r
-#define ID_VIEW_ZOOMIN 40061\r
-#define ID_VIEW_ZOOMOUT 40062\r
-#define ID_VIEW_SHOWCOORDINATES 40063\r
-#define ID_VIEW_Z100 40064\r
-#define ID_VIEW_ZZOOMIN 40065\r
-#define ID_VIEW_ZZOOMOUT 40066\r
-#define ID_SELECTION_CLONE 40067\r
-#define ID_SELECTION_DESELECT 40068\r
-#define ID_SELECTION_DELETE 40069\r
-#define ID_BUTTON40068 40070\r
-#define ID_SELECTION_DRAGVERTECIES 40074\r
-#define ID_SELECTION_DRAGEDGES 40075\r
-#define ID_REGION_SETTALLBRUSH 40076\r
-#define ID_SELECTION_SELECTINSIDE 40092\r
-#define ID_PROJECT_RELEAD 40094\r
-#define ID_PROJECT_CHANGE 40095\r
-#define ID_MISC_GAMMA 40097\r
-#define ID_MISC_TEXTUREBACKGROUN 40104\r
-#define ID_TEXTUREBK 40105\r
-#define ID_COLORS_XYBK 40106\r
-#define ID_FILE_ABOUT 40107\r
-#define ID_VIEW_CONSOLE 40108\r
-#define ID_VIEW_ENTITY 40109\r
-#define ID_VIEW_TEXTURE 40110\r
-#define ID_COLORS_MAJOR 40111\r
-#define ID_COLORS_MINOR 40113\r
-#define ID_SELECTION_CONNECT 40114\r
-#define ID_FILE_LOADPROJECT 40115\r
-#define ID_MISC_FINDBRUSH 40116\r
-#define ID_MISC_NEXTLEAKSPOT 40117\r
-#define ID_MISC_PREVIOUSLEAKSPOT 40118\r
-#define ID_BRUSH_3SIDED 40119\r
-#define ID_BRUSH_4SIDED 40120\r
-#define ID_BRUSH_5SIDED 40121\r
-#define ID_BRUSH_6SIDED 40122\r
-#define ID_BRUSH_7SIDED 40123\r
-#define ID_BRUSH_8SIDED 40124\r
-#define ID_BRUSH_9SIDED 40125\r
-#define ID_SELECTION_ARBITRARYROTATION 40126\r
-#define ID_BRUSH_ARBITRARYSIDED 40127\r
-#define ID_SELECTION_UNGROUPENTITY 40130\r
-#define ID_MISC_SELECTENTITYCOLOR 40131\r
-#define ID_MISC_PRINTXY 40132\r
-#define ID_HELP_ABOUT 40134\r
-#define ID_EDIT_COPYBRUSH 40135\r
-#define ID_EDIT_PASTEBRUSH 40136\r
-#define ID_TEXTURES_INSPECTOR 40137\r
-#define ID_SELECTION_MAKE_DETAIL 40139\r
-#define ID_SELECTION_MAKE_STRUCTURAL 40140\r
-#define ID_REGION_SETSELECTION 40141\r
-#define ID_VIEW_SHOWBLOCKS 40142\r
-#define ID_CAMERA_UP 40152\r
-#define ID_CAMERA_DOWN 40153\r
-#define ID_CAMERA_LEFT 40154\r
-#define ID_CAMERA_RIGHT 40155\r
-#define ID_CAMERA_FORWARD 40156\r
-#define ID_CAMERA_BACK 40157\r
-#define ID_CAMERA_ANGLEUP 40158\r
-#define ID_CAMERA_ANGLEDOWN 40159\r
-#define ID_CAMERA_STRAFELEFT 40160\r
-#define ID_CAMERA_STRAFERIGHT 40161\r
-#define ID_GRID_TOGGLE 40162\r
-#define ID_ENTITYLIST 40163\r
-#define ID_MAPINFO 40164\r
-#define ID_TOGGLECONSOLE 40165\r
-#define ID_TOGGLECAMERA 40166\r
-#define ID_TOGGLEZ 40167\r
-#define ID_TOGGLEVIEW 40168\r
-#define ID_SELECTION_TEXTURE_FIT 40171\r
-#define ID_SELECTION_TEXTURE_ROTATECLOCK 40172\r
-#define ID_SELECTION_TEXTURE_ROTATECOUNTER 40173\r
-#define ID_SELECTION_TEXTURE_SCALEUP 40174\r
-#define ID_SELECTION_TEXTURE_SCALEDOWN 40175\r
-#define ID_SELECTION_TEXTURE_SHIFTLEFT 40176\r
-#define ID_SELECTION_TEXTURE_SHIFTRIGHT 40177\r
-#define ID_SELECTION_TEXTURE_SHIFTUP 40178\r
-#define ID_SELECTION_TEXTURE_SHIFTDOWN 40179\r
-#define ID_GRID_NEXT 40180\r
-#define ID_GRID_PREV 40181\r
-#define ID_SELECTION_TEXTURE_SCALELEFT 40182\r
-#define ID_SELECTION_TEXTURE_SCALERIGHT 40183\r
-#define ID_SELECTION_PRINT 40184\r
-#define ID_SELECTION_TOGGLESIZEPAINT 40185\r
-#define ID_PATCH_TAB 40186\r
-#define ID_PATCH_ENTER 40187\r
-#define ID_SELECT_SNAPTOGRID 40188\r
-#define ID_PATCH_INSPECTOR 40189\r
-#define ID_SELECT_ALL 40190\r
-#define ID_CURVE_FREEZE 40191\r
-#define ID_CURVE_UNFREEZE 40192\r
-#define ID_CURVE_UNFREEZEALL 40193\r
-#define ID_SELECT_RESELECT 40194\r
-#define ID_FITFACE 40196\r
-#define ID_VIEW_CROSSHAIR 40197\r
-#define ID_SELECTION_INVERT 40198\r
-#define ID_VIEW_GROUPS 40199\r
-#define ID_FILE_SLEEP 40200\r
-#define ID_HELP_LINKS 40201\r
-#define ID_VIEW_SHOWOUTLINE 40202 // TTimo: outline as in colored outline around the window to quickly guess the orientation\r
-#define ID_VIEW_SHOWAXES 40203\r
-#define ID_SELECTION_NOOUTLINE 40204 // TTimo: outline as in zbuffered outline toggle on camera view (TA Q3Radiant 200f addition)\r
-#define ID_SELECTION_OUTLINESTYLE 40205 // Arnout: cycles through selection styles (extended 'nooutline')\r
-#define ID_SELECTION_SEPERATE 40206 // TTimo: split brushes out of an entity back into worldspawn\r
-#define ID_SELECTION_MERGE 40207 // TTimo: merge brushes from worldspawn into entity\r
-#define ID_HELP_BUGREPORT 40208\r
-\r
-#define ID_FILTER_WORLD 40209\r
-#define ID_FILTER_PATCHES 40210\r
-#define ID_FILTER_DETAILS 40211\r
-#define ID_FILTER_ENTITIES 40212\r
-#define ID_FILTER_MODELS 40213\r
-#define ID_FILTER_HINTSSKIPS 40214\r
-#define ID_FILTER_CLIPS 40215\r
-#define ID_FILTER_LIQUIDS 40216\r
-#define ID_FILTER_TRIGGERS 40217\r
-#define ID_FILTER_AREAPORTALS 40218\r
-#define ID_FILTER_TRANSLUCENT 40219\r
-#define ID_FILTER_CAULK 40220\r
-#define ID_FILTER_LIGHTS 40221\r
-#define ID_FILTER_PATHS 40223\r
-#define ID_FILTER_CLUSTERPORTALS 40224\r
-#define ID_FILTER_LIGHTGRID 40225\r
-#define ID_FILTER_STRUCTURAL 40226\r
-#define ID_FILTER_BOTCLIPS 40227\r
-\r
-#define ID_CURVE_REDISPERSE_INTERMEDIATE_COLS 40230\r
-#define ID_CURVE_REDISPERSE_INTERMEDIATE_ROWS 40231\r
-#define ID_EDIT_PASTEBRUSHTOCAMERA 40232\r
-\r
-#define ID_COLORS_MINOR_ALT 40230\r
-#define ID_COLORS_MAJOR_ALT 40231\r
-\r
-// those must have their own ID chunk ID_GRID_025 <= ID_GRID <= ID_GRID_256\r
-#define ID_GRID_025 40300\r
-#define ID_GRID_05 40301\r
-#define ID_GRID_1 40302\r
-#define ID_GRID_2 40303\r
-#define ID_GRID_4 40304\r
-#define ID_GRID_8 40305\r
-#define ID_GRID_16 40306\r
-#define ID_GRID_32 40307\r
-#define ID_GRID_64 40308\r
-#define ID_GRID_128 40309\r
-#define ID_GRID_256 40310\r
-\r
-#define ID_FILE_CHECKUPDATE 40320\r
-\r
-#define ID_TEXTUREWINDOW_SCALEUP 40321\r
-#define ID_TEXTUREWINDOW_SCALEDOWN 40322\r
-\r
-class CSynapseClientRadiant : public CSynapseClient\r
-{\r
-public:\r
- bool RequestAPI(APIDescriptor_t *pAPI);\r
- const char* GetInfo();\r
- const char* GetName();\r
- \r
- void ImportMap(IDataStream *in, CPtrArray *ents, const char *type);\r
- void ExportMap(CPtrArray *ents, IDataStream *out, const char *type);\r
-\r
- CSynapseClientRadiant() { }\r
- virtual ~CSynapseClientRadiant() { }\r
-}; \r
-\r
-class MainFrame\r
-{\r
-public:\r
- enum EViewStyle\r
- {\r
- eRegular,\r
- eFloating,\r
- eSplit,\r
- eRegularLeft,\r
- };\r
-\r
- MainFrame();\r
- GtkWidget *m_pWidget;\r
-\r
- /*!\r
- called to fire up the help links\r
- */\r
- void handle_help_command(int id);\r
-\r
-protected:\r
-\r
- /*!\r
- the urls to fire up in the game packs help menus\r
- */\r
- vector<Str *> mHelpURLs;\r
-\r
- /*!\r
- scan the .game files for game install packs\r
- look there for help description nodes\r
- build the corresponding menus in Radiant\r
- */\r
- void create_game_help_menu (GtkWidget *menu, GtkAccelGroup *accel);\r
-\r
- /*!\r
- build the menu once the filename is found\r
- */\r
- void process_xlink (Str &FileName, char *menu_name, const char *base_url, GtkWidget *menu, GtkAccelGroup *accel);\r
-\r
- void Create ();\r
- void create_main_menu (GtkWidget *window, GtkWidget *vbox);\r
- void create_main_toolbar (GtkWidget *window, GtkWidget *vbox);\r
- void create_plugin_toolbar (GtkWidget *window, GtkWidget *vbox);\r
- void create_main_statusbar (GtkWidget *window, GtkWidget *vbox);\r
- GtkWidget *m_pStatusLabel[6];\r
- GtkWidget *m_pSplits[4];\r
- XYWnd* m_pXYWnd;\r
- XYWnd* m_pYZWnd;\r
- XYWnd* m_pXZWnd;\r
- CamWnd* m_pCamWnd;\r
- TexWnd* m_pTexWnd;\r
- ZWnd* m_pZWnd;\r
- CWatchBSP* m_pWatchBSP;\r
-\r
- XYWnd* m_pActiveXY;\r
- bool m_bCamPreview;\r
- CPlugInManager m_PlugInMgr;\r
- int m_nNextPlugInID;\r
- guint m_nTimer;\r
- bool m_bSleeping;\r
-\r
- CString m_strStatus[15];\r
- bool m_bNeedStatusUpdate;\r
-\r
- /*!\r
- synapse server\r
- deals with dynamically loading the modules, initializing them, requesting the APIs\r
- */\r
- CSynapseServer m_SynapseServer;\r
- /*!\r
- we are also a synapse client in that we provide and require some APIs as well\r
- */\r
- CSynapseClientRadiant m_SynapseClient;\r
-\r
-public:\r
-\r
- // BSP window\r
- // trigger network listen\r
- void DoWatchBSP();\r
- bool IsSleeping ()\r
- { return m_bSleeping; }\r
-\r
- void UpdatePatchToolbarButtons();\r
- // Gef: Changed to float for sub-integer grid size\r
- void NudgeSelection(int nDirection, float nAmount);\r
- void SetButtonMenuStates();\r
- void SetGridStatus();\r
- void RoutineProcessing();\r
- XYWnd* ActiveXY() { return m_pActiveXY; };\r
- void UpdateWindows(int nBits);\r
- void SetStatusText(int nPane, const char* pText);\r
- void UpdateStatusText();\r
- void SetWindowStyle(int nStyle);\r
- virtual ~MainFrame();\r
- XYWnd* GetXYWnd() {return m_pXYWnd;}\r
- XYWnd* GetXZWnd() {return m_pXZWnd;}\r
- XYWnd* GetYZWnd() {return m_pYZWnd;}\r
- ZWnd* GetZWnd() {return m_pZWnd;}\r
- CamWnd* GetCamWnd() {return m_pCamWnd;}\r
- TexWnd* GetTexWnd() {return m_pTexWnd;}\r
- CWatchBSP *GetWatchBSP() { return m_pWatchBSP; }\r
- void ReleaseContexts ();\r
- void CreateContexts ();\r
-\r
- void SetActiveXY(XYWnd* p) \r
- {\r
- if (m_pActiveXY)\r
- m_pActiveXY->SetActive(false);\r
-\r
- m_pActiveXY = p;\r
-\r
- if (m_pActiveXY)\r
- m_pActiveXY->SetActive(true);\r
-\r
- };\r
-\r
- EViewStyle CurrentStyle()\r
- {\r
- return m_nCurrentStyle;\r
- };\r
-\r
- bool FloatingGroupDialog()\r
- {\r
- return CurrentStyle() == eFloating || CurrentStyle() == eSplit;\r
- };\r
-\r
-#ifdef _WIN32\r
- const GdkRectangle & GetPrimaryMonitorRect( void ) const { return primaryMonitorRect; }\r
- const int GetGDKOffsetX( void ) const { return gdk_offset_x; }\r
- const int GetGDKOffsetY( void ) const { return gdk_offset_y; }\r
-#endif\r
-\r
-protected:\r
- bool m_bDoLoop;\r
- bool m_bSplittersOK;\r
- void CreateQEChildren();\r
- void LoadCommandMap();\r
- void ShowMenuItemKeyBindings(GtkWidget* window);\r
-\r
-public:\r
- void Copy();\r
- void Paste();\r
- void Nudge(int nDim, float fNudge);\r
- CPlugInManager &GetPlugInMgr() {return m_PlugInMgr;};\r
- CSynapseServer &GetSynapseServer() {return m_SynapseServer;};\r
- CSynapseClientRadiant &GetSynapseClient() {return m_SynapseClient;};\r
- void AddPlugInToolbarButton(const IToolbarButton* button);\r
- void AddPlugInMenuItem(IPlugIn* pPlugIn);\r
- void CleanPlugInMenu();\r
-\r
- // these are public so i can easily reflect messages\r
- // from child windows..\r
- void OnTimer();\r
- void OnDelete();\r
- void OnDestroy();\r
- void ToggleCamera();\r
-\r
- void OnFileExit();\r
- void OnFileLoadproject();\r
- void OnFileNew();\r
- void OnFileOpen();\r
- void OnFilePointfile();\r
- void OnFileSave();\r
- void OnFileSaveas();\r
- void OnFileCheckUpdate();\r
- void OnView100();\r
- void OnViewCenter();\r
- void OnViewConsole();\r
- void OnViewDownfloor();\r
- void OnViewEntity();\r
- void OnViewFront();\r
- void OnViewShowblocks();\r
- void OnViewShowclip();\r
- void OnViewShowcoordinates();\r
- void OnViewShowOutline();\r
- void OnViewShowAxes();\r
- void OnViewShowdetail();\r
- void OnViewShowent();\r
- void OnViewShowlights();\r
- void OnViewShownames();\r
- void OnViewShowpath();\r
- void OnViewShowwater();\r
- void OnViewShowworld();\r
- void OnViewTexture();\r
- void OnViewUpfloor();\r
- void OnViewXy();\r
- void OnViewZ100();\r
- void OnViewZoomin();\r
- void OnViewZoomout();\r
- void OnViewZzoomin();\r
- void OnViewZzoomout();\r
- void OnViewSide();\r
- void OnTexturesShowinuse();\r
- void OnTexturesInspector();\r
- void OnMiscBenchmark();\r
- void OnMiscFindbrush();\r
- void OnMiscGamma();\r
- void OnMiscNextleakspot();\r
- void OnMiscPreviousleakspot();\r
- void OnMiscPrintxy();\r
- void OnMiscSelectentitycolor();\r
- void OnTexturebk();\r
- void OnColorsMajor();\r
- void OnColorsMinor();\r
- void OnColorsMajor_Alt();\r
- void OnColorsMinor_Alt();\r
- void OnColorsXybk();\r
- void OnBrush3sided();\r
- void OnBrush4sided();\r
- void OnBrush5sided();\r
- void OnBrush6sided();\r
- void OnBrush7sided();\r
- void OnBrush8sided();\r
- void OnBrush9sided();\r
- void OnBrushArbitrarysided();\r
- void OnBrushFlipx();\r
- void OnBrushFlipy();\r
- void OnBrushFlipz();\r
- void OnBrushRotatex();\r
- void OnBrushRotatey();\r
- void OnBrushRotatez();\r
- void OnRegionOff();\r
- void OnRegionSetbrush();\r
- void OnRegionSetselection();\r
- void OnRegionSettallbrush();\r
- void OnRegionSetxy();\r
- void OnSelectionArbitraryrotation();\r
- void OnSelectionClone();\r
- void OnSelectionConnect();\r
- void OnSelectionCsgsubtract();\r
- void OnSelectionCsgmerge();\r
- void OnSelectionNoOutline();\r
- void OnSelectionOutlineStyle();\r
- void OnSelectionDelete();\r
- void OnSelectionDeselect();\r
- void OnSelectionDragedges();\r
- void OnSelectionDragvertecies();\r
- void OnSelectionMakeDetail();\r
- void OnSelectionMakeStructural();\r
- void OnSelectionMakehollow();\r
- void OnSelectionSelectcompletetall();\r
- void OnSelectionSelectinside();\r
- void OnSelectionSelectpartialtall();\r
- void OnSelectionSelecttouching();\r
- void OnSelectionUngroupentity();\r
- void OnSelectionMergeentity();\r
- void OnSelectionGroupworld();\r
- void OnTexturesPopup();\r
- void OnPopupSelection();\r
- void OnViewChange();\r
- void OnViewCameraupdate();\r
- void OnHelpAbout();\r
- void OnHelp();\r
- void OnHelpLinks();\r
- void OnHelpBugreport();\r
- void OnViewClipper();\r
- void OnCameraAngledown();\r
- void OnCameraAngleup();\r
- void OnCameraBack(bool keydown);\r
- void OnCameraDown();\r
- void OnCameraForward(bool keydown);\r
- void OnCameraLeft(bool keydown);\r
- void OnCameraRight(bool keydown);\r
- void OnCameraStrafeleft(bool keydown);\r
- void OnCameraStraferight(bool keydown);\r
- void OnCameraUp();\r
- void OnGridToggle();\r
- void OnPrefs();\r
- void OnTogglecamera();\r
- void OnToggleconsole();\r
- void OnToggleview();\r
- void OnTogglez();\r
- void OnToggleLock();\r
- void OnEditMapinfo();\r
- void OnEditEntityinfo();\r
- void OnBrushScripts();\r
- void OnViewCenterview();\r
- void OnViewNextview();\r
- void OnHelpCommandlist();\r
- void OnFileNewproject();\r
- void OnFlipClip();\r
- void OnClipSelected();\r
- void OnSplitSelected();\r
- void OnToggleviewXz();\r
- void OnToggleviewYz();\r
- void OnColorsBrush();\r
- void OnColorsClipper();\r
- void OnColorsGridtext();\r
- void OnColorsSelectedbrush();\r
- void OnColorsSelectedbrush3D();\r
- void OnColorsCameraBack();\r
- void OnColorsGridblock();\r
- void OnColorsViewname();\r
- void OnColorSetoriginal();\r
- void OnColorSetqer();\r
- void OnColorSetblack();\r
- void OnColorSetydnar(); /* ydnar */\r
- void OnSnaptogrid();\r
- void OnSelectScale();\r
- void OnSelectMouserotate();\r
- void OnEditCopybrush();\r
- void OnEditPastebrush();\r
- void OnEditPastebrushToCamera();\r
- void OnEditUndo();\r
- void OnEditRedo();\r
- void OnSelectionInvert();\r
-// void OnSelectionTextureDec();\r
- void OnSelectionTextureFit();\r
-// void OnSelectionTextureInc();\r
- void OnSelectionTextureRotateclock();\r
- void OnSelectionTextureRotatecounter();\r
- void OnSelectionTextureScaledown();\r
- void OnSelectionTextureScaleup();\r
- void OnSelectionTextureShiftdown();\r
- void OnSelectionTextureShiftleft();\r
- void OnSelectionTextureShiftright();\r
- void OnSelectionTextureShiftup();\r
- void OnGridNext();\r
- void OnGridPrev();\r
- void OnSelectionTextureScaleLeft();\r
- void OnSelectionTextureScaleRight();\r
- void OnTextureReplaceall();\r
- void OnScalelockx();\r
- void OnScalelocky();\r
- void OnScalelockz();\r
- void OnSelectMousescale();\r
- void OnViewCubicclipping();\r
- void OnFileProjectsettings();\r
- void OnViewCubein();\r
- void OnViewCubeout();\r
- void OnFileSaveregion();\r
- void OnSelectionMovedown();\r
- void OnSelectionMoveup();\r
- void OnToolbarMain();\r
- void OnToolbarTexture();\r
- void OnSelectionPrint();\r
- void OnSelectionTogglesizepaint();\r
- void OnBrushMakecone();\r
- void OnTexturesLoad();\r
- void OnToggleRotatelock();\r
- void OnFileImportmap();\r
- void OnFileExportmap();\r
- void OnEditLoadprefab();\r
- void OnSelectionSelectNudgedown();\r
- void OnSelectionSelectNudgeleft();\r
- void OnSelectionSelectNudgeright();\r
- void OnSelectionSelectNudgeup();\r
- void OnTexturesLoadlist();\r
- void OnDontselectcurve();\r
- void OnConvertcurves();\r
- void OnCurveSimplepatchmesh();\r
- void OnPatchToggleBox();\r
- void OnPatchWireframe();\r
- void OnCurvePatchcone();\r
- void OnCurvePatchtube();\r
- void OnPatchWeld();\r
- void OnCurvePatchbevel();\r
- void OnCurvePatchendcap();\r
- void OnPatchDrilldown();\r
- void OnCurveInsertcolumn();\r
- void OnCurveInsertrow();\r
- void OnCurveDeletecolumn();\r
- void OnCurveDeleterow();\r
- void OnCurveInsertAddcolumn();\r
- void OnCurveInsertAddrow();\r
- void OnCurveInsertInsertcolumn();\r
- void OnCurveInsertInsertrow();\r
- void OnCurveNegative();\r
- void OnCurveNegativeTextureX();\r
- void OnCurveNegativeTextureY();\r
- void OnCurveDeleteFirstcolumn();\r
- void OnCurveDeleteFirstrow();\r
- void OnCurveDeleteLastcolumn();\r
- void OnCurveDeleteLastrow();\r
- void OnPatchBend();\r
-// void OnPatchInsdel();\r
- void OnPatchEnter();\r
- void OnPatchTab();\r
- void OnCurvePatchdensetube();\r
- void OnCurvePatchverydensetube();\r
- void OnCurveCap();\r
- void OnCurveCapInvertedbevel();\r
- void OnCurveCapInvertedendcap();\r
- void OnCurveRedisperseRows();\r
- void OnCurveRedisperseIntermediateCols();\r
- void OnCurveRedisperseIntermediateRows();\r
- void OnPatchNaturalize();\r
- void OnSnapToGrid();\r
- void OnCurvePatchsquare();\r
- void OnTexturewindowScaleup();\r
- void OnTexturewindowScaledown();\r
- void OnCurveOverlayClear();\r
- void OnCurveOverlaySet();\r
- void OnCurveThicken();\r
- void OnCurveCyclecap();\r
- void OnCurveMatrixTranspose();\r
- void OnTexturesReloadshaders();\r
- void OnShowEntities();\r
- // will set the view mode right, don't set the value for mode if you only want to update the radio item\r
- void OnEntitiesSetViewAs(int mode = 0);\r
- void OnPluginsRefresh();\r
- void OnTexturesShowall();\r
- void OnPatchInspector();\r
- void OnViewOpengllighting();\r
- void OnSelectAll();\r
- void OnCurveFreeze();\r
- void OnCurveUnFreeze();\r
- void OnCurveUnFreezeAll();\r
- void OnSelectReselect();\r
- void OnEditSaveprefab();\r
- void OnCurveMoreendcapsbevelsSquarebevel();\r
- void OnCurveMoreendcapsbevelsSquareendcap();\r
- void OnBrushPrimitivesSphere();\r
- void OnViewCrosshair();\r
- void OnViewHideshowHideselected();\r
- void OnViewHideshowShowhidden();\r
- void OnTexturesShadersShow();\r
- void OnViewGroups();\r
- void OnDropGroupAddtoWorld();\r
- void OnDropGroupName();\r
- void OnDropGroupNewgroup();\r
- void OnDropGroupRemove();\r
- void OnViewShowWorkzone();\r
- void OnViewShowAngles();\r
- void OnMru(unsigned int nID);\r
- void OnViewNearest(unsigned int nID);\r
- void OnTextureWad(unsigned int nID);\r
- void OnBspCommand(unsigned int nID);\r
- void OnGrid(unsigned int nID);\r
- void OnPlugIn(unsigned int nID, char *str);\r
- void OnFaceFit();\r
- void SetTextureScale(int id);\r
- void OnDontselectmodel();\r
- void OnTexturesShaderlistonly();\r
- void OnSleep();\r
- void OnFilterAreaportals();\r
- void OnFilterCaulk();\r
- void OnFilterStructural();\r
- void OnFilterClips();\r
- void OnFilterBotClips();\r
- void OnFilterDetails();\r
- void OnFilterEntities();\r
- void OnFilterHintsskips();\r
- void OnFilterLights();\r
- void OnFilterLiquids();\r
- void OnFilterModels();\r
- void OnFilterPatches();\r
- void OnFilterTranslucent();\r
- void OnFilterTriggers();\r
- void OnFilterWorld();\r
- void OnFilterPaths();\r
- void OnFilterClusterportals();\r
- void OnFilterLightgrid();\r
-\r
-private:\r
- EViewStyle m_nCurrentStyle;\r
-\r
-#ifdef _WIN32\r
- GdkRectangle primaryMonitorRect;\r
- int gdk_offset_x;\r
- int gdk_offset_y;\r
-#endif\r
-\r
-};\r
-\r
-// some C API to the mainframe functions\r
-void WINAPI QERApp_Sleep();\r
-\r
-#endif // _MAINFRAME_H_\r
+/*
+ Copyright (C) 1999-2006 Id Software, Inc. and contributors.
+ For a list of contributors, see the accompanying CONTRIBUTORS file.
+
+ This file is part of GtkRadiant.
+
+ GtkRadiant is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ GtkRadiant is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GtkRadiant; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#if !defined( INCLUDED_MAINFRAME_H )
+#define INCLUDED_MAINFRAME_H
+
+#include <uilib/uilib.h>
+#include "gtkutil/window.h"
+#include "gtkutil/idledraw.h"
+#include "gtkutil/widget.h"
+#include "string/string.h"
+
+#include "qerplugin.h"
+
+class IPlugIn;
+class IToolbarButton;
+
+class XYWnd;
+class CamWnd;
+class ZWnd;
+
+
+const int c_command_status = 0;
+const int c_position_status = 1;
+const int c_brushcount_status = 2;
+const int c_texture_status = 3;
+const int c_grid_status = 4;
+const int c_count_status = 5;
+
+class MainFrame
+{
+public:
+enum EViewStyle
+{
+ eRegular = 0,
+ eFloating = 1,
+ eSplit = 2,
+ eRegularLeft = 3,
+ eSingle = 4,
+};
+
+MainFrame();
+~MainFrame();
+
+ui::Window m_window{ui::null};
+
+CopiedString m_command_status;
+CopiedString m_position_status;
+CopiedString m_brushcount_status;
+CopiedString m_texture_status;
+CopiedString m_grid_status;
+private:
+
+void Create();
+void SaveWindowInfo();
+void Shutdown();
+
+ui::Widget m_vSplit{ui::null};
+ui::Widget m_hSplit{ui::null};
+ui::Widget m_vSplit2{ui::null};
+
+XYWnd* m_pXYWnd;
+XYWnd* m_pYZWnd;
+XYWnd* m_pXZWnd;
+CamWnd* m_pCamWnd;
+ZWnd* m_pZWnd;
+XYWnd* m_pActiveXY;
+
+bool m_bSleeping;
+
+void *m_pStatusLabel[c_count_status];
+
+
+EViewStyle m_nCurrentStyle;
+WindowPositionTracker m_position_tracker;
+
+IdleDraw m_idleRedrawStatusText;
+
+public:
+
+bool IsSleeping(){
+ return m_bSleeping;
+}
+void OnSleep();
+
+void SetStatusText( CopiedString& status_text, const char* pText );
+void UpdateStatusText();
+void RedrawStatusText();
+typedef MemberCaller<MainFrame, void(), &MainFrame::RedrawStatusText> RedrawStatusTextCaller;
+
+void SetGridStatus();
+typedef MemberCaller<MainFrame, void(), &MainFrame::SetGridStatus> SetGridStatusCaller;
+
+void SetActiveXY( XYWnd* p );
+XYWnd* ActiveXY(){
+ return m_pActiveXY;
+};
+XYWnd* GetXYWnd(){
+ return m_pXYWnd;
+}
+XYWnd* GetXZWnd(){
+ return m_pXZWnd;
+}
+XYWnd* GetYZWnd(){
+ return m_pYZWnd;
+}
+ZWnd* GetZWnd(){
+ return m_pZWnd;
+}
+CamWnd* GetCamWnd(){
+ return m_pCamWnd;
+}
+
+void ReleaseContexts();
+void CreateContexts();
+
+EViewStyle CurrentStyle(){
+ return m_nCurrentStyle;
+};
+bool FloatingGroupDialog(){
+ return CurrentStyle() == eFloating || CurrentStyle() == eSplit;
+};
+};
+
+extern MainFrame* g_pParentWnd;
+
+ui::Window MainFrame_getWindow();
+
+enum EMouseButtonMode
+{
+ ETwoButton = 0,
+ EThreeButton = 1,
+};
+
+struct glwindow_globals_t
+{
+ int m_nMouseType;
+
+ glwindow_globals_t() :
+ m_nMouseType( EThreeButton ){
+ }
+};
+
+void GLWindow_Construct();
+void GLWindow_Destroy();
+
+extern glwindow_globals_t g_glwindow_globals;
+template<typename Value>
+class LatchedValue;
+extern LatchedValue<bool> g_Layout_enableDetachableMenus;
+
+void deleteSelection();
+
+
+void Sys_Status( const char* status );
+
+
+void ScreenUpdates_Disable( const char* message, const char* title );
+void ScreenUpdates_Enable();
+bool ScreenUpdates_Enabled();
+void ScreenUpdates_process();
+
+class ScopeDisableScreenUpdates
+{
+public:
+ScopeDisableScreenUpdates( const char* message, const char* title ){
+ ScreenUpdates_Disable( message, title );
+}
+~ScopeDisableScreenUpdates(){
+ ScreenUpdates_Enable();
+}
+};
+
+
+void EnginePath_Realise();
+void EnginePath_Unrealise();
+
+class ModuleObserver;
+
+void Radiant_attachEnginePathObserver( ModuleObserver& observer );
+void Radiant_detachEnginePathObserver( ModuleObserver& observer );
+
+void Radiant_attachGameToolsPathObserver( ModuleObserver& observer );
+void Radiant_detachGameToolsPathObserver( ModuleObserver& observer );
+
+extern CopiedString g_strEnginePath;
+void EnginePath_verify();
+const char* EnginePath_get();
+const char* QERApp_GetGamePath();
+
+extern bool g_disableEnginePath;
+extern bool g_disableHomePath;
+
+const int g_pakPathCount = 5;
+extern CopiedString g_strPakPath[g_pakPathCount];
+const char* PakPath_get( int num );
+
+extern CopiedString g_strAppFilePath;
+extern CopiedString g_strAppPath;
+extern CopiedString g_strLibPath;
+extern CopiedString g_strDataPath;
+
+const char* AppFilePath_get();
+const char* AppPath_get();
+const char *LibPath_get();
+const char *DataPath_get();
+
+extern CopiedString g_strSettingsPath;
+const char* SettingsPath_get();
+
+const char* LocalRcPath_get( void );
+
+const char* const g_pluginsDir = "plugins/"; ///< name of plugins directory, always sub-directory of toolspath
+const char* const g_modulesDir = "modules/"; ///< name of modules directory, always sub-directory of toolspath
+
+extern CopiedString g_strGameToolsPath;
+const char* GameToolsPath_get();
+
+void Radiant_Initialise();
+void Radiant_Shutdown();
+
+void SaveMapAs();
+
+
+void XY_UpdateAllWindows();
+void UpdateAllWindows();
+
+
+void ClipperChangeNotify();
+
+void DefaultMode();
+
+const char* basegame_get();
+const char* gamename_get();
+void gamename_set( const char* gamename );
+void Radiant_attachGameNameObserver( ModuleObserver& observer );
+void Radiant_detachGameNameObserver( ModuleObserver& observer );
+const char* gamemode_get();
+void gamemode_set( const char* gamemode );
+void Radiant_attachGameModeObserver( ModuleObserver& observer );
+void Radiant_detachGameModeObserver( ModuleObserver& observer );
+
+void VFS_Refresh();
+void VFS_Restart();
+void VFS_Construct();
+void VFS_Destroy();
+
+void HomePaths_Construct();
+void HomePaths_Destroy();
+void Radiant_attachHomePathsObserver( ModuleObserver& observer );
+void Radiant_detachHomePathsObserver( ModuleObserver& observer );
+
+
+void MainFrame_Construct();
+void MainFrame_Destroy();
+
+extern char **environ;
+void Radiant_Restart();
+
+extern float ( *GridStatus_getGridSize )();
+extern int ( *GridStatus_getRotateIncrement )();
+extern int ( *GridStatus_getFarClipDistance )();
+extern bool ( *GridStatus_getTextureLockEnabled )();
+void GridStatus_onTextureLockEnabledChanged();
+
+SignalHandlerId XYWindowDestroyed_connect( const SignalHandler& handler );
+void XYWindowDestroyed_disconnect( SignalHandlerId id );
+MouseEventHandlerId XYWindowMouseDown_connect( const MouseEventHandler& handler );
+void XYWindowMouseDown_disconnect( MouseEventHandlerId id );
+
+extern ui::Widget g_page_entity;
+
+#endif