File: infobar.h

package info (click to toggle)
wxwidgets3.0 3.0.5.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 120,464 kB
  • sloc: cpp: 896,633; makefile: 52,303; ansic: 21,971; sh: 5,713; python: 2,940; xml: 1,534; perl: 264; javascript: 33
file content (73 lines) | stat: -rw-r--r-- 2,165 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
///////////////////////////////////////////////////////////////////////////////
// Name:        wx/gtk/infobar.h
// Purpose:     native implementation of wxInfoBar for GTK+ 2.18 and later
// Author:      Vadim Zeitlin
// Created:     2009-09-26
// 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 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_