virtual ~wxHtmlListBox();
// override some base class virtuals
- virtual void RefreshLine(size_t line);
- virtual void RefreshLines(size_t from, size_t to);
+ virtual void RefreshRow(size_t line);
+ virtual void RefreshRows(size_t from, size_t to);
virtual void RefreshAll();
virtual void SetItemCount(size_t count);
// helpers
int GetItemAtPosition( const wxPoint& pos ) { return HitTest(pos); }
wxCoord GetTotalHeight() const { return EstimateTotalHeight(); }
- wxCoord GetLineHeight(int line) const { return OnGetLineHeight(line); }
+ wxCoord GetLineHeight(int line) const { return OnGetRowHeight(line); }
protected:
virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const;
// gets the line height
- virtual wxCoord OnGetLineHeight(size_t line) const;
+ virtual wxCoord OnGetRowHeight(size_t line) const;
// event handlers
void OnPaint(wxPaintEvent& event);
// current
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
//
// 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
#else // !WXWIN_COMPATIBILITY_2_8
// 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
-typedef wxVarVScrollLegacyAdapter wxVarVScrollHelper;
+typedef wxVarVScrollHelper wxVarVScrollLegacyAdaptor;
#endif // WXWIN_COMPATIBILITY_2_8/!WXWIN_COMPATIBILITY_2_8
if (GetMyBox())
{
GetMyBox()->m_linkClicked = true;
- GetMyBox()->RefreshLine(1);
+ GetMyBox()->RefreshRow(1);
}
}
{
m_firstItemUpdated = !m_firstItemUpdated;
- RefreshLine(0);
+ RefreshRow(0);
}
{
m_frame = frame;
- SetLineCount(MAX_LINES);
+ SetRowCount(MAX_LINES);
int i;
for ( i = 0; i < MAX_LINES; ++i )
{
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),
2, y + (hLine - hText) / 2);
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];
}
m_frame = frame;
SetRowColumnCount(MAX_LINES, MAX_LINES);
-
+
int i;
for ( i = 0; i < MAX_LINES; ++i )
{
rowLast = GetVisibleRowsEnd();
const size_t columnFirst = GetVisibleColumnsBegin(),
columnLast = GetVisibleColumnsEnd();
-
+
const wxCoord hText = dc.GetCharHeight();
wxSize clientSize = GetClientSize();
x + 2, y + rowHeight / 2 - hText);
dc.DrawText(wxString::Format(_T("Col %lu"), (unsigned long)col),
x + 2, y + rowHeight / 2);
-
+
x += colWidth;
if ( row == rowFirst)
dc.DrawLine(x, 0, x, clientSize.GetHeight());
}
-
+
y += rowHeight;
dc.DrawLine(0, y, clientSize.GetWidth(), y);
}
{
if ( m_scrollWindow )
m_scrollWindow->Destroy();
-
+
m_scrollWindow = new VScrollWindow(this);
SendSizeEvent();
}
{
if ( m_scrollWindow )
m_scrollWindow->Destroy();
-
+
m_scrollWindow = new HScrollWindow(this);
SendSizeEvent();
}
event.Skip();
}
-void wxHtmlListBox::RefreshLine(size_t line)
+void wxHtmlListBox::RefreshRow(size_t line)
{
m_cache->InvalidateRange(line, 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);
{
wxPoint pos(CELL_BORDER, CELL_BORDER);
pos += GetMargins();
- pos.y += GetLinesHeight(GetFirstVisibleLine(), n);
+ pos.y += GetRowsHeight(GetVisibleBegin(), n);
return pos;
}
wxT("invalid index in wxSimpleHtmlListBox::SetString") );
m_items[n]=s;
- RefreshLine(n);
+ RefreshRow(n);
}
wxString wxSimpleHtmlListBox::GetString(unsigned int n) const
const size_t lineMax = GetVisibleEnd();
for ( size_t line = GetVisibleBegin(); line < lineMax; line++ )
{
- y -= OnGetLineHeight(line);
+ y -= OnGetRowHeight(line);
if ( y < 0 )
{
// Only change selection if item is fully visible
if ( changed )
{
// selection really changed
- RefreshLine(item);
+ RefreshRow(item);
}
DoSetCurrent(item);
{
// 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
- RefreshLines(from, to);
+ RefreshRows(from, to);
}
else // we've got the indices of the changed items
{
// refresh just the lines which have really changed
for ( size_t n = 0; n < count; n++ )
{
- RefreshLine(changed[n]);
+ RefreshRow(changed[n]);
}
}
}
if ( m_current != wxNOT_FOUND )
- RefreshLine(m_current);
+ RefreshRow(m_current);
m_current = current;
// don't need to refresh it -- it will be redrawn anyhow
if ( !IsVisible(m_current) )
{
- ScrollToLine(m_current);
+ ScrollToRow(m_current);
}
else // line is at least partly visible
{
// it is, indeed, only partly visible, so scroll it into view to
// make it entirely visible
- while ( (size_t)m_current == GetLastVisibleLine() &&
- ScrollToLine(GetVisibleBegin()+1) ) ;
+ while ( (size_t)m_current + 1 == GetVisibleRowsEnd() &&
+ ScrollToRow(GetVisibleBegin() + 1) ) ;
// 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
- RefreshLine(m_current);
+ RefreshRow(m_current);
}
}
// wxVListBox painting
// ----------------------------------------------------------------------------
-wxCoord wxVListBox::OnGetLineHeight(size_t line) const
+wxCoord wxVListBox::OnGetRowHeight(size_t line) const
{
return OnMeasureItem(line) + 2*m_ptMargins.y;
}
dc.Clear();
// the bounding rectangle of the current line
- wxRect rectLine;
- rectLine.width = clientSize.x;
+ wxRect rectRow;
+ rectRow.width = clientSize.x;
// iterate over all visible lines
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
- if ( rectLine.Intersects(rectUpdate) )
+ if ( rectRow.Intersects(rectUpdate) )
{
// 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);
OnDrawSeparator(dc, rect, line);
}
else // no intersection
{
- if ( rectLine.GetTop() > rectUpdate.GetBottom() )
+ if ( rectRow.GetTop() > rectUpdate.GetBottom() )
{
// we are already below the update rect, no need to continue
// further
//else: the next line may intersect the update rect
}
- rectLine.y += hLine;
+ rectRow.y += hRow;
}
}
break;
case WXK_END:
- current = GetLineCount() - 1;
+ current = GetRowCount() - 1;
break;
case WXK_DOWN:
- if ( m_current == (int)GetLineCount() - 1 )
+ if ( m_current == (int)GetRowCount() - 1 )
return;
current = m_current + 1;
case WXK_UP:
if ( m_current == wxNOT_FOUND )
- current = GetLineCount() - 1;
+ current = GetRowCount() - 1;
else if ( m_current != 0 )
current = m_current - 1;
else // m_current == 0
case WXK_PAGEDOWN:
PageDown();
- current = GetFirstVisibleLine();
+ current = GetVisibleBegin();
break;
case WXK_PAGEUP:
- if ( m_current == (int)GetFirstVisibleLine() )
+ if ( m_current == (int)GetVisibleBegin() )
{
PageUp();
}
- current = GetFirstVisibleLine();
+ current = GetVisibleBegin();
break;
case WXK_SPACE:
{
// it is, indeed, only partly visible, so scroll it into view to
// make it entirely visible
- while ( unsigned(lineNo) == GetLastVisibleLine() &&
- ScrollToRow(GetVisibleBegin()+1) )
+ while ( (unsigned)lineNo + 1 == GetVisibleEnd() &&
+ ScrollToRow(GetVisibleBegin() + 1) )
;
// but in any case refresh it as even if it was only partly visible
// 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 */ ;
}
dc.SetFont(GetFont());
// the bounding rectangle of the current line
- wxRect rectLine;
- rectLine.width = clientSize.x;
+ wxRect rectRow;
+ rectRow.width = clientSize.x;
dc.SetPen(wxPen(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)));
dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
// iterate over all visible lines
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
- if ( rectLine.Intersects(rectUpdate) )
+ if ( rectRow.Intersects(rectUpdate) )
{
// 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);
OnDrawItem(dc, rect, line);
}
else // no intersection
{
- if ( rectLine.GetTop() > rectUpdate.GetBottom() )
+ if ( rectRow.GetTop() > rectUpdate.GetBottom() )
{
// we are already below the update rect, no need to continue
// further
//else: the next line may intersect the update rect
}
- rectLine.y += hLine;
+ rectRow.y += hRow;
}
}
// hit testing
int wxSymbolListCtrl::HitTest(const wxPoint& pt)
{
- wxCoord lineHeight = OnGetLineHeight(0);
+ wxCoord lineHeight = OnGetRowHeight(0);
int atLine = GetVisibleBegin() + (pt.y/lineHeight);
int symbol = (atLine*m_symbolsPerLine) + (pt.x/(m_cellSize.x+1));