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:
Julian Smart
1999-04-07 21:33:22 +00:00
parent b59ff3c9c8
commit e702ff0f08
38 changed files with 617 additions and 36 deletions

View File

@@ -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() );
}