// fast search when needed
static wxDataViewModel* g_model;
static int g_column = -2;
// fast search when needed
static wxDataViewModel* g_model;
static int g_column = -2;
WX_DEFINE_ARRAY( wxDataViewTreeNode *, wxDataViewTreeNodes );
WX_DEFINE_ARRAY( void* , wxDataViewTreeLeaves);
WX_DEFINE_ARRAY( wxDataViewTreeNode *, wxDataViewTreeNodes );
WX_DEFINE_ARRAY( void* , wxDataViewTreeLeaves);
wxDataViewTreeNode ** node2);
int LINKAGEMODE wxGenericTreeModelItemCmp( void ** id1, void ** id2);
wxDataViewTreeNode ** node2);
int LINKAGEMODE wxGenericTreeModelItemCmp( void ** id1, void ** id2);
wxDataViewTreeNode ** node2)
{
return g_model->Compare( (*node1)->GetItem(), (*node2)->GetItem(), g_column, g_asending );
wxDataViewTreeNode ** node2)
{
return g_model->Compare( (*node1)->GetItem(), (*node2)->GetItem(), g_column, g_asending );
- // I change this method to un const because in the tree view,
- // the displaying number of the tree are changing along with the
+ // I change this method to un const because in the tree view,
+ // the displaying number of the tree are changing along with the
// expanding/collapsing of the tree nodes
unsigned int GetLastVisibleRow();
unsigned int GetRowCount();
wxDataViewItem GetSelection() const;
wxDataViewSelection GetSelections(){ return m_selection; }
// expanding/collapsing of the tree nodes
unsigned int GetLastVisibleRow();
unsigned int GetRowCount();
wxDataViewItem GetSelection() const;
wxDataViewSelection GetSelections(){ return m_selection; }
{ m_selection = sel; UpdateDisplay(); }
void Select( const wxArrayInt& aSelections );
void SelectAllRows( bool on );
{ m_selection = sel; UpdateDisplay(); }
void Select( const wxArrayInt& aSelections );
void SelectAllRows( bool on );
wxRect cell, wxDC *dc, int state )
{
wxDataViewCtrl *view = GetOwner()->GetOwner();
wxRect cell, wxDC *dc, int state )
{
wxDataViewCtrl *view = GetOwner()->GetOwner();
wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT) :
view->GetForegroundColour();
dc->SetTextForeground(col);
wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT) :
view->GetForegroundColour();
dc->SetTextForeground(col);
//-----------------------------------------------------------------------------
// The tree building helper, declared firstly
//-----------------------------------------------------------------------------
// The tree building helper, declared firstly
wxDataViewTreeNode * node);
int LINKAGEMODE wxDataViewSelectionCmp( unsigned int row1, unsigned int row2 )
wxDataViewTreeNode * node);
int LINKAGEMODE wxDataViewSelectionCmp( unsigned int row1, unsigned int row2 )
-wxDragResult wxDataViewMainWindow::OnData( wxDataFormat format, wxCoord x, wxCoord y,
+wxDragResult wxDataViewMainWindow::OnData( wxDataFormat format, wxCoord x, wxCoord y,
{
wxDataViewTreeNode *node = GetTreeNodeByRow(row);
indent = GetOwner()->GetIndent() * node->GetIndentLevel();
{
wxDataViewTreeNode *node = GetTreeNodeByRow(row);
indent = GetOwner()->GetIndent() * node->GetIndentLevel();
- wxRendererNative::Get().DrawTreeItemButton( this, dc, rect,
+ wxRendererNative::Get().DrawTreeItemButton( this, dc, rect,
flag|wxCONTROL_EXPANDED );
else
wxRendererNative::Get().DrawTreeItemButton( this, dc, rect, flag);
flag|wxCONTROL_EXPANDED );
else
wxRendererNative::Get().DrawTreeItemButton( this, dc, rect, flag);
// of the cell for drawing
size.x = wxMin( size.x + 2*PADDING_RIGHTLEFT, cell_rect.width - indent );
// size.y = wxMin( size.y, cell_rect.height );
// of the cell for drawing
size.x = wxMin( size.x + 2*PADDING_RIGHTLEFT, cell_rect.width - indent );
// size.y = wxMin( size.y, cell_rect.height );
wxDataViewTreeNode * node = FindNode(parent);
wxCHECK_MSG( node != NULL, false, "item not found" );
wxDataViewTreeNode * node = FindNode(parent);
wxCHECK_MSG( node != NULL, false, "item not found" );
!model->HasContainerColumns(item))
continue; // skip it!
wxVariant value;
model->GetValue( value, item, column->GetModelColumn() );
!model->HasContainerColumns(item))
continue; // skip it!
wxVariant value;
model->GetValue( value, item, column->GetModelColumn() );
const_cast<wxDataViewRenderer*>(column->GetRenderer());
renderer->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
const_cast<wxDataViewRenderer*>(column->GetRenderer());
renderer->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
!model->HasContainerColumns(item))
continue; // skip it!
wxVariant value;
model->GetValue( value, item, column->GetModelColumn() );
!model->HasContainerColumns(item))
continue; // skip it!
wxVariant value;
model->GetValue( value, item, column->GetModelColumn() );
const_cast<wxDataViewRenderer*>(column->GetRenderer());
renderer->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
const_cast<wxDataViewRenderer*>(column->GetRenderer());
renderer->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
!model->HasContainerColumns(item))
continue; // skip it!
wxVariant value;
model->GetValue( value, item, column->GetModelColumn() );
!model->HasContainerColumns(item))
continue; // skip it!
wxVariant value;
model->GetValue( value, item, column->GetModelColumn() );
const_cast<wxDataViewRenderer*>(column->GetRenderer());
renderer->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
const_cast<wxDataViewRenderer*>(column->GetRenderer());
renderer->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
SendExpanderEvent(wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, node->GetItem());
// Check if the user prevent expanding
SendExpanderEvent(wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, node->GetItem());
// Check if the user prevent expanding
unsigned int cols = GetOwner()->GetColumnCount();
// If column is null the loop will compute the combined width of all columns.
// Otherwise, it will compute the x position of the column we are looking for.
unsigned int cols = GetOwner()->GetColumnCount();
// If column is null the loop will compute the combined width of all columns.
// Otherwise, it will compute the x position of the column we are looking for.
le.SetItem( GetItemByRow(m_currentRow) );
le.SetEventObject(parent);
le.SetModel(GetOwner()->GetModel());
le.SetItem( GetItemByRow(m_currentRow) );
le.SetEventObject(parent);
le.SetModel(GetOwner()->GetModel());
&m_dragStart.x, &m_dragStart.y );
unsigned int drag_item_row = GetLineAt( m_dragStart.y );
wxDataViewItem item = GetItemByRow( drag_item_row );
&m_dragStart.x, &m_dragStart.y );
unsigned int drag_item_row = GetLineAt( m_dragStart.y );
wxDataViewItem item = GetItemByRow( drag_item_row );
cell->SetValue( value );
wxRect cell_rect( xpos, GetLineStart( current ),
col->GetWidth(), GetLineHeight( current ) );
cell->SetValue( value );
wxRect cell_rect( xpos, GetLineStart( current ),
col->GetWidth(), GetLineHeight( current ) );
wxDataViewColumn* &column ) const
{
m_clientArea->HitTest(point, item, column);
}
wxDataViewColumn* &column ) const
{
m_clientArea->HitTest(point, item, column);
}
const wxDataViewColumn* column ) const
{
return m_clientArea->GetItemRect(item, column);
const wxDataViewColumn* column ) const
{
return m_clientArea->GetItemRect(item, column);
void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
{
int row = m_clientArea->GetRowByItem( item );
void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
{
int row = m_clientArea->GetRowByItem( item );
wxRect itemRect = GetItemRect(item, col);
wxDataViewRenderer* renderer = col->GetRenderer();
renderer->StartEditing(item, itemRect);
}
wxRect itemRect = GetItemRect(item, col);
wxDataViewRenderer* renderer = col->GetRenderer();
renderer->StartEditing(item, itemRect);
}