00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _CIvfWin32Application_h_
00026 #define _CIvfWin32Application_h_
00027
00028 #include <windows.h>
00029 #include <ivf/IvfBase.h>
00030
00031 #include <map>
00032
00033 class CIvfWin32Window;
00034
00035 IvfSmartPointer(CIvfWin32Application);
00036
00044 class IVFWIN32_API CIvfWin32Application : public CIvfBase {
00045 private:
00046 std::map<HWND,CIvfWin32Window*> m_windows;
00047 static CIvfWin32Application* m_instance;
00048 int m_idleProcessing;
00049 public:
00051 ~CIvfWin32Application();
00052
00054 void disableIdleProcessing();
00055
00057 void enableIdleProcessing();
00058
00060 static CIvfWin32Application* getInstance();
00061
00063 void registerWindow(CIvfWin32Window* window);
00064
00066 void unregisterWindow(CIvfWin32Window* window);
00067
00069 CIvfWin32Window* getWindow(HWND hWnd);
00070
00072 int run();
00073
00079 void runAppLoop(CIvfWin32Window* window);
00080 protected:
00082 CIvfWin32Application();
00083 };
00084
00085 #endif