gui_application.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _GUI_APPLICATION_H_
00023 #define _GUI_APPLICATION_H_
00024
00025 #include <dcl/application.h>
00026 #include <dcl/plugin.h>
00027 #include <dcl/widget_factory.h>
00028
00029 namespace dbp {
00030
00032
00038 class gui_application: public application_int,
00039 public singleton<gui_application> {
00040 friend class singleton<gui_application>;
00041 public:
00042 virtual ~gui_application();
00043 virtual void set_name(const std::string &app_name) {
00044 pimpl->set_name(app_name);
00045 };
00046 virtual void set_description(const std::string &description) {
00047 pimpl->set_description(description);
00048 };
00049 virtual void register_cmdline_parameter(const cmdline_parameter ¶m,
00050 application_int::cmdline_parameter_handler handler) {
00051 pimpl->register_cmdline_parameter(param, handler);
00052 };
00053 virtual void on_execute(on_execute_handler handler) {
00054 pimpl->on_execute(handler);
00055 };
00056 virtual void on_exception(on_exception_handler handler) {
00057 pimpl->on_exception(handler);
00058 };
00059 virtual int run(int argc, char *argv[]) {
00060 return pimpl->run(argc, argv);
00061 };
00063
00069 widget_factory& factory() {
00070 return *_widget_factory;
00071 };
00072 protected:
00073 gui_application();
00074 private:
00075 plugin _plugin;
00076 widget_factory *_widget_factory;
00077 widget_factory::gui_application_ptr pimpl;
00078 };
00079
00080 }
00081
00082 #endif
00083