#include "wx/mac/private.h"
#endif
-#ifdef __WXGTK__
- #include "wx/gtk/private.h"
- #include "wx/gtk/win_gtk.h"
-#endif
-
-
// NOTE: If using the wxListBox visual attributes works everywhere then this can
// be removed, as well as the #else case below.
// send out a wxListEvent
void SendNotify( size_t line,
- wxEventType command,
+ wxEventType command,
const wxPoint& point = wxDefaultPosition );
// override base class virtual to reset m_lineHeight when the font changes
wxListItemAttr *attr = GetAttr();
if ( SetAttributes(dc, attr, highlighted) )
-#ifndef __WXGTK__
+#ifndef __WXGTK20__
{
dc->DrawRectangle( m_gi->m_rectHighlight );
}
{
if (highlighted)
{
- wxRect rect2( m_gi->m_rectHighlight );
- m_owner->CalcScrolledPosition( rect2.x, rect2.y, &rect2.x, &rect2.y );
-
- gtk_paint_flat_box( m_owner->m_widget->style,
- GTK_PIZZA(m_owner->m_wxwindow)->bin_window,
- GTK_STATE_SELECTED,
- GTK_SHADOW_NONE,
- NULL,
- m_owner->m_wxwindow,
- "cell_even",
- rect2.x, rect2.y, rect2.width, rect2.height );
+ int flags = wxCONTROL_SELECTED;
+ if (m_owner->HasFocus())
+ flags |= wxCONTROL_FOCUSED;
+ wxRendererNative::Get().DrawItemSelectionRect( m_owner, *dc, m_gi->m_rectHighlight, flags );
+
}
else
{
// GetAttr() and move these lines into the loop below
wxListItemAttr *attr = GetAttr();
if ( SetAttributes(dc, attr, highlighted) )
-#ifndef __WXGTK__
+#ifndef __WXGTK20__
{
dc->DrawRectangle( rectHL );
}
{
if (highlighted)
{
- wxRect rect2( rectHL );
- m_owner->CalcScrolledPosition( rect2.x, rect2.y, &rect2.x, &rect2.y );
-
- gtk_paint_flat_box( m_owner->m_widget->style,
- GTK_PIZZA(m_owner->m_wxwindow)->bin_window,
- GTK_STATE_SELECTED,
- GTK_SHADOW_NONE,
- NULL,
- m_owner->m_wxwindow,
- "cell_even",
- rect2.x, rect2.y, rect2.width, rect2.height );
+ int flags = wxCONTROL_SELECTED;
+ if (m_owner->HasFocus())
+ flags |= wxCONTROL_FOCUSED;
+ wxRendererNative::Get().DrawItemSelectionRect( m_owner, *dc, rectHL, flags );
}
else
{
if ( m_hasFocus )
{
wxRect rect( GetLineHighlightRect( m_current ) );
-#ifndef __WXGTK__
+#ifndef __WXGTK20__
dc.SetPen( *wxBLACK_PEN );
dc.SetBrush( *wxTRANSPARENT_BRUSH );
dc.DrawRectangle( rect );
#else
- CalcScrolledPosition( rect.x, rect.y, &rect.x, &rect.y );
-
- gtk_paint_focus( m_widget->style,
- GTK_PIZZA(m_wxwindow)->bin_window,
- GTK_STATE_SELECTED,
- NULL,
- m_wxwindow,
- "treeview",
- rect.x, rect.y, rect.width, rect.height );
+ wxRendererNative::Get().DrawItemSelectionRect( this, dc, rect, wxCONTROL_CURRENT|wxCONTROL_FOCUSED );
#endif
}
{
wxListEvent le( command, GetParent()->GetId() );
le.SetEventObject( GetParent() );
+
le.m_itemIndex = line;
// set only for events which have position
// program has it anyhow and if we did it would result in accessing all
// the lines, even those which are not visible now and this is precisely
// what we're trying to avoid
- if ( !IsVirtual() && (command != wxEVT_COMMAND_LIST_DELETE_ITEM) )
+ if ( !IsVirtual() )
{
if ( line != (size_t)-1 )
{
if ( m_current != index || m_current == count - 1 )
m_current--;
}
-
+
if ( InReportView() )
{
- // mark the Column Max Width cache as dirty if the items in the line
- // we're deleting contain the Max Column Width
+ // mark the Column Max Width cache as dirty if the items in the line
+ // we're deleting contain the Max Column Width
wxListLineData * const line = GetLine(index);
wxListItemDataList::compatibility_iterator n;
wxListItemData *itemData;
ResetVisibleLinesRange();
}
+ SendNotify( index, wxEVT_COMMAND_LIST_DELETE_ITEM, wxDefaultPosition );
+
if ( IsVirtual() )
{
m_countVirt--;
// we need to refresh the (vert) scrollbar as the number of items changed
m_dirty = true;
- SendNotify( index, wxEVT_COMMAND_LIST_DELETE_ITEM );
-
RefreshAfter(index);
}