]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dialog.cpp
fix for potention crash when conversion fails
[wxWidgets.git] / src / msw / dialog.cpp
index 1f57be36a8e09b5a33a804ac2e780799e5a4e760..ed5230d7d166d554d3062fbb761713bc4b21fccb 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "dialog.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -28,8 +24,9 @@
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#include "wx/dialog.h"
+
 #ifndef WX_PRECOMP
 #ifndef WX_PRECOMP
-    #include "wx/dialog.h"
     #include "wx/utils.h"
     #include "wx/frame.h"
     #include "wx/app.h"
     #include "wx/utils.h"
     #include "wx/frame.h"
     #include "wx/app.h"
     #include "wx/settings.h"
     #include "wx/intl.h"
     #include "wx/log.h"
     #include "wx/settings.h"
     #include "wx/intl.h"
     #include "wx/log.h"
+    #include "wx/toolbar.h"
 #endif
 
 #include "wx/msw/private.h"
 #endif
 
 #include "wx/msw/private.h"
-#include "wx/log.h"
 #include "wx/evtloop.h"
 #include "wx/ptr_scpd.h"
 
 #include "wx/evtloop.h"
 #include "wx/ptr_scpd.h"
 
     #include "wx/msw/wince/resources.h"
 #endif // __SMARTPHONE__ && __WXWINCE__
 
     #include "wx/msw/wince/resources.h"
 #endif // __SMARTPHONE__ && __WXWINCE__
 
-#if wxUSE_TOOLBAR && defined(__POCKETPC__)
-#include "wx/toolbar.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // wxWin macros
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxWin macros
 // ----------------------------------------------------------------------------
@@ -87,10 +80,14 @@ wxBEGIN_FLAGS( wxDialogStyle )
     wxFLAGS_MEMBER(wxWS_EX_VALIDATE_RECURSIVELY)
     wxFLAGS_MEMBER(wxSTAY_ON_TOP)
     wxFLAGS_MEMBER(wxCAPTION)
     wxFLAGS_MEMBER(wxWS_EX_VALIDATE_RECURSIVELY)
     wxFLAGS_MEMBER(wxSTAY_ON_TOP)
     wxFLAGS_MEMBER(wxCAPTION)
+#if WXWIN_COMPATIBILITY_2_6
     wxFLAGS_MEMBER(wxTHICK_FRAME)
     wxFLAGS_MEMBER(wxTHICK_FRAME)
+#endif // WXWIN_COMPATIBILITY_2_6
     wxFLAGS_MEMBER(wxSYSTEM_MENU)
     wxFLAGS_MEMBER(wxRESIZE_BORDER)
     wxFLAGS_MEMBER(wxSYSTEM_MENU)
     wxFLAGS_MEMBER(wxRESIZE_BORDER)
+#if WXWIN_COMPATIBILITY_2_6
     wxFLAGS_MEMBER(wxRESIZE_BOX)
     wxFLAGS_MEMBER(wxRESIZE_BOX)
+#endif // WXWIN_COMPATIBILITY_2_6
     wxFLAGS_MEMBER(wxCLOSE_BOX)
     wxFLAGS_MEMBER(wxMAXIMIZE_BOX)
     wxFLAGS_MEMBER(wxMINIMIZE_BOX)
     wxFLAGS_MEMBER(wxCLOSE_BOX)
     wxFLAGS_MEMBER(wxMAXIMIZE_BOX)
     wxFLAGS_MEMBER(wxMINIMIZE_BOX)
@@ -147,7 +144,7 @@ private:
     wxModalEventLoop m_evtLoop;
 };
 
     wxModalEventLoop m_evtLoop;
 };
 
-wxDEFINE_TIED_SCOPED_PTR_TYPE(wxDialogModalData);
+wxDEFINE_TIED_SCOPED_PTR_TYPE(wxDialogModalData)
 
 // ============================================================================
 // implementation
 
 // ============================================================================
 // implementation
@@ -200,6 +197,8 @@ bool wxDialog::Create(wxWindow *parent,
     return true;
 }
 
     return true;
 }
 
+#if WXWIN_COMPATIBILITY_2_6
+
 // deprecated ctor
 wxDialog::wxDialog(wxWindow *parent,
                    const wxString& title,
 // deprecated ctor
 wxDialog::wxDialog(wxWindow *parent,
                    const wxString& title,
@@ -221,6 +220,8 @@ void wxDialog::SetModal(bool WXUNUSED(flag))
     // nothing to do, obsolete method
 }
 
     // nothing to do, obsolete method
 }
 
+#endif // WXWIN_COMPATIBILITY_2_6
+
 wxDialog::~wxDialog()
 {
     m_isBeingDeleted = true;
 wxDialog::~wxDialog()
 {
     m_isBeingDeleted = true;
@@ -233,11 +234,15 @@ wxDialog::~wxDialog()
 // showing the dialogs
 // ----------------------------------------------------------------------------
 
 // showing the dialogs
 // ----------------------------------------------------------------------------
 
+#if WXWIN_COMPATIBILITY_2_6
+
 bool wxDialog::IsModalShowing() const
 {
     return IsModal();
 }
 
 bool wxDialog::IsModalShowing() const
 {
     return IsModal();
 }
 
+#endif // WXWIN_COMPATIBILITY_2_6
+
 wxWindow *wxDialog::FindSuitableParent() const
 {
     // first try to use the currently active window
 wxWindow *wxDialog::FindSuitableParent() const
 {
     // first try to use the currently active window
@@ -388,7 +393,7 @@ bool wxDialog::EmulateButtonClickIfPresent(int id)
 {
     wxButton *btn = wxDynamicCast(FindWindow(id), wxButton);
 
 {
     wxButton *btn = wxDynamicCast(FindWindow(id), wxButton);
 
-    if ( !btn || !btn->IsEnabled() )
+    if ( !btn || !btn->IsEnabled() || !btn->IsShown() )
         return false;
 
     btn->MSWCommand(BN_CLICKED, 0 /* unused */);
         return false;
 
     btn->MSWCommand(BN_CLICKED, 0 /* unused */);
@@ -608,4 +613,3 @@ WXLRESULT wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lPar
 
     return rc;
 }
 
     return rc;
 }
-