00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef TCL_TEXT_INTERP_H
00022 #define TCL_TEXT_INTERP_H
00023
00024 #include "TextInterp.h"
00025 #include "JString.h"
00026 #include "TextEvent.h"
00027
00028 struct Tcl_Interp;
00029 struct Tcl_Obj;
00030
00031 class VMDApp;
00032 class Inform;
00033
00035 class TclTextInterp : public TextInterp {
00036 private:
00037 Tcl_Interp *interp;
00038 Tcl_Obj *commandPtr;
00039 int callLevel;
00040 int gotPartial;
00041 int needPrompt;
00042 VMDApp *app;
00043
00044 double starttime, delay;
00045 int consoleisatty;
00046
00050 void add_commands();
00051
00052 void setMap(const char *, const char *, const char *);
00053
00054 public:
00055 TclTextInterp(VMDApp *, int guienabled);
00056 ~TclTextInterp();
00057
00058 virtual void doInit();
00059 virtual void doEvent();
00060 virtual int doTkUpdate();
00061
00064 virtual int evalString(const char *);
00065
00068 virtual int evalFile(const char *);
00069
00070 virtual void setString(const char *, const char *);
00071
00072 Tcl_Interp* get_interp() {
00073 return interp;
00074 }
00075
00078 void wait(float wd);
00079 int done_waiting();
00080
00081
00082
00083
00084
00085 virtual void frame_cb(int molid, int frame);
00086 virtual void help_cb(const char *topic);
00087 virtual void initialize_structure_cb(int molid, int create_or_destroy);
00088 virtual void molecule_changed_cb(int molid, int code);
00089 virtual void logfile_cb(const char *cmd);
00090 virtual void mousemode_cb(const char *mode, int submode);
00091 virtual void mouse_pos_cb(float x, float y, int buttondown);
00092 virtual void mobile_cb(float tx, float ty, float tz,
00093 float rx, float ry, float rz, int buttondown);
00094 virtual void mobile_state_changed_cb();
00095 virtual void mobile_device_command_cb(const char *str);
00096 virtual void spaceball_cb(float tx, float ty, float tz,
00097 float rx, float ry, float rz, int buttondown);
00098 virtual void pick_atom_cb(int molid, int atomid, int shift_state, bool is_pick);
00099 virtual void pick_atom_callback_cb(int molid, int atm, const char *client);
00100 virtual void pick_selection_cb(int n, const int *atoms);
00101 virtual void pick_value_cb(float value);
00102 virtual void pick_graphics_cb(int molid, int tag, int btn, int shift_state);
00103
00104 virtual void tcl_cb(const char *cmd);
00105 virtual void timestep_cb(int molid, int frame);
00106 virtual void trajectory_cb(int molid, const char *fname);
00107 virtual void graph_label_cb(const char *type, const int *ids, int n);
00108 virtual void userkey_cb(const char *canonical_key_desc);
00109 };
00110
00111 #endif