mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-11-30 15:41:19 +00:00
914 lines
30 KiB
C++
914 lines
30 KiB
C++
/*
|
|
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
|
|
{
|
|
const char* m_strCommand;
|
|
unsigned int m_nKey;
|
|
unsigned int m_nModifiers;
|
|
unsigned int m_nCommand;
|
|
const 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();
|
|
|
|
// Checks whether a given filename ends in .map
|
|
const bool IsMap(const char* filename);
|
|
|
|
#endif // _MAINFRAME_H_
|