From 43bcf4c950478de9a6fe7ff9eaca4f5020230da2 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Wed, 30 Aug 2000 09:58:14 +0000 Subject: [PATCH] Fixed jumping problem with remotely scrolled tree git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- contrib/include/wx/gizmos/splittree.h | 3 +++ contrib/src/gizmos/splittree.cpp | 24 ++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/contrib/include/wx/gizmos/splittree.h b/contrib/include/wx/gizmos/splittree.h index 5758dde534..4be4386cda 100644 --- a/contrib/include/wx/gizmos/splittree.h +++ b/contrib/include/wx/gizmos/splittree.h @@ -78,6 +78,9 @@ public: // In case we're using the generic tree control. virtual void PrepareDC(wxDC& dc); + // In case we're using the generic tree control. + virtual int GetScrollPos(int orient) const; + //// Helpers void HideVScrollbar(); diff --git a/contrib/src/gizmos/splittree.cpp b/contrib/src/gizmos/splittree.cpp index 76cd79471c..b7197607b5 100644 --- a/contrib/src/gizmos/splittree.cpp +++ b/contrib/src/gizmos/splittree.cpp @@ -106,6 +106,26 @@ void wxRemotelyScrolledTreeCtrl::SetScrollbars(int pixelsPerUnitX, int pixelsPer } } +// In case we're using the generic tree control. +int wxRemotelyScrolledTreeCtrl::GetScrollPos(int orient) const +{ + wxScrolledWindow* scrolledWindow = GetScrolledWindow(); + + if (IsKindOf(CLASSINFO(wxGenericTreeCtrl))) + { + wxGenericTreeCtrl* win = (wxGenericTreeCtrl*) this; + + if (orient == wxHORIZONTAL) + return win->wxGenericTreeCtrl::GetScrollPos(orient); + else + { + return scrolledWindow->GetScrollPos(orient); + } + } + return 0; +} + + // In case we're using the generic tree control. // Get the view start void wxRemotelyScrolledTreeCtrl::GetViewStart(int *x, int *y) const @@ -383,7 +403,7 @@ void wxTreeCompanionWindow::OnPaint(wxPaintEvent& event) if (!m_treeCtrl) return; - wxPen pen(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID); + wxPen pen(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID); dc.SetPen(pen); dc.SetBrush(* wxTRANSPARENT_BRUSH); wxFont font(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); @@ -400,11 +420,11 @@ void wxTreeCompanionWindow::OnPaint(wxPaintEvent& event) cy = itemRect.GetTop(); wxRect drawItemRect(0, cy, clientSize.x, itemRect.GetHeight()); - dc.DrawLine(0, cy, clientSize.x, cy); lastH = h; // Draw the actual item DrawItem(dc, h, drawItemRect); + dc.DrawLine(0, cy, clientSize.x, cy); } } if (m_treeCtrl->GetBoundingRect(lastH, itemRect)) -- 2.47.2