48 controlDirectory->
SetGuidance(
"UI control commands.");
51 macroPathCommand->
SetGuidance(
"Set macro search path"
52 "with colon-separated list.");
56 ExecuteCommand->
SetGuidance(
"Execute a macro file.");
59 loopCommand =
new G4UIcommand(
"/control/loop",
this);
60 loopCommand->
SetGuidance(
"Execute a macro file more than once.");
61 loopCommand->
SetGuidance(
"Loop counter can be used as an aliased variable.");
74 foreachCommand =
new G4UIcommand(
"/control/foreach",
this);
75 foreachCommand->
SetGuidance(
"Execute a macro file more than once.");
76 foreachCommand->
SetGuidance(
"Loop counter can be used as an aliased variable.");
77 foreachCommand->
SetGuidance(
"Values must be separated by a space.");
86 suppressAbortionCommand->
SetGuidance(
"Suppress the program abortion caused by G4Exception.");
87 suppressAbortionCommand->
SetGuidance(
"Suppression level = 0 : no suppression");
88 suppressAbortionCommand->
SetGuidance(
" = 1 : suppress during EventProc state");
89 suppressAbortionCommand->
SetGuidance(
" = 2 : full suppression, i.e. no abortion by G4Exception");
90 suppressAbortionCommand->
SetGuidance(
"When abortion is suppressed, you will get error messages issued by G4Exception,");
91 suppressAbortionCommand->
SetGuidance(
"and there is NO guarantee for the correct result after the G4Exception error message.");
93 suppressAbortionCommand->
SetRange(
"level >= 0 && level <= 2");
97 verboseCommand->
SetGuidance(
"Applied command will also be shown on screen.");
98 verboseCommand->
SetGuidance(
"This command is useful with MACRO file.");
100 verboseCommand->
SetGuidance(
" 1 : only the valid commands are shown.");
101 verboseCommand->
SetGuidance(
" 2 : comment lines are also shown (default).");
103 verboseCommand->
SetRange(
"switch >= 0 && switch <=2");
107 historyCommand->
SetGuidance(
"Store command history to a file.");
108 historyCommand->
SetGuidance(
"Defaul file name is G4history.macro.");
112 stopStoreHistoryCommand
114 stopStoreHistoryCommand->
SetGuidance(
"Stop saving history file.");
116 aliasCommand =
new G4UIcommand(
"/control/alias",
this);
118 aliasCommand->
SetGuidance(
"String can be aliased by this command.");
119 aliasCommand->
SetGuidance(
"The string may contain one or more spaces,");
120 aliasCommand->
SetGuidance(
"the string must be enclosed by double quotes (\").");
121 aliasCommand->
SetGuidance(
"To use an alias, enclose the alias name with");
122 aliasCommand->
SetGuidance(
"parenthis \"{\" and \"}\".");
136 getEnvCmd->
SetGuidance(
"Get a shell environment variable and define it as an alias.");
139 echoCmd->
SetGuidance(
"Display the aliased value.");
142 shellCommand->
SetGuidance(
"Execute a (Unix) SHELL command.");
145 ManualCommand->
SetGuidance(
"Display all of sub-directories and commands.");
146 ManualCommand->
SetGuidance(
"Directory path should be given by FULL-PATH.");
151 HTMLCommand->
SetGuidance(
"Generate HTML files for all of sub-directories and commands.");
152 HTMLCommand->
SetGuidance(
"Directory path should be given by FULL-PATH.");
157 maxStoredHistCommand->
SetGuidance(
"Set maximum number of stored UI commands.");
162 ifCommand->
SetGuidance(
"Execute a macro file if the expression is true.");
163 ifCommand->
SetGuidance(
" Syntax : <double> <comp> <double> <macro_file>");
175 addCommand->
SetGuidance(
"Define a new alias as the sum of two values.");
176 addCommand->
SetGuidance(
" Syntax : <new_alias> <value1> <value2>");
177 addCommand->
SetGuidance(
" <new_alias> may be an already existing alias. If it is the case,");
178 addCommand->
SetGuidance(
" aliased value is alternated.");
186 subtractCommand =
new G4UIcommand(
"/control/subtract",
this);
187 subtractCommand->
SetGuidance(
"Define a new alias as the subtraction of two values.");
188 subtractCommand->
SetGuidance(
" Syntax : <new_alias> <value1> <value2>");
189 subtractCommand->
SetGuidance(
" <new_alias> may be an already existing alias. If it is the case,");
190 subtractCommand->
SetGuidance(
" aliased value is alternated.");
198 multiplyCommand =
new G4UIcommand(
"/control/multiply",
this);
199 multiplyCommand->
SetGuidance(
"Define a new alias as the multiplification of two values.");
200 multiplyCommand->
SetGuidance(
" Syntax : <new_alias> <value1> <value2>");
201 multiplyCommand->
SetGuidance(
" <new_alias> may be an already existing alias. If it is the case,");
202 multiplyCommand->
SetGuidance(
" aliased value is alternated.");
210 divideCommand =
new G4UIcommand(
"/control/divide",
this);
211 divideCommand->
SetGuidance(
"Define a new alias as the division of two values.");
212 divideCommand->
SetGuidance(
" Syntax : <new_alias> <value1> <value2>");
213 divideCommand->
SetGuidance(
" <new_alias> may be an already existing alias. If it is the case,");
214 divideCommand->
SetGuidance(
" aliased value is alternated.");
223 remainderCommand =
new G4UIcommand(
"/control/remainder",
this);
224 remainderCommand->
SetGuidance(
"Define a new alias as the remainder of two values.");
225 remainderCommand->
SetGuidance(
" Syntax : <new_alias> <value1> <value2>");
226 remainderCommand->
SetGuidance(
" <new_alias> may be an already existing alias. If it is the case,");
227 remainderCommand->
SetGuidance(
" aliased value is alternated.");
240 delete macroPathCommand;
241 delete ExecuteCommand;
242 delete suppressAbortionCommand;
243 delete verboseCommand;
244 delete historyCommand;
245 delete stopStoreHistoryCommand;
246 delete ManualCommand;
248 delete unaliasCommand;
249 delete listAliasCommand;
254 delete foreachCommand;
256 delete maxStoredHistCommand;
259 delete subtractCommand;
260 delete multiplyCommand;
261 delete divideCommand;
262 delete remainderCommand;
264 delete controlDirectory;
271 if( command == macroPathCommand) {
272 UI-> SetMacroSearchPath(newValue);
273 UI-> ParseMacroSearchPath();
275 if(command==ExecuteCommand)
277 UI-> ExecuteMacroFile(UI-> FindMacroPath(newValue));
279 if(command==suppressAbortionCommand)
283 if(command==verboseCommand)
287 if(command==historyCommand)
291 if(command==stopStoreHistoryCommand)
295 if(command==ManualCommand)
299 if(command==aliasCommand)
303 if(command==unaliasCommand)
307 if(command==listAliasCommand)
311 if(command==getEnvCmd)
318 st += getenv(newValue);
322 {
G4cerr <<
"<" << newValue <<
"> is not defined as a shell variable. Command ignored." <<
G4endl; }
326 if(command==shellCommand)
330 if(command==loopCommand)
334 if(command==foreachCommand)
338 if(command==HTMLCommand)
342 if(command==maxStoredHistCommand)
346 if(command==ifCommand)
354 if(comp==
">") x = (l>
r);
355 else if(comp==
">=") x = (l>=
r);
356 else if(comp==
"<") x = (l<
r);
357 else if(comp==
"<=") x = (l<=
r);
358 else if(comp==
"==") x = (l==
r);
359 else if(comp==
"!=") x = (l!=
r);
362 if(command==addCommand)
374 if(command==subtractCommand)
386 if(command==multiplyCommand)
398 if(command==divideCommand)
410 if(command==remainderCommand)
429 if( command == macroPathCommand ) {
430 currentValue = UI-> GetMacroSearchPath();
432 if(command==verboseCommand)
436 if(command==suppressAbortionCommand)
440 if(command==maxStoredHistCommand)