}
// End label editing, optionally cancelling the edit
-bool wxListCtrl::EndEditLabel(bool WXUNUSED(cancel))
+bool wxListCtrl::EndEditLabel(bool cancel)
{
- wxFAIL_MSG( _T("not implemented") );
-
- return false;
+ // m_textCtrl is not always ready, ie. in EVT_LIST_BEGIN_LABEL_EDIT
+ HWND hwnd = ListView_GetEditControl(GetHwnd());
+ bool b = (hwnd != NULL);
+ if (b)
+ {
+ if (cancel)
+ ::SetWindowText(hwnd, wxEmptyString); // dubious but better than nothing
+ if (m_textCtrl)
+ {
+ m_textCtrl->UnsubclassWin();
+ m_textCtrl->SetHWND(0);
+ delete m_textCtrl;
+ m_textCtrl = NULL;
+ }
+ ::DestroyWindow(hwnd);
+ }
+ return b;
}
// Ensures this item is visible