Menu/toolbar event handling now tries the window with the focus first.
wxTextCtrl processes cut, copy, paste, undo, redo commands and UI updates automatically. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -68,13 +68,27 @@
|
||||
#endif
|
||||
|
||||
#if !USE_SHARED_LIBRARY
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
|
||||
|
||||
BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
|
||||
EVT_CHAR(wxTextCtrl::OnChar)
|
||||
EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
|
||||
EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
|
||||
|
||||
EVT_MENU(wxID_CUT, wxTextCtrl::OnCut)
|
||||
EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy)
|
||||
EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste)
|
||||
EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo)
|
||||
EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo)
|
||||
|
||||
EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut)
|
||||
EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy)
|
||||
EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste)
|
||||
EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo)
|
||||
EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
#endif // USE_SHARED_LIBRARY
|
||||
|
||||
// Text item
|
||||
@@ -363,20 +377,29 @@ void wxTextCtrl::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
||||
// Clipboard operations
|
||||
void wxTextCtrl::Copy()
|
||||
{
|
||||
HWND hWnd = (HWND) GetHWND();
|
||||
SendMessage(hWnd, WM_COPY, 0, 0L);
|
||||
if (CanCopy())
|
||||
{
|
||||
HWND hWnd = (HWND) GetHWND();
|
||||
SendMessage(hWnd, WM_COPY, 0, 0L);
|
||||
}
|
||||
}
|
||||
|
||||
void wxTextCtrl::Cut()
|
||||
{
|
||||
HWND hWnd = (HWND) GetHWND();
|
||||
SendMessage(hWnd, WM_CUT, 0, 0L);
|
||||
if (CanCut())
|
||||
{
|
||||
HWND hWnd = (HWND) GetHWND();
|
||||
SendMessage(hWnd, WM_CUT, 0, 0L);
|
||||
}
|
||||
}
|
||||
|
||||
void wxTextCtrl::Paste()
|
||||
{
|
||||
HWND hWnd = (HWND) GetHWND();
|
||||
SendMessage(hWnd, WM_PASTE, 0, 0L);
|
||||
if (CanPaste())
|
||||
{
|
||||
HWND hWnd = (HWND) GetHWND();
|
||||
SendMessage(hWnd, WM_PASTE, 0, 0L);
|
||||
}
|
||||
}
|
||||
|
||||
void wxTextCtrl::SetEditable(bool editable)
|
||||
@@ -1235,3 +1258,53 @@ bool wxTextCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void wxTextCtrl::OnCut(wxCommandEvent& event)
|
||||
{
|
||||
Cut();
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnCopy(wxCommandEvent& event)
|
||||
{
|
||||
Copy();
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnPaste(wxCommandEvent& event)
|
||||
{
|
||||
Paste();
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnUndo(wxCommandEvent& event)
|
||||
{
|
||||
Undo();
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnRedo(wxCommandEvent& event)
|
||||
{
|
||||
Redo();
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event)
|
||||
{
|
||||
event.Enable( CanCut() );
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent& event)
|
||||
{
|
||||
event.Enable( CanCopy() );
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnUpdatePaste(wxUpdateUIEvent& event)
|
||||
{
|
||||
event.Enable( CanPaste() );
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnUpdateUndo(wxUpdateUIEvent& event)
|
||||
{
|
||||
event.Enable( CanUndo() );
|
||||
}
|
||||
|
||||
void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event)
|
||||
{
|
||||
event.Enable( CanRedo() );
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user