X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3d5231db07a04de50075f18fd605d3d87234a33b..138618acb91e2a879a735c5806f9f728220f14df:/include/wx/msw/private.h?ds=sidebyside diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index 5fe1bbfbef..390a7007b9 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -20,6 +20,13 @@ #include + +#if defined (__WXWINCE__) + #include // RGB, COLORREF + #include // Global Namespaces ::GetKeyState, ::GetWindowRect +#endif + + #ifdef __WXMICROWIN__ // Extra prototypes and symbols not defined by MicroWindows #include "wx/msw/microwin.h" @@ -81,12 +88,15 @@ 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(STRICT) || defined(__GNUC__) +#if defined(__WXWINCE__) + typedef FARPROC WndProcCast; +#elif defined(STRICT) || defined(__GNUC__) typedef WNDPROC WndProcCast; #else typedef FARPROC WndProcCast; #endif + #define CASTWNDPROC (WndProcCast) // --------------------------------------------------------------------------- @@ -206,6 +216,11 @@ 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()); +} + +inline COLORREF wxColourToPalRGB(const wxColour& c) { return PALETTERGB(c.Red(), c.Green(), c.Blue()); } @@ -331,6 +346,8 @@ public: private: HDC m_hdc; + + DECLARE_NO_COPY_CLASS(ScreenHDC) }; // the same as ScreenHDC but for memory DCs: creates the HDC in ctor and @@ -339,12 +356,14 @@ class MemoryHDC { public: MemoryHDC() { m_hdc = ::CreateCompatibleDC(NULL); } - ~MemoryHDC() { ::DeleteObject(m_hdc); } + ~MemoryHDC() { ::DeleteDC(m_hdc); } operator HDC() const { return m_hdc; } private: HDC m_hdc; + + DECLARE_NO_COPY_CLASS(MemoryHDC) }; // a class which selects a GDI object into a DC in its ctor and deselects in @@ -363,6 +382,8 @@ public: private: HDC m_hdc; HGDIOBJ m_hgdiobj; + + DECLARE_NO_COPY_CLASS(SelectInHDC) }; // --------------------------------------------------------------------------- @@ -431,8 +452,6 @@ WXDLLEXPORT void wxSetInstance(HINSTANCE hInst); extern HCURSOR wxGetCurrentBusyCursor(); // from msw/utils.cpp extern const wxCursor *wxGetGlobalCursor(); // from msw/cursor.cpp -WXDLLEXPORT wxWindow* wxFindWinFromHandle(WXHWND hWnd); - WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont *the_font); WXDLLEXPORT void wxFillLogFont(LOGFONT *logFont, const wxFont *font); WXDLLEXPORT wxFont wxCreateFontFromLogFont(const LOGFONT *logFont); @@ -444,9 +463,6 @@ WXDLLEXPORT void wxScrollBarEvent(WXHWND hbar, WXWORD wParam, WXWORD pos); // Find maximum size of window/rectangle WXDLLEXPORT extern void wxFindMaxSize(WXHWND hwnd, RECT *rect); -WXDLLEXPORT wxWindow* wxFindControlFromHandle(WXHWND hWnd); -WXDLLEXPORT void wxAddControlHandle(WXHWND hWnd, wxWindow *item); - // Safely get the window text (i.e. without using fixed size buffer) WXDLLEXPORT extern wxString wxGetWindowText(WXHWND hWnd); @@ -457,8 +473,9 @@ WXDLLEXPORT extern wxString wxGetWindowClass(WXHWND hWnd); // is, for mainly historical reasons, signed) WXDLLEXPORT extern WXWORD wxGetWindowId(WXHWND hWnd); -// check if hWnd's WNDPROC is wndProc. Return true if yes, false if they are different -extern bool wxCheckWindowWndProc(WXHWND hWnd, WXFARPROC wndProc); +// check if hWnd's WNDPROC is wndProc. Return true if yes, false if they are +// different +WXDLLEXPORT extern bool wxCheckWindowWndProc(WXHWND hWnd, WXFARPROC wndProc); // Does this window style specify any border? inline bool wxStyleHasBorder(long style) @@ -467,11 +484,24 @@ inline bool wxStyleHasBorder(long style) wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0; } -// find the window for HWND which is part of some wxWindow, returns just the -// corresponding wxWindow for HWND which just is one +// ---------------------------------------------------------------------------- +// functions mapping HWND to wxWindow +// ---------------------------------------------------------------------------- + +// this function simply checks whether the given hWnd corresponds to a wxWindow +// and returns either that window if it does or NULL otherwise +WXDLLEXPORT extern wxWindow* wxFindWinFromHandle(WXHWND hWnd); + +// find the window for HWND which is part of some wxWindow, i.e. unlike +// wxFindWinFromHandle() above it will also work for "sub controls" of a +// wxWindow. // -// may return NULL -extern wxWindow *wxGetWindowFromHWND(WXHWND hwnd); +// returns the wxWindow corresponding to the given HWND or NULL. +WXDLLEXPORT extern wxWindow *wxGetWindowFromHWND(WXHWND hwnd); + + +// Get the size of an icon +WXDLLEXPORT extern wxSize wxGetHiconSize(HICON hicon); #endif // wxUSE_GUI