Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

G4UIXaw Class Reference

#include <G4UIXaw.hh>

Inheritance diagram for G4UIXaw:

Inheritance graph
[legend]
Collaboration diagram for G4UIXaw:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 G4UIXaw (int, char **)
 ~G4UIXaw ()
G4UIsession * SessionStart ()
void Prompt (G4String)
void SessionTerminate ()
void PauseSessionStart (G4String)
Widget GetDialog ()

Private Member Functions

void SecondaryLoop (G4String)
G4bool GetHelpChoice (G4int &)
void ExitHelp ()

Static Private Member Functions

void Callback (Widget, XtPointer, XtPointer)

Private Attributes

Widget shell
Widget dialog
G4bool fHelp
G4int fHelpChoice

Constructor & Destructor Documentation

G4UIXaw::G4UIXaw int  argc,
char **  argv
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 56 of file G4UIXaw.cc.

References Callback(), dialog, G4Xt::getInstance(), G4VInteractorManager::GetMainInteractor(), and shell.

00060 :fHelp(false)
00061 ,fHelpChoice(0)
00062 /***************************************************************************/
00064 {
00065   G4UImanager* UI = G4UImanager::GetUIpointer();
00066   if(UI!=NULL) UI->SetSession(this);
00067 
00068   G4Xt*     interactorManager = G4Xt::getInstance (argc,argv,(char*)"Xaw");
00069   Widget    top = (Widget)interactorManager->GetMainInteractor();
00070 
00071   shell     = XtAppCreateShell      ("G4UIXaw","G4UIXaw",topLevelShellWidgetClass,XtDisplay(top),NULL,0); 
00072 
00073   Arg       args[2];
00074   XtSetArg  (args[0],XtNlabel,"G4 command");
00075   XtSetArg  (args[1],XtNvalue,"");             // Needed to have a text Area.
00076   dialog    = XtCreateManagedWidget ("dialog",dialogWidgetClass,shell,args,2);
00077 
00078   XawDialogAddButton (dialog,"Ok",Callback,(XtPointer)this);
00079 
00080   XtRealizeWidget (shell);
00081 }

Here is the call graph for this function:

G4UIXaw::~G4UIXaw  ) 
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 83 of file G4UIXaw.cc.

References shell.

00087 { 
00088   XtDestroyWidget (shell);
00089   G4UImanager* UI = G4UImanager::GetUIpointer();
00090   if(UI!=NULL) UI->SetSession(NULL);
00091 }


Member Function Documentation

void G4UIXaw::Callback Widget  a_widget,
XtPointer  a_tag,
XtPointer  a_data
[static, private]
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 203 of file G4UIXaw.cc.

References G4VBasicShell::ApplyShellCommand(), ConvertStringToInt(), dialog, exitHelp, exitPause, exitSession, fHelp, fHelpChoice, and GetDialog().

Referenced by G4UIXaw().

00210 {
00211   G4UIXaw*     This = (G4UIXaw*)a_tag;
00212   Widget       dialog = This->GetDialog();
00213   char*        value = XawDialogGetValueString(dialog);
00214   if(value==NULL) return;
00215   G4String     command (value);
00216 
00217   if(This->fHelp==true) {
00218     exitHelp = true;
00219     This->fHelp = ConvertStringToInt(command.data(),This->fHelpChoice);
00220   } else {
00221     This->ApplyShellCommand (command,exitSession,exitPause);
00222   }
00223 
00224   Arg          args[1];
00225   XtSetArg     (args[0],XtNvalue,"");
00226   XtSetValues  (dialog,args,1);
00227 
00228   a_widget     = NULL;
00229   a_data       = NULL;
00230 }

Here is the call graph for this function:

void G4UIXaw::ExitHelp  )  [private, virtual]
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Implements G4VBasicShell.

Definition at line 194 of file G4UIXaw.cc.

00198 {
00199 }

Widget G4UIXaw::GetDialog  ) 
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 162 of file G4UIXaw.cc.

References dialog.

Referenced by Callback().

00166 {
00167   return dialog;
00168 }

G4bool G4UIXaw::GetHelpChoice G4int &  aInt  )  [private, virtual]
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Implements G4VBasicShell.

Definition at line 170 of file G4UIXaw.cc.

