00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef PyApp_H 00015 #define PyApp_H 00016 00017 #include <string> 00018 00019 namespace hippodraw { 00020 00021 class HdThread; 00022 class Inspector; 00023 class PyCanvas; 00024 class QtApp; 00025 00032 class PyApp 00033 { 00034 private: 00035 00037 static PyApp * s_instance; 00038 00040 static QtApp * s_app; 00041 00043 HdThread * m_thread; 00044 00045 public: 00046 00048 PyApp ( ); 00049 00051 PyApp ( int ); 00052 00054 PyApp ( char * script ); 00055 00058 ~PyApp ( ); 00059 00061 static PyApp * instance (); 00062 00064 int exec(); 00065 00068 void quit (); 00069 00073 bool hasTerminated () const; 00074 00076 PyCanvas * currentCanvas (); 00077 00079 void openDocument ( const std::string & filename ); 00080 00084 static void lock(); 00085 00088 static bool locked (); 00089 00094 static void unlock(); 00095 00098 static bool hasPendingEvents (); 00099 00103 void quitOnLastWindowClose ( bool yes ); 00104 00105 }; 00106 00107 } // namespace hippodraw 00108 00109 #endif // PyApp_H