fix new wxHVScroll code to build with WXWIN_COMPATIBILITY_2_8==0

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-04-08 13:55:36 +00:00
parent 52d16c5e3b
commit e02c72fa45
11 changed files with 64 additions and 64 deletions

View File

@@ -69,8 +69,8 @@ public:
virtual ~wxHtmlListBox(); virtual ~wxHtmlListBox();
// override some base class virtuals // override some base class virtuals
virtual void RefreshLine(size_t line); virtual void RefreshRow(size_t line);
virtual void RefreshLines(size_t from, size_t to); virtual void RefreshRows(size_t from, size_t to);
virtual void RefreshAll(); virtual void RefreshAll();
virtual void SetItemCount(size_t count); virtual void SetItemCount(size_t count);

View File

@@ -113,7 +113,7 @@ public:
// helpers // helpers
int GetItemAtPosition( const wxPoint& pos ) { return HitTest(pos); } int GetItemAtPosition( const wxPoint& pos ) { return HitTest(pos); }
wxCoord GetTotalHeight() const { return EstimateTotalHeight(); } wxCoord GetTotalHeight() const { return EstimateTotalHeight(); }
wxCoord GetLineHeight(int line) const { return OnGetLineHeight(line); } wxCoord GetLineHeight(int line) const { return OnGetRowHeight(line); }
protected: protected:

View File

@@ -284,7 +284,7 @@ protected:
virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const; virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const;
// gets the line height // gets the line height
virtual wxCoord OnGetLineHeight(size_t line) const; virtual wxCoord OnGetRowHeight(size_t line) const;
// event handlers // event handlers
void OnPaint(wxPaintEvent& event); void OnPaint(wxPaintEvent& event);

View File

@@ -226,11 +226,11 @@ protected:
// current // current
virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const; virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const;
// we implement OnGetLineHeight() in terms of OnMeasureItem() because this // we implement OnGetRowHeight() in terms of OnMeasureItem() because this
// allows us to add borders to the items easily // allows us to add borders to the items easily
// //
// this function is not supposed to be overridden by the derived classes // this function is not supposed to be overridden by the derived classes
virtual wxCoord OnGetLineHeight(size_t line) const; virtual wxCoord OnGetRowHeight(size_t line) const;
// event handlers // event handlers

View File

@@ -660,9 +660,9 @@ protected:
#else // !WXWIN_COMPATIBILITY_2_8 #else // !WXWIN_COMPATIBILITY_2_8
// shortcut to avoid checking compatibility modes later // shortcut to avoid checking compatibility modes later
// remove this and all references to wxVarVScrollLegacyAdapter once // remove this and all references to wxVarVScrollLegacyAdaptor once
// wxWidgets 2.6 and 2.8 compatibility is removed // wxWidgets 2.6 and 2.8 compatibility is removed
typedef wxVarVScrollLegacyAdapter wxVarVScrollHelper; typedef wxVarVScrollHelper wxVarVScrollLegacyAdaptor;
#endif // WXWIN_COMPATIBILITY_2_8/!WXWIN_COMPATIBILITY_2_8 #endif // WXWIN_COMPATIBILITY_2_8/!WXWIN_COMPATIBILITY_2_8

View File

@@ -470,7 +470,7 @@ void MyFrame::OnHtmlLinkClicked(wxHtmlLinkEvent &event)
if (GetMyBox()) if (GetMyBox())
{ {
GetMyBox()->m_linkClicked = true; GetMyBox()->m_linkClicked = true;
GetMyBox()->RefreshLine(1); GetMyBox()->RefreshRow(1);
} }
} }
@@ -618,5 +618,5 @@ void MyHtmlListBox::UpdateFirstItem()
{ {
m_firstItemUpdated = !m_firstItemUpdated; m_firstItemUpdated = !m_firstItemUpdated;
RefreshLine(0); RefreshRow(0);
} }

View File

