00001 /*************************************************************************** 00002 *cr 00003 *cr (C) Copyright 1995-2019 The Board of Trustees of the 00004 *cr University of Illinois 00005 *cr All Rights Reserved 00006 *cr 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * RCS INFORMATION: 00011 * 00012 * $RCSfile: TextInterp.h,v $ 00013 * $Author: johns $ $Locker: $ $State: Exp $ 00014 * $Revision: 1.33 $ $Date: 2019年01月17日 21:21:02 $ 00015 * 00016 *************************************************************************** 00017 * DESCRIPTION: 00018 * Text interpreter base class 00019 ***************************************************************************/ 00020 #ifndef TEXT_INTERP_H 00021 #define TEXT_INTERP_H 00022 00024 class TextInterp { 00025 protected: 00026 TextInterp() {} 00027 00028 public: 00029 virtual ~TextInterp() {} 00030 00032 virtual void doInit() {} 00033 00035 virtual void doEvent() {} 00036 00039 virtual int doTkUpdate() { return 0; } 00040 00042 virtual int evalString(const char *) { return 1; } 00043 00045 virtual int evalFile(const char *) { return 1; } 00046 00047 // 00048 // methods for setting global data in the text interpreter namespace 00049 // 00050 00052 virtual void setString(const char *, const char *) {}; 00053 00054 // 00055 // callbacks for various VMD events 00056 // 00057 virtual void display_update_cb() {} 00058 virtual void frame_cb(int molid, int frame) {} 00059 virtual void help_cb(const char *topic) {} 00060 virtual void initialize_structure_cb(int molid, int create_or_destroy) {} 00061 virtual void molecule_changed_cb(int molid, int code) {} 00062 virtual void logfile_cb(const char *cmd) {} 00063 virtual void mousemode_cb(const char *mode, int submode) {} 00064 virtual void mouse_pos_cb(float x, float y, int buttondown) {} 00065 virtual void mobile_cb(float tx, float ty, float tz, 00066 float rx, float ry, float rz, int buttondown) {} 00067 virtual void mobile_state_changed_cb() {} 00068 virtual void mobile_device_command_cb(const char *str) {} 00069 virtual void spaceball_cb(float tx, float ty, float tz, 00070 float rx, float ry, float rz, int buttondown) {} 00071 virtual void pick_atom_cb(int molid, int atomid, int shift_state, bool is_pick) {} 00072 virtual void pick_atom_callback_cb(int molid, int atm, const char *client) {} 00073 virtual void pick_selection_cb(int n, const int *atoms) {} 00074 virtual void pick_graphics_cb(int molid, int tag, int btn, int shift_state) {} 00075 virtual void pick_value_cb(float value) {} 00076 virtual void python_cb(const char *cmd) {} 00077 virtual void tcl_cb(const char *cmd) {} 00078 virtual void timestep_cb(int molid, int frame) {} 00079 virtual void trajectory_cb(int molid, const char *fname) {} 00080 virtual void graph_label_cb(const char *type, const int *ids, int n) {} 00081 virtual void userkey_cb(const char *canonical_key_desc) {} 00082 }; 00083 00084 #endif 00085 00086 00087