X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9543d01ca16af6171735db4fc78e2dc7f9d4065c..11866e8e33b2034ba70102940177a3f9b460e4a1:/src/generic/vlbox.cpp diff --git a/src/generic/vlbox.cpp b/src/generic/vlbox.cpp index f94031bca5..04ad587675 100644 --- a/src/generic/vlbox.cpp +++ b/src/generic/vlbox.cpp @@ -51,6 +51,8 @@ BEGIN_EVENT_TABLE(wxVListBox, wxVScrolledWindow) EVT_SET_FOCUS(wxVListBox::OnSetOrKillFocus) EVT_KILL_FOCUS(wxVListBox::OnSetOrKillFocus) + + EVT_SIZE(wxVListBox::OnSize) END_EVENT_TABLE() // ============================================================================ @@ -325,6 +327,31 @@ void wxVListBox::RefreshSelected() } } +wxRect wxVListBox::GetItemRect(size_t n) const +{ + wxRect itemrect; + + // check that this item is visible + const size_t lineMax = GetVisibleEnd(); + if ( n >= lineMax ) + return itemrect; + size_t line = GetVisibleBegin(); + if ( n < line ) + return itemrect; + + while ( line <= n ) + { + itemrect.y += itemrect.height; + itemrect.height = OnGetRowHeight(line); + + line++; + } + + itemrect.width = GetClientSize().x; + + return itemrect; +} + // ---------------------------------------------------------------------------- // wxVListBox appearance parameters // ---------------------------------------------------------------------------- @@ -469,6 +496,11 @@ void wxVListBox::OnSetOrKillFocus(wxFocusEvent& WXUNUSED(event)) RefreshSelected(); } +void wxVListBox::OnSize(wxSizeEvent& event) +{ + UpdateScrollbar(); + event.Skip(); +} // ============================================================================ // wxVListBox keyboard/mouse handling