]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/dialog.mm
[ 1509599 ] 'Split pickers page in widgets sample' with more icons and rebaking.
[wxWidgets.git] / src / cocoa / dialog.mm
index 58815ed7d43fd8dc28a2ea9985aa2cb8363d474c..352e7eb9230f4a207cfd22aaa6fce5c61124b184 100644 (file)
@@ -4,16 +4,18 @@
 // Author:      David Elliott
 // Modified by:
 // Created:     2002/12/15
-// RCS-ID:      $Id: 
+// RCS-ID:      $Id:
 // Copyright:   2002 David Elliott
-// Licence:    wxWindows license
+// Licence:     wxWidgets licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/wxprec.h"
+
+#include "wx/dialog.h"
+
 #ifndef WX_PRECOMP
     #include "wx/log.h"
     #include "wx/app.h"
-    #include "wx/dialog.h"
     #include "wx/settings.h"
 #endif //WX_PRECOMP
 
@@ -32,10 +34,10 @@ static wxWindowList wxModalDialogs;
 IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxTopLevelWindow)
 
 BEGIN_EVENT_TABLE(wxDialog, wxDialogBase)
-  EVT_BUTTON(wxID_OK, wxDialog::OnOK)
-  EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
-  EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel)
-  EVT_CLOSE(wxDialog::OnCloseWindow)
+    EVT_BUTTON(wxID_OK, wxDialog::OnOK)
+    EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
+    EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel)
+    EVT_CLOSE(wxDialog::OnCloseWindow)
 END_EVENT_TABLE()
 
 WX_IMPLEMENT_COCOA_OWNER(wxDialog,NSPanel,NSWindow,NSWindow)
@@ -43,7 +45,7 @@ WX_IMPLEMENT_COCOA_OWNER(wxDialog,NSPanel,NSWindow,NSWindow)
 void wxDialog::Init()
 {
     m_isModal = false;
-    SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));
+    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
 }
 
 bool wxDialog::Create(wxWindow *parent, wxWindowID winid,
@@ -170,11 +172,19 @@ int wxDialog::ShowModal()
 
 void wxDialog::EndModal(int retCode)
 {
-    wxASSERT(IsModal(), wxT("EndModal() should only be used within ShowModal()"));
+    wxASSERT_MSG(IsModal(), wxT("EndModal() should only be used within ShowModal()"));
     SetReturnCode(retCode);
     Show(false);
 }
 
+void wxDialog::EndDialog(int retCode)
+{
+    if(IsModal())
+        EndModal(retCode);
+    else
+        Show(false);
+}
+
 void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
     // We'll send a Cancel message by default,
@@ -194,15 +204,15 @@ void wxDialog::OnCloseWindow(wxCloseEvent& event)
     event.Veto();
 
     static wxList closing;
-    
+
     if ( closing.Member(this) )
     {
         wxLogDebug(wxT("WARNING: Attempting to recursively call Close for dialog"));
         return;
     }
-    
+
     closing.Append(this);
-    
+
     wxLogTrace(wxTRACE_COCOA,wxT("Sending Cancel Event"));
     wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
     cancelEvent.SetEventObject( this );
@@ -216,20 +226,19 @@ void wxDialog::OnOK(wxCommandEvent& event)
 {
     if ( Validate() && TransferDataFromWindow() )
     {
-        EndModal(wxID_OK);
+        EndDialog(wxID_OK);
     }
 }
 
 void wxDialog::OnApply(wxCommandEvent& event)
 {
-       if (Validate())
-               TransferDataFromWindow();
-       // TODO probably need to disable the Apply button until things change again
+    if (Validate())
+        TransferDataFromWindow();
+    // TODO probably need to disable the Apply button until things change again
 }
 
 void wxDialog::OnCancel(wxCommandEvent& event)
 {
     wxLogTrace(wxTRACE_COCOA,wxT("Cancelled!"));
-    EndModal(wxID_CANCEL);
+    EndDialog(wxID_CANCEL);
 }
-