]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/aboutdlgg.h
synchronize GTK2 minimum version in docs
[wxWidgets.git] / include / wx / generic / aboutdlgg.h
index 9eaf9a4bfa0baabe049c4adb36e80e3f7739f162..9ad4a77e414d47012ab0b66fda1b95c015462835 100644 (file)
 
 #include "wx/dialog.h"
 
-class WXDLLIMPEXP_ADV  wxAboutDialogInfo;
-class WXDLLIMPEXP_CORE wxSizer;
-class WXDLLIMPEXP_CORE wxSizerFlags;
+class WXDLLIMPEXP_FWD_ADV wxAboutDialogInfo;
+class WXDLLIMPEXP_FWD_CORE wxSizer;
+class WXDLLIMPEXP_FWD_CORE wxSizerFlags;
+
+// Under GTK and OS X "About" dialogs are not supposed to be modal, unlike MSW
+// and, presumably, all the other platforms.
+#ifndef wxUSE_MODAL_ABOUT_DIALOG
+    #if defined(__WXGTK__) || defined(__WXMAC__)
+        #define wxUSE_MODAL_ABOUT_DIALOG 0
+    #else
+        #define wxUSE_MODAL_ABOUT_DIALOG 1
+    #endif
+#endif // wxUSE_MODAL_ABOUT_DIALOG not defined
 
 // ----------------------------------------------------------------------------
 // wxGenericAboutDialog: generic "About" dialog implementation
@@ -35,15 +45,15 @@ public:
     wxGenericAboutDialog() { Init(); }
 
     // ctor which fully initializes the object
-    wxGenericAboutDialog(const wxAboutDialogInfo& info)
+    wxGenericAboutDialog(const wxAboutDialogInfo& info, wxWindow* parent = NULL)
     {
         Init();
 
-        (void)Create(info);
+        (void)Create(info, parent);
     }
 
     // this method must be called if and only if the default ctor was used
-    bool Create(const wxAboutDialogInfo& info);
+    bool Create(const wxAboutDialogInfo& info, wxWindow* parent = NULL);
 
 protected:
     // this virtual method may be overridden to add some more controls to the
@@ -64,20 +74,28 @@ protected:
     // add the text, if it's not empty, to the text sizer contents
     void AddText(const wxString& text);
 
+#if wxUSE_COLLPANE
     // add a wxCollapsiblePane containing the given text
     void AddCollapsiblePane(const wxString& title, const wxString& text);
+#endif // wxUSE_COLLPANE
 
 private:
     // common part of all ctors
     void Init() { m_sizerText = NULL; }
 
+#if !wxUSE_MODAL_ABOUT_DIALOG
+    // An explicit handler for deleting the dialog when it's closed is needed
+    // when we show it non-modally.
+    void OnCloseWindow(wxCloseEvent& event);
+    void OnOK(wxCommandEvent& event);
+#endif // !wxUSE_MODAL_ABOUT_DIALOG
 
     wxSizer *m_sizerText;
 };
 
 // unlike wxAboutBox which can show either the native or generic about dialog,
 // this function always shows the generic one
-WXDLLIMPEXP_ADV void wxGenericAboutBox(const wxAboutDialogInfo& info);
+WXDLLIMPEXP_ADV void wxGenericAboutBox(const wxAboutDialogInfo& info, wxWindow* parent = NULL);
 
 #endif // wxUSE_ABOUTDLG