add missing wxUSE_DRAG_AND_DROP checks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -449,9 +449,11 @@ public:
|
|||||||
virtual bool IsExpanded( const wxDataViewItem & item ) const;
|
virtual bool IsExpanded( const wxDataViewItem & item ) const;
|
||||||
|
|
||||||
virtual void SetFocus();
|
virtual void SetFocus();
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
virtual bool EnableDragSource( const wxDataFormat &format );
|
virtual bool EnableDragSource( const wxDataFormat &format );
|
||||||
virtual bool EnableDropTarget( const wxDataFormat &format );
|
virtual bool EnableDropTarget( const wxDataFormat &format );
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
virtual wxBorder GetDefaultBorder() const;
|
virtual wxBorder GetDefaultBorder() const;
|
||||||
|
|
||||||
|
@@ -417,7 +417,9 @@ public:
|
|||||||
wxDataViewCtrl *GetOwner() { return m_owner; }
|
wxDataViewCtrl *GetOwner() { return m_owner; }
|
||||||
const wxDataViewCtrl *GetOwner() const { return m_owner; }
|
const wxDataViewCtrl *GetOwner() const { return m_owner; }
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
wxBitmap CreateItemBitmap( unsigned int row, int &indent );
|
wxBitmap CreateItemBitmap( unsigned int row, int &indent );
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
void OnPaint( wxPaintEvent &event );
|
void OnPaint( wxPaintEvent &event );
|
||||||
void OnArrowChar(unsigned int newCurrent, const wxKeyEvent& event);
|
void OnArrowChar(unsigned int newCurrent, const wxKeyEvent& event);
|
||||||
void OnChar( wxKeyEvent &event );
|
void OnChar( wxKeyEvent &event );
|
||||||
@@ -488,6 +490,7 @@ public:
|
|||||||
void Collapse( unsigned int row ) { OnCollapsing( row ); }
|
void Collapse( unsigned int row ) { OnCollapsing( row ); }
|
||||||
bool IsExpanded( unsigned int row ) const;
|
bool IsExpanded( unsigned int row ) const;
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
bool EnableDragSource( const wxDataFormat &format );
|
bool EnableDragSource( const wxDataFormat &format );
|
||||||
bool EnableDropTarget( const wxDataFormat &format );
|
bool EnableDropTarget( const wxDataFormat &format );
|
||||||
|
|
||||||
@@ -496,6 +499,7 @@ public:
|
|||||||
bool OnDrop( wxDataFormat format, wxCoord x, wxCoord y );
|
bool OnDrop( wxDataFormat format, wxCoord x, wxCoord y );
|
||||||
wxDragResult OnData( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def );
|
wxDragResult OnData( wxDataFormat format, wxCoord x, wxCoord y, wxDragResult def );
|
||||||
void OnLeave();
|
void OnLeave();
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row ) const;
|
wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row ) const;
|
||||||
@@ -524,16 +528,18 @@ private:
|
|||||||
|
|
||||||
bool m_hasFocus;
|
bool m_hasFocus;
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
int m_dragCount;
|
int m_dragCount;
|
||||||
wxPoint m_dragStart;
|
wxPoint m_dragStart;
|
||||||
|
|
||||||
bool m_dragEnabled;
|
bool m_dragEnabled;
|
||||||
wxDataFormat m_dragFormat;
|
wxDataFormat m_dragFormat;
|
||||||
|
|
||||||
bool m_dropEnabled;
|
bool m_dropEnabled;
|
||||||
wxDataFormat m_dropFormat;
|
wxDataFormat m_dropFormat;
|
||||||
bool m_dropHint;
|
bool m_dropHint;
|
||||||
unsigned int m_dropHintLine;
|
unsigned int m_dropHintLine;
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
// for double click logic
|
// for double click logic
|
||||||
unsigned int m_lineLastClicked,
|
unsigned int m_lineLastClicked,
|
||||||
@@ -1140,6 +1146,8 @@ wxDataViewIconTextRenderer::GetValueFromEditorCtrl(wxControl* WXUNUSED(editor),
|
|||||||
// wxDataViewDropTarget
|
// wxDataViewDropTarget
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
class wxBitmapCanvas: public wxWindow
|
class wxBitmapCanvas: public wxWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -1149,13 +1157,13 @@ public:
|
|||||||
m_bitmap = bitmap;
|
m_bitmap = bitmap;
|
||||||
Connect( wxEVT_PAINT, wxPaintEventHandler(wxBitmapCanvas::OnPaint) );
|
Connect( wxEVT_PAINT, wxPaintEventHandler(wxBitmapCanvas::OnPaint) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnPaint( wxPaintEvent &WXUNUSED(event) )
|
void OnPaint( wxPaintEvent &WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
wxPaintDC dc(this);
|
wxPaintDC dc(this);
|
||||||
dc.DrawBitmap( m_bitmap, 0, 0);
|
dc.DrawBitmap( m_bitmap, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxBitmap m_bitmap;
|
wxBitmap m_bitmap;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1169,16 +1177,16 @@ public:
|
|||||||
m_row = row;
|
m_row = row;
|
||||||
m_hint = NULL;
|
m_hint = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
~wxDataViewDropSource()
|
~wxDataViewDropSource()
|
||||||
{
|
{
|
||||||
delete m_hint;
|
delete m_hint;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool GiveFeedback( wxDragResult WXUNUSED(effect) )
|
virtual bool GiveFeedback( wxDragResult WXUNUSED(effect) )
|
||||||
{
|
{
|
||||||
wxPoint pos = wxGetMousePosition();
|
wxPoint pos = wxGetMousePosition();
|
||||||
|
|
||||||
if (!m_hint)
|
if (!m_hint)
|
||||||
{
|
{
|
||||||
int liney = m_win->GetLineStart( m_row );
|
int liney = m_win->GetLineStart( m_row );
|
||||||
@@ -1187,11 +1195,11 @@ public:
|
|||||||
m_win->ClientToScreen( &linex, &liney );
|
m_win->ClientToScreen( &linex, &liney );
|
||||||
m_dist_x = pos.x - linex;
|
m_dist_x = pos.x - linex;
|
||||||
m_dist_y = pos.y - liney;
|
m_dist_y = pos.y - liney;
|
||||||
|
|
||||||
int indent = 0;
|
int indent = 0;
|
||||||
wxBitmap ib = m_win->CreateItemBitmap( m_row, indent );
|
wxBitmap ib = m_win->CreateItemBitmap( m_row, indent );
|
||||||
m_dist_x -= indent;
|
m_dist_x -= indent;
|
||||||
m_hint = new wxFrame( m_win->GetParent(), wxID_ANY, wxEmptyString,
|
m_hint = new wxFrame( m_win->GetParent(), wxID_ANY, wxEmptyString,
|
||||||
wxPoint(pos.x - m_dist_x, pos.y + 5 ),
|
wxPoint(pos.x - m_dist_x, pos.y + 5 ),
|
||||||
ib.GetSize(),
|
ib.GetSize(),
|
||||||
wxFRAME_TOOL_WINDOW |
|
wxFRAME_TOOL_WINDOW |
|
||||||
@@ -1206,10 +1214,10 @@ public:
|
|||||||
m_hint->Move( pos.x - m_dist_x, pos.y + 5 );
|
m_hint->Move( pos.x - m_dist_x, pos.y + 5 );
|
||||||
m_hint->SetTransparent( 128 );
|
m_hint->SetTransparent( 128 );
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewMainWindow *m_win;
|
wxDataViewMainWindow *m_win;
|
||||||
unsigned int m_row;
|
unsigned int m_row;
|
||||||
wxFrame *m_hint;
|
wxFrame *m_hint;
|
||||||
@@ -1227,23 +1235,23 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual wxDragResult OnDragOver( wxCoord x, wxCoord y, wxDragResult def )
|
virtual wxDragResult OnDragOver( wxCoord x, wxCoord y, wxDragResult def )
|
||||||
{
|
{
|
||||||
wxDataFormat format = GetMatchingPair();
|
wxDataFormat format = GetMatchingPair();
|
||||||
if (format == wxDF_INVALID)
|
if (format == wxDF_INVALID)
|
||||||
return wxDragNone;
|
return wxDragNone;
|
||||||
return m_win->OnDragOver( format, x, y, def);
|
return m_win->OnDragOver( format, x, y, def);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool OnDrop( wxCoord x, wxCoord y )
|
virtual bool OnDrop( wxCoord x, wxCoord y )
|
||||||
{
|
{
|
||||||
wxDataFormat format = GetMatchingPair();
|
wxDataFormat format = GetMatchingPair();
|
||||||
if (format == wxDF_INVALID)
|
if (format == wxDF_INVALID)
|
||||||
return false;
|
return false;
|
||||||
return m_win->OnDrop( format, x, y );
|
return m_win->OnDrop( format, x, y );
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual wxDragResult OnData( wxCoord x, wxCoord y, wxDragResult def )
|
virtual wxDragResult OnData( wxCoord x, wxCoord y, wxDragResult def )
|
||||||
{
|
{
|
||||||
wxDataFormat format = GetMatchingPair();
|
wxDataFormat format = GetMatchingPair();
|
||||||
if (format == wxDF_INVALID)
|
if (format == wxDF_INVALID)
|
||||||
return wxDragNone;
|
return wxDragNone;
|
||||||
@@ -1251,13 +1259,15 @@ public:
|
|||||||
return wxDragNone;
|
return wxDragNone;
|
||||||
return m_win->OnData( format, x, y, def );
|
return m_win->OnData( format, x, y, def );
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void OnLeave()
|
virtual void OnLeave()
|
||||||
{ m_win->OnLeave(); }
|
{ m_win->OnLeave(); }
|
||||||
|
|
||||||
wxDataViewMainWindow *m_win;
|
wxDataViewMainWindow *m_win;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxDataViewRenameTimer
|
// wxDataViewRenameTimer
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -1314,16 +1324,19 @@ wxDataViewMainWindow::wxDataViewMainWindow( wxDataViewCtrl *parent, wxWindowID i
|
|||||||
|
|
||||||
m_lineHeight = wxMax( 17, GetCharHeight() + 2 ); // 17 = mini icon height + 1
|
m_lineHeight = wxMax( 17, GetCharHeight() + 2 ); // 17 = mini icon height + 1
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
m_dragCount = 0;
|
m_dragCount = 0;
|
||||||
m_dragStart = wxPoint(0,0);
|
m_dragStart = wxPoint(0,0);
|
||||||
m_lineLastClicked = (unsigned int) -1;
|
|
||||||
m_lineBeforeLastClicked = (unsigned int) -1;
|
|
||||||
m_lineSelectSingleOnUp = (unsigned int) -1;
|
|
||||||
|
|
||||||
m_dragEnabled = false;
|
m_dragEnabled = false;
|
||||||
m_dropEnabled = false;
|
m_dropEnabled = false;
|
||||||
m_dropHint = false;
|
m_dropHint = false;
|
||||||
m_dropHintLine = (unsigned int) -1;
|
m_dropHintLine = (unsigned int) -1;
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
|
m_lineLastClicked = (unsigned int) -1;
|
||||||
|
m_lineBeforeLastClicked = (unsigned int) -1;
|
||||||
|
m_lineSelectSingleOnUp = (unsigned int) -1;
|
||||||
|
|
||||||
m_hasFocus = false;
|
m_hasFocus = false;
|
||||||
|
|
||||||
@@ -1351,22 +1364,24 @@ wxDataViewMainWindow::~wxDataViewMainWindow()
|
|||||||
delete m_renameTimer;
|
delete m_renameTimer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
bool wxDataViewMainWindow::EnableDragSource( const wxDataFormat &format )
|
bool wxDataViewMainWindow::EnableDragSource( const wxDataFormat &format )
|
||||||
{
|
{
|
||||||
m_dragFormat = format;
|
m_dragFormat = format;
|
||||||
m_dragEnabled = format != wxDF_INVALID;
|
m_dragEnabled = format != wxDF_INVALID;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxDataViewMainWindow::EnableDropTarget( const wxDataFormat &format )
|
bool wxDataViewMainWindow::EnableDropTarget( const wxDataFormat &format )
|
||||||
{
|
{
|
||||||
m_dropFormat = format;
|
m_dropFormat = format;
|
||||||
m_dropEnabled = format != wxDF_INVALID;
|
m_dropEnabled = format != wxDF_INVALID;
|
||||||
|
|
||||||
if (m_dropEnabled)
|
if (m_dropEnabled)
|
||||||
SetDropTarget( new wxDataViewDropTarget( new wxCustomDataObject( format ), this ) );
|
SetDropTarget( new wxDataViewDropTarget( new wxCustomDataObject( format ), this ) );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1388,15 +1403,15 @@ wxDragResult wxDataViewMainWindow::OnDragOver( wxDataFormat format, wxCoord x, w
|
|||||||
unsigned int row = GetLineAt( yy );
|
unsigned int row = GetLineAt( yy );
|
||||||
|
|
||||||
if ((row >= GetRowCount()) || (yy > GetEndOfLastCol()))
|
if ((row >= GetRowCount()) || (yy > GetEndOfLastCol()))
|
||||||
{
|
{
|
||||||
RemoveDropHint();
|
RemoveDropHint();
|
||||||
return wxDragNone;
|
return wxDragNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewItem item = GetItemByRow( row );
|
wxDataViewItem item = GetItemByRow( row );
|
||||||
|
|
||||||
wxDataViewModel *model = GetOwner()->GetModel();
|
wxDataViewModel *model = GetOwner()->GetModel();
|
||||||
|
|
||||||
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, m_owner->GetId() );
|
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, m_owner->GetId() );
|
||||||
event.SetEventObject( m_owner );
|
event.SetEventObject( m_owner );
|
||||||
event.SetItem( item );
|
event.SetItem( item );
|
||||||
@@ -1414,13 +1429,13 @@ wxDragResult wxDataViewMainWindow::OnDragOver( wxDataFormat format, wxCoord x, w
|
|||||||
return wxDragNone;
|
return wxDragNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (m_dropHint && (row != m_dropHintLine))
|
if (m_dropHint && (row != m_dropHintLine))
|
||||||
RefreshRow( m_dropHintLine );
|
RefreshRow( m_dropHintLine );
|
||||||
m_dropHint = true;
|
m_dropHint = true;
|
||||||
m_dropHintLine = row;
|
m_dropHintLine = row;
|
||||||
RefreshRow( row );
|
RefreshRow( row );
|
||||||
|
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1437,9 +1452,9 @@ bool wxDataViewMainWindow::OnDrop( wxDataFormat format, wxCoord x, wxCoord y )
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
wxDataViewItem item = GetItemByRow( row );
|
wxDataViewItem item = GetItemByRow( row );
|
||||||
|
|
||||||
wxDataViewModel *model = GetOwner()->GetModel();
|
wxDataViewModel *model = GetOwner()->GetModel();
|
||||||
|
|
||||||
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, m_owner->GetId() );
|
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, m_owner->GetId() );
|
||||||
event.SetEventObject( m_owner );
|
event.SetEventObject( m_owner );
|
||||||
event.SetItem( item );
|
event.SetItem( item );
|
||||||
@@ -1465,9 +1480,9 @@ wxDragResult wxDataViewMainWindow::OnData( wxDataFormat format, wxCoord x, wxCoo
|
|||||||
return wxDragNone;
|
return wxDragNone;
|
||||||
|
|
||||||
wxDataViewItem item = GetItemByRow( row );
|
wxDataViewItem item = GetItemByRow( row );
|
||||||
|
|
||||||
wxDataViewModel *model = GetOwner()->GetModel();
|
wxDataViewModel *model = GetOwner()->GetModel();
|
||||||
|
|
||||||
wxCustomDataObject *obj = (wxCustomDataObject *) GetDropTarget()->GetDataObject();
|
wxCustomDataObject *obj = (wxCustomDataObject *) GetDropTarget()->GetDataObject();
|
||||||
|
|
||||||
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP, m_owner->GetId() );
|
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_DROP, m_owner->GetId() );
|
||||||
@@ -1520,9 +1535,9 @@ wxBitmap wxDataViewMainWindow::CreateItemBitmap( unsigned int row, int &indent )
|
|||||||
dc.SetPen( *wxBLACK_PEN );
|
dc.SetPen( *wxBLACK_PEN );
|
||||||
dc.SetBrush( *wxWHITE_BRUSH );
|
dc.SetBrush( *wxWHITE_BRUSH );
|
||||||
dc.DrawRectangle( 0,0,width,height );
|
dc.DrawRectangle( 0,0,width,height );
|
||||||
|
|
||||||
wxDataViewModel *model = m_owner->GetModel();
|
wxDataViewModel *model = m_owner->GetModel();
|
||||||
|
|
||||||
wxDataViewColumn *expander = GetOwner()->GetExpanderColumn();
|
wxDataViewColumn *expander = GetOwner()->GetExpanderColumn();
|
||||||
if (!expander)
|
if (!expander)
|
||||||
{
|
{
|
||||||
@@ -1530,8 +1545,8 @@ wxBitmap wxDataViewMainWindow::CreateItemBitmap( unsigned int row, int &indent )
|
|||||||
expander = GetOwner()->GetColumnAt( 0 );
|
expander = GetOwner()->GetColumnAt( 0 );
|
||||||
GetOwner()->SetExpanderColumn(expander);
|
GetOwner()->SetExpanderColumn(expander);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int x = 0;
|
int x = 0;
|
||||||
for (col = 0; col < cols; col++)
|
for (col = 0; col < cols; col++)
|
||||||
{
|
{
|
||||||
@@ -1542,10 +1557,10 @@ wxBitmap wxDataViewMainWindow::CreateItemBitmap( unsigned int row, int &indent )
|
|||||||
continue; // skip it!
|
continue; // skip it!
|
||||||
|
|
||||||
width = column->GetWidth();
|
width = column->GetWidth();
|
||||||
|
|
||||||
if (column == expander)
|
if (column == expander)
|
||||||
width -= indent;
|
width -= indent;
|
||||||
|
|
||||||
wxVariant value;
|
wxVariant value;
|
||||||
wxDataViewItem item = GetItemByRow( row );
|
wxDataViewItem item = GetItemByRow( row );
|
||||||
model->GetValue( value, item, column->GetModelColumn());
|
model->GetValue( value, item, column->GetModelColumn());
|
||||||
@@ -1564,7 +1579,7 @@ wxBitmap wxDataViewMainWindow::CreateItemBitmap( unsigned int row, int &indent )
|
|||||||
size.x = wxMin( 2*PADDING_RIGHTLEFT + size.x, width );
|
size.x = wxMin( 2*PADDING_RIGHTLEFT + size.x, width );
|
||||||
size.y = height;
|
size.y = height;
|
||||||
wxRect item_rect(x, 0, size.x, size.y);
|
wxRect item_rect(x, 0, size.x, size.y);
|
||||||
|
|
||||||
int align = cell->CalculateAlignment();
|
int align = cell->CalculateAlignment();
|
||||||
// horizontal alignment:
|
// horizontal alignment:
|
||||||
item_rect.x = x;
|
item_rect.x = x;
|
||||||
@@ -1589,13 +1604,16 @@ wxBitmap wxDataViewMainWindow::CreateItemBitmap( unsigned int row, int &indent )
|
|||||||
//dc.SetClippingRegion( item_rect );
|
//dc.SetClippingRegion( item_rect );
|
||||||
cell->Render( item_rect, &dc, 0 );
|
cell->Render( item_rect, &dc, 0 );
|
||||||
//dc.DestroyClippingRegion();
|
//dc.DestroyClippingRegion();
|
||||||
|
|
||||||
x += width;
|
x += width;
|
||||||
}
|
}
|
||||||
|
|
||||||
return bitmap;
|
return bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
|
|
||||||
void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
wxDataViewModel *model = GetOwner()->GetModel();
|
wxDataViewModel *model = GetOwner()->GetModel();
|
||||||
@@ -1713,14 +1731,17 @@ void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
if (m_dropHint)
|
if (m_dropHint)
|
||||||
{
|
{
|
||||||
wxRect rect( x_start, GetLineStart( m_dropHintLine ), x_last, GetLineHeight( m_dropHintLine ) );
|
wxRect rect( x_start, GetLineStart( m_dropHintLine ),
|
||||||
|
x_last, GetLineHeight( m_dropHintLine ) );
|
||||||
dc.SetPen( *wxBLACK_PEN );
|
dc.SetPen( *wxBLACK_PEN );
|
||||||
dc.SetBrush( *wxTRANSPARENT_BRUSH );
|
dc.SetBrush( *wxTRANSPARENT_BRUSH );
|
||||||
dc.DrawRectangle( rect );
|
dc.DrawRectangle( rect );
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
wxDataViewColumn *expander = GetOwner()->GetExpanderColumn();
|
wxDataViewColumn *expander = GetOwner()->GetExpanderColumn();
|
||||||
if (!expander)
|
if (!expander)
|
||||||
@@ -2818,17 +2839,17 @@ bool wxDataViewMainWindow::IsExpanded( unsigned int row ) const
|
|||||||
{
|
{
|
||||||
if (IsVirtualList())
|
if (IsVirtualList())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
wxDataViewTreeNode * node = GetTreeNodeByRow(row);
|
wxDataViewTreeNode * node = GetTreeNodeByRow(row);
|
||||||
if (!node)
|
if (!node)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!node->HasChildren())
|
if (!node->HasChildren())
|
||||||
{
|
{
|
||||||
delete node;
|
delete node;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return node->IsOpen();
|
return node->IsOpen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2920,7 +2941,7 @@ wxDataViewTreeNode * wxDataViewMainWindow::FindNode( const wxDataViewItem & item
|
|||||||
wxDataViewModel * model = GetOwner()->GetModel();
|
wxDataViewModel * model = GetOwner()->GetModel();
|
||||||
if( model == NULL )
|
if( model == NULL )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!item.IsOk())
|
if (!item.IsOk())
|
||||||
return m_root;
|
return m_root;
|
||||||
|
|
||||||
@@ -3124,7 +3145,7 @@ static void BuildTreeHelper( wxDataViewModel * model, wxDataViewItem & item, wx
|
|||||||
|
|
||||||
wxDataViewItemArray children;
|
wxDataViewItemArray children;
|
||||||
unsigned int num = model->GetChildren( item, children);
|
unsigned int num = model->GetChildren( item, children);
|
||||||
|
|
||||||
unsigned int index = 0;
|
unsigned int index = 0;
|
||||||
while( index < num )
|
while( index < num )
|
||||||
{
|
{
|
||||||
@@ -3365,6 +3386,7 @@ void wxDataViewMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
|
|
||||||
wxDataViewModel *model = GetOwner()->GetModel();
|
wxDataViewModel *model = GetOwner()->GetModel();
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
if (event.Dragging())
|
if (event.Dragging())
|
||||||
{
|
{
|
||||||
if (m_dragCount == 0)
|
if (m_dragCount == 0)
|
||||||
@@ -3393,14 +3415,14 @@ void wxDataViewMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
event.SetModel( model );
|
event.SetModel( model );
|
||||||
if (!m_owner->HandleWindowEvent( event ))
|
if (!m_owner->HandleWindowEvent( event ))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!event.IsAllowed())
|
if (!event.IsAllowed())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxDataObject *obj = event.GetDataObject();
|
wxDataObject *obj = event.GetDataObject();
|
||||||
if (!obj)
|
if (!obj)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxDataViewDropSource drag( this, drag_item_row );
|
wxDataViewDropSource drag( this, drag_item_row );
|
||||||
drag.SetData( *obj );
|
drag.SetData( *obj );
|
||||||
/* wxDragResult res = */ drag.DoDragDrop();
|
/* wxDragResult res = */ drag.DoDragDrop();
|
||||||
@@ -3412,6 +3434,7 @@ void wxDataViewMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
{
|
{
|
||||||
m_dragCount = 0;
|
m_dragCount = 0;
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
bool forceClick = false;
|
bool forceClick = false;
|
||||||
|
|
||||||
@@ -3795,6 +3818,8 @@ bool wxDataViewCtrl::AssociateModel( wxDataViewModel *model )
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
bool wxDataViewCtrl::EnableDragSource( const wxDataFormat &format )
|
bool wxDataViewCtrl::EnableDragSource( const wxDataFormat &format )
|
||||||
{
|
{
|
||||||
return m_clientArea->EnableDragSource( format );
|
return m_clientArea->EnableDragSource( format );
|
||||||
@@ -3805,6 +3830,8 @@ bool wxDataViewCtrl::EnableDropTarget( const wxDataFormat &format )
|
|||||||
return m_clientArea->EnableDropTarget( format );
|
return m_clientArea->EnableDropTarget( format );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
bool wxDataViewCtrl::AppendColumn( wxDataViewColumn *col )
|
bool wxDataViewCtrl::AppendColumn( wxDataViewColumn *col )
|
||||||
{
|
{
|
||||||
if (!wxDataViewCtrlBase::AppendColumn(col))
|
if (!wxDataViewCtrlBase::AppendColumn(col))
|
||||||
@@ -3982,20 +4009,20 @@ void wxDataViewCtrl::SetSelections( const wxDataViewItemArray & sel )
|
|||||||
if (parent != last_parent)
|
if (parent != last_parent)
|
||||||
ExpandAncestors(item);
|
ExpandAncestors(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
last_parent = parent;
|
last_parent = parent;
|
||||||
int row = m_clientArea->GetRowByItem( item );
|
int row = m_clientArea->GetRowByItem( item );
|
||||||
if( row >= 0 )
|
if( row >= 0 )
|
||||||
selection.Add( static_cast<unsigned int>(row) );
|
selection.Add( static_cast<unsigned int>(row) );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_clientArea->SetSelections( selection );
|
m_clientArea->SetSelections( selection );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDataViewCtrl::Select( const wxDataViewItem & item )
|
void wxDataViewCtrl::Select( const wxDataViewItem & item )
|
||||||
{
|
{
|
||||||
ExpandAncestors( item );
|
ExpandAncestors( item );
|
||||||
|
|
||||||
int row = m_clientArea->GetRowByItem( item );
|
int row = m_clientArea->GetRowByItem( item );
|
||||||
if( row >= 0 )
|
if( row >= 0 )
|
||||||
{
|
{
|
||||||
@@ -4120,7 +4147,7 @@ void wxDataViewCtrl::EnsureVisible( int row, int column )
|
|||||||
void wxDataViewCtrl::EnsureVisible( const wxDataViewItem & item, const wxDataViewColumn * column )
|
void wxDataViewCtrl::EnsureVisible( const wxDataViewItem & item, const wxDataViewColumn * column )
|
||||||
{
|
{
|
||||||
ExpandAncestors( item );
|
ExpandAncestors( item );
|
||||||
|
|
||||||
m_clientArea->RecalculateDisplay();
|
m_clientArea->RecalculateDisplay();
|
||||||
|
|
||||||
int row = m_clientArea->GetRowByItem(item);
|
int row = m_clientArea->GetRowByItem(item);
|
||||||
|
Reference in New Issue
Block a user