end label editing if the control loses focus (slightly modified patch 1084592)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -340,7 +340,11 @@ public:
|
|||||||
// edited simultaneously)
|
// edited simultaneously)
|
||||||
wxTextCtrl* GetEditControl() const;
|
wxTextCtrl* GetEditControl() const;
|
||||||
// end editing and accept or discard the changes to item label
|
// end editing and accept or discard the changes to item label
|
||||||
void EndEditLabel(const wxTreeItemId& item, bool discardChanges = false);
|
void EndEditLabel(const wxTreeItemId& WXUNUSED(item),
|
||||||
|
bool discardChanges = false)
|
||||||
|
{
|
||||||
|
DoEndEditLabel(discardChanges);
|
||||||
|
}
|
||||||
|
|
||||||
// sorting
|
// sorting
|
||||||
// this function is called to compare 2 items and should return -1, 0
|
// this function is called to compare 2 items and should return -1, 0
|
||||||
@@ -446,6 +450,10 @@ protected:
|
|||||||
// refresh a single item
|
// refresh a single item
|
||||||
void RefreshItem(const wxTreeItemId& item);
|
void RefreshItem(const wxTreeItemId& item);
|
||||||
|
|
||||||
|
// end edit label
|
||||||
|
void DoEndEditLabel(bool discardChanges = false);
|
||||||
|
|
||||||
|
|
||||||
// data used only while editing the item label:
|
// data used only while editing the item label:
|
||||||
wxTextCtrl *m_textCtrl; // text control in which it is edited
|
wxTextCtrl *m_textCtrl; // text control in which it is edited
|
||||||
wxTreeItemId m_idEdited; // the item being edited
|
wxTreeItemId m_idEdited; // the item being edited
|
||||||
|
@@ -2053,7 +2053,7 @@ wxTextCtrl* wxTreeCtrl::EditLabel(const wxTreeItemId& item,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// End label editing, optionally cancelling the edit
|
// End label editing, optionally cancelling the edit
|
||||||
void wxTreeCtrl::EndEditLabel(const wxTreeItemId& WXUNUSED(item), bool discardChanges)
|
void wxTreeCtrl::DoEndEditLabel(bool discardChanges)
|
||||||
{
|
{
|
||||||
TreeView_EndEditLabelNow(GetHwnd(), discardChanges);
|
TreeView_EndEditLabelNow(GetHwnd(), discardChanges);
|
||||||
|
|
||||||
@@ -2476,6 +2476,24 @@ WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPara
|
|||||||
processed = true;
|
processed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ( nMsg == WM_COMMAND )
|
||||||
|
{
|
||||||
|
// if we receive a EN_KILLFOCUS command from the in-place edit control
|
||||||
|
// used for label editing, make sure to end editing
|
||||||
|
WORD id, cmd;
|
||||||
|
WXHWND hwnd;
|
||||||
|
UnpackCommand(wParam, lParam, &id, &hwnd, &cmd);
|
||||||
|
|
||||||
|
if ( cmd == EN_KILLFOCUS )
|
||||||
|
{
|
||||||
|
if ( m_textCtrl && m_textCtrl->GetHandle() == hwnd )
|
||||||
|
{
|
||||||
|
DoEndEditLabel();
|
||||||
|
|
||||||
|
processed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( !processed )
|
if ( !processed )
|
||||||
rc = wxControl::MSWWindowProc(nMsg, wParam, lParam);
|
rc = wxControl::MSWWindowProc(nMsg, wParam, lParam);
|
||||||
|
Reference in New Issue
Block a user