Fixed jumping problem with remotely scrolled tree

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2000-08-30 09:58:14 +00:00
parent 5b211fbf54
commit 43bcf4c950
2 changed files with 25 additions and 2 deletions

View File

@ -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();

View File

@ -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))