Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

TclTextInterp.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *cr
00003  *cr            (C) Copyright 1995-2011 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: TclTextInterp.h,v $
00013  *      $Author: kvandivo $        $Locker:  $             $State: Exp $
00014  *      $Revision: 1.43 $      $Date: 2012/03/12 16:07:21 $
00015  *
00016  ***************************************************************************
00017  * DESCRIPTION:
00018  *   The Tcl-based text command interpreter
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   // XXX: not used
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   // callbacks for various VMD events
00083   //
00084   //virtual void display_update_cb();
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   //virtual void python_cb(const char *cmd) {}
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

Generated on Tue May 22 01:48:16 2012 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002