]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/notifmsg.cpp
make some reference handling a little more direct and less obscure
[wxWidgets.git] / src / gtk / notifmsg.cpp
index d3b6285925736532b01f1b2d0538b7f09b0d767a..10d0d7a678202f6243c9a1f94fa1e3dec7e78bdb 100644 (file)
 
 #if wxUSE_NOTIFICATION_MESSAGE && wxUSE_LIBNOTIFY
 
+#include "wx/notifmsg.h"
+
 #ifndef WX_PRECOMP
+    #include "wx/app.h"
 #endif // WX_PRECOMP
 
-#include "wx/notifmsg.h"
-
 #include <libnotify/notify.h>
 
 #include "wx/module.h"
@@ -82,6 +83,13 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxLibnotifyModule, wxModule);
 // wxNotificationMessage implementation
 // ============================================================================
 
+bool wxNotificationMessage::GTKSetIconName(const wxString& name)
+{
+    m_iconName = name;
+
+    return true;
+}
+
 bool wxNotificationMessage::Show(int timeout)
 {
     if ( !wxLibnotifyModule::Initialize() )
@@ -113,6 +121,15 @@ bool wxNotificationMessage::Show(int timeout)
             return false;
     }
 
+    // Explicitly specified icon name overrides the implicit one determined by
+    // the flags.
+    wxScopedCharBuffer buf;
+    if ( !m_iconName.empty() )
+    {
+        buf = m_iconName.utf8_str();
+        icon = buf;
+    }
+
     // Create the notification or update an existing one if we had already been
     // shown before.
     if ( !m_notification )
@@ -122,6 +139,13 @@ bool wxNotificationMessage::Show(int timeout)
                             GetTitle().utf8_str(),
                             GetMessage().utf8_str(),
                             icon
+#if !wxUSE_LIBNOTIFY_0_7
+                            // There used to be an "associated window"
+                            // parameter in this function but it has
+                            // disappeared by 0.7, so use it for previous
+                            // versions only.
+                            , 0
+#endif // libnotify < 0.7
                          );
         if ( !m_notification )
         {