diff --git a/src/Avalonia.Native/IAvnAppMenu.cs b/src/Avalonia.Native/IAvnAppMenu.cs index eb75c6f86b..85bde6845a 100644 --- a/src/Avalonia.Native/IAvnAppMenu.cs +++ b/src/Avalonia.Native/IAvnAppMenu.cs @@ -9,14 +9,15 @@ namespace Avalonia.Native.Interop { public partial class IAvnAppMenu { - private AvaloniaNativeMenuExporter _exporter; - private NativeMenu _menu; + private AvaloniaNativeMenuExporter _exporter; private List _menuItems = new List(); private Dictionary _menuItemLookup = new Dictionary(); + internal NativeMenu ManagedMenu { get; private set; } + private void Remove(IAvnAppMenuItem item) { - _menuItemLookup.Remove(item.Managed); + _menuItemLookup.Remove(item.ManagedMenuItem); _menuItems.Remove(item); RemoveItem(item); @@ -24,12 +25,12 @@ namespace Avalonia.Native.Interop private void InsertAt(int index, IAvnAppMenuItem item) { - if (item.Managed == null) + if (item.ManagedMenuItem == null) { throw new InvalidOperationException("Cannot insert item that with Managed link null"); } - _menuItemLookup.Add(item.Managed, item); + _menuItemLookup.Add(item.ManagedMenuItem, item); _menuItems.Insert(index, item); InsertItem(index, item); // todo change to insertatimpl @@ -38,7 +39,7 @@ namespace Avalonia.Native.Interop private IAvnAppMenuItem CreateNew(IAvaloniaNativeFactory factory, NativeMenuItemBase item) { var nativeItem = item is NativeMenuItemSeperator ? factory.CreateMenuItemSeperator() : factory.CreateMenuItem(); - nativeItem.Managed = item; + nativeItem.ManagedMenuItem = item; return nativeItem; } @@ -47,20 +48,20 @@ namespace Avalonia.Native.Interop { var disposables = new CompositeDisposable(); - if (_menu == null) + if (ManagedMenu == null) { - _menu = menu; + ManagedMenu = menu; } - else if (_menu != menu) + else if (ManagedMenu != menu) { - _menu = menu; + ManagedMenu = menu; } _exporter = exporter; - ((INotifyCollectionChanged)_menu.Items).CollectionChanged += IAvnAppMenu_CollectionChanged; + ((INotifyCollectionChanged)ManagedMenu.Items).CollectionChanged += OnMenuItemsChanged; - disposables.Add(Disposable.Create(() => ((INotifyCollectionChanged)_menu.Items).CollectionChanged -= IAvnAppMenu_CollectionChanged)); + disposables.Add(Disposable.Create(() => ((INotifyCollectionChanged)ManagedMenu.Items).CollectionChanged -= OnMenuItemsChanged)); if (!string.IsNullOrWhiteSpace(title)) { @@ -74,7 +75,7 @@ namespace Avalonia.Native.Interop { IAvnAppMenuItem nativeItem = null; - if (i >= _menuItems.Count || menu.Items[i] != _menuItems[i].Managed) + if (i >= _menuItems.Count || menu.Items[i] != _menuItems[i].ManagedMenuItem) { if (_menuItemLookup.TryGetValue(menu.Items[i], out nativeItem)) { @@ -107,7 +108,7 @@ namespace Avalonia.Native.Interop return disposables; } - private void IAvnAppMenu_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) + private void OnMenuItemsChanged(object sender, NotifyCollectionChangedEventArgs e) { _exporter.QueueReset(); } diff --git a/src/Avalonia.Native/IAvnAppMenuItem.cs b/src/Avalonia.Native/IAvnAppMenuItem.cs index 55797449f1..7c53b38322 100644 --- a/src/Avalonia.Native/IAvnAppMenuItem.cs +++ b/src/Avalonia.Native/IAvnAppMenuItem.cs @@ -10,7 +10,7 @@ namespace Avalonia.Native.Interop private IAvnAppMenu _subMenu; private AvaloniaNativeMenuExporter _exporter; - public NativeMenuItemBase Managed { get; set; } + public NativeMenuItemBase ManagedMenuItem { get; set; } internal IDisposable Update(AvaloniaNativeMenuExporter exporter, IAvaloniaNativeFactory factory, NativeMenuItem item) { @@ -18,11 +18,11 @@ namespace Avalonia.Native.Interop _exporter = exporter; - Managed = item; + ManagedMenuItem = item; - Managed.PropertyChanged += Item_PropertyChanged; + ManagedMenuItem.PropertyChanged += OnMenuItemPropertyChanged; - disposables.Add(Disposable.Create(() => Managed.PropertyChanged -= Item_PropertyChanged)); + disposables.Add(Disposable.Create(() => ManagedMenuItem.PropertyChanged -= OnMenuItemPropertyChanged)); if(!string.IsNullOrWhiteSpace(item.Header)) { @@ -72,7 +72,7 @@ namespace Avalonia.Native.Interop return disposables; } - private void Item_PropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) + private void OnMenuItemPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) { _exporter.QueueReset(); }