// wxTreeEvent
// -----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent)
+IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxNotifyEvent)
wxTreeEvent::wxTreeEvent( wxEventType commandType, int id )
- : wxCommandEvent( commandType, id )
+ : wxNotifyEvent( commandType, id )
{
m_code = 0;
m_itemOld = (wxGenericTreeItem *)NULL;
delete item;
- Refresh();
+ m_dirty = TRUE;
}
void wxTreeCtrl::DeleteAllItems()
delete m_anchor;
m_anchor = NULL;
- Refresh();
+ m_dirty = TRUE;
}
}
{
wxGenericTreeItem *item = itemId.m_pItem;
+ if ( !item->HasPlus() )
+ return;
+
if ( item->IsExpanded() )
return;
{
dc.DrawLine( horizX+20, y, horizX+30, y );
dc.SetPen( *wxGREY_PEN );
+ dc.SetBrush( *wxWHITE_BRUSH );
dc.DrawRectangle( horizX+10, y-4, 11, 9 );
dc.SetPen( *wxBLACK_PEN );
dc.DrawLine( horizX+13, y, horizX+18, y );
void wxTreeCtrl::OnChar( wxKeyEvent &event )
{
+ wxTreeEvent te( wxEVT_COMMAND_TREE_KEY_DOWN, GetId() );
+ te.m_code = event.KeyCode();
+ te.SetEventObject( this );
+ GetEventHandler()->ProcessEvent( te );
+
if (m_current == 0)
{
event.Skip();
{
case '+':
case WXK_ADD:
- if (HasChildren(m_current) && !IsExpanded(m_current))
+ if (m_current->HasPlus() && !IsExpanded(m_current))
{
Expand(m_current);
}
case ' ':
case WXK_RETURN:
{
- wxTreeEvent event( wxEVT_COMMAND_TREE_KEY_DOWN, GetId() );
+ wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() );
event.m_item = m_current;
event.m_code = 0;
event.SetEventObject( this );
if ( event.LeftDClick() )
{
- wxTreeEvent event( wxEVT_COMMAND_TREE_KEY_DOWN, GetId() );
+ wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() );
event.m_item = item;
event.m_code = 0;
event.SetEventObject( this );