00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef BAKERY_APPINSTANCEMANAGER_H
00020 #define BAKERY_APPINSTANCEMANAGER_H
00021
00022 #include <sigc++/sigc++.h>
00023 #include <list>
00024
00025 namespace Bakery
00026 {
00027
00028 class App;
00029
00036 class AppInstanceManager : public sigc::trackable
00037 {
00038 public:
00039 AppInstanceManager();
00040 virtual ~AppInstanceManager();
00041
00042 virtual void add_app(App* pApp);
00043 virtual void close_all();
00044 virtual void cancel_close_all();
00045
00046 virtual unsigned int get_app_count() const;
00047
00048 typedef std::list<App*> type_listAppInstances;
00049 virtual type_listAppInstances get_instances() const;
00050
00051 protected:
00052
00053 virtual void on_app_hide(App* pApp);
00054
00055
00056 type_listAppInstances m_listAppInstances;
00057
00058 bool m_bExiting;
00059 };
00060
00061 }
00062
00063 #endif //BAKERY_APPINSTANCEMANAGER_H