diff --git a/native/Avalonia.Native/src/OSX/trayicon.h b/native/Avalonia.Native/src/OSX/trayicon.h index f94f9a871b..da30477005 100644 --- a/native/Avalonia.Native/src/OSX/trayicon.h +++ b/native/Avalonia.Native/src/OSX/trayicon.h @@ -28,6 +28,8 @@ public: virtual HRESULT SetMenu (IAvnMenu* menu) override; virtual HRESULT SetIsVisible (bool isVisible) override; + + virtual HRESULT SetToolTipText (char* text) override; }; #endif /* trayicon_h */ diff --git a/native/Avalonia.Native/src/OSX/trayicon.mm b/native/Avalonia.Native/src/OSX/trayicon.mm index 151990cfb1..5b75b9cc19 100644 --- a/native/Avalonia.Native/src/OSX/trayicon.mm +++ b/native/Avalonia.Native/src/OSX/trayicon.mm @@ -83,3 +83,18 @@ HRESULT AvnTrayIcon::SetIsVisible(bool isVisible) return S_OK; } + +HRESULT AvnTrayIcon::SetToolTipText(char* text) +{ + START_COM_CALL; + + @autoreleasepool + { + if (text != nullptr) + { + [[_native button] setToolTip:[NSString stringWithUTF8String:(const char*)text]]; + } + } + + return S_OK; +} diff --git a/src/Avalonia.Native/TrayIconImpl.cs b/src/Avalonia.Native/TrayIconImpl.cs index abcc61d950..bac21d5811 100644 --- a/src/Avalonia.Native/TrayIconImpl.cs +++ b/src/Avalonia.Native/TrayIconImpl.cs @@ -50,7 +50,7 @@ namespace Avalonia.Native public void SetToolTipText(string? text) { - // NOP + _native.SetToolTipText(text); } public void SetIsVisible(bool visible) diff --git a/src/Avalonia.Native/avn.idl b/src/Avalonia.Native/avn.idl index 7eac1d33a8..96aeb93e66 100644 --- a/src/Avalonia.Native/avn.idl +++ b/src/Avalonia.Native/avn.idl @@ -810,6 +810,7 @@ interface IAvnTrayIcon : IUnknown HRESULT SetIcon(void* data, size_t length); HRESULT SetMenu(IAvnMenu* menu); HRESULT SetIsVisible(bool isVisible); + HRESULT SetToolTipText(char* text); } [uuid(a7724dc1-cf6b-4fa8-9d23-228bf2593edc)]