]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/dialog.cpp
Hopefully fixed library names generated by wx-config for OS/2's PM port.
[wxWidgets.git] / src / gtk1 / dialog.cpp
index 445afaf5ae642e7d902faa027e7243db3b57c59d..115965adc4bd380586589c531dbcd68b5818f197 100644 (file)
@@ -7,10 +7,13 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "dialog.h"
 #endif
 
 #pragma implementation "dialog.h"
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
 #include "wx/dialog.h"
 #include "wx/frame.h"
 #include "wx/app.h"
 #include "wx/dialog.h"
 #include "wx/frame.h"
 #include "wx/app.h"
 #include "wx/gtk/win_gtk.h"
 
 //-----------------------------------------------------------------------------
 #include "wx/gtk/win_gtk.h"
 
 //-----------------------------------------------------------------------------
-// idle system
+// global data
 //-----------------------------------------------------------------------------
 
 //-----------------------------------------------------------------------------
 
-extern void wxapp_install_idle_handler();
-extern bool g_isIdle;
 extern int g_openDialogs;
 
 extern int g_openDialogs;
 
-
-
 //-----------------------------------------------------------------------------
 // wxDialog
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // wxDialog
 //-----------------------------------------------------------------------------
@@ -48,9 +47,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxDialog,wxTopLevelWindow)
 void wxDialog::Init()
 {
     m_returnCode = 0;
 void wxDialog::Init()
 {
     m_returnCode = 0;
-    m_sizeSet = FALSE;
-    m_modalShowing = FALSE;
-    m_themeEnabled = TRUE;
+    m_sizeSet = false;
+    m_modalShowing = false;
+    m_themeEnabled = true;
 }
 
 wxDialog::wxDialog( wxWindow *parent,
 }
 
 wxDialog::wxDialog( wxWindow *parent,
@@ -59,11 +58,8 @@ wxDialog::wxDialog( wxWindow *parent,
                     long style, const wxString &name )
 {
     Init();
                     long style, const wxString &name )
 {
     Init();
-    
-    // all dialogs should have tab traversal enabled
-    style |= wxTAB_TRAVERSAL;
 
 
-    Create( parent, id, title, pos, size, style, name );
+    (void)Create( parent, id, title, pos, size, style, name );
 }
 
 bool wxDialog::Create( wxWindow *parent,
 }
 
 bool wxDialog::Create( wxWindow *parent,
@@ -73,12 +69,16 @@ bool wxDialog::Create( wxWindow *parent,
 {
     SetExtraStyle(GetExtraStyle() | wxTOPLEVEL_EX_DIALOG);
 
 {
     SetExtraStyle(GetExtraStyle() | wxTOPLEVEL_EX_DIALOG);
 
+    // all dialogs should have tab traversal enabled
+    style |= wxTAB_TRAVERSAL;
+
     return wxTopLevelWindow::Create(parent, id, title, pos, size, style, name);
 }
 
 void wxDialog::OnApply( wxCommandEvent &WXUNUSED(event) )
 {
     return wxTopLevelWindow::Create(parent, id, title, pos, size, style, name);
 }
 
 void wxDialog::OnApply( wxCommandEvent &WXUNUSED(event) )
 {
-    if (Validate()) TransferDataFromWindow();
+    if (Validate())
+        TransferDataFromWindow();
 }
 
 void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) )
 }
 
 void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) )
@@ -90,7 +90,7 @@ void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) )
     else
     {
         SetReturnCode(wxID_CANCEL);
     else
     {
         SetReturnCode(wxID_CANCEL);
-        Show(FALSE);
+        Show(false);
     }
 }
 
     }
 }
 
@@ -105,7 +105,7 @@ void wxDialog::OnOK( wxCommandEvent &WXUNUSED(event) )
         else
         {
             SetReturnCode(wxID_OK);
         else
         {
             SetReturnCode(wxID_OK);
-            Show(FALSE);
+            Show(false);
         }
     }
 }
         }
     }
 }
@@ -175,12 +175,6 @@ bool wxDialog::IsModal() const
 
 void wxDialog::SetModal( bool WXUNUSED(flag) )
 {
 
 void wxDialog::SetModal( bool WXUNUSED(flag) )
 {
-/*
-  if (flag)
-    m_windowStyle |= wxDIALOG_MODAL;
-  else
-    if (m_windowStyle & wxDIALOG_MODAL) m_windowStyle -= wxDIALOG_MODAL;
-*/
     wxFAIL_MSG( wxT("wxDialog:SetModal obsolete now") );
 }
 
     wxFAIL_MSG( wxT("wxDialog:SetModal obsolete now") );
 }
 
@@ -197,7 +191,10 @@ int wxDialog::ShowModal()
     if ( !GetParent() && !(GetWindowStyleFlag() & wxDIALOG_NO_PARENT) )
     {
         wxWindow *parent = wxTheApp->GetTopWindow();
     if ( !GetParent() && !(GetWindowStyleFlag() & wxDIALOG_NO_PARENT) )
     {
         wxWindow *parent = wxTheApp->GetTopWindow();
-        if ( parent && parent != this )
+        if ( parent &&
+                parent != this &&
+                    parent->IsBeingDeleted() &&
+                        !(parent->GetExtraStyle() & wxWS_EX_TRANSIENT) )
         {
             m_parent = parent;
             gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(parent->m_widget) );
         {
             m_parent = parent;
             gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(parent->m_widget) );
@@ -206,9 +203,11 @@ int wxDialog::ShowModal()
 
     wxBusyCursorSuspender cs; // temporarily suppress the busy cursor
 
 
     wxBusyCursorSuspender cs; // temporarily suppress the busy cursor
 
-    Show( TRUE );
+    Show( true );
+
+    SetFocus();
 
 
-    m_modalShowing = TRUE;
+    m_modalShowing = true;
 
     g_openDialogs++;
 
 
     g_openDialogs++;
 
@@ -231,9 +230,9 @@ void wxDialog::EndModal( int retCode )
         return;
     }
 
         return;
     }
 
-    m_modalShowing = FALSE;
+    m_modalShowing = false;
 
     gtk_main_quit();
 
 
     gtk_main_quit();
 
-    Show( FALSE );
+    Show( false );
 }
 }