- Fix coordinate handling in wxDC::Blit() when source DC is a DIB.
- Fix handling of composite windows in wxToolTip (Armel Asselin).
- Add VT_I8 support to wxAutomationObject (PB).
+- Fix wxListbook size calculations to avoid spurious scrollbars.
OSX:
// common part of all ctors
void Init();
+ // Implement constrained best size calculation.
+ virtual int DoGetBestClientHeight(int width) const
+ { return MSWGetBestViewRect(width, -1).y; }
+ virtual int DoGetBestClientWidth(int height) const
+ { return MSWGetBestViewRect(-1, height).x; }
+
+ wxSize MSWGetBestViewRect(int x, int y) const;
+
// Implement base class pure virtual methods.
long DoInsertColumn(long col, const wxListItem& info);
m_ownsImageListState = true;
}
+// ----------------------------------------------------------------------------
+// Geometry
+// ----------------------------------------------------------------------------
+
+wxSize wxListCtrl::MSWGetBestViewRect(int x, int y) const
+{
+ const DWORD rc = ListView_ApproximateViewRect(GetHwnd(), x, y, -1);
+
+ wxSize size(LOWORD(rc), HIWORD(rc));
+
+ // We have to add space for the scrollbars ourselves, they're not taken
+ // into account by ListView_ApproximateViewRect(), at least not with
+ // commctrl32.dll v6.
+ const DWORD mswStyle = ::GetWindowLong(GetHwnd(), GWL_STYLE);
+
+ if ( mswStyle & WS_HSCROLL )
+ size.y += wxSystemSettings::GetMetric(wxSYS_HSCROLL_Y);
+ if ( mswStyle & WS_VSCROLL )
+ size.x += wxSystemSettings::GetMetric(wxSYS_VSCROLL_X);
+
+ return size;
+}
+
// ----------------------------------------------------------------------------
// Operations
// ----------------------------------------------------------------------------