#include "wx/infobar.h"
#include "wx/artprov.h"
+#include "wx/renderer.h"
#include "wx/scopeguard.h"
#include "wx/sizer.h"
EVT_BUTTON(wxID_ANY, wxInfoBarGeneric::OnButton)
END_EVENT_TABLE()
+// ----------------------------------------------------------------------------
+// local helpers
+// ----------------------------------------------------------------------------
+
+namespace
+{
+
+#ifdef wxHAS_DRAW_TITLE_BAR_BITMAP
+
+wxBitmap
+GetCloseButtonBitmap(wxWindow *win,
+ const wxSize& size,
+ const wxColour& colBg,
+ int flags = 0)
+{
+ wxBitmap bmp(size);
+ wxMemoryDC dc(bmp);
+ dc.SetBackground(colBg);
+ dc.Clear();
+ wxRendererNative::Get().
+ DrawTitleBarBitmap(win, dc, size, wxTITLEBAR_BUTTON_CLOSE, flags);
+ return bmp;
+}
+
+#endif // wxHAS_DRAW_TITLE_BAR_BITMAP
+
+} // anonymous namespace
+
// ============================================================================
// implementation
// ============================================================================
return false;
// use special, easy to notice, colours
- SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK));
+ const wxColour colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK);
+ SetBackgroundColour(colBg);
SetOwnForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT));
// create the controls: icon, text and the button to dismiss the
m_text = new wxStaticText(this, wxID_ANY, "");
+#ifdef wxHAS_DRAW_TITLE_BAR_BITMAP
+ const wxSize sizeBmp = wxArtProvider::GetSizeHint(wxART_FRAME_ICON);
+ wxBitmap bmp = GetCloseButtonBitmap(this, sizeBmp, colBg);
+#else // !wxHAS_DRAW_TITLE_BAR_BITMAP
+ wxBitmap bmp = wxArtProvider::GetBitmap(wxART_CLOSE, wxART_MENU);
+#endif // wxHAS_DRAW_TITLE_BAR_BITMAP
m_button = new wxBitmapButton
(
this,
wxID_ANY,
- wxArtProvider::GetBitmap(wxART_CLOSE, wxART_MENU),
+ bmp,
wxDefaultPosition,
wxDefaultSize,
wxBORDER_NONE
);
- m_button->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK));
+
+#ifdef wxHAS_DRAW_TITLE_BAR_BITMAP
+ m_button->SetBitmapPressed(
+ GetCloseButtonBitmap(this, sizeBmp, colBg, wxCONTROL_PRESSED));
+
+ m_button->SetBitmapCurrent(
+ GetCloseButtonBitmap(this, sizeBmp, colBg, wxCONTROL_CURRENT));
+#endif // wxHAS_DRAW_TITLE_BAR_BITMAP
+
+ m_button->SetBackgroundColour(colBg);
m_button->SetToolTip(_("Hide this notification message."));
// center the text inside the sizer with an icon to the left of it and a