int wxDataViewMainWindow::GetLineStart( unsigned int row ) const
{
+ const wxDataViewModel *model = GetOwner()->GetModel();
+
if (GetOwner()->GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT)
{
// TODO make more efficient
const wxDataViewTreeNode* node = GetTreeNodeByRow(r);
if (!node) return start;
+ wxDataViewItem item = node->GetItem();
+
unsigned int cols = GetOwner()->GetColumnCount();
unsigned int col;
int height = 0;
if (column->IsHidden())
continue; // skip it!
+ if ((col != 0) && model->IsContainer(item) && !model->HasContainerColumns(item))
+ continue; // skip it!
+
const wxDataViewRenderer *renderer = column->GetRenderer();
+ wxVariant value;
+ model->GetValue( value, item, column->GetModelColumn() );
+ wxDataViewRenderer *renderer2 = const_cast<wxDataViewRenderer*>(renderer);
+ renderer2->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
}
int wxDataViewMainWindow::GetLineAt( unsigned int y ) const
{
+ const wxDataViewModel *model = GetOwner()->GetModel();
+
if (GetOwner()->GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT)
{
// TODO make more efficient
return row + ((y-yy) / m_lineHeight);
}
+ wxDataViewItem item = node->GetItem();
+
unsigned int cols = GetOwner()->GetColumnCount();
unsigned int col;
int height = 0;
const wxDataViewColumn *column = GetOwner()->GetColumn(col);
if (column->IsHidden())
continue; // skip it!
+
+ if ((col != 0) && model->IsContainer(item) && !model->HasContainerColumns(item))
+ continue; // skip it!
const wxDataViewRenderer *renderer = column->GetRenderer();
+ wxVariant value;
+ model->GetValue( value, item, column->GetModelColumn() );
+ wxDataViewRenderer *renderer2 = const_cast<wxDataViewRenderer*>(renderer);
+ renderer2->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
}
int wxDataViewMainWindow::GetLineHeight( unsigned int row ) const
{
+ const wxDataViewModel *model = GetOwner()->GetModel();
+
if (GetOwner()->GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT)
{
wxASSERT( !IsVirtualList() );
// wxASSERT( node );
if (!node) return m_lineHeight;
- wxDataViewItem item( node->GetItem() );
+ wxDataViewItem item = node->GetItem();
int height = 0;
const wxDataViewColumn *column = GetOwner()->GetColumn(col);
if (column->IsHidden())
continue; // skip it!
+
+ if ((col != 0) && model->IsContainer(item) && !model->HasContainerColumns(item))
+ continue; // skip it!
const wxDataViewRenderer *renderer = column->GetRenderer();
+ wxVariant value;
+ model->GetValue( value, item, column->GetModelColumn() );
+ wxDataViewRenderer *renderer2 = const_cast<wxDataViewRenderer*>(renderer);
+ renderer2->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
}