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 WIN32_FACTORY_HPP
00026 #define WIN32_FACTORY_HPP
00027
00028 #ifndef _WIN32_WINNT
00029 # define _WIN32_WINNT 0x0500
00030 #endif
00031
00032 #include <windows.h>
00033 #include "../src/os_factory.hpp"
00034 #include <map>
00035
00036
00038 class Win32Factory: public OSFactory
00039 {
00040 public:
00041 Win32Factory( intf_thread_t *pIntf );
00042 virtual ~Win32Factory();
00043
00045 virtual bool init();
00046
00048 virtual OSGraphics *createOSGraphics( int width, int height );
00049
00051 virtual OSLoop *getOSLoop();
00052
00054 virtual void destroyOSLoop();
00055
00057 virtual void minimize();
00058
00060 virtual OSTimer *createOSTimer( CmdGeneric &rCmd );
00061
00063 virtual OSWindow *createOSWindow( GenericWindow &rWindow,
00064 bool dragDrop, bool playOnDrop,
00065 OSWindow *pParent );
00066
00068 virtual OSTooltip *createOSTooltip();
00069
00071 virtual const string &getDirSeparator() const { return m_dirSep; }
00072
00074 virtual const list<string> &getResourcePath() const
00075 { return m_resourcePath; }
00076
00078 virtual int getScreenWidth() const;
00079 virtual int getScreenHeight() const;
00080
00082 virtual Rect getWorkArea() const;
00083
00085 virtual void getMousePos( int &rXPos, int &rYPos ) const;
00086
00088 virtual void changeCursor( CursorType_t type ) const;
00089
00091 virtual void rmDir( const string &rPath );
00092
00094 map<HWND, GenericWindow*> m_windowMap;
00095
00098
00099 BOOL (WINAPI *TransparentBlt)( HDC, int, int, int, int,
00100 HDC, int, int, int, int, UINT );
00101 BOOL (WINAPI *AlphaBlend)( HDC, int, int, int, int,
00102 HDC, int, int, int, int, BLENDFUNCTION );
00103
00104
00105 BOOL (WINAPI *SetLayeredWindowAttributes)( HWND, COLORREF,
00106 BYTE, DWORD );
00107
00108 private:
00110 HINSTANCE m_hInst;
00112 HWND m_hParentWindow;
00114 HINSTANCE m_hMsimg32;
00116 HINSTANCE m_hUser32;
00118 const string m_dirSep;
00120 list<string> m_resourcePath;
00121 };
00122
00123
00124 #endif