@@ -105,7 +105,7 @@ public:
{ {
m_frame = frame; m_frame = frame;
SetLineCount(MAX_LINES); SetRowCount(MAX_LINES);
int i; int i;
for ( i = 0; i < MAX_LINES; ++i ) for ( i = 0; i < MAX_LINES; ++i )
@@ -146,7 +146,7 @@ public:
{ {
dc.DrawLine(0, y, clientSize.GetWidth(), y); dc.DrawLine(0, y, clientSize.GetWidth(), y);
wxCoord hLine = OnGetLineHeight(line); wxCoord hLine = OnGetRowHeight(line);
dc.DrawText(wxString::Format(_T("Line %lu"), (unsigned long)line), dc.DrawText(wxString::Format(_T("Line %lu"), (unsigned long)line),
2, y + (hLine - hText) / 2); 2, y + (hLine - hText) / 2);
@@ -171,9 +171,9 @@ public:
event.Skip(); event.Skip();
} }
virtual wxCoord OnGetLineHeight(size_t n) const virtual wxCoord OnGetRowHeight(size_t n) const
{ {
wxASSERT( n < GetLineCount() ); wxASSERT( n < GetRowCount() );
return m_heights[n]; return m_heights[n];
} }

View File

@@ -323,14 +323,14 @@ void wxHtmlListBox::OnSize(wxSizeEvent& event)
event.Skip(); event.Skip();
} }
void wxHtmlListBox::RefreshLine(size_t line) void wxHtmlListBox::RefreshRow(size_t line)
{ {
m_cache->InvalidateRange(line, line); m_cache->InvalidateRange(line, line);
wxVListBox::RefreshRow(line); wxVListBox::RefreshRow(line);
} }
void wxHtmlListBox::RefreshLines(size_t from, size_t to) void wxHtmlListBox::RefreshRows(size_t from, size_t to)
{ {
m_cache->InvalidateRange(from, to); m_cache->InvalidateRange(from, to);
@@ -458,7 +458,7 @@ wxPoint wxHtmlListBox::GetRootCellCoords(size_t n) const
{ {
wxPoint pos(CELL_BORDER, CELL_BORDER); wxPoint pos(CELL_BORDER, CELL_BORDER);
pos += GetMargins(); pos += GetMargins();
pos.y += GetLinesHeight(GetFirstVisibleLine(), n); pos.y += GetRowsHeight(GetVisibleBegin(), n);
return pos; return pos;
} }
@@ -645,7 +645,7 @@ void wxSimpleHtmlListBox::SetString(unsigned int n, const wxString& s)
wxT("invalid index in wxSimpleHtmlListBox::SetString") ); wxT("invalid index in wxSimpleHtmlListBox::SetString") );
m_items[n]=s; m_items[n]=s;
RefreshLine(n); RefreshRow(n);
} }
wxString wxSimpleHtmlListBox::GetString(unsigned int n) const wxString wxSimpleHtmlListBox::GetString(unsigned int n) const

View File

