Browse Source

checkmark == none ignores ischecked.

pull/3838/head
Dan Walmsley 6 years ago
parent
commit
b3d17b2381
  1. 1
      native/Avalonia.Native/src/OSX/menu.h
  2. 12
      native/Avalonia.Native/src/OSX/menu.mm

1
native/Avalonia.Native/src/OSX/menu.h

@ -32,6 +32,7 @@ private:
IAvnActionCallback* _callback;
IAvnPredicateCallback* _predicate;
bool _isSeperator;
bool _isCheckable;
public:
FORWARD_IUNKNOWN()

12
native/Avalonia.Native/src/OSX/menu.mm

@ -70,6 +70,7 @@
AvnAppMenuItem::AvnAppMenuItem(bool isSeperator)
{
_isCheckable = false;
_isSeperator = isSeperator;
if(isSeperator)
@ -157,7 +158,7 @@ HRESULT AvnAppMenuItem::SetIsChecked (bool isChecked)
{
@autoreleasepool
{
[_native setState:(isChecked ? NSOnState : NSOffState)];
[_native setState:(isChecked && _isCheckable ? NSOnState : NSOffState)];
return S_OK;
}
}
@ -169,12 +170,21 @@ HRESULT AvnAppMenuItem::SetToggleType(AvnMenuItemToggleType toggleType)
switch(toggleType)
{
case AvnMenuItemToggleType::None:
[_native setOnStateImage: [NSImage imageNamed:@"NSMenuCheckmark"]];
_isCheckable = false;
break;
case AvnMenuItemToggleType::CheckMark:
[_native setOnStateImage: [NSImage imageNamed:@"NSMenuCheckmark"]];
_isCheckable = true;
break;
case AvnMenuItemToggleType::Radio:
[_native setOnStateImage: [NSImage imageNamed:@"NSMenuItemBullet"]];
_isCheckable = true;
break;
}

Loading…
Cancel
Save