]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/mainframe.h
radiant/q3map2: add option to disable engine path and home path
[xonotic/netradiant.git] / radiant / mainframe.h
index 7b2cb63fb981047f4efff6989ea6fc3ca764f946..85e60f47eb6ba671cc61c10c75d90c276b2df0c2 100644 (file)
-/*\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,
+};
+
+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_strAppPath;
+const char* AppPath_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 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