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