@@ -399,7 +399,7 @@ void wxVListBoxComboPopup::OnMouseMove(wxMouseEvent& event)
const size_t lineMax = GetVisibleEnd(); const size_t lineMax = GetVisibleEnd();
for ( size_t line = GetVisibleBegin(); line < lineMax; line++ ) for ( size_t line = GetVisibleBegin(); line < lineMax; line++ )
{ {
y -= OnGetLineHeight(line); y -= OnGetRowHeight(line);
if ( y < 0 ) if ( y < 0 )
{ {
// Only change selection if item is fully visible // Only change selection if item is fully visible

View File

@@ -135,7 +135,7 @@ bool wxVListBox::Select(size_t item, bool select)
if ( changed ) if ( changed )
{ {
// selection really changed // selection really changed
RefreshLine(item); RefreshRow(item);
} }
DoSetCurrent(item); DoSetCurrent(item);
@@ -164,7 +164,7 @@ bool wxVListBox::SelectRange(size_t from, size_t to)
{ {
// too many items have changed, we didn't record them in changed array // too many items have changed, we didn't record them in changed array
// so we have no choice but to refresh everything between from and to // so we have no choice but to refresh everything between from and to
RefreshLines(from, to); RefreshRows(from, to);
} }
else // we've got the indices of the changed items else // we've got the indices of the changed items
{ {
@@ -178,7 +178,7 @@ bool wxVListBox::SelectRange(size_t from, size_t to)
// refresh just the lines which have really changed // refresh just the lines which have really changed
for ( size_t n = 0; n < count; n++ ) for ( size_t n = 0; n < count; n++ )
{ {
RefreshLine(changed[n]); RefreshRow(changed[n]);
} }
} }
@@ -221,7 +221,7 @@ bool wxVListBox::DoSetCurrent(int current)
} }
if ( m_current != wxNOT_FOUND ) if ( m_current != wxNOT_FOUND )
RefreshLine(m_current); RefreshRow(m_current);
m_current = current; m_current = current;
@@ -231,18 +231,18 @@ bool wxVListBox::DoSetCurrent(int current)
// don't need to refresh it -- it will be redrawn anyhow // don't need to refresh it -- it will be redrawn anyhow
if ( !IsVisible(m_current) ) if ( !IsVisible(m_current) )
{ {
ScrollToLine(m_current); ScrollToRow(m_current);
} }
else // line is at least partly visible else // line is at least partly visible
{ {
// it is, indeed, only partly visible, so scroll it into view to // it is, indeed, only partly visible, so scroll it into view to
// make it entirely visible // make it entirely visible
while ( (size_t)m_current == GetLastVisibleLine() && while ( (size_t)m_current + 1 == GetVisibleRowsEnd() &&
ScrollToLine(GetVisibleBegin()+1) ) ; ScrollToRow(GetVisibleBegin() + 1) ) ;
// but in any case refresh it as even if it was only partly visible // but in any case refresh it as even if it was only partly visible
// before we need to redraw it entirely as its background changed // before we need to redraw it entirely as its background changed
RefreshLine(m_current); RefreshRow(m_current);
} }
} }
@@ -339,7 +339,7 @@ void wxVListBox::SetSelectionBackground(const wxColour& col)
// wxVListBox painting // wxVListBox painting
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
wxCoord wxVListBox::OnGetLineHeight(size_t line) const wxCoord wxVListBox::OnGetRowHeight(size_t line) const
{ {
return OnMeasureItem(line) + 2*m_ptMargins.y; return OnMeasureItem(line) + 2*m_ptMargins.y;
} }
@@ -401,24 +401,24 @@ void wxVListBox::OnPaint(wxPaintEvent& WXUNUSED(event))
dc.Clear(); dc.Clear();
// the bounding rectangle of the current line // the bounding rectangle of the current line
wxRect rectLine; wxRect rectRow;
rectLine.width = clientSize.x; rectRow.width = clientSize.x;
// iterate over all visible lines // iterate over all visible lines
const size_t lineMax = GetVisibleEnd(); const size_t lineMax = GetVisibleEnd();
for ( size_t line = GetFirstVisibleLine(); line < lineMax; line++ ) for ( size_t line = GetVisibleBegin(); line < lineMax; line++ )
{ {
const wxCoord hLine = OnGetLineHeight(line); const wxCoord hRow = OnGetRowHeight(line);
rectLine.height = hLine; rectRow.height = hRow;
// and draw the ones which intersect the update rect // and draw the ones which intersect the update rect
if ( rectLine.Intersects(rectUpdate) ) if ( rectRow.Intersects(rectUpdate) )
{ {
// don't allow drawing outside of the lines rectangle // don't allow drawing outside of the lines rectangle
wxDCClipper clip(dc, rectLine); wxDCClipper clip(dc, rectRow);
wxRect rect = rectLine; wxRect rect = rectRow;
OnDrawBackground(dc, rect, line); OnDrawBackground(dc, rect, line);
OnDrawSeparator(dc, rect, line); OnDrawSeparator(dc, rect, line);
@@ -428,7 +428,7 @@ void wxVListBox::OnPaint(wxPaintEvent& WXUNUSED(event))
} }
else // no intersection else // no intersection
{ {
if ( rectLine.GetTop() > rectUpdate.GetBottom() ) if ( rectRow.GetTop() > rectUpdate.GetBottom() )
{ {
// we are already below the update rect, no need to continue // we are already below the update rect, no need to continue
// further // further
@@ -437,7 +437,7 @@ void wxVListBox::OnPaint(wxPaintEvent& WXUNUSED(event))
//else: the next line may intersect the update rect //else: the next line may intersect the update rect
} }
rectLine.y += hLine; rectRow.y += hRow;
} }
} }
@@ -552,11 +552,11 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event)
break; break;
case WXK_END: case WXK_END:
current = GetLineCount() - 1; current = GetRowCount() - 1;
break; break;
case WXK_DOWN: case WXK_DOWN:
if ( m_current == (int)GetLineCount() - 1 ) if ( m_current == (int)GetRowCount() - 1 )
return; return;
current = m_current + 1; current = m_current + 1;
@@ -564,7 +564,7 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event)
case WXK_UP: case WXK_UP:
if ( m_current == wxNOT_FOUND ) if ( m_current == wxNOT_FOUND )
current = GetLineCount() - 1; current = GetRowCount() - 1;
else if ( m_current != 0 ) else if ( m_current != 0 )
current = m_current - 1; current = m_current - 1;
else // m_current == 0 else // m_current == 0
@@ -573,16 +573,16 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event)
case WXK_PAGEDOWN: case WXK_PAGEDOWN:
PageDown(); PageDown();
current = GetFirstVisibleLine(); current = GetVisibleBegin();
break; break;
case WXK_PAGEUP: case WXK_PAGEUP:
if ( m_current == (int)GetFirstVisibleLine() ) if ( m_current == (int)GetVisibleBegin() )
{ {
PageUp(); PageUp();
} }
current = GetFirstVisibleLine(); current = GetVisibleBegin();
break; break;
case WXK_SPACE: case WXK_SPACE:

