git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58278
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
bool EnableDragSource( const wxDataFormat &format );
bool EnableDropTarget( const wxDataFormat &format );
bool EnableDragSource( const wxDataFormat &format );
bool EnableDropTarget( const wxDataFormat &format );
wxDragResult OnDragOver( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def );
bool OnDrop( wxDataFormat format, wxCoord x, wxCoord y );
wxDragResult OnData( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def );
wxDragResult OnDragOver( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def );
bool OnDrop( wxDataFormat format, wxCoord x, wxCoord y );
wxDragResult OnData( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def );
bool m_dropEnabled;
wxDataFormat m_dropFormat;
bool m_dropEnabled;
wxDataFormat m_dropFormat;
+ bool m_dropHint;
+ unsigned int m_dropHintLine;
// for double click logic
unsigned int m_lineLastClicked,
// for double click logic
unsigned int m_lineLastClicked,
m_dragEnabled = false;
m_dropEnabled = false;
m_dragEnabled = false;
m_dropEnabled = false;
+ m_dropHint = false;
+ m_dropHintLine = (unsigned int) -1;
+void wxDataViewMainWindow::RemoveDropHint()
+{
+ if (m_dropHint)
+ {
+ m_dropHint = false;
+ RefreshRow( m_dropHintLine );
+ m_dropHintLine = (unsigned int) -1;
+ }
+}
+
wxDragResult wxDataViewMainWindow::OnDragOver( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def )
{
int xx = x;
wxDragResult wxDataViewMainWindow::OnDragOver( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def )
{
int xx = x;
unsigned int row = GetLineAt( yy );
if ((row >= GetRowCount()) || (yy > GetEndOfLastCol()))
unsigned int row = GetLineAt( yy );
if ((row >= GetRowCount()) || (yy > GetEndOfLastCol()))
wxDataViewItem item = GetItemByRow( row );
wxDataViewItem item = GetItemByRow( row );
event.SetModel( model );
event.SetDataFormat( format );
if (!m_owner->HandleWindowEvent( event ))
event.SetModel( model );
event.SetDataFormat( format );
if (!m_owner->HandleWindowEvent( event ))
+ }
+
+
+ if (m_dropHint && (row != m_dropHintLine))
+ RefreshRow( m_dropHintLine );
+ m_dropHint = true;
+ m_dropHintLine = row;
+ RefreshRow( row );
return def;
}
bool wxDataViewMainWindow::OnDrop( wxDataFormat format, wxCoord x, wxCoord y )
{
return def;
}
bool wxDataViewMainWindow::OnDrop( wxDataFormat format, wxCoord x, wxCoord y )
{
int xx = x;
int yy = y;
m_owner->CalcUnscrolledPosition( xx, yy, &xx, &yy );
int xx = x;
int yy = y;
m_owner->CalcUnscrolledPosition( xx, yy, &xx, &yy );
if (!event.IsAllowed())
return false;
if (!event.IsAllowed())
return false;
void wxDataViewMainWindow::OnLeave()
{
void wxDataViewMainWindow::OnLeave()
{
}
void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
}
void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
+
+ if (m_dropHint)
+ {
+ wxRect rect( x_start, GetLineStart( m_dropHintLine ), x_last, GetLineHeight( m_dropHintLine ) );
+ dc.SetPen( *wxBLACK_PEN );
+ dc.SetBrush( *wxTRANSPARENT_BRUSH );
+ dc.DrawRectangle( rect );
+ }
wxDataViewColumn *expander = GetOwner()->GetExpanderColumn();
if (!expander)
wxDataViewColumn *expander = GetOwner()->GetExpanderColumn();
if (!expander)