git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48680
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// items must be different
unsigned long litem1 = (unsigned long) item1.GetID();
unsigned long litem2 = (unsigned long) item2.GetID();
// items must be different
unsigned long litem1 = (unsigned long) item1.GetID();
unsigned long litem2 = (unsigned long) item2.GetID();
if (!ascending)
return litem2-litem2;
if (!ascending)
return litem2-litem2;
return wxDataViewItem( m_hash[row] );
}
return wxDataViewItem( m_hash[row] );
}
-int wxDataViewIndexListModel::Compare( const wxDataViewItem &item1, const wxDataViewItem &item2,
- unsigned int column, bool ascending )
+int wxDataViewIndexListModel::Compare(const wxDataViewItem& item1,
+ const wxDataViewItem& item2,
+ unsigned int WXUNUSED(column),
+ bool ascending)
{
if (ascending)
return GetRow(item1) - GetRow(item2);
{
if (ascending)
return GetRow(item1) - GetRow(item2);
return GetRow(item2) - GetRow(item1);
}
return GetRow(item2) - GetRow(item1);
}
return 0;
children = m_hash;
return 0;
children = m_hash;
return m_hash.GetCount();
}
return m_hash.GetCount();
}
GetOwner()->GetOwner()->GetModel()->ValueChanged( m_item, col );
// m_editorCtrl->PopEventHandler( true );
GetOwner()->GetOwner()->GetModel()->ValueChanged( m_item, col );
// m_editorCtrl->PopEventHandler( true );
// Now we should send Editing Done event
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, GetOwner()->GetOwner()->GetId() );
event.SetDataViewColumn( GetOwner() );
// Now we should send Editing Done event
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, GetOwner()->GetOwner()->GetId() );
event.SetDataViewColumn( GetOwner() );
wxDataViewCtrlBase::AppendToggleColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode, int width, wxAlignment align, int flags )
{
wxDataViewCtrlBase::AppendToggleColumn( const wxString &label, unsigned int model_column,
wxDataViewCellMode mode, int width, wxAlignment align, int flags )
{
wxDataViewColumn *ret = new wxDataViewColumn( label,
new wxDataViewToggleRenderer( wxT("bool"), mode, (int)align ),
model_column, width, align, flags );
wxDataViewColumn *ret = new wxDataViewColumn( label,
new wxDataViewToggleRenderer( wxT("bool"), mode, (int)align ),
model_column, width, align, flags );
if (g_column >= -1)
nodes.Sort( &wxGenericTreeModelNodeCmp );
}
if (g_column >= -1)
nodes.Sort( &wxGenericTreeModelNodeCmp );
}
- void AddLeaf( void * leaf )
- {
- leaves.Add( leaf );
+ void AddLeaf( void * leaf )
+ {
+ leaves.Add( leaf );
- leaves.Sort( &wxGenericTreeModelItemCmp );
+ leaves.Sort( &wxGenericTreeModelItemCmp );
}
wxDataViewItem & GetItem() { return item; }
}
wxDataViewItem & GetItem() { return item; }
- nodes.Sort( &wxGenericTreeModelNodeCmp );
+ nodes.Sort( &wxGenericTreeModelNodeCmp );
int len = nodes.GetCount();
for (int i = 0; i < len; i ++)
{
int len = nodes.GetCount();
for (int i = 0; i < len; i ++)
{
bool ValueChanged( const wxDataViewItem &item, unsigned int col );
bool Cleared();
void Resort()
bool ValueChanged( const wxDataViewItem &item, unsigned int col );
bool Cleared();
void Resort()
- m_root->Resort();
- UpdateDisplay();
+ m_root->Resort();
+ UpdateDisplay();
- g_model = GetOwner()->GetModel();
+ g_model = GetOwner()->GetModel();
wxDataViewColumn* col = GetOwner()->GetSortingColumn();
if( !col )
{
wxDataViewColumn* col = GetOwner()->GetSortingColumn();
if( !col )
{
return;
}
g_column = col->GetModelColumn();
return;
}
g_column = col->GetModelColumn();
- g_asending = col->IsSortOrderAscending();
+ g_asending = col->IsSortOrderAscending();
void SetOwner( wxDataViewCtrl* owner ) { m_owner = owner; }
wxDataViewCtrl *GetOwner() { return m_owner; }
const wxDataViewCtrl *GetOwner() const { return m_owner; }
void SetOwner( wxDataViewCtrl* owner ) { m_owner = owner; }
wxDataViewCtrl *GetOwner() { return m_owner; }
const wxDataViewCtrl *GetOwner() const { return m_owner; }
-// ---------------------------------------------------------
+// ---------------------------------------------------------
// wxDataViewIconTextRenderer
// wxDataViewIconTextRenderer
-// ---------------------------------------------------------
+// ---------------------------------------------------------
IMPLEMENT_CLASS(wxDataViewIconTextRenderer, wxDataViewCustomRenderer)
IMPLEMENT_CLASS(wxDataViewIconTextRenderer, wxDataViewCustomRenderer)
-wxDataViewIconTextRenderer::wxDataViewIconTextRenderer(
+wxDataViewIconTextRenderer::wxDataViewIconTextRenderer(
const wxString &varianttype, wxDataViewCellMode mode, int align ) :
wxDataViewCustomRenderer( varianttype, mode, align )
{
const wxString &varianttype, wxDataViewCellMode mode, int align ) :
wxDataViewCustomRenderer( varianttype, mode, align )
{
wxDataViewIconTextRenderer::~wxDataViewIconTextRenderer()
{
}
wxDataViewIconTextRenderer::~wxDataViewIconTextRenderer()
{
}
bool wxDataViewIconTextRenderer::SetValue( const wxVariant &value )
{
m_value << value;
bool wxDataViewIconTextRenderer::SetValue( const wxVariant &value )
{
m_value << value;
bool wxDataViewIconTextRenderer::Render( wxRect cell, wxDC *dc, int state )
{
dc->SetFont( GetOwner()->GetOwner()->GetFont() );
bool wxDataViewIconTextRenderer::Render( wxRect cell, wxDC *dc, int state )
{
dc->SetFont( GetOwner()->GetOwner()->GetFont() );
const wxIcon &icon = m_value.GetIcon();
if (icon.IsOk())
{
dc->DrawIcon( icon, cell.x, cell.y ); // TODO centre
cell.x += icon.GetWidth()+4;
}
const wxIcon &icon = m_value.GetIcon();
if (icon.IsOk())
{
dc->DrawIcon( icon, cell.x, cell.y ); // TODO centre
cell.x += icon.GetWidth()+4;
}
dc->DrawText( m_value.GetText(), cell.x, cell.y );
return true;
dc->DrawText( m_value.GetText(), cell.x, cell.y );
return true;
}
m_currentX = wxMax(m_minX + 7, x);
}
m_currentX = wxMax(m_minX + 7, x);
{
GetColumn(m_column)->SetWidth(m_currentX - m_minX);
Refresh();
{
GetColumn(m_column)->SetWidth(m_currentX - m_minX);
Refresh();
const wxDataViewItem& item)
{
wxDataViewTreeNode * node = FindNode(parent);
const wxDataViewItem& item)
{
wxDataViewTreeNode * node = FindNode(parent);
wxCHECK_MSG( node != NULL, false, "item not found" );
wxCHECK_MSG( node->GetChildren().Index( item.GetID() ) != wxNOT_FOUND, false, "item not found" );
wxCHECK_MSG( node != NULL, false, "item not found" );
wxCHECK_MSG( node->GetChildren().Index( item.GetID() ) != wxNOT_FOUND, false, "item not found" );
}
bool isContainer = false;
wxDataViewTreeNodes nds = node->GetNodes();
}
bool isContainer = false;
wxDataViewTreeNodes nds = node->GetNodes();
- for (int i = 0; i < nds.GetCount(); i ++)
- {
+ for (size_t i = 0; i < nds.GetCount(); i ++)
+ {
if (nds[i]->GetItem() == item)
{
isContainer = true;
if (nds[i]->GetItem() == item)
{
isContainer = true;
m_currentRow = m_count - 1;
UpdateDisplay();
m_currentRow = m_count - 1;
UpdateDisplay();
SendModelEvent(wxEVT_COMMAND_DATAVIEW_MODEL_ITEM_DELETED, item);
return true;
SendModelEvent(wxEVT_COMMAND_DATAVIEW_MODEL_ITEM_DELETED, item);
return true;
}
}
m_owner->Scroll( sx, sy );
}
}
m_owner->Scroll( sx, sy );
expander = GetOwner()->GetColumn( 0 );
GetOwner()->SetExpanderColumn(expander);
}
expander = GetOwner()->GetColumn( 0 );
GetOwner()->SetExpanderColumn(expander);
}
// redraw all cells for all rows which must be repainted and for all columns
wxRect cell_rect;
cell_rect.x = x_start;
// redraw all cells for all rows which must be repainted and for all columns
wxRect cell_rect;
cell_rect.x = x_start;
if (col->IsHidden())
continue; // skipt it!
if (col->IsHidden())
continue; // skipt it!
for (unsigned int item = item_start; item < item_last; item++)
{
// get the cell value and set it into the renderer
for (unsigned int item = item_start; item < item_last; item++)
{
// get the cell value and set it into the renderer
m_owner->CalcUnscrolledPosition( client_size.x, client_size.y,
&client_size.x, &client_size.y );
m_owner->CalcUnscrolledPosition( client_size.x, client_size.y,
&client_size.x, &client_size.y );
- //we should deal with the pixel here
+ //we should deal with the pixel here
unsigned int row = (client_size.y)/m_lineHeight;
if( client_size.y % m_lineHeight < m_lineHeight/2 )
row -= 1;
unsigned int row = (client_size.y)/m_lineHeight;
if( client_size.y % m_lineHeight < m_lineHeight/2 )
row -= 1;
return wxMin( GetRowCount()-1, row );
}
return wxMin( GetRowCount()-1, row );
}
//Check if the user prevent expanding
if( e.GetSkipped() )
return;
//Check if the user prevent expanding
if( e.GetSkipped() )
return;
node->ToggleOpen();
//Here I build the children of current node
if( node->GetChildrenNumber() == 0 )
node->ToggleOpen();
//Here I build the children of current node
if( node->GetChildrenNumber() == 0 )
for (; i < nodes.GetCount(); i ++)
{
if (nodes[i]->GetItem() == (**iter))
for (; i < nodes.GetCount(); i ++)
{
if (nodes[i]->GetItem() == (**iter))
node = nodes[i];
break;
}
node = nodes[i];
break;
}
int y = event.GetY();
m_owner->CalcUnscrolledPosition( x, y, &x, &y );
wxDataViewColumn *col = NULL;
int y = event.GetY();
m_owner->CalcUnscrolledPosition( x, y, &x, &y );
wxDataViewColumn *col = NULL;
int xpos = 0;
unsigned int cols = GetOwner()->GetColumnCount();
unsigned int i;
int xpos = 0;
unsigned int cols = GetOwner()->GetColumnCount();
unsigned int i;
if (ret == NULL)
return false;
if (ret == NULL)
return false;
delete column;
OnColumnChange();
delete column;
OnColumnChange();
void wxDataViewCtrl::SelectRange( int from, int to )
{
void wxDataViewCtrl::SelectRange( int from, int to )
{
for( int i = from; i < to; i ++ )
sel.Add( i );
m_clientArea->Select(sel);
for( int i = from; i < to; i ++ )
sel.Add( i );
m_clientArea->Select(sel);
if( column == NULL )
return EnsureVisible(row, -1);
else
if( column == NULL )
return EnsureVisible(row, -1);
else
int col = 0;
int len = GetColumnCount();
for( int i = 0; i < len; i ++ )
int col = 0;
int len = GetColumnCount();
for( int i = 0; i < len; i ++ )
EnsureVisible( row, col );
}
}
EnsureVisible( row, col );
}
}
}
void wxDataViewCtrl::HitTest( const wxPoint & point, wxDataViewItem & item, wxDataViewColumn* &column ) const
}
void wxDataViewCtrl::HitTest( const wxPoint & point, wxDataViewItem & item, wxDataViewColumn* &column ) const
{
int row = m_clientArea->GetRowByItem( item );
if (row != -1)
{
int row = m_clientArea->GetRowByItem( item );
if (row != -1)
- m_clientArea->Collapse(row);
+ m_clientArea->Collapse(row);