}
#endif
-// ---------------------------------------------------------------------------
-// wxWindowExtraData
-// ---------------------------------------------------------------------------
-
-#if USE_DEFER_BUG_WORKAROUND
-// This class is used to hold additional data memebers that were added after
-// the stable 2.6.0 release. They should be moved into wxWindow for 2.7 after
-// binary compatibility is no longer being maintained.
-
-class wxWindowExtraData {
-public:
- wxWindowExtraData()
- : m_pendingPosition(wxDefaultPosition),
- m_pendingSize(wxDefaultSize)
- {}
-
- wxPoint m_pendingPosition;
- wxSize m_pendingSize;
-};
-
-#endif
-
// ---------------------------------------------------------------------------
// event tables
// ---------------------------------------------------------------------------
m_lastMouseEvent = -1;
#endif // wxUSE_MOUSEEVENT_HACK
-#if USE_DEFER_BUG_WORKAROUND
- m_extraData = new wxWindowExtraData;
-#endif
+ m_pendingPosition = wxDefaultPosition;
+ m_pendingSize = wxDefaultSize;
}
// Destructor
delete m_childrenDisabled;
-#if USE_DEFER_BUG_WORKAROUND
- delete m_extraData;
-#endif
}
// real construction (Init() must have been called before!)
wOrient,
&scrollInfo) )
{
- // Not neccessarily an error, if there are no scrollbars yet.
+ // Not necessarily an error, if there are no scrollbars yet.
// wxLogLastError(_T("GetScrollInfo"));
}
return scrollInfo.nPos;
pRect = NULL;
}
-#ifndef __SMARTPHONE__
+ // RedrawWindow not available on SmartPhone or eVC++ 3
+#if !defined(__SMARTPHONE__) && !(defined(_WIN32_WCE) && _WIN32_WCE < 400)
UINT flags = RDW_INVALIDATE | RDW_ALLCHILDREN;
if ( eraseBack )
flags |= RDW_ERASE;
int currentW, currentH;
#if USE_DEFER_BUG_WORKAROUND
- currentX = m_extraData->m_pendingPosition.x;
+ currentX = m_pendingPosition.x;
if (currentX == wxDefaultCoord)
GetPosition(¤tX, NULL);
-
- currentY = m_extraData->m_pendingPosition.y;
+
+ currentY = m_pendingPosition.y;
if (currentY == wxDefaultCoord)
GetPosition(NULL, ¤tY);
-
- currentW = m_extraData->m_pendingSize.x;
+
+ currentW = m_pendingSize.x;
if (currentW == wxDefaultCoord)
GetSize(¤tW, NULL);
- currentH = m_extraData->m_pendingSize.y;
+ currentH = m_pendingSize.y;
if (currentH == wxDefaultCoord)
GetSize(NULL, ¤tH);
-#else
+#else
GetPosition(¤tX, ¤tY);
GetSize(¤tW, ¤tH);
#endif
// save the pending dimensions or not. This isn't done in DoMoveWindow
// (where the hdwp is used) because some controls have thier own
// DoMoveWindow so it is easier to catch it here.
- HDWP hdwp = GetParent() && !IsTopLevel() ? (HDWP)GetParent()->m_hDWP : NULL;
+ wxWindowMSW *parent = GetParent();
+ HDWP hdwp = parent && !IsTopLevel() ? (HDWP)parent->m_hDWP : NULL;
if (hdwp)
{
- m_extraData->m_pendingPosition = wxPoint(x, y);
- m_extraData->m_pendingSize = wxSize(width, height);
+ m_pendingPosition = wxPoint(x, y);
+ m_pendingSize = wxSize(width, height);
}
else
{
- m_extraData->m_pendingPosition = wxDefaultPosition;
- m_extraData->m_pendingSize = wxDefaultSize;
+ m_pendingPosition = wxDefaultPosition;
+ m_pendingSize = wxDefaultSize;
}
#endif
SIZE sizeRect;
TEXTMETRIC tm;
- GetTextExtentPoint(hdc, string, string.length(), &sizeRect);
+ ::GetTextExtentPoint32(hdc, string, string.length(), &sizeRect);
GetTextMetrics(hdc, &tm);
if ( x )
// we want to avoid Windows' "help" and for this we need to have a
// reference bitmap which can tell us what the RGB values change
// to.
+ wxLogNull logNo; // suppress error if we couldn't load the bitmap
wxBitmap stdColourBitmap(_T("wxBITMAP_STD_COLOURS"));
if ( stdColourBitmap.Ok() )
{
//
// also note that in this case lParam == PRF_CLIENT but we're
// clearly expected to paint the background and nothing else!
+
+ if ( IsTopLevel() || InheritsBackgroundColour() )
+ return false;
+
for ( wxWindow *win = GetParent(); win; win = win->GetParent() )
{
if ( win->MSWPrintChild(hDC, (wxWindow *)this) )
node;
node = node->GetNext() )
{
- wxWindow *child = node->GetData();
- child->m_extraData->m_pendingPosition = wxDefaultPosition;
- child->m_extraData->m_pendingSize = wxDefaultSize;
+ wxWindowMSW *child = node->GetData();
+ child->m_pendingPosition = wxDefaultPosition;
+ child->m_pendingSize = wxDefaultSize;
}
#endif
}
: SB_VERT,
&scrollInfo) )
{
- // Not neccessarily an error, if there are no scrollbars yet.
+ // Not necessarily an error, if there are no scrollbars yet.
// wxLogLastError(_T("GetScrollInfo"));
}