X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d026fee446b2085a1bbdaee2d7a1050a7cbd1467..574e1c5a033d169b75fa878759cdade7feddde8b:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index ce738893b1..64895d855b 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -306,6 +306,22 @@ extern HICON wxBitmapToHICON(const wxBitmap& bmp); extern HCURSOR wxBitmapToHCURSOR(const wxBitmap& bmp, int hotSpotX, int hotSpotY); + +#if wxUSE_OWNER_DRAWN + +// Draw the bitmap in specified state (this is used by owner drawn controls) +enum wxDSBStates +{ + wxDSB_NORMAL = 0, + wxDSB_SELECTED, + wxDSB_DISABLED +}; + +extern +BOOL wxDrawStateBitmap(HDC hDC, HBITMAP hBitmap, int x, int y, UINT uState); + +#endif // wxUSE_OWNER_DRAWN + // get (x, y) from DWORD - notice that HI/LOWORD can *not* be used because they // will fail on system with multiple monitors where the coords may be negative // @@ -382,7 +398,7 @@ public: private: HDC m_hdc; - DECLARE_NO_COPY_CLASS(ScreenHDC) + wxDECLARE_NO_COPY_CLASS(ScreenHDC); }; // the same as ScreenHDC but for window DCs @@ -398,7 +414,7 @@ private: HWND m_hwnd; HDC m_hdc; - DECLARE_NO_COPY_CLASS(WindowHDC) + wxDECLARE_NO_COPY_CLASS(WindowHDC); }; // the same as ScreenHDC but for memory DCs: creates the HDC compatible with @@ -414,7 +430,7 @@ public: private: HDC m_hdc; - DECLARE_NO_COPY_CLASS(MemoryHDC) + wxDECLARE_NO_COPY_CLASS(MemoryHDC); }; // a class which selects a GDI object into a DC in its ctor and deselects in @@ -446,7 +462,7 @@ private: HDC m_hdc; HGDIOBJ m_hgdiobj; - DECLARE_NO_COPY_CLASS(SelectInHDC) + wxDECLARE_NO_COPY_CLASS(SelectInHDC); }; // a class which cleans up any GDI object @@ -563,7 +579,7 @@ public: private: HDC m_hdc; - DECLARE_NO_COPY_CLASS(HDCClipper) + wxDECLARE_NO_COPY_CLASS(HDCClipper); }; // set the given map mode for the life time of this object @@ -594,7 +610,7 @@ private: HDC m_hdc; int m_modeOld; - DECLARE_NO_COPY_CLASS(HDCMapModeChanger) + wxDECLARE_NO_COPY_CLASS(HDCMapModeChanger); }; #define wxCHANGE_HDC_MAP_MODE(hdc, mm) \ @@ -605,14 +621,25 @@ private: class GlobalPtr { public: + // default ctor, call Init() later + GlobalPtr() + { + m_hGlobal = NULL; + } + // allocates a block of given size - GlobalPtr(size_t size, unsigned flags = GMEM_MOVEABLE) + void Init(size_t size, unsigned flags = GMEM_MOVEABLE) { m_hGlobal = ::GlobalAlloc(flags, size); if ( !m_hGlobal ) wxLogLastError(_T("GlobalAlloc")); } + GlobalPtr(size_t size, unsigned flags = GMEM_MOVEABLE) + { + Init(size, flags); + } + ~GlobalPtr() { if ( m_hGlobal && ::GlobalFree(m_hGlobal) ) @@ -625,7 +652,7 @@ public: private: HGLOBAL m_hGlobal; - DECLARE_NO_COPY_CLASS(GlobalPtr) + wxDECLARE_NO_COPY_CLASS(GlobalPtr); }; // when working with global pointers (which is unfortunately still necessary @@ -683,7 +710,7 @@ private: HGLOBAL m_hGlobal; void *m_ptr; - DECLARE_NO_COPY_CLASS(GlobalPtrLock) + wxDECLARE_NO_COPY_CLASS(GlobalPtrLock); }; // register the class when it is first needed and unregister it in dtor @@ -930,7 +957,7 @@ extern WXDLLIMPEXP_CORE wxWindow* wxFindWinFromHandle(HWND hwnd); // without STRICT WXHWND is the same as HWND anyhow inline wxWindow* wxFindWinFromHandle(WXHWND hWnd) { - return wxFindWinFromHandle(wx_static_cast(HWND, hWnd)); + return wxFindWinFromHandle(static_cast(hWnd)); } // find the window for HWND which is part of some wxWindow, i.e. unlike