From bc62352b76a955de9a093aa39f5ab510b8e8fe9e Mon Sep 17 00:00:00 2001 From: Michael Babienco Date: Thu, 12 Mar 2020 16:32:28 -0400 Subject: [PATCH] Add SetIsChecked to AvnAppMenuItem --- native/Avalonia.Native/inc/avalonia-native.h | 1 + native/Avalonia.Native/src/OSX/menu.h | 2 ++ native/Avalonia.Native/src/OSX/menu.mm | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/native/Avalonia.Native/inc/avalonia-native.h b/native/Avalonia.Native/inc/avalonia-native.h index ade2afe014..584a457539 100644 --- a/native/Avalonia.Native/inc/avalonia-native.h +++ b/native/Avalonia.Native/inc/avalonia-native.h @@ -407,6 +407,7 @@ AVNCOM(IAvnAppMenuItem, 19) : IUnknown virtual HRESULT SetTitle (void* utf8String) = 0; virtual HRESULT SetGesture (void* utf8String, AvnInputModifiers modifiers) = 0; virtual HRESULT SetAction (IAvnPredicateCallback* predicate, IAvnActionCallback* callback) = 0; + virtual HRESULT SetIsChecked (bool isChecked) = 0; }; extern "C" IAvaloniaNativeFactory* CreateAvaloniaNative(); diff --git a/native/Avalonia.Native/src/OSX/menu.h b/native/Avalonia.Native/src/OSX/menu.h index f66abb930b..cbfd94d8b6 100644 --- a/native/Avalonia.Native/src/OSX/menu.h +++ b/native/Avalonia.Native/src/OSX/menu.h @@ -46,6 +46,8 @@ public: virtual HRESULT SetAction (IAvnPredicateCallback* predicate, IAvnActionCallback* callback) override; + virtual HRESULT SetIsChecked (bool isChecked) override; + bool EvaluateItemEnabled(); void RaiseOnClicked(); diff --git a/native/Avalonia.Native/src/OSX/menu.mm b/native/Avalonia.Native/src/OSX/menu.mm index d5c783f7d4..2abee42e11 100644 --- a/native/Avalonia.Native/src/OSX/menu.mm +++ b/native/Avalonia.Native/src/OSX/menu.mm @@ -110,6 +110,12 @@ HRESULT AvnAppMenuItem::SetAction (IAvnPredicateCallback* predicate, IAvnActionC return S_OK; } +HRESULT AvnAppMenuItem::SetIsChecked (bool isChecked) +{ + [_native setState:(isChecked ? NSOnState : NSOffState)]; + return S_OK; +} + bool AvnAppMenuItem::EvaluateItemEnabled() { if(_predicate != nullptr)