wxWidgets/include/wx/gtk/infobar.h
Vadim Zeitlin 742df99230 Move wxInfoBar to core library from adv.
This is necessary in order to be able to use it in the print preview (an
upcoming change).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64213 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-05 12:20:08 +00:00

76 lines
2.2 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: wx/gtk/infobar.h
// Purpose: native implementation of wxInfoBar for GTK+ 2.18 and later
// Author: Vadim Zeitlin
// Created: 2009-09-26
// RCS-ID: $Id$
// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_GTK_INFOBAR_H_
#define _WX_GTK_INFOBAR_H_
#include "wx/generic/infobar.h"
// ----------------------------------------------------------------------------
// wxInfoBar for GTK+
// ----------------------------------------------------------------------------
// 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_CORE wxInfoBar : public wxInfoBarGeneric
{
public:
wxInfoBar() { Init(); }
wxInfoBar(wxWindow *parent, wxWindowID winid = wxID_ANY)
{
Init();
Create(parent, winid);
}
bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY);
virtual ~wxInfoBar();
// implement base class methods
// ----------------------------
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_impl = NULL; }
// add a button with the given id/label and return its widget
GtkWidget *GTKAddButton(wxWindowID btnid,
const wxString& label = wxString());
// only used when the native implementation is really being used
class wxInfoBarGTKImpl *m_impl;
wxDECLARE_NO_COPY_CLASS(wxInfoBar);
};
#endif // _WX_GTK_INFOBAR_H_