// Purpose: native implementation of wxInfoBar for GTK+ 2.18 and later
// Author: Vadim Zeitlin
// Created: 2009-09-26
-// RCS-ID: $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $
// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// notice that the native GTK+ implementation is only available since
// (relatively recent) 2.18 so we inherit from the generic one to be able to
// fall back to it if GTK+ version is determined to be too old during run-time
-class WXDLLIMPEXP_ADV wxInfoBar : public wxInfoBarGeneric
+class WXDLLIMPEXP_CORE wxInfoBar : public wxInfoBarGeneric
{
public:
wxInfoBar() { Init(); }
virtual void ShowMessage(const wxString& msg,
int flags = wxICON_INFORMATION);
+ virtual void Dismiss();
+
virtual void AddButton(wxWindowID btnid,
const wxString& label = wxString());
+ virtual void RemoveButton(wxWindowID btnid);
+
// implementation only
// -------------------
void GTKResponse(int btnid);
protected:
- virtual bool GTKShouldConnectSizeRequest() const { return false; }
+ virtual void DoApplyWidgetStyle(GtkRcStyle *style);
private:
- void Init() { m_label = NULL; }
+ void Init() { m_impl = NULL; }
+
+ // add a button with the given id/label and return its widget
+ GtkWidget *GTKAddButton(wxWindowID btnid,
+ const wxString& label = wxString());
+
- GtkWidget *m_label;
+ // only used when the native implementation is really being used
+ class wxInfoBarGTKImpl *m_impl;
wxDECLARE_NO_COPY_CLASS(wxInfoBar);
};