Add a wxGTK-specific function to set wxNotificationMessage icon name.
It's trivial to use a stock icon with the given name in wxGTK with libnotify, so provide a way to do it. However this is not as simple as that in other implementations (notably Windows), so make it private to this port for now. In the future we should try to support arbitrary wxIcons as well as extend wxIconLocation to support FreeDesktop stock icon names. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
e0ea79b805
commit
c589dc030d
@ -36,10 +36,15 @@ public:
|
||||
virtual bool Show(int timeout = Timeout_Auto);
|
||||
virtual bool Close();
|
||||
|
||||
// Set the name of the icon to use, overriding the default icon determined
|
||||
// by the flags. Call with empty string to reset custom icon.
|
||||
bool GTKSetIconName(const wxString& name);
|
||||
|
||||
private:
|
||||
void Init() { m_notification = NULL; }
|
||||
|
||||
NotifyNotification* m_notification;
|
||||
wxString m_iconName;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxNotificationMessage);
|
||||
};
|
||||
|
@ -82,6 +82,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 +120,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 )
|
||||
|
Loading…
Reference in New Issue
Block a user