/////////////////////////////////////////////////////////////////////////////
-// Name: treebase.cpp
+// Name: src/common/treebase.cpp
// Purpose: Base wxTreeCtrl classes
// Author: Julian Smart
// Created: 01/02/97
#include "wx/treectrl.h"
#include "wx/imaglist.h"
+extern WXDLLEXPORT_DATA(const char) wxTreeCtrlNameStr[] = "treeCtrl";
+
// ----------------------------------------------------------------------------
// events
// ----------------------------------------------------------------------------
// wxTreeCtrlBase
// ----------------------------------------------------------------------------
+wxTreeCtrlBase::wxTreeCtrlBase()
+{
+ m_imageListNormal =
+ m_imageListState = NULL;
+ m_ownsImageListNormal =
+ m_ownsImageListState = false;
+
+ // arbitrary default
+ m_spacing = 18;
+
+ // quick DoGetBestSize calculation
+ m_quickBestSize = true;
+
+ Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(wxTreeCtrlBase::OnCharHook));
+}
+
wxTreeCtrlBase::~wxTreeCtrlBase()
{
if (m_ownsImageListNormal)
CollapseAllChildren(idCurr);
}
- // then collapse this element too
- Collapse(item);
+ // then collapse this element too unless it's the hidden root which can't
+ // be collapsed
+ if ( item != GetRootItem() || !HasFlag(wxTR_HIDE_ROOT) )
+ Collapse(item);
Thaw();
}
return !GetRootItem().IsOk();
}
+void wxTreeCtrlBase::OnCharHook(wxKeyEvent& event)
+{
+ if ( GetEditControl() )
+ {
+ bool discardChanges = false;
+ switch ( event.GetKeyCode() )
+ {
+ case WXK_ESCAPE:
+ discardChanges = true;
+ // fall through
+
+ case WXK_RETURN:
+ EndEditLabel(GetFocusedItem(), discardChanges);
+
+ // Do not call Skip() below.
+ return;
+ }
+ }
+
+ event.Skip();
+}
+
#endif // wxUSE_TREECTRL