// looks quite ugly.
#define wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE 0
+
// ----------------------------------------------------------------------------
// private functions
// ----------------------------------------------------------------------------
DoTraverse(root, recursively);
}
- virtual bool OnVisit(const wxTreeItemId& item)
+ virtual bool OnVisit(const wxTreeItemId& WXUNUSED(item))
{
m_count++;
// ----------------------------------------------------------------------------
// handy table for sending events
-static const wxEventType g_events[2][2] =
+static wxEventType g_events[2][2] =
{
{ wxEVT_COMMAND_TREE_ITEM_COLLAPSED, wxEVT_COMMAND_TREE_ITEM_COLLAPSING },
{ wxEVT_COMMAND_TREE_ITEM_EXPANDED, wxEVT_COMMAND_TREE_ITEM_EXPANDING }
m_textCtrl = NULL;
m_hasAnyAttr = FALSE;
m_dragImage = NULL;
-
m_htSelStart = 0;
+
+ // Initialize static array of events, because with the new event system,
+ // they may not be initialized yet.
+
+ g_events[0][0] = wxEVT_COMMAND_TREE_ITEM_COLLAPSED;
+ g_events[0][1] = wxEVT_COMMAND_TREE_ITEM_COLLAPSING;
+ g_events[1][0] = wxEVT_COMMAND_TREE_ITEM_EXPANDED;
+ g_events[1][1] = wxEVT_COMMAND_TREE_ITEM_EXPANDING;
}
bool wxTreeCtrl::Create(wxWindow *parent,
// delete user data to prevent memory leaks
DeleteAllItems();
-
+
if (m_ownsImageListNormal) delete m_imageListNormal;
if (m_ownsImageListState) delete m_imageListState;
}
{
if ( m_textCtrl )
{
+ // the HWND corresponding to this control is deleted by the tree
+ // control itself and we don't know when exactly this happens, so check
+ // if the window still exists before calling UnsubclassWin()
+ if ( !::IsWindow(GetHwndOf(m_textCtrl)) )
+ {
+ m_textCtrl->SetHWND(0);
+ }
+
m_textCtrl->UnsubclassWin();
m_textCtrl->SetHWND(0);
delete m_textCtrl;
}
// End label editing, optionally cancelling the edit
-void wxTreeCtrl::EndEditLabel(const wxTreeItemId& item, bool discardChanges)
+void wxTreeCtrl::EndEditLabel(const wxTreeItemId& WXUNUSED(item), bool discardChanges)
{
TreeView_EndEditLabelNow(GetHwnd(), discardChanges);
return TRUE;
}
}
- break;
+// break; // can never be reached
#endif // _WIN32_IE >= 0x300
case NM_DBLCLK:
case TVN_GETDISPINFO:
// NB: so far the user can't set the image himself anyhow, so do it
// anyway - but this may change later
- if ( /* !processed && */ 1 )
+// if ( /* !processed && */ 1 )
{
wxTreeItemId item = event.m_item;
TV_DISPINFO *info = (TV_DISPINFO *)lParam;
: wxTreeItemIcon_Selected
);
}
- }
+ }
break;
//default: