-/*\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
+{
+ const 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
+
+#define ID_SELECT_FUNC_GROUP 40233
+
+// 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, const 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();
+ void OnSelectFuncGroup();
+
+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_