]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/textctrl.cpp
Fixed typos in window.cpp and utils.cpp
[wxWidgets.git] / src / msw / textctrl.cpp
index 2642a90de4ce474234585cb93fc6cda1cf3616a9..7388f2817edec6e29f8058aa170ee5a37c247f7a 100644 (file)
 #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 +376,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)
@@ -1047,7 +1069,7 @@ WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
 
 void wxTextCtrl::OnChar(wxKeyEvent& event)
 {
-    switch( event.KeyCode() )
+    switch ( event.KeyCode() )
     {
         case WXK_RETURN:
             if ( !(m_windowStyle & wxTE_MULTILINE) )
@@ -1088,8 +1110,9 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
     // don't just call event.Skip() because this will cause TABs and ENTERs
     // be passed upwards and we don't always want this - instead process it
     // right here
-    Default();
-//    event.Skip();
+
+    // FIXME
+    event.Skip();
 }
 
 long wxTextCtrl::MSWGetDlgCode()
@@ -1112,27 +1135,6 @@ long wxTextCtrl::MSWGetDlgCode()
     return lRc;
 }
 
-void wxTextCtrl::OnEraseBackground(wxEraseEvent& event)
-{
-    if ( m_windowStyle & wxTE_MULTILINE )
-    {
-        // No flicker - only problem is we probably can't change the background
-        Default();
-/*
-        RECT rect;
-        ::GetClientRect((HWND) GetHWND(), &rect);
-
-        HBRUSH hBrush = ::CreateSolidBrush(PALETTERGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue()));
-        int mode = ::SetMapMode((HDC) event.GetDC()->GetHDC(), MM_TEXT);
-
-        ::FillRect ((HDC) event.GetDC()->GetHDC(), &rect, hBrush);
-        ::DeleteObject(hBrush);
-        ::SetMapMode((HDC) event.GetDC()->GetHDC(), mode);
-*/
-    }
-//        wxWindow::OnEraseBackground(event);
-}
-
 bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
 {
 /*
@@ -1211,7 +1213,7 @@ bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
 // For Rich Edit controls. Do we need it?
 #if 0
 #if wxUSE_RICHEDIT
-bool wxTextCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
+bool wxTextCtrl::MSWOnNotify(WXWPARAM wParam, WXLPARAM lParam)
 {
   wxCommandEvent event(0, m_windowId);
   int eventType = 0;
@@ -1220,7 +1222,7 @@ bool wxTextCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
   {
     // Insert case code here
     default :
-      return wxControl::MSWNotify(wParam, lParam);
+      return wxControl::MSWOnNotify(wParam, lParam);
       break;
   }
 
@@ -1235,3 +1237,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() );
+}
+