Initializes variables.
+\membersection{wxGenericDirCtrl::CollapseTree}\label{wxgenericdirctrlcollapsetree}
+
+\func{void}{CollapseTree}{\void}
+
+Collapses the entire tree.
+
\membersection{wxGenericDirCtrl::ExpandPath}\label{wxgenericdirctrlexpandpath}
\func{bool}{ExpandPath}{\param{const wxString\& }{path}}
Returns a pointer to the tree control.
+\membersection{wxGenericDirCtrl::ReCreateTree}\label{wxgenericdirctrlrecreatetree}
+
+\func{void}{ReCreateTree}{\void}
+
+Collapse and expand the tree, thus re-creating it from scratch.
+May be used to update the displayed directory content.
+
\membersection{wxGenericDirCtrl::SetDefaultPath}\label{wxgenericdirctrlsetdefaultpath}
\func{void}{SetDefaultPath}{\param{const wxString\& }{path}}
// Collapse & expand the tree, thus re-creating it from scratch:
virtual void ReCreateTree();
+ // Collapse the entire tree
+ virtual void CollapseTree();
+
protected:
+ virtual void ExpandRoot();
virtual void ExpandDir(wxTreeItemId parentId);
virtual void CollapseDir(wxTreeItemId parentId);
virtual const wxTreeItemId AddSection(const wxString& path, const wxString& name, int imageId = 0);
Init();
}
+void wxGenericDirCtrl::ExpandRoot()
+{
+ ExpandDir(m_rootId); // automatically expand first level
+
+ // Expand and select the default path
+ if (!m_defaultPath.empty())
+ {
+ ExpandPath(m_defaultPath);
+ }
+#ifdef __UNIX__
+ else
+ {
+ // On Unix, there's only one node under the (hidden) root node. It
+ // represents the / path, so the user would always have to expand it;
+ // let's do it ourselves
+ ExpandPath( wxT("/") );
+ }
+#endif
+}
+
bool wxGenericDirCtrl::Create(wxWindow *parent,
const wxWindowID id,
const wxString& dir,
m_rootId = m_treeCtrl->AddRoot( rootName, 3, -1, rootData);
m_treeCtrl->SetItemHasChildren(m_rootId);
- ExpandDir(m_rootId); // automatically expand first level
- // Expand and select the default path
- if (!m_defaultPath.empty())
- {
- ExpandPath(m_defaultPath);
- }
-#ifdef __UNIX__
- else
- {
- // On Unix, there's only one node under the (hidden) root node. It
- // represents the / path, so the user would always have to expand it;
- // let's do it ourselves
- ExpandPath( wxT("/") );
- }
-#endif
+ ExpandRoot();
SetBestSize(size);
DoResize();
* handle disappearing children! */
child = m_treeCtrl->GetFirstChild(parentId, cookie);
}
+ if (parentId != m_treeCtrl->GetRootItem())
+ m_treeCtrl->Collapse(parentId);
}
void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
void wxGenericDirCtrl::ReCreateTree()
{
CollapseDir(m_treeCtrl->GetRootItem());
- ExpandDir(m_treeCtrl->GetRootItem());
+ ExpandRoot();
+}
+
+void wxGenericDirCtrl::CollapseTree()
+{
+ wxTreeItemIdValue cookie;
+ wxTreeItemId child = m_treeCtrl->GetFirstChild(m_rootId, cookie);
+ while (child.IsOk())
+ {
+ CollapseDir(child);
+ child = m_treeCtrl->GetNextChild(m_rootId, cookie);
+ }
}
// Find the child that matches the first part of 'path'.