}
if (columnPtr->IsSortable())
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;
if ((columnDescription.propertyDesc.propertyType == kDataBrowserCustomType) ||
(columnDescription.propertyDesc.propertyType == kDataBrowserDateTimeType) ||
wxDC *dc = dataViewCustomRendererPtr->GetDC();
- wxRect cellrect( static_cast<int>(rectangle->left),
- static_cast<int>(rectangle->top),
+ int active_border_fudge = 0;
+ 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>(rectangle->bottom-rectangle->top) );
Rect itemrect;
GetDataBrowserItemPartBounds( this->m_controlRef, itemID, propertyID,
kDataBrowserPropertyEnclosingPart, &itemrect );
- rect.x = itemrect.left;
- rect.width = itemrect.right-itemrect.left+1;
+ rect.x = itemrect.left-2;
+ rect.width = itemrect.right-itemrect.left+3;
wxBrush selBrush( col );
wxPen oldpen( dc->GetPen() );
DataBrowserPropertyFlags 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;
else
flags &= ~kDataBrowserPropertyIsEditable;
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)
BEGIN_EVENT_TABLE(wxDataViewCtrl,wxDataViewCtrlBase)
EVT_SIZE(wxDataViewCtrl::OnSize)
+ EVT_MOTION(wxDataViewCtrl::OnMouse)
END_EVENT_TABLE()
#endif // (wxUSE_DATAVIEWCTRL != 0) && (!defined(wxUSE_GENERICDATAVIEWCTRL) || (wxUSE_GENERICDATAVIEWCTRL == 0))