Thread: [Jahshaka-cvs] jah/jahwidgets/src/qt3/python application.cpp, 1.7, 1.8
Status: Beta
Brought to you by:
jahshaka
From: John B. <ok_...@us...> - 2007-03-27 20:24:37
|
Update of /cvsroot/jahshaka/jah/jahwidgets/src/qt3/python In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv29195/jahwidgets/src/qt3/python Modified Files: application.cpp Log Message: Application wrapper is now a QObject so it can receive signals and notify a delegate of quit events. Index: application.cpp =================================================================== RCS file: /cvsroot/jahshaka/jah/jahwidgets/src/qt3/python/application.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- application.cpp 8 Feb 2007 12:07:55 -0000 1.7 +++ application.cpp 27 Mar 2007 20:24:33 -0000 1.8 @@ -15,18 +15,38 @@ namespace py = boost::python; namespace jw = jahwidgets::qt3; +namespace jahwidgets { namespace qt3 { + +// Create the delegate to properly support virtual functions... +class _application : public application, + public py::wrapper< application > +{ + public: + _application( ) : application() { } + virtual ~_application( ) { } + + void aboutToQuit() { + py::override override = get_override( "aboutToQuit" ); + if ( override ) override(); + } +}; + +} } + void register_application() { - py::class_< jw::application >( "application" ) - .def( "main_widget", &jw::application::main_widget ) - .def( "set_main_widget", &jw::application::set_main_widget ) - .def( "start_event_loop", &jw::application::startEventLoop ) - .def( "hasPendingEvents", &jw::application::hasPendingEvents ) - .def( "processEvents", &jw::application::processEvents ) - .def( "closingDown", &jw::application::closingDown ) - .def( "quit", &jw::application::quit ) - .def( "minimize", &jw::application::minimize ) - .def( "maximize", &jw::application::maximize ) - .def( "setStyle", &jw::application::setStyle ) - .def( "setCaption", &jw::application::setCaption ); + py::class_< jw::_application, boost::noncopyable >( "application" ) + .def( "main_widget", &jw::_application::main_widget ) + .def( "set_main_widget", &jw::_application::set_main_widget ) + .def( "start_event_loop", &jw::_application::startEventLoop ) + .def( "hasPendingEvents", &jw::_application::hasPendingEvents ) + .def( "processEvents", &jw::_application::processEvents ) + .def( "closingDown", &jw::_application::closingDown ) + .def( "quit", &jw::_application::quit ) + .def( "minimize", &jw::_application::minimize ) + .def( "maximize", &jw::_application::maximize ) + .def( "setStyle", &jw::_application::setStyle ) + .def( "setCaption", &jw::_application::setCaption ) + .def( "aboutToQuit", &jw::_application::aboutToQuit ) + ; } |