46 ClassImp(PyROOT::TPyROOTApplication);
50 PyROOT::TPyROOTApplication::TPyROOTApplication(
51 const char* acn,
int* argc,
char** argv, Bool_t ) :
52 TApplication( acn, argc, argv )
73 ProcessLine(
"((TGWin32 *)gVirtualX)->SetUserThreadId(0);", kTRUE);
77 gInterpreter->SaveContext();
78 gInterpreter->SaveGlobalsContext();
81 Gl_histinit( (
char*)
"-" );
84 SetReturnFromRun( kTRUE );
89 Bool_t PyROOT::TPyROOTApplication::CreatePyROOTApplication( Bool_t bLoadLibs )
93 if ( ! gApplication ) {
95 PyObject* argl = PySys_GetObject( const_cast< char* >(
"argv" ) );
98 if ( argl && 0 < PyList_Size( argl ) ) argc = (int)PyList_GET_SIZE( argl );
99 char** argv =
new char*[ argc ];
100 for (
int i = 1; i < argc; ++i ) {
101 char* argi =
const_cast< char*
>( PyROOT_PyUnicode_AsString( PyList_GET_ITEM( argl, i ) ) );
102 if ( strcmp( argi,
"-" ) == 0 || strcmp( argi,
"--" ) == 0 ) {
109 #if PY_VERSION_HEX < 0x03000000
110 if ( Py_GetProgramName() && strlen( Py_GetProgramName() ) != 0 )
111 argv[ 0 ] = Py_GetProgramName();
113 argv[ 0 ] = (
char*)
"python";
116 argv[ 0 ] = (
char*)
"python";
119 gApplication =
new TPyROOTApplication(
"PyROOT", &argc, argv, bLoadLibs );
132 Bool_t PyROOT::TPyROOTApplication::InitROOTGlobals()
134 if ( ! gBenchmark ) gBenchmark =
new TBenchmark();
135 if ( ! gStyle ) gStyle =
new TStyle();
138 #if PY_VERSION_HEX < 0x03000000
139 gSystem->SetProgname( Py_GetProgramName() );
142 gSystem->SetProgname(
"python" );
152 Bool_t PyROOT::TPyROOTApplication::InitROOTMessageCallback()
154 SetErrorHandler( (ErrorHandlerFunc_t)&Utility::ErrMsgHandler );