// Purpose: class allowing to show notification messages to the user
// Author: Vadim Zeitlin
// Created: 2007-11-19
-// RCS-ID: $Id$
// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ----------------------
// default ctor, use setters below to initialize it later
- wxNotificationMessageBase() { }
+ wxNotificationMessageBase()
+ {
+ m_parent = NULL;
+ m_flags = wxICON_INFORMATION;
+ }
// create a notification object with the given title and message (the
// latter may be empty in which case only the title will be shown)
wxNotificationMessageBase(const wxString& title,
- const wxString& message = wxString(),
- wxWindow *parent = NULL)
+ const wxString& message = wxEmptyString,
+ wxWindow *parent = NULL,
+ int flags = wxICON_INFORMATION)
: m_title(title),
m_message(message),
m_parent(parent)
{
+ SetFlags(flags);
}
// note that the setters must be called before Show()
// main application window by default
void SetParent(wxWindow *parent) { m_parent = parent; }
+ // this method can currently be used to choose a standard icon to use: the
+ // parameter may be one of wxICON_INFORMATION, wxICON_WARNING or
+ // wxICON_ERROR only (but not wxICON_QUESTION)
+ void SetFlags(int flags)
+ {
+ wxASSERT_MSG( flags == wxICON_INFORMATION ||
+ flags == wxICON_WARNING || flags == wxICON_ERROR,
+ "Invalid icon flags specified" );
+
+ m_flags = flags;
+ }
+
// showing and hiding
// ------------------
const wxString& GetTitle() const { return m_title; }
const wxString& GetMessage() const { return m_message; }
wxWindow *GetParent() const { return m_parent; }
+ int GetFlags() const { return m_flags; }
// return the concatenation of title and message separated by a new line,
// this is suitable for simple implementation which have no support for
wxWindow *m_parent;
- DECLARE_NO_COPY_CLASS(wxNotificationMessageBase)
-};
-
-#define wxUSE_GENERIC_NOTIFICATION_MESSAGE 1
+ int m_flags;
-#if defined(__WXGTK__) && wxUSE_LIBHILDON
- // we always use the native implementation in Hildon while the other ports
- // will fall back to the generic one even if they have a native version too
- #undef wxUSE_GENERIC_NOTIFICATION_MESSAGE
- #define wxUSE_GENERIC_NOTIFICATION_MESSAGE 0
+ wxDECLARE_NO_COPY_CLASS(wxNotificationMessageBase);
+};
- #include "wx/gtk/hildon/notifmsg.h"
/*
- TODO: provide support for
- - libnotify (Gnome)
- - Snarl (http://www.fullphat.net/, Win32)
- - Growl (http://growl.info/, OS X)
+ TODO: Implement under OS X using notification centre (10.8+) or
+ Growl (http://growl.info/) for the previous versions.
*/
+#if defined(__WXGTK__) && wxUSE_LIBNOTIFY
+ #include "wx/gtk/notifmsg.h"
+#elif defined(__WXGTK__) && (wxUSE_LIBHILDON || wxUSE_LIBHILDON2)
+ #include "wx/gtk/hildon/notifmsg.h"
+#elif defined(__WXMSW__) && wxUSE_TASKBARICON && wxUSE_TASKBARICON_BALLOONS
+ #include "wx/msw/notifmsg.h"
#else
#include "wx/generic/notifmsg.h"
+
+ class wxNotificationMessage : public wxGenericNotificationMessage
+ {
+ public:
+ wxNotificationMessage() { }
+ wxNotificationMessage(const wxString& title,
+ const wxString& message = wxEmptyString,
+ wxWindow *parent = NULL,
+ int flags = wxICON_INFORMATION)
+ : wxGenericNotificationMessage(title, message, parent, flags)
+ {
+ }
+ };
#endif
#endif // wxUSE_NOTIFICATION_MESSAGE