wxDataViewItem GetCurrentItem() const;
void SetCurrentItem(const wxDataViewItem& item);
+ // Currently focused column of the current item or NULL if no column has focus
+ virtual wxDataViewColumn *GetCurrentColumn() const = 0;
+
// Selection: both GetSelection() and GetSelections() can be used for the
// controls both with and without wxDV_MULTIPLE style. For single selection
// controls GetSelections() is not very useful however. And for multi
// return the column displayed at the given position in the control
wxDataViewColumn *GetColumnAt(unsigned int pos) const;
+ virtual wxDataViewColumn *GetCurrentColumn() const;
+
virtual void OnInternalIdle();
private:
virtual bool EnableDragSource( const wxDataFormat &format );
virtual bool EnableDropTarget( const wxDataFormat &format );
+ virtual wxDataViewColumn *GetCurrentColumn() const;
+
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
//
virtual wxDataViewItem GetCurrentItem() const;
virtual void SetCurrentItem(const wxDataViewItem& item);
+ virtual wxDataViewColumn *GetCurrentColumn() const;
virtual int GetSelectedItemsCount() const;
virtual int GetSelections(wxDataViewItemArray& sel) const;
virtual bool IsSelected (wxDataViewItem const& item) const;
//
virtual wxDataViewItem GetCurrentItem() const;
virtual void SetCurrentItem(const wxDataViewItem& item);
+ virtual wxDataViewColumn *GetCurrentColumn() const;
virtual int GetSelectedItemsCount() const;
virtual int GetSelections(wxDataViewItemArray& sel) const;
virtual bool IsSelected(const wxDataViewItem& item) const;
virtual wxDataViewItem GetCurrentItem() const = 0;
virtual void SetCurrentItem(const wxDataViewItem& item) = 0;
+ virtual wxDataViewColumn *GetCurrentColumn() const = 0;
+
virtual int GetSelectedItemsCount() const = 0;
virtual int GetSelections(wxDataViewItemArray& sel) const = 0; // returns all selected items in the native control
virtual bool IsSelected (wxDataViewItem const& item) const = 0; // checks if the passed item is selected in the native control
m_Deleting = deleting;
}
+ virtual wxDataViewColumn *GetCurrentColumn() const;
+
virtual wxVisualAttributes GetDefaultAttributes() const
{
return GetClassDefaultAttributes(GetWindowVariant());
item may be selected or not but under OS X the current item is always
selected.
- @see SetCurrentItem()
+ @see SetCurrentItem(), GetCurrentColumn()
@since 2.9.2
*/
wxDataViewItem GetCurrentItem() const;
+ /**
+ Returns the column that currently has focus.
+
+ If the focus is set to individual cell within the currently focused
+ item (as opposed to being on the item as a whole), then this is the
+ column that the focus is on.
+
+ Returns NULL if no column currently has focus.
+
+ @see GetCurrentItem()
+
+ @since 2.9.4
+ */
+ wxDataViewColumn *GetCurrentColumn() const;
+
/**
Returns indentation.
*/
{
wxLogMessage("There is no current item.");
}
+
+ wxDataViewColumn *col = m_ctrl[0]->GetCurrentColumn();
+ if ( col )
+ {
+ wxLogMessage("Current column: %d",
+ m_ctrl[0]->GetColumnPosition(col));
+ }
+ else
+ {
+ wxLogMessage("There is no current column.");
+ }
}
void MyFrame::OnSetNinthCurrent(wxCommandEvent& WXUNUSED(event))
}
}
+wxDataViewColumn *wxDataViewCtrl::GetCurrentColumn() const
+{
+ return m_clientArea->GetCurrentColumn();
+}
+
int wxDataViewCtrl::GetSelectedItemsCount() const
{
return m_clientArea->GetSelections().size();
gtk_tree_view_set_cursor(GTK_TREE_VIEW(m_treeview), path, NULL, FALSE);
}
+wxDataViewColumn *wxDataViewCtrl::GetCurrentColumn() const
+{
+ // The tree doesn't have any current item if it hadn't been created yet but
+ // it's arguably not an error to call this function in this case so just
+ // return NULL without asserting.
+ if ( !m_treeview )
+ return NULL;
+
+ GtkTreeViewColumn *col;
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(m_treeview), NULL, &col);
+ return FromGTKColumn(col);
+}
+
void wxDataViewCtrl::StartEditor(const wxDataViewItem& item, unsigned int column)
{
wxCHECK_RET( m_treeview,
return wxDataViewItem();
}
+wxDataViewColumn *wxMacDataViewDataBrowserListViewControl::GetCurrentColumn() const
+{
+ wxFAIL_MSG( "unimplemented for Carbon" );
+ return NULL;
+}
+
void wxMacDataViewDataBrowserListViewControl::SetCurrentItem(const wxDataViewItem& WXUNUSED(item))
{
wxFAIL_MSG( "unimplemented for Carbon" );
return wxDataViewItem([[m_OutlineView itemAtRow:[m_OutlineView selectedRow]] pointer]);
}
+wxDataViewColumn *wxCocoaDataViewControl::GetCurrentColumn() const
+{
+ int col = [m_OutlineView selectedColumn];
+ if ( col == -1 )
+ return NULL;
+ return GetColumn(col);
+}
+
void wxCocoaDataViewControl::SetCurrentItem(const wxDataViewItem& item)
{
// We can't have unselected current item in a NSTableView, as the
GetDataViewPeer()->SetCurrentItem(item);
}
+wxDataViewColumn *wxDataViewCtrl::GetCurrentColumn() const
+{
+ return GetDataViewPeer()->GetCurrentColumn();
+}
+
wxRect wxDataViewCtrl::GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const
{
if (item.IsOk() && (columnPtr != NULL))