// This code implementation is the intellectual property of // the RD44 GEANT4 collaboration. // // By copying, distributing or modifying the Program (or any work // based on the Program) you indicate your acceptance of this statement, // and all its terms. // // $Id: G4Xt.cc,v 1.2 1999/04/13 01:26:33 yhajime Exp $ // GEANT4 tag $Name: geant4-00-01 $ // // G.Barrand #if defined(G4INTY_BUILD_XT) || defined(G4INTY_USE_XT) #include #include #include "G4ios.hh" #include "G4Xt.hh" #define NewString(str) \ ((str) != NULL ? (strcpy((char*)malloc((unsigned)strlen(str) + 1), str)) : NULL) static void XWidgetIconify (Widget); static void XWidgetUniconify (Widget); static void XDisplaySetWindowToNormalState (Display*,Window); G4Xt* G4Xt::instance = NULL; static G4bool XtInited = FALSE; static int argn = 0; static char** args = NULL; static Widget topWidget = NULL; /***************************************************************************/ G4Xt* G4Xt::getInstance ( ) /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ { return G4Xt::getInstance (0,NULL,"Geant4"); } /***************************************************************************/ G4Xt* G4Xt::getInstance ( int a_argn ,char** a_args ,char* a_class ) /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ { if (instance==NULL) { instance = new G4Xt(a_argn,a_args,a_class); } return instance; } /***************************************************************************/ G4Xt::G4Xt ( int a_argn ,char** a_args ,char* a_class ) /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ { if(XtInited==FALSE) { //Xt should be Inited once ! if(a_argn!=0) { //Save args. args = (char**)malloc(a_argn * sizeof(char*)); if(args!=NULL) { argn = a_argn; for(int argi=0;argi