added support for icon flags to wxGenericNotificationMessage

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-12-02 19:43:04 +00:00
parent 5e6b39c9d6
commit e5dbea4951
2 changed files with 31 additions and 11 deletions

View File

@@ -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();
}

View File

@@ -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();