00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef G4UIGAG_h
00037 #define G4UIGAG_h 1
00038
00039 #include "G4UIsession.hh"
00040 #include "G4UImanager.hh"
00041 #include <fstream>
00042 #include <vector>
00043
00044 enum UImode { terminal_mode , java_mode, tcl_mode };
00045 enum ChangeOfTree { notChanged=0, added, deleted, addedAndDeleted };
00046
00047
00048
00049
00050
00051
00052
00053 class G4UIGAG : public G4UIsession
00054 {
00055 public:
00056 G4UIGAG();
00057 ~G4UIGAG();
00058
00059 G4UIsession * SessionStart();
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 void PauseSessionStart(const G4String&);
00070 G4int ReceiveG4cout(const G4String&);
00071 G4int ReceiveG4cerr(const G4String&);
00072
00073
00074
00075 void SessionTerminate();
00076 void Prompt(const G4String&);
00077 G4String GetCommand();
00078
00079 private:
00080 G4String prefix;
00081 G4UImanager * UI;
00082 G4String promptCharacter;
00083 G4bool iExit;
00084 G4bool iCont;
00085 UImode uiMode;
00086
00087 private:
00088 G4String JVersion;
00089 G4String TVersion;
00090 void ExecuteCommand(const G4String&);
00091 void ChangeDirectory(const G4String&);
00092 void ListDirectory(const G4String&);
00093 void TerminalHelp(const G4String&);
00094 G4String ModifyPrefix(G4String);
00095 G4UIcommandTree* FindDirPath(const G4String&);
00096 void ShowCurrent(const G4String&);
00097 G4String GetFullPath(const G4String&);
00098
00099 void SendCommandProperties(G4UIcommandTree *);
00100 void SendParameterProperties(G4UIcommandTree *);
00101 void SendAParamProperty(G4UIcommand *);
00102 void SendATclParamProperty(G4UIcommand *);
00103 void CodeGenJavaTree(G4UIcommandTree *,int recursiveLevel);
00104 void CodeGenJavaParams(G4UIcommandTree *,int recursiveLevel);
00105 void CodeGenTclTree(G4UIcommandTree *, int recursiveLevel);
00106 void CodeGenTclParams(G4UIcommandTree *, int recursiveLevel);
00107 void SendDisableList(G4UIcommandTree *, int recursiveLevel);
00108
00109 void NotifyStateChange(void);
00110 void NotifyCommandUpdate(void);
00111 void NotifyParameterUpdate(G4UIcommand *);
00112
00113 int CommandUpdated(void);
00114 void UpdateState(void);
00115 void UpdateParamVal(void);
00116
00117
00118
00119 void GetNewTreeStructure( G4UIcommandTree*,int recursiveLevel);
00120 void GetNewTreeValues( G4UIcommandTree*,int recursiveLevel);
00121
00122 std::vector<G4String> previousTreeCommands;
00123 std::vector<G4String> newTreeCommands;
00124 std::vector<G4String> previousTreeParams;
00125 std::vector<G4String> newTreeParams;
00126 std::vector<G4UIcommand*> previousTreePCP;
00127 std::vector<G4UIcommand*> newTreePCP;
00128
00129 };
00130
00131 #endif