Reapplied some previous patches that got lost while merging the Cocoa implementation

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2009-05-11 11:28:55 +00:00
parent d23d3b702b
commit 35d85392ff
2 changed files with 76 additions and 6 deletions

View File

@@ -135,7 +135,8 @@ static bool InitializeColumnDescription(DataBrowserListViewColumnDesc& columnDes
} }
if (columnPtr->IsSortable()) if (columnPtr->IsSortable())
columnDescription.propertyDesc.propertyFlags |= kDataBrowserListViewSortableColumn; columnDescription.propertyDesc.propertyFlags |= kDataBrowserListViewSortableColumn;
if (columnPtr->GetRenderer()->GetMode() == wxDATAVIEW_CELL_EDITABLE) if ((columnPtr->GetRenderer()->GetMode() == wxDATAVIEW_CELL_EDITABLE) ||
(columnPtr->GetRenderer()->GetMode() == wxDATAVIEW_CELL_ACTIVATABLE))
columnDescription.propertyDesc.propertyFlags |= kDataBrowserPropertyIsEditable; columnDescription.propertyDesc.propertyFlags |= kDataBrowserPropertyIsEditable;
if ((columnDescription.propertyDesc.propertyType == kDataBrowserCustomType) || if ((columnDescription.propertyDesc.propertyType == kDataBrowserCustomType) ||
(columnDescription.propertyDesc.propertyType == kDataBrowserDateTimeType) || (columnDescription.propertyDesc.propertyType == kDataBrowserDateTimeType) ||
@@ -1637,8 +1638,14 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserDrawItemProc(DataBrowse
wxDC *dc = dataViewCustomRendererPtr->GetDC(); wxDC *dc = dataViewCustomRendererPtr->GetDC();
wxRect cellrect( static_cast<int>(rectangle->left), int active_border_fudge = 0;
static_cast<int>(rectangle->top), if (dataViewCtrlPtr->HasFocus() && !dataViewCtrlPtr->HasFlag( wxBORDER_NONE ))
active_border_fudge = 1;
else
active_border_fudge = -2;
wxRect cellrect( static_cast<int>(rectangle->left + active_border_fudge),
static_cast<int>(rectangle->top + active_border_fudge),
static_cast<int>(1+rectangle->right-rectangle->left), static_cast<int>(1+rectangle->right-rectangle->left),
static_cast<int>(rectangle->bottom-rectangle->top) ); static_cast<int>(rectangle->bottom-rectangle->top) );
@@ -1654,8 +1661,8 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserDrawItemProc(DataBrowse
Rect itemrect; Rect itemrect;
GetDataBrowserItemPartBounds( this->m_controlRef, itemID, propertyID, GetDataBrowserItemPartBounds( this->m_controlRef, itemID, propertyID,
kDataBrowserPropertyEnclosingPart, &itemrect ); kDataBrowserPropertyEnclosingPart, &itemrect );
rect.x = itemrect.left; rect.x = itemrect.left-2;
rect.width = itemrect.right-itemrect.left+1; rect.width = itemrect.right-itemrect.left+3;
wxBrush selBrush( col ); wxBrush selBrush( col );
wxPen oldpen( dc->GetPen() ); wxPen oldpen( dc->GetPen() );
@@ -2168,7 +2175,8 @@ void wxDataViewRenderer::SetMode(wxDataViewCellMode mode)
DataBrowserPropertyFlags flags; DataBrowserPropertyFlags flags;
verify_noerr(macDataViewListCtrlPtr->GetPropertyFlags(dataViewColumnPtr->GetNativeData()->GetPropertyID(),&flags)); verify_noerr(macDataViewListCtrlPtr->GetPropertyFlags(dataViewColumnPtr->GetNativeData()->GetPropertyID(),&flags));
if (mode == wxDATAVIEW_CELL_EDITABLE) if ((mode == wxDATAVIEW_CELL_EDITABLE) ||
(mode == wxDATAVIEW_CELL_ACTIVATABLE))
flags |= kDataBrowserPropertyIsEditable; flags |= kDataBrowserPropertyIsEditable;
else else
flags &= ~kDataBrowserPropertyIsEditable; flags &= ~kDataBrowserPropertyIsEditable;

View File

@@ -676,10 +676,72 @@ void wxDataViewCtrl::OnSize(wxSizeEvent& event)
event.Skip(); event.Skip();
} }
wxSize wxDataViewCtrl::DoGetBestSize() const
{
wxSize best = wxControl::DoGetBestSize();
best.y = 80;
return best;
}
void wxDataViewCtrl::OnMouse(wxMouseEvent& event)
{
event.Skip();
if (GetModel() == NULL)
return;
#if 0
// Doesn't compile anymore
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(m_peer));
int NoOfChildren;
wxDataViewItemArray items;
NoOfChildren = GetModel()->GetChildren( wxDataViewItem(), items);
if (NoOfChildren == 0)
return;
wxDataViewItem firstChild = items[0];
UInt16 headerHeight = 0;
MacDataViewListCtrlPtr->GetHeaderButtonHeight(&headerHeight);
if (event.GetY() < headerHeight)
{
unsigned int col_count = GetColumnCount();
unsigned int col;
for (col = 0; col < col_count; col++)
{
wxDataViewColumn *column = GetColumn( col );
if (column->IsHidden())
continue;
Rect itemrect;
::GetDataBrowserItemPartBounds( MacDataViewListCtrlPtr->GetControlRef(),
reinterpret_cast<DataBrowserItemID>(firstChild.GetID()), column->GetPropertyID(),
kDataBrowserPropertyEnclosingPart, &itemrect );
if (abs( event.GetX() - itemrect.right) < 3)
{
if (column->GetFlags() & wxDATAVIEW_COL_RESIZABLE)
SetCursor( wxCursor( wxCURSOR_SIZEWE ) );
else
SetCursor( *wxSTANDARD_CURSOR );
return;
}
}
}
SetCursor( *wxSTANDARD_CURSOR );
#endif
}
IMPLEMENT_DYNAMIC_CLASS(wxDataViewCtrl,wxDataViewCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxDataViewCtrl,wxDataViewCtrlBase)
BEGIN_EVENT_TABLE(wxDataViewCtrl,wxDataViewCtrlBase) BEGIN_EVENT_TABLE(wxDataViewCtrl,wxDataViewCtrlBase)
EVT_SIZE(wxDataViewCtrl::OnSize) EVT_SIZE(wxDataViewCtrl::OnSize)
EVT_MOTION(wxDataViewCtrl::OnMouse)
END_EVENT_TABLE() END_EVENT_TABLE()
#endif // (wxUSE_DATAVIEWCTRL != 0) && (!defined(wxUSE_GENERICDATAVIEWCTRL) || (wxUSE_GENERICDATAVIEWCTRL == 0)) #endif // (wxUSE_DATAVIEWCTRL != 0) && (!defined(wxUSE_GENERICDATAVIEWCTRL) || (wxUSE_GENERICDATAVIEWCTRL == 0))