248 lines
8.4 KiB
C++
Executable File
248 lines
8.4 KiB
C++
Executable File
/*********************************************************************
|
|
*<
|
|
FILE: frontend.h
|
|
|
|
DESCRIPTION: A new plug-in type that controls the main UI for MAX
|
|
|
|
CREATED BY: Rolf Berteig
|
|
|
|
HISTORY: 4/01/97
|
|
|
|
*> Copyright (c) 1997, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#ifndef __FRONTEND_H__
|
|
#define __FRONTEND_H__
|
|
|
|
// layout bits
|
|
#define FE_LAYOUT_NO_TIMESLIDER (1<<0)
|
|
#define FE_LAYOUT_NO_TOOLBAR (1<<1)
|
|
#define FE_LAYOUT_NO_COMMAND_PANEL (1<<2)
|
|
#define FE_LAYOUT_CONTROL_COMMAND_PANEL (1<<3)
|
|
#define FE_LAYOUT_DEFAULT 0
|
|
|
|
|
|
// Tool bar buttons
|
|
#define TOOLBUT_HELP 0
|
|
#define TOOLBUT_UNDO 1
|
|
#define TOOLBUT_REDO 2
|
|
#define TOOLBUT_LINK 3
|
|
#define TOOLBUT_UNLINK 4
|
|
#define TOOLBUT_SPACEWARP_BIND 5
|
|
#define TOOLBUT_SELECT 6
|
|
#define TOOLBUT_REGION_TYPE 7
|
|
#define TOOLBUT_SELECT_FILTER 8
|
|
#define TOOLBUT_SELECT_BYNAME 9
|
|
#define TOOLBUT_MOVE 10
|
|
#define TOOLBUT_ROTATE 11
|
|
#define TOOLBUT_SCALE 12
|
|
#define TOOLBUT_REF_COORDSYS 13
|
|
#define TOOLBUT_REF_CENTER 14
|
|
#define TOOLBUT_CONST_X 15
|
|
#define TOOLBUT_CONST_Y 16
|
|
#define TOOLBUT_CONST_Z 17
|
|
#define TOOLBUT_CONST_PLANE 18
|
|
#define TOOLBUT_IK 19
|
|
#define TOOLBUT_MIRROR 20
|
|
#define TOOLBUT_ARRAY 21
|
|
#define TOOLBUT_ALIGN 22
|
|
#define TOOLBUT_NAMED_SELSETS 23
|
|
#define TOOLBUT_TRACKVIEW 24
|
|
#define TOOLBUT_MEDIT 25
|
|
#define TOOLBUT_RENDER 26
|
|
#define TOOLBUT_QUICK_RENDER 27
|
|
#define TOOLBUT_RENDER_TYPE 28
|
|
#define TOOLBUT_RENDER_LAST 29
|
|
#define TOOLBUT_SEPERATOR 30
|
|
#define TOOLBUT_LAYER_CURRENT 31
|
|
#define TOOLBUT_LAYER_PROP 32
|
|
#define TOOLBUT_LAYER_CONTROL 33
|
|
#define TOOLBUT_LAYER_OBJ_PROP 34
|
|
#define TOOLBUT_MEASURE 35
|
|
#define TOOLBUT_SCHEMATIC_VIEW 36
|
|
|
|
// Standard MAX tool buttons use IDs greater then this value.
|
|
// FE plug-in tool buttons should use IDs less then this max value
|
|
// and greater then this min value.
|
|
// Note that the actual resource IDs for standard MAX buttons will
|
|
// be converted to the above #defines when passed to ProcessToolButton().
|
|
#define MIN_FE_CUSTOM_TOOLID 1000
|
|
#define MAX_FE_CUSTOM_TOOLID 30000
|
|
|
|
|
|
// Menu items
|
|
#define MENUITEM_FILE_NEW 0
|
|
#define MENUITEM_FILE_RESET 1
|
|
#define MENUITEM_FILE_OPEN 2
|
|
#define MENUITEM_FILE_MERGE 3
|
|
#define MENUITEM_FILE_REPLACE 4
|
|
#define MENUITEM_FILE_INSERTTRACKS 5
|
|
#define MENUITEM_FILE_SAVE 6
|
|
#define MENUITEM_FILE_SAVEAS 7
|
|
#define MENUITEM_FILE_SAVESELECTED 8
|
|
#define MENUITEM_FILE_IMPORT 9
|
|
#define MENUITEM_FILE_EXPORT 10
|
|
#define MENUITEM_FILE_ARCHIVE 11
|
|
#define MENUITEM_FILE_SUMMARYINFO 12
|
|
#define MENUITEM_FILE_VIEWFILE 13
|
|
#define MENUITEM_FILE_CONFIGUREPATHS 14
|
|
#define MENUITEM_FILE_PREFERENCES 15
|
|
#define MENUITEM_FILE_EXIT 16
|
|
|
|
#define MENUITEM_EDIT_UNDO 17
|
|
#define MENUITEM_EDIT_REDO 18
|
|
#define MENUITEM_EDIT_HOLD 19
|
|
#define MENUITEM_EDIT_FETCH 20
|
|
#define MENUITEM_EDIT_DELETE 21
|
|
#define MENUITEM_EDIT_CLONE 22
|
|
#define MENUITEM_EDIT_SELECTALL 23
|
|
#define MENUITEM_EDIT_SELECTNONE 24
|
|
#define MENUITEM_EDIT_SELECTINVERT 25
|
|
#define MENUITEM_EDIT_SELECTBY_COLOR 26
|
|
#define MENUITEM_EDIT_SELECTBY_MATERIAL 27
|
|
#define MENUITEM_EDIT_SELECTBY_SMOOTHING 28
|
|
#define MENUITEM_EDIT_SELECTBY_NAME 29
|
|
#define MENUITEM_EDIT_REGION_WINDOW 30
|
|
#define MENUITEM_EDIT_REGION_CROSSING 31
|
|
#define MENUITEM_EDIT_REMOVENAMEDSELECTIONS 32
|
|
#define MENUITEM_EDIT_PROPERTIES 33
|
|
|
|
#define MENUITEM_TOOLS_TRANSFORMTYPEIN 34
|
|
#define MENUITEM_TOOLS_DISPLAYFLOATER 35
|
|
#define MENUITEM_TOOLS_SELECTIONFLOATER 36
|
|
#define MENUITEM_TOOLS_MIRROR 37
|
|
#define MENUITEM_TOOLS_ARRAY 38
|
|
#define MENUITEM_TOOLS_SNAPSHOT 39
|
|
#define MENUITEM_TOOLS_ALIGN 40
|
|
#define MENUITEM_TOOLS_ALIGNNORMALS 41
|
|
#define MENUITEM_TOOLS_PLACEHIGHLIGHT 42
|
|
#define MENUITEM_TOOLS_MTLEDIT 43
|
|
#define MENUITEM_TOOLS_MTLBROWSE 44
|
|
|
|
#define MENUITEM_GROUP_GROUP 45
|
|
#define MENUITEM_GROUP_OPEN 46
|
|
#define MENUITEM_GROUP_CLOSE 47
|
|
#define MENUITEM_GROUP_UNGROUP 48
|
|
#define MENUITEM_GROUP_EXPLODE 49
|
|
#define MENUITEM_GROUP_ATTACH 50
|
|
#define MENUITEM_GROUP_DETACH 51
|
|
|
|
#define MENUITEM_VIEWS_UNDO 52
|
|
#define MENUITEM_VIEWS_REDO 53
|
|
#define MENUITEM_VIEWS_SAVEACTIVEVIEW 54
|
|
#define MENUITEM_VIEWS_RESTOREACTIVEVIEW 55
|
|
#define MENUITEM_VIEWS_UNITSETUP 56
|
|
#define MENUITEM_VIEWS_DRAWINGAIDS 57
|
|
#define MENUITEM_VIEWS_GRIDS_SHOWHOMEGRID 58
|
|
#define MENUITEM_VIEWS_GRIDS_ACTIVATEHOMEGRID 59
|
|
#define MENUITEM_VIEWS_GRIDS_ACTIVATEGRIDOBJECT 60
|
|
#define MENUITEM_VIEWS_GRIDS_ALIGN 61
|
|
#define MENUITEM_VIEWS_IMAGEBACKGROUND 62
|
|
#define MENUITEM_VIEWS_UPDATEBKGIMAGE 63
|
|
#define MENUITEM_VIEWS_RESETBKGXFORM 64
|
|
#define MENUITEM_VIEWS_SHOWAXISICON 65
|
|
#define MENUITEM_VIEWS_SHOWGHOSTING 66
|
|
#define MENUITEM_VIEWS_SHOWKEYTIMES 67
|
|
#define MENUITEM_VIEWS_SHADESELECTED 68
|
|
#define MENUITEM_VIEWS_SHOWDEP 69
|
|
#define MENUITEM_VIEWS_MATCHCAMERATOVIEW 70
|
|
#define MENUITEM_VIEWS_REDRAW 71
|
|
#define MENUITEM_VIEWS_DEACT_MAPS 72
|
|
#define MENUITEM_VIEWS_UPDATEDURINGSPINNERDRAG 73
|
|
#define MENUITEM_VIEWS_EXPERTMODE 74
|
|
#define MENUITEM_VIEWS_VIEWPORTCONFIG 75
|
|
|
|
#define MENUITEM_RENDER_RENDER 76
|
|
#define MENUITEM_RENDER_VIDEOPOST 77
|
|
#define MENUITEM_RENDER_SHOW_LAST_IMG 78
|
|
#define MENUITEM_RENDER_ATMOSPHERE 79
|
|
#define MENUITEM_RENDER_PREVIEW 80
|
|
#define MENUITEM_RENDER_VIEWPREVIEW 81
|
|
#define MENUITEM_RENDER_RENAMEPREVIEW 82
|
|
|
|
#define MENUITEM_HELP_CONTENTS 83
|
|
#define MENUITEM_HELP_INDEX 84
|
|
#define MENUITEM_HELP_PLUGINHELP 85
|
|
#define MENUITEM_HELP_ABOUT 86
|
|
|
|
// VIZ specific
|
|
#define MENUITEM_TOOLS_SPACETOOL 87
|
|
#define MENUITEM_TOOLS_LAYERPROP 88
|
|
|
|
// JBW added MAXScript menu (11/11/98 & 12/15/98)
|
|
#define MENUITEM_MAXSCRIPT_LISTENER 89
|
|
#define MENUITEM_MAXSCRIPT_OPEN 90
|
|
#define MENUITEM_MAXSCRIPT_NEW 91
|
|
#define MENUITEM_MAXSCRIPT_RUN 92
|
|
#define MENUITEM_MAXSCRIPT_MACROREC 93
|
|
|
|
|
|
// Standard MAX menu items use IDs greater then this value.
|
|
// FE plug-in menu items should use IDs less then this max value
|
|
// and greater then this min value.
|
|
// Note that the actual resource IDs for standard MAX menu items will
|
|
// be converted to the above #defines when passed to ProcessMenuItem().
|
|
#define MIN_FE_CUSTOM_MENUEITEM 1000
|
|
#define MAX_FE_CUSTOM_MENUEITEM 30000
|
|
|
|
|
|
|
|
|
|
// Special interface given only to front end controllers
|
|
class IFrontEnd {
|
|
public:
|
|
virtual HWND GetCommandPanelHWND()=0;
|
|
|
|
virtual void *GetInterface(DWORD id)=0;
|
|
|
|
virtual void ClearToolBar()=0;
|
|
virtual void RemoveStandardToolButton(int id)=0;
|
|
virtual void AddStandardToolButton(int id,int sepSize=-1)=0;
|
|
virtual void CheckStandardTool(int id, BOOL onOff)=0;
|
|
virtual BOOL IsStandardToolChecked(int id, BOOL onOdd)=0;
|
|
virtual void EnableStandardTool(int id, BOOL enabled)=0;
|
|
virtual void SetStandardToolFlyoff(int id, int fly)=0;
|
|
virtual int GetStandardToolFlyoff(int id)=0;
|
|
virtual ICustToolbar *GetMainToolbar()=0;
|
|
|
|
virtual HMENU GetMainMenu()=0;
|
|
virtual void SetMainMenu(HMENU hMenu)=0;
|
|
virtual int MenuIDtoResID(int id)=0; // given one of the above defines, what is the corrisponding resource ID
|
|
virtual int ResIDtoMenuID(int id)=0; // oppisite of above
|
|
};
|
|
|
|
|
|
class FrontEndController {
|
|
public:
|
|
virtual void DeleteThis()=0;
|
|
|
|
virtual void *GetInterface(DWORD id) {return NULL;}
|
|
|
|
// Called once on startup. Note that MAX windows have been created
|
|
// but not necessarily sized.
|
|
virtual void Initialize(IFrontEnd *ife,Interface *ip) {}
|
|
|
|
virtual DWORD GetLayout() {return FE_LAYOUT_DEFAULT;}
|
|
|
|
// Notifications
|
|
virtual DWORD GeneralNotify(DWORD id, DWORD param1, DWORD param2) {return 0;}
|
|
virtual void SelectionChanged() {}
|
|
virtual void TimeChanged(TimeValue t) {}
|
|
virtual DWORD ProcessToolButton(int id, int notify) {return 0;}
|
|
virtual DWORD ProcessMenuItem(int id, int notify) {return 0;}
|
|
virtual DWORD ProcessInitMenu(HMENU hMenu) {return 0;}
|
|
virtual DWORD ProcessViewportRightClick(HWND hWnd, IPoint2 m) {return 0;}
|
|
virtual DWORD ProcessViewportLabelClick(HWND hWnd, IPoint2 m) {return 0;}
|
|
virtual DWORD ProcessViewportMenuItem(int id, int notify) {return 0;}
|
|
virtual DWORD ProcessViewportInitMenu(HMENU hMenu) {return 0;}
|
|
virtual void Resize() {}
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif //__FRONTEND_H__
|
|
|