View File

@@ -850,7 +850,7 @@ bool wxSymbolListCtrl::DoSetCurrent(int current)
{ {
// it is, indeed, only partly visible, so scroll it into view to // it is, indeed, only partly visible, so scroll it into view to
// make it entirely visible // make it entirely visible
while ( unsigned(lineNo) == GetLastVisibleLine() && while ( (unsigned)lineNo + 1 == GetVisibleEnd() &&
ScrollToRow(GetVisibleBegin() + 1) ) ScrollToRow(GetVisibleBegin() + 1) )
; ;
@@ -904,7 +904,7 @@ void wxSymbolListCtrl::SetSelectionBackground(const wxColour& col)
// wxSymbolListCtrl painting // wxSymbolListCtrl painting
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
wxCoord wxSymbolListCtrl::OnGetLineHeight(size_t WXUNUSED(line)) const wxCoord wxSymbolListCtrl::OnGetRowHeight(size_t WXUNUSED(line)) const
{ {
return m_cellSize.y + 2*m_ptMargins.y + 1 /* for divider */ ; return m_cellSize.y + 2*m_ptMargins.y + 1 /* for divider */ ;
} }
@@ -985,8 +985,8 @@ void wxSymbolListCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
dc.SetFont(GetFont()); dc.SetFont(GetFont());
// the bounding rectangle of the current line // the bounding rectangle of the current line
wxRect rectLine; wxRect rectRow;
rectLine.width = clientSize.x; rectRow.width = clientSize.x;
dc.SetPen(wxPen(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT))); dc.SetPen(wxPen(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)));
dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
@@ -994,25 +994,25 @@ void wxSymbolListCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
// iterate over all visible lines // iterate over all visible lines
const size_t lineMax = GetVisibleEnd(); const size_t lineMax = GetVisibleEnd();
for ( size_t line = GetFirstVisibleLine(); line < lineMax; line++ ) for ( size_t line = GetVisibleBegin(); line < lineMax; line++ )
{ {
const wxCoord hLine = OnGetLineHeight(line); const wxCoord hRow = OnGetRowHeight(line);
rectLine.height = hLine; rectRow.height = hRow;
// and draw the ones which intersect the update rect // and draw the ones which intersect the update rect
if ( rectLine.Intersects(rectUpdate) ) if ( rectRow.Intersects(rectUpdate) )
{ {
// don't allow drawing outside of the lines rectangle // don't allow drawing outside of the lines rectangle
wxDCClipper clip(dc, rectLine); wxDCClipper clip(dc, rectRow);
wxRect rect = rectLine; wxRect rect = rectRow;
rect.Deflate(m_ptMargins.x, m_ptMargins.y); rect.Deflate(m_ptMargins.x, m_ptMargins.y);
OnDrawItem(dc, rect, line); OnDrawItem(dc, rect, line);
} }
else // no intersection else // no intersection
{ {
if ( rectLine.GetTop() > rectUpdate.GetBottom() ) if ( rectRow.GetTop() > rectUpdate.GetBottom() )
{ {
// we are already below the update rect, no need to continue // we are already below the update rect, no need to continue
// further // further
@@ -1021,7 +1021,7 @@ void wxSymbolListCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
//else: the next line may intersect the update rect //else: the next line may intersect the update rect
} }
rectLine.y += hLine; rectRow.y += hRow;
} }
} }
@@ -1222,7 +1222,7 @@ void wxSymbolListCtrl::EnsureVisible(int item)
// hit testing // hit testing
int wxSymbolListCtrl::HitTest(const wxPoint& pt) int wxSymbolListCtrl::HitTest(const wxPoint& pt)
{ {
wxCoord lineHeight = OnGetLineHeight(0); wxCoord lineHeight = OnGetRowHeight(0);
int atLine = GetVisibleBegin() + (pt.y/lineHeight); int atLine = GetVisibleBegin() + (pt.y/lineHeight);
int symbol = (atLine*m_symbolsPerLine) + (pt.x/(m_cellSize.x+1)); int symbol = (atLine*m_symbolsPerLine) + (pt.x/(m_cellSize.x+1));