- int xpos = 0;
- unsigned int cols = GetOwner()->GetColumnCount();
- unsigned int i;
- for (i = 0; i < cols; i++)
- {
- wxDataViewColumn *c = GetOwner()->GetColumnAt( i );
- if (c->IsHidden())
- continue; // skip it!
-
- if (c == m_currentCol)
- break;
- xpos += c->GetWidth();
- }
-
- // we have to take an expander column into account and compute its indentation
- // to get the editor at the correct x position where the actual text is
- int indent = 0;
- if (!IsVirtualList() && GetOwner()->GetExpanderColumn() == m_currentCol)
- {
- wxDataViewTreeNode* node = GetTreeNodeByRow(m_currentRow);
- indent = GetOwner()->GetIndent() * node->GetIndentLevel();
- indent = indent + m_lineHeight;
-
- if(!node->HasChildren())
- delete node;
- }
-
- wxRect labelRect( xpos + indent,
- GetLineStart( m_currentRow ),
- m_currentCol->GetWidth() - indent,
- GetLineHeight( m_currentRow ) );