From: Vadim Zeitlin Date: Sun, 2 Dec 2007 19:43:04 +0000 (+0000) Subject: added support for icon flags to wxGenericNotificationMessage X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/e5dbea4951e809331c76118c69026f6c44faf9c4?ds=inline added support for icon flags to wxGenericNotificationMessage git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/generic/notifmsg.h b/include/wx/generic/notifmsg.h index bfa2d7214e..15e1513db4 100644 --- a/include/wx/generic/notifmsg.h +++ b/include/wx/generic/notifmsg.h @@ -23,8 +23,9 @@ public: wxGenericNotificationMessage() { Init(); } wxGenericNotificationMessage(const wxString& title, const wxString& message = wxString(), - wxWindow *parent = NULL) - : wxNotificationMessageBase(title, message, parent) + wxWindow *parent = NULL, + int flags = wxICON_INFORMATION) + : wxNotificationMessageBase(title, message, parent, flags) { Init(); } diff --git a/src/generic/notifmsgg.cpp b/src/generic/notifmsgg.cpp index 4bc3ecf1ae..ef7d74bdff 100644 --- a/src/generic/notifmsgg.cpp +++ b/src/generic/notifmsgg.cpp @@ -34,6 +34,8 @@ #include "wx/timer.h" #endif //WX_PRECOMP +#include "wx/artprov.h" + // even if the platform has the native implementation, we still normally want // to use the generic one (unless it's totally unsuitable for the target UI as // is the case of Hildon) because it may provide more features, so include @@ -52,11 +54,13 @@ class wxNotificationMessageDialog : public wxDialog public: wxNotificationMessageDialog(wxWindow *parent, const wxString& text, - int timeout); + int timeout, + int flags); void Set(wxWindow *parent, const wxString& text, - int timeout); + int timeout, + int flags); bool IsAutomatic() const { return m_timer.IsRunning(); } void SetDeleteOnHide() { m_deleteOnHide = true; } @@ -90,7 +94,8 @@ END_EVENT_TABLE() wxNotificationMessageDialog::wxNotificationMessageDialog(wxWindow *parent, const wxString& text, - int timeout) + int timeout, + int flags) : wxDialog(parent, wxID_ANY, _("Notice"), wxDefaultPosition, wxDefaultSize, 0 /* no caption, no border styles */), @@ -98,16 +103,29 @@ wxNotificationMessageDialog::wxNotificationMessageDialog(wxWindow *parent, { m_deleteOnHide = false; - Set(parent, text, timeout); + Set(parent, text, timeout, flags); } void wxNotificationMessageDialog::Set(wxWindow * WXUNUSED(parent), const wxString& text, - int timeout) + int timeout, + int flags) { - wxSizer *sizer = CreateTextSizer(text); - SetSizerAndFit(sizer); + wxSizer * const sizerTop = new wxBoxSizer(wxHORIZONTAL); + if ( flags & wxICON_MASK ) + { + sizerTop->Add(new wxStaticBitmap + ( + this, + wxID_ANY, + wxArtProvider::GetMessageBoxIcon(flags) + ), + wxSizerFlags().Centre().Border()); + } + + sizerTop->Add(CreateTextSizer(text), wxSizerFlags(1).Border()); + SetSizerAndFit(sizerTop); if ( timeout != wxGenericNotificationMessage::Timeout_Never ) { @@ -194,12 +212,13 @@ bool wxGenericNotificationMessage::Show(int timeout) ( GetParent(), GetFullMessage(), - timeout + timeout, + GetFlags() ); } else // update the existing dialog { - m_dialog->Set(GetParent(), GetFullMessage(), timeout); + m_dialog->Set(GetParent(), GetFullMessage(), timeout, GetFlags()); } m_dialog->Show();