X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c9c4b3a009ce2bbdf47121b6913f5dee7c12992e..2fe212b0336512aac9eace69fab09ce856b0bf4b:/src/generic/treectlg.cpp?ds=sidebyside diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index 7f880bb4d9..3176b1eb92 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -360,21 +360,6 @@ void wxTreeTextCtrl::OnKillFocus( wxFocusEvent &WXUNUSED(event) ) m_owner->OnRenameAccept(); } -#if 0 -// ----------------------------------------------------------------------------- -// wxTreeEvent -// ----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxNotifyEvent) - -wxTreeEvent::wxTreeEvent( wxEventType commandType, int id ) - : wxNotifyEvent( commandType, id ) -{ - m_code = 0; - m_itemOld = (wxGenericTreeItem *)NULL; -} -#endif - // ----------------------------------------------------------------------------- // wxGenericTreeItem // ----------------------------------------------------------------------------- @@ -679,7 +664,7 @@ bool wxGenericTreeCtrl::Create(wxWindow *parent, SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_LISTBOX ) ); // m_dottedPen = wxPen( "grey", 0, wxDOT ); too slow under XFree86 - m_dottedPen = wxPen( "grey", 0, 0 ); + m_dottedPen = wxPen( wxT("grey"), 0, 0 ); return TRUE; } @@ -1032,15 +1017,6 @@ wxTreeItemId wxGenericTreeCtrl::GetNext(const wxTreeItemId& item) const } } -wxTreeItemId wxGenericTreeCtrl::GetPrev(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") ); - - wxFAIL_MSG(wxT("not implemented")); - - return wxTreeItemId(); -} - wxTreeItemId wxGenericTreeCtrl::GetFirstVisibleItem() const { wxTreeItemId id = GetRootItem(); @@ -2181,7 +2157,7 @@ void wxGenericTreeCtrl::OnKillFocus( wxFocusEvent &event ) void wxGenericTreeCtrl::OnChar( wxKeyEvent &event ) { wxTreeEvent te( wxEVT_COMMAND_TREE_KEY_DOWN, GetId() ); - te.m_code = (int)event.KeyCode(); + te.m_evtKey = event; te.SetEventObject( this ); if ( GetEventHandler()->ProcessEvent( te ) ) { @@ -2245,7 +2221,6 @@ void wxGenericTreeCtrl::OnChar( wxKeyEvent &event ) { wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() ); event.m_item = (long) m_current; - event.m_code = 0; event.SetEventObject( this ); GetEventHandler()->ProcessEvent( event ); } @@ -2670,7 +2645,6 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event ) { wxTreeEvent nevent(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, GetId()); nevent.m_item = (long) item; - nevent.m_code = 0; CalcScrolledPosition(x, y, &nevent.m_pointDrag.x, &nevent.m_pointDrag.y); @@ -2731,26 +2705,22 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event ) m_renameTimer->Stop(); m_lastOnSame = FALSE; - if (item->HasPlus() && !HasButtons()) + // send activate event first + wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() ); + nevent.m_item = (long) item; + CalcScrolledPosition(x, y, + &nevent.m_pointDrag.x, + &nevent.m_pointDrag.y); + nevent.SetEventObject( this ); + if ( !GetEventHandler()->ProcessEvent( nevent ) ) { - // If the control has no buttons,the only way - // to expand/collapse it is by double clicking - // an item. In this case we cannot send any - // activate event. - Toggle(item); - } - else - { - // If we have buttons, just send activate event. - wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, - GetId() ); - nevent.m_item = (long) item; - nevent.m_code = 0; - CalcScrolledPosition(x, y, - &nevent.m_pointDrag.x, - &nevent.m_pointDrag.y); - nevent.SetEventObject( this ); - GetEventHandler()->ProcessEvent( nevent ); + // if the user code didn't process the activate event, + // handle it ourselves by toggling the item when it is + // double clicked + if ( item->HasPlus() ) + { + Toggle(item); + } } } } @@ -2929,4 +2899,28 @@ void wxGenericTreeCtrl::RefreshSelectedUnder(wxGenericTreeItem *item) } } +// ---------------------------------------------------------------------------- +// changing colours: we need to refresh the tree control +// ---------------------------------------------------------------------------- + +bool wxGenericTreeCtrl::SetBackgroundColour(const wxColour& colour) +{ + if ( !wxWindow::SetBackgroundColour(colour) ) + return FALSE; + + Refresh(); + + return TRUE; +} + +bool wxGenericTreeCtrl::SetForegroundColour(const wxColour& colour) +{ + if ( !wxWindow::SetForegroundColour(colour) ) + return FALSE; + + Refresh(); + + return TRUE; +} + #endif // wxUSE_TREECTRL