Tried unsuccessfully to change individual line height
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -216,10 +216,40 @@ public:
|
|||||||
{
|
{
|
||||||
DataBrowserItemID itemID(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
DataBrowserItemID itemID(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
||||||
|
|
||||||
|
|
||||||
wxCHECK_MSG(item.IsOk(),false,_("Added item is invalid."));
|
wxCHECK_MSG(item.IsOk(),false,_("Added item is invalid."));
|
||||||
return (!(parent.IsOk()) && (this->m_dataViewControlPtr->AddItem(kDataBrowserNoItem,&itemID) == noErr) ||
|
bool noFailureFlag = (!(parent.IsOk()) && (this->m_dataViewControlPtr->AddItem(kDataBrowserNoItem,&itemID) == noErr) ||
|
||||||
parent.IsOk() && (this->m_dataViewControlPtr->AddItem(reinterpret_cast<DataBrowserItemID>(parent.GetID()),&itemID) == noErr));
|
parent.IsOk() && (this->m_dataViewControlPtr->AddItem(reinterpret_cast<DataBrowserItemID>(parent.GetID()),&itemID) == noErr));
|
||||||
|
|
||||||
|
wxDataViewCtrl *dvc = (wxDataViewCtrl*) this->m_dataViewControlPtr->GetPeer();
|
||||||
|
if (dvc->GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT)
|
||||||
|
{
|
||||||
|
wxDataViewModel *model = GetOwner();
|
||||||
|
|
||||||
|
int height = 20; // TODO find out standard height
|
||||||
|
unsigned int num = dvc->GetColumnCount();
|
||||||
|
unsigned int col;
|
||||||
|
for (col = 0; col < num; col++)
|
||||||
|
{
|
||||||
|
wxDataViewColumn *column = dvc->GetColumn( col );
|
||||||
|
if (column->IsHidden())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
wxDataViewCustomRenderer *renderer = wxDynamicCast( column->GetRenderer(), wxDataViewCustomRenderer );
|
||||||
|
if (renderer)
|
||||||
|
{
|
||||||
|
wxVariant value;
|
||||||
|
model->GetValue( value, item, column->GetModelColumn() );
|
||||||
|
renderer->SetValue( value );
|
||||||
|
height = wxMax( height, renderer->GetSize().y );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (height > 20)
|
||||||
|
this->m_dataViewControlPtr->SetRowHeight( itemID, height );
|
||||||
|
}
|
||||||
|
|
||||||
|
return noFailureFlag;
|
||||||
} /* ItemAdded(wxDataViewItem const&, wxDataViewItem const&) */
|
} /* ItemAdded(wxDataViewItem const&, wxDataViewItem const&) */
|
||||||
|
|
||||||
virtual bool ItemsAdded(wxDataViewItem const& parent, wxDataViewItemArray const& items)
|
virtual bool ItemsAdded(wxDataViewItem const& parent, wxDataViewItemArray const& items)
|
||||||
@@ -239,6 +269,39 @@ public:
|
|||||||
parent.IsOk() && (this->m_dataViewControlPtr->AddItems(reinterpret_cast<DataBrowserItemID>(parent.GetID()),noOfEntries,itemIDs,kDataBrowserItemNoProperty) == noErr));
|
parent.IsOk() && (this->m_dataViewControlPtr->AddItems(reinterpret_cast<DataBrowserItemID>(parent.GetID()),noOfEntries,itemIDs,kDataBrowserItemNoProperty) == noErr));
|
||||||
// give allocated array space free again:
|
// give allocated array space free again:
|
||||||
delete[] itemIDs;
|
delete[] itemIDs;
|
||||||
|
|
||||||
|
wxDataViewCtrl *dvc = (wxDataViewCtrl*) this->m_dataViewControlPtr->GetPeer();
|
||||||
|
if (dvc->GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT)
|
||||||
|
{
|
||||||
|
wxDataViewItem item = items[0]; // TODO get all items
|
||||||
|
DataBrowserItemID itemID(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
||||||
|
|
||||||
|
wxDataViewModel *model = GetOwner();
|
||||||
|
|
||||||
|
int height = 20; // TODO find out standard height
|
||||||
|
unsigned int num = dvc->GetColumnCount();
|
||||||
|
unsigned int col;
|
||||||
|
for (col = 0; col < num; col++)
|
||||||
|
{
|
||||||
|
wxDataViewColumn *column = dvc->GetColumn( col );
|
||||||
|
if (column->IsHidden())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
wxDataViewCustomRenderer *renderer = wxDynamicCast( column->GetRenderer(), wxDataViewCustomRenderer );
|
||||||
|
if (renderer)
|
||||||
|
{
|
||||||
|
wxVariant value;
|
||||||
|
model->GetValue( value, item, column->GetModelColumn() );
|
||||||
|
renderer->SetValue( value );
|
||||||
|
height = wxMax( height, renderer->GetSize().y );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (height > 20)
|
||||||
|
this->m_dataViewControlPtr->SetRowHeight( itemID, height );
|
||||||
|
}
|
||||||
|
|
||||||
// done:
|
// done:
|
||||||
return noFailureFlag;
|
return noFailureFlag;
|
||||||
} /* ItemsAdded(wxDataViewItem const&, wxDataViewItemArray const&) */
|
} /* ItemsAdded(wxDataViewItem const&, wxDataViewItemArray const&) */
|
||||||
|
Reference in New Issue
Block a user