References G4VInteractorManager::DispatchEvent(), exitHelp, fHelp, fHelpChoice, G4Xt::GetEvent(), G4Xt::getInstance(), and Prompt().

00175 {
00176   fHelp = true;
00177   //
00178   G4Xt* interactorManager = G4Xt::getInstance ();
00179   Prompt("Help");
00180   exitHelp = false;
00181   void* event;
00182   while((event = interactorManager->GetEvent())!=NULL) { 
00183     interactorManager->DispatchEvent(event);
00184     if(exitHelp==true) break;
00185   }
00186   Prompt("session");
00187   //
00188   if(fHelp==false) return false;
00189   aInt = fHelpChoice;
00190   fHelp = false;
00191   return true;
00192 }

Here is the call graph for this function:

void G4UIXaw::PauseSessionStart G4String  a_state  )  [virtual]
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Implements G4VBasicShell.

Definition at line 129 of file G4UIXaw.cc.

References SecondaryLoop().

00134 {
00135   if(a_state=="G4_pause> ") { 
00136     SecondaryLoop ("Pause, type continue to exit this state");
00137   }
00138 
00139   if(a_state=="EndOfEvent") {
00140     // Picking with feed back in event data Done here !!!
00141     SecondaryLoop ("End of event, type continue to exit this state");
00142   }
00143 }

Here is the call graph for this function:

void G4UIXaw::Prompt G4String  aPrompt  ) 
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 111 of file G4UIXaw.cc.

References dialog.

Referenced by GetHelpChoice(), SecondaryLoop(), and SessionStart().

00116 {
00117   Arg          args[1];
00118   XtSetArg     (args[0],XtNlabel,aPrompt.data());
00119   XtSetValues  (dialog,args,1);
00120 }

void G4UIXaw::SecondaryLoop G4String  a_prompt  )  [private]
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 145 of file G4UIXaw.cc.

References G4VInteractorManager::DispatchEvent(), exitPause, G4Xt::GetEvent(), G4Xt::getInstance(), and Prompt().

Referenced by PauseSessionStart().

00150 {
00151   G4Xt*         interactorManager = G4Xt::getInstance ();
00152   Prompt        (a_prompt);
00153   exitPause     = false;
00154   void*         event;
00155   while((event = interactorManager->GetEvent())!=NULL) { 
00156     interactorManager->DispatchEvent(event);
00157     if(exitPause==true) break;
00158   }
00159   Prompt       ("session");
00160 }

Here is the call graph for this function:

G4UIsession * G4UIXaw::SessionStart  )  [virtual]
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Implements G4VBasicShell.

Definition at line 93 of file G4UIXaw.cc.

References G4VInteractorManager::DisableSecondaryLoop(), G4VInteractorManager::DispatchEvent(), G4VInteractorManager::EnableSecondaryLoop(), exitSession, G4Xt::GetEvent(), G4Xt::getInstance(), and Prompt().

00097 {
00098   G4Xt*        interactorManager = G4Xt::getInstance ();
00099   Prompt       ("session");
00100   exitSession  = false;
00101   interactorManager->DisableSecondaryLoop ();
00102   void*        event;
00103   while((event = interactorManager->GetEvent())!=NULL) { 
00104     interactorManager->DispatchEvent(event);
00105     if(exitSession==true) break;
00106   }
00107   interactorManager->EnableSecondaryLoop ();
00108   return       this;
00109 }

Here is the call graph for this function:

void G4UIXaw::SessionTerminate  ) 
 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 122 of file G4UIXaw.cc.

00126 {
00127 }


Member Data Documentation

Widget G4UIXaw::dialog [private]
 

Definition at line 69 of file G4UIXaw.hh.

Referenced by Callback(), G4UIXaw(), GetDialog(), and Prompt().

G4bool G4UIXaw::fHelp [private]
 

Definition at line 70 of file G4UIXaw.hh.

Referenced by Callback(), and GetHelpChoice().

G4int G4UIXaw::fHelpChoice [private]
 

Definition at line 71 of file G4UIXaw.hh.

Referenced by Callback(), and GetHelpChoice().

Widget G4UIXaw::shell [private]
 

Definition at line 69 of file G4UIXaw.hh.

Referenced by G4UIXaw(), and ~G4UIXaw().


The documentation for this class was generated from the following files:
Generated on Fri Jun 22 11:07:47 2007 by doxygen 1.3.4