extern wxCOLORMAP *wxGetStdColourMap();
// create a wxRect from Windows RECT
-inline wxRect wxRectFromRECT(const RECT& r)
+inline wxRect wxRectFromRECT(const RECT& rc)
{
- return wxRect(r.left, r.top, r.right - r.left, r.bottom - r.top);
+ return wxRect(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
}
// copy Windows RECT to our wxRect
-inline void wxCopyRECTToRect(const RECT& r, wxRect& rect)
+inline void wxCopyRECTToRect(const RECT& rc, wxRect& rect)
{
- rect = wxRectFromRECT(r);
+ rect = wxRectFromRECT(rc);
+}
+
+// and vice versa
+inline void wxCopyRectToRECT(const wxRect& rect, RECT& rc)
+{
+ // note that we don't use wxRect::GetRight() as it is one of compared to
+ // wxRectFromRECT() above
+ rc.top = rect.y;
+ rc.left = rect.x;
+ rc.right = rect.x + rect.width;
+ rc.bottom = rect.y + rect.height;
}
// translations between HIMETRIC units (which OLE likes) and pixels (which are
operator HRGN() const { return (HRGN)GetObject(); }
};
+// class sets the specified clipping region during its life time
+class HDCClipper
+{
+public:
+ HDCClipper(HDC hdc, HRGN hrgn)
+ : m_hdc(hdc)
+ {
+ if ( !::SelectClipRgn(hdc, hrgn) )
+ wxLogLastError(_T("SelectClipRgn"));
+ }
+
+ ~HDCClipper()
+ {
+ ::SelectClipRgn(m_hdc, NULL);
+ }
+
+private:
+ HDC m_hdc;
+
+ DECLARE_NO_COPY_CLASS(HDCClipper)
+};
+
// when working with global pointers (which is unfortunately still necessary
// sometimes, e.g. for clipboard) it is important to unlock them exactly as
// many times as we lock them which just asks for using a "smart lock" class
// Lines are drawn differently for WinCE and regular WIN32
WXDLLEXPORT void wxDrawLine(HDC hdc, int x1, int y1, int x2, int y2);
+// fill the client rect of the given window on the provided dc using this brush
+inline void wxFillRect(HWND hwnd, HDC hdc, HBRUSH hbr)
+{
+ RECT rc;
+ ::GetClientRect(hwnd, &rc);
+ ::FillRect(hdc, &rc, hbr);
+}
+
// ----------------------------------------------------------------------------
// 32/64 bit helpers
// ----------------------------------------------------------------------------