Added wxDataViewCtrl::IsExpanded(item)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2008-12-16 21:23:55 +00:00
parent 4ce846b17c
commit 739a839903
8 changed files with 76 additions and 16 deletions

View File

@@ -713,6 +713,7 @@ public:
virtual void Expand( const wxDataViewItem & item ) = 0; virtual void Expand( const wxDataViewItem & item ) = 0;
virtual void Collapse( const wxDataViewItem & item ) = 0; virtual void Collapse( const wxDataViewItem & item ) = 0;
virtual bool IsExpanded( const wxDataViewItem & item ) const = 0;
virtual void EnsureVisible( const wxDataViewItem & item, virtual void EnsureVisible( const wxDataViewItem & item,
const wxDataViewColumn *column = NULL ) = 0; const wxDataViewColumn *column = NULL ) = 0;

View File

@@ -446,6 +446,7 @@ public:
virtual void Expand( const wxDataViewItem & item ); virtual void Expand( const wxDataViewItem & item );
virtual void Collapse( const wxDataViewItem & item ); virtual void Collapse( const wxDataViewItem & item );
virtual bool IsExpanded( const wxDataViewItem & item ) const;
virtual void SetFocus(); virtual void SetFocus();

View File

@@ -429,6 +429,8 @@ public:
virtual void Expand( const wxDataViewItem & item ); virtual void Expand( const wxDataViewItem & item );
virtual void Collapse( const wxDataViewItem & item ); virtual void Collapse( const wxDataViewItem & item );
virtual bool IsExpanded( const wxDataViewItem & item ) const;
static wxVisualAttributes static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);

View File

@@ -450,8 +450,8 @@ public:
{ {
this->Init(); this->Init();
} }
wxDataViewCtrl(wxWindow *parent, wxWindowID id, wxPoint const& pos = wxDefaultPosition, wxSize const& size = wxDefaultSize, long style = 0, wxDataViewCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0,
wxValidator const& validator = wxDefaultValidator) const wxValidator& validator = wxDefaultValidator)
{ {
this->Init(); this->Init();
this->Create(parent, id, pos, size, style, validator ); this->Create(parent, id, pos, size, style, validator );
@@ -460,8 +460,8 @@ public:
~wxDataViewCtrl(); ~wxDataViewCtrl();
// explicit control creation // explicit control creation
bool Create(wxWindow *parent, wxWindowID id, wxPoint const& pos=wxDefaultPosition, wxSize const& size=wxDefaultSize, long style=0, bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=0,
wxValidator const& validator=wxDefaultValidator); const wxValidator& validator=wxDefaultValidator);
virtual wxControl* GetMainWindow() // should disappear as it is not of any use for the native implementation virtual wxControl* GetMainWindow() // should disappear as it is not of any use for the native implementation
{ {
@@ -479,28 +479,29 @@ public:
virtual bool DeleteColumn(wxDataViewColumn* columnPtr); virtual bool DeleteColumn(wxDataViewColumn* columnPtr);
virtual wxDataViewColumn* GetColumn(unsigned int pos) const; virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
virtual unsigned int GetColumnCount() const; virtual unsigned int GetColumnCount() const;
virtual int GetColumnPosition(wxDataViewColumn const* columnPtr) const; virtual int GetColumnPosition(const wxDataViewColumn* columnPtr) const;
virtual void Collapse(wxDataViewItem const& item); virtual void Collapse( const wxDataViewItem& item);
virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr=NULL); virtual void EnsureVisible(const wxDataViewItem& item, const wxDataViewColumn* columnPtr=NULL);
virtual void Expand(wxDataViewItem const& item); virtual void Expand(const wxDataViewItem& item);
virtual bool IsExpanded(const wxDataViewItem & item) const;
virtual wxDataViewColumn* GetSortingColumn() const; virtual wxDataViewColumn* GetSortingColumn() const;
virtual unsigned int GetCount() const; virtual unsigned int GetCount() const;
virtual wxRect GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const; virtual wxRect GetItemRect(const wxDataViewItem& item, const wxDataViewColumn* columnPtr) const;
virtual wxDataViewItem GetSelection() const; virtual wxDataViewItem GetSelection() const;
virtual int GetSelections(wxDataViewItemArray& sel) const; virtual int GetSelections(wxDataViewItemArray& sel) const;
virtual void HitTest(wxPoint const& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const; virtual void HitTest(const wxPoint& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const;
virtual bool IsSelected(wxDataViewItem const& item) const; virtual bool IsSelected(const wxDataViewItem& item) const;
virtual void SelectAll(); virtual void SelectAll();
virtual void Select(wxDataViewItem const& item); virtual void Select(const wxDataViewItem& item);
virtual void SetSelections(wxDataViewItemArray const& sel); virtual void SetSelections(const wxDataViewItemArray& sel);
virtual void Unselect(wxDataViewItem const& item); virtual void Unselect(const wxDataViewItem& item);
virtual void UnselectAll(); virtual void UnselectAll();
// //

View File

@@ -946,6 +946,13 @@ public:
virtual void HitTest(const wxPoint& point, wxDataViewItem& item, virtual void HitTest(const wxPoint& point, wxDataViewItem& item,
wxDataViewColumn*& col) const; wxDataViewColumn*& col) const;
/**
Return @true if the item is expanded.
Currently not supported by OS X.
*/
virtual bool IsExpanded(const wxDataViewItem& item) const;
/** /**
Return @true if the item is selected. Return @true if the item is selected.
*/ */
@@ -1532,7 +1539,7 @@ enum wxDataViewColumnFlags
@class wxDataViewColumn @class wxDataViewColumn
This class represents a column in a wxDataViewCtrl. This class represents a column in a wxDataViewCtrl.
One wxDataViewColumn is bound to one column in the data model, to which the One wxDataViewColumn is bound to one column in the data model to which the
wxDataViewCtrl has been associated. wxDataViewCtrl has been associated.
An instance of wxDataViewRenderer is used by this class to render its data. An instance of wxDataViewRenderer is used by this class to render its data.

View File

@@ -483,6 +483,7 @@ public:
void Expand( unsigned int row ) { OnExpanding( row ); } void Expand( unsigned int row ) { OnExpanding( row ); }
void Collapse( unsigned int row ) { OnCollapsing( row ); } void Collapse( unsigned int row ) { OnCollapsing( row ); }
bool IsExpanded( unsigned int row ) const;
private: private:
wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row ) const; wxDataViewTreeNode * GetTreeNodeByRow( unsigned int row ) const;
//We did not need this temporarily //We did not need this temporarily
@@ -2411,6 +2412,23 @@ wxDataViewEvent wxDataViewMainWindow::SendExpanderEvent( wxEventType type, const
return le; return le;
} }
bool wxDataViewMainWindow::IsExpanded( unsigned int row ) const
{
if (IsVirtualList())
return false;
wxDataViewTreeNode * node = GetTreeNodeByRow(row);
if (!node)
return false;
if (!node->HasChildren())
return false;
return node->IsOpen();
}
void wxDataViewMainWindow::OnExpanding( unsigned int row ) void wxDataViewMainWindow::OnExpanding( unsigned int row )
{ {
if (IsVirtualList()) if (IsVirtualList())
@@ -3685,6 +3703,15 @@ void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
m_clientArea->Collapse(row); m_clientArea->Collapse(row);
} }
bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const
{
int row = m_clientArea->GetRowByItem( item );
if (row != -1)
return m_clientArea->IsExpanded(row);
return false;
}
#endif #endif
// !wxUSE_GENERICDATAVIEWCTRL // !wxUSE_GENERICDATAVIEWCTRL

View File

@@ -4013,6 +4013,15 @@ void wxDataViewCtrl::Collapse( const wxDataViewItem & item )
gtk_tree_path_free( path ); gtk_tree_path_free( path );
} }
bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const
{
GtkTreeIter iter;
iter.user_data = item.GetID();
GtkTreePath *path = m_internal->get_path( &iter );
gtk_tree_view_row_expanded( GTK_TREE_VIEW(m_treeview), path );
gtk_tree_path_free( path );
}
wxDataViewItem wxDataViewCtrl::GetSelection() const wxDataViewItem wxDataViewCtrl::GetSelection() const
{ {
GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) ); GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );

View File

@@ -1204,6 +1204,18 @@ void wxDataViewCtrl::Expand(wxDataViewItem const& item)
MacDataViewListCtrlPtr->OpenContainer(reinterpret_cast<DataBrowserItemID>(item.GetID())); MacDataViewListCtrlPtr->OpenContainer(reinterpret_cast<DataBrowserItemID>(item.GetID()));
} }
bool wxDataViewCtrl::IsExpanded( const wxDataViewItem & item ) const
{
if (item.IsOk())
{
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(m_peer));
// TODO ???
// This doesn't seem to be supported
}
return false;
}
wxDataViewColumn* wxDataViewCtrl::GetSortingColumn() const wxDataViewColumn* wxDataViewCtrl::GetSortingColumn() const
{ {
DataBrowserPropertyID propertyID; DataBrowserPropertyID propertyID;