added everything
This commit is contained in:
97
lib/maxsdk70/include/maxscrpt/mousetool.h
Executable file
97
lib/maxsdk70/include/maxscrpt/mousetool.h
Executable file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* MouseTool.h - scriptable mouse CommandModes for MAX
|
||||
*
|
||||
* Copyright <20> Autodesk, Inc, 1998. John Wainwright.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _H_MOUSETOOL
|
||||
#define _H_MOUSETOOL
|
||||
|
||||
class MouseTool;
|
||||
class MSPlugin;
|
||||
|
||||
// tool context local indexes - MUST match order in Parser::tool_def()
|
||||
enum { cl_viewPoint, cl_worldPoint, cl_worldDist, cl_worldAngle, cl_gridPoint, cl_gridDist, cl_gridAngle, cl_nodeTM, cl_shift, cl_ctrl, cl_alt, cl_lbutton, cl_mbutton, cl_rbutton, };
|
||||
|
||||
/* --------- MouseTool command mode & callback classes ------------- */
|
||||
|
||||
class MouseToolCallBack : public MouseCallBack
|
||||
{
|
||||
public:
|
||||
MouseTool* tool;
|
||||
IPoint2 last_mp;
|
||||
Point3 last_wp;
|
||||
Point3 last_cpp;
|
||||
|
||||
MouseToolCallBack() {}
|
||||
int proc(HWND hwnd, int msg, int point, int flags, IPoint2 m);
|
||||
int mouse_proc(ViewExp *vpt, int msg, int point, int flags, IPoint2 m, Matrix3& mat, BOOL createMouseCallback = FALSE);
|
||||
void set_context_locals(ViewExp* vpx, int snap, int point, int flag, IPoint2 mp, Point3 cpp, Matrix3& mat);
|
||||
void reset_context_locals();
|
||||
};
|
||||
|
||||
#define MOUSE_TOOL_COMMAND 7364
|
||||
#define CID_MOUSE_TOOL CID_USER + 45237
|
||||
|
||||
class MouseToolCommandMode : public CommandMode, public CommandModeChangedCallback
|
||||
{
|
||||
public:
|
||||
MouseToolCallBack proc;
|
||||
BOOL active;
|
||||
TCHAR* prompt;
|
||||
int num_points;
|
||||
int cmd_class;
|
||||
|
||||
int Class() { return cmd_class; }
|
||||
int ID() { return CID_MOUSE_TOOL; }
|
||||
MouseCallBack *MouseProc(int *points) { *points = num_points; return &proc; }
|
||||
ChangeForegroundCallback *ChangeFGProc() { return NULL; }
|
||||
BOOL ChangeFG(CommandMode *oldMode) { return FALSE; }
|
||||
void EnterMode();
|
||||
void ExitMode();
|
||||
void ModeChanged(CommandMode *oldM, CommandMode *newM);
|
||||
};
|
||||
|
||||
/* ------------- MouseTool MAXScript value class -------------- */
|
||||
|
||||
visible_class (MouseTool)
|
||||
|
||||
class MouseTool : public Value
|
||||
{
|
||||
public:
|
||||
Value* name; // tool name
|
||||
HashTable* local_scope; // local name space
|
||||
Value** locals; // local var array
|
||||
Value** local_inits; // " " " init vals
|
||||
int local_count; // " " count
|
||||
HashTable* handlers; // handler tables
|
||||
short flags; // tool flags
|
||||
int cmd_class; // command mode class
|
||||
int num_points; // number of points
|
||||
Value* prompt; // staus line prompt if non-null
|
||||
BOOL init_values; // whether to init ctrl/local values on (re)open
|
||||
BOOL end_tool_mode; // signals end of tool cmd mode
|
||||
MouseToolCommandMode cmdmode; // my command mode
|
||||
// command mode locals...
|
||||
Value* result; // tool result
|
||||
Value* snap_mode; // #2D or #3D or #none
|
||||
MSPlugin* plugin; // current plugin under manip if non-NULL
|
||||
|
||||
MouseTool(short iflags);
|
||||
void init(Value* name, int local_count, Value** inits, HashTable* local_scope, HashTable* handlers);
|
||||
~MouseTool();
|
||||
|
||||
classof_methods (MouseTool, Value);
|
||||
void collect() { delete this; }
|
||||
void gc_trace();
|
||||
ScripterExport void sprin1(CharStream* s);
|
||||
|
||||
BOOL call_event_handler(Value* handler, Value** arg_list, int count, BOOL enable_redraw = TRUE);
|
||||
void init_locals();
|
||||
|
||||
virtual Value* get_property(Value** arg_list, int count);
|
||||
virtual Value* set_property(Value** arg_list, int count);
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user