X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7549148b56fd7138bb1573bd0174943b33f3bb0c..c280da69183a588ca7fffb474a630191eaf94798:/src/msw/treectrl.cpp diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index d7df087c94..fac8ddbaee 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -618,7 +618,9 @@ void wxTreeCtrl::Init() { m_textCtrl = NULL; m_hasAnyAttr = false; +#if wxUSE_DRAGIMAGE m_dragImage = NULL; +#endif m_pVirtualRoot = NULL; // initialize the global array of events now as it can't be done statically @@ -932,7 +934,7 @@ void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text) { if ( item == m_idEdited ) { - ::SetWindowText(hwndEdit, text); + ::SetWindowText(hwndEdit, text.wx_str()); } } } @@ -2136,6 +2138,7 @@ WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPara } #endif // __WXWINCE__ +#if wxUSE_DRAGIMAGE if ( m_dragImage ) { m_dragImage->Move(wxPoint(x, y)); @@ -2148,6 +2151,7 @@ WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPara m_dragImage->Show(); } } +#endif // wxUSE_DRAGIMAGE break; case WM_LBUTTONUP: @@ -2173,6 +2177,7 @@ WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPara // fall through case WM_RBUTTONUP: +#if wxUSE_DRAGIMAGE if ( m_dragImage ) { m_dragImage->EndDrag(); @@ -2189,6 +2194,7 @@ WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPara // are selected simultaneously which is quite weird TreeView_SelectDropTarget(GetHwnd(), 0); } +#endif // wxUSE_DRAGIMAGE break; } } @@ -2329,6 +2335,24 @@ wxTreeCtrl::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) if ( wParam == VK_SPACE || wParam == VK_RETURN ) return 0; } +#if wxUSE_DRAGIMAGE + else if ( nMsg == WM_KEYDOWN ) + { + if ( wParam == VK_ESCAPE ) + { + if ( m_dragImage ) + { + m_dragImage->EndDrag(); + delete m_dragImage; + m_dragImage = NULL; + + // if we don't do it, the tree seems to think that 2 items + // are selected simultaneously which is quite weird + TreeView_SelectDropTarget(GetHwnd(), 0); + } + } + } +#endif // wxUSE_DRAGIMAGE return wxControl::MSWDefWindowProc(nMsg, wParam, lParam); } @@ -2717,6 +2741,7 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) case TVN_BEGINDRAG: case TVN_BEGINRDRAG: +#if wxUSE_DRAGIMAGE if ( event.IsAllowed() ) { // normally this is impossible because the m_dragImage is @@ -2727,6 +2752,7 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) m_dragImage->BeginDrag(wxPoint(0,0), this); m_dragImage->Show(); } +#endif // wxUSE_DRAGIMAGE break; case TVN_DELETEITEM: