]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/aboutdlgg.h
wxRTC: fixed guidelines overwriting adjacent cell borders; corrected capitalisation...
[wxWidgets.git] / include / wx / generic / aboutdlgg.h
index 681cc987df62a1862bc191fd68da6b9f8901ae18..36e0cad43812f8408437df3eee544d55fb5715ba 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:     generic wxAboutBox() implementation
 // Author:      Vadim Zeitlin
 // Created:     2006-10-07
-// RCS-ID:      $Id$
 // Copyright:   (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "wx/dialog.h"
 
-class WXDLLIMPEXP_CORE 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
 // ----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_CORE wxGenericAboutDialog : public wxDialog
+class WXDLLIMPEXP_ADV wxGenericAboutDialog : public wxDialog
 {
 public:
     // constructors and Create() method
@@ -35,15 +44,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,17 +73,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_CORE void wxGenericAboutBox(const wxAboutDialogInfo& info);
+WXDLLIMPEXP_ADV void wxGenericAboutBox(const wxAboutDialogInfo& info, wxWindow* parent = NULL);
 
 #endif // wxUSE_ABOUTDLG