X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04ef50df3a0fa3c343800c554e609f98fc7575cc..e34732036315991c0ab6ab9035fa844c5080ee19:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index 20b4d94676..d643ce0773 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -14,16 +14,22 @@ #ifndef _WX_PRIVATE_H_ #define _WX_PRIVATE_H_ +#ifndef STRICT + #define STRICT 1 +#endif + #include #ifdef __WXMICROWIN__ -/* Extra prototypes and symbols not defined by MicroWindows */ -#include "wx/msw/microwin.h" + // Extra prototypes and symbols not defined by MicroWindows + #include "wx/msw/microwin.h" #endif // undefine conflicting symbols which were defined in windows.h #include "wx/msw/winundef.h" +#include "wx/log.h" + class WXDLLEXPORT wxFont; class WXDLLEXPORT wxWindow; @@ -72,17 +78,13 @@ WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT; // this defines a CASTWNDPROC macro which casts a pointer to the type of a // window proc - -#if defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__) - #define CASTWNDPROC (long unsigned) +#if defined(STRICT) || defined(__GNUC__) + typedef WNDPROC WndProcCast; #else - #if defined(STRICT) || defined(__GNUC__) - typedef WNDPROC WndProcCast; - #else - typedef FARPROC WndProcCast; - #endif - #define CASTWNDPROC (WndProcCast) -#endif // __GNUWIN32_OLD__ + typedef FARPROC WndProcCast; +#endif + +#define CASTWNDPROC (WndProcCast) // --------------------------------------------------------------------------- // some stuff for old Windows versions (FIXME: what does it do here??) @@ -202,7 +204,7 @@ extern LONG APIENTRY _EXPORT // make conversion from wxColour and COLORREF a bit less painful inline COLORREF wxColourToRGB(const wxColour& c) { - return RGB(c.Red(), c.Green(), c.Blue()); + return PALETTERGB(c.Red(), c.Green(), c.Blue()); } inline void wxRGBToColour(wxColour& c, COLORREF rgb) @@ -248,6 +250,38 @@ inline bool wxIsCtrlDown() return (::GetKeyState(VK_CONTROL) & 0x100) != 0; } +// wrapper around GetWindowRect() and GetClientRect() APIs doing error checking +// for Win32 +inline RECT wxGetWindowRect(HWND hwnd) +{ + RECT rect; +#ifdef __WIN16__ + ::GetWindowRect(hwnd, &rect); +#else // Win32 + if ( !::GetWindowRect(hwnd, &rect) ) + { + wxLogLastError(_T("GetWindowRect")); + } +#endif // Win16/32 + + return rect; +} + +inline RECT wxGetClientRect(HWND hwnd) +{ + RECT rect; +#ifdef __WIN16__ + ::GetClientRect(hwnd, &rect); +#else // Win32 + if ( !::GetClientRect(hwnd, &rect) ) + { + wxLogLastError(_T("GetClientRect")); + } +#endif // Win16/32 + + return rect; +} + // --------------------------------------------------------------------------- // small helper classes // --------------------------------------------------------------------------- @@ -357,8 +391,8 @@ WXDLLEXPORT extern WXWORD wxGetWindowId(WXHWND hWnd); // Does this window style specify any border? inline bool wxStyleHasBorder(long style) { - return (style & (wxSIMPLE_BORDER | wxRAISED_BORDER | - wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0; + return (style & (wxSIMPLE_BORDER | wxRAISED_BORDER | + wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0; } // find the window for HWND which is part of some wxWindow, returns just the