]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dlgcmn.cpp
Applied #15375 to stop event-sending in generic wxSpinCtrl ctor (eco)
[wxWidgets.git] / src / common / dlgcmn.cpp
index 6ac7f13029ef7beace636147a98d58a1967379f8..c1cc7eb7b4060c173f39bfae147288b522fff4f7 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     28.06.99
-// RCS-ID:      $Id$
 // Copyright:   (c) Vadim Zeitlin
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 #include "wx/bookctrl.h"
 #include "wx/scrolwin.h"
 #include "wx/textwrapper.h"
+#include "wx/modalhook.h"
 
 #if wxUSE_DISPLAY
 #include "wx/display.h"
 #endif
 
+extern WXDLLEXPORT_DATA(const char) wxDialogNameStr[] = "dialog";
 
 // ----------------------------------------------------------------------------
 // XTI
@@ -223,13 +224,7 @@ wxSizer *wxDialogBase::CreateTextSizer(const wxString& message,
         widthMax = wxSystemSettings::GetMetric( wxSYS_SCREEN_X ) - 25;
     }
 
-    // '&' is used as accel mnemonic prefix in the wxWidgets controls but in
-    // the static messages created by CreateTextSizer() (used by wxMessageBox,
-    // for example), we don't want this special meaning, so we need to quote it
-    wxString text(message);
-    text.Replace(wxT("&"), wxT("&&"));
-
-    return wrapper.CreateSizer(text, widthMax);
+    return wrapper.CreateSizer(message, widthMax);
 }
 
 #endif // wxUSE_STATTEXT
@@ -427,7 +422,7 @@ bool wxDialogBase::EmulateButtonClickIfPresent(int id)
     if ( !btn || !btn->IsEnabled() || !btn->IsShown() )
         return false;
 
-    wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, id);
+    wxCommandEvent event(wxEVT_BUTTON, id);
     event.SetEventObject(btn);
     btn->GetEventHandler()->ProcessEvent(event);
 
@@ -466,14 +461,16 @@ bool wxDialogBase::SendCloseButtonClickEvent()
 
 bool wxDialogBase::IsEscapeKey(const wxKeyEvent& event)
 {
-    // for most platforms, Esc key is used to close the dialogs
-    return event.GetKeyCode() == WXK_ESCAPE &&
-                event.GetModifiers() == wxMOD_NONE;
+    // For most platforms, Esc key is used to close the dialogs.
+    //
+    // Notice that we intentionally don't check for modifiers here, Shift-Esc,
+    // Alt-Esc and so on still close the dialog, typically.
+    return event.GetKeyCode() == WXK_ESCAPE;
 }
 
 void wxDialogBase::OnCharHook(wxKeyEvent& event)
 {
-    if ( event.GetKeyCode() == WXK_ESCAPE )
+    if ( IsEscapeKey(event) )
     {
         if ( SendCloseButtonClickEvent() )
         {