]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/infobar.h
Dramatically optimise inserting many items in wxGenericListCtrl.
[wxWidgets.git] / include / wx / infobar.h
index eb8b7e170316180f831cd3db774239d23cb15dd4..4ae10cb5685cec4b51db0b540eb7839837217cb4 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     declaration of wxInfoBarBase defining common API of wxInfoBar
 // Author:      Vadim Zeitlin
 // Created:     2009-07-28
-// RCS-ID:      $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $
+// RCS-ID:      $Id$
 // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #if wxUSE_INFOBAR
 
-#include "wx/window.h"
+#include "wx/control.h"
 
 // ----------------------------------------------------------------------------
 // wxInfoBar shows non-critical but important information to the user
 // ----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_ADV wxInfoBarBase : public wxWindow
+class WXDLLIMPEXP_CORE wxInfoBarBase : public wxControl
 {
 public:
     // real ctors are provided by the derived classes, just notice that unlike
@@ -33,20 +33,35 @@ public:
 
 
     // show the info bar with the given message and optionally an icon
-    virtual void ShowMessage(const wxString& msg, int flags = wxICON_NONE) = 0;
+    virtual void ShowMessage(const wxString& msg,
+                             int flags = wxICON_INFORMATION) = 0;
 
-    // add an extra button to the bar, near the message
+    // hide the info bar
+    virtual void Dismiss() = 0;
+
+    // add an extra button to the bar, near the message (replacing the default
+    // close button which is only shown if no extra buttons are used)
     virtual void AddButton(wxWindowID btnid,
                            const wxString& label = wxString()) = 0;
 
+    // remove a button previously added by AddButton()
+    virtual void RemoveButton(wxWindowID btnid) = 0;
+
 private:
     wxDECLARE_NO_COPY_CLASS(wxInfoBarBase);
 };
 
-// include platform-dependent implementation
-//
-// TODO-GTK: implement a native version using GtkInfoBar (GTK+ 2.18+)
-#include "wx/generic/infobar.h"
+// currently only GTK+ has a native implementation
+#if defined(__WXGTK218__) && !defined(__WXUNIVERSAL__)
+    #include "wx/gtk/infobar.h"
+    #define wxHAS_NATIVE_INFOBAR
+#endif // wxGTK2
+
+// if the generic version is the only one we have, use it
+#ifndef wxHAS_NATIVE_INFOBAR
+    #include "wx/generic/infobar.h"
+    #define wxInfoBar wxInfoBarGeneric
+#endif
 
 #endif // wxUSE_INFOBAR