/// <summary> /// Adds ContextPopupItem to items dictionary. /// </summary> /// <param name="item">Item to add to items dictionary.</param> void AddItem(ContextPopupItem item) { if (_items.ContainsKey(item)) { return; } EContextPopupItem nativeItem; if (string.IsNullOrEmpty(item.Icon)) { nativeItem = _popup.Append(item.Label); } else { nativeItem = AppendOrModifyItemWithIcon(item); } _items.Add(item, nativeItem); nativeItem.Selected += (s, e) => { SelectedItem = item; // This will invoke SelectedIndexChanged if the index has changed ItemSelected?.Invoke(this, EventArgs.Empty); }; }
/// <summary> /// Creates new item with icon. /// </summary> /// <param name="item">New item to set.</param> /// <returns>Item with updated values.</returns> EContextPopupItem AppendOrModifyItemWithIcon(ContextPopupItem item) { EContextPopupItem nativeItem = null; EIcon icon = new EIcon(_popup); icon.StandardIconName = item.Icon; if (!string.IsNullOrEmpty(icon.StandardIconName)) { if (!_items.ContainsKey(item)) { nativeItem = _popup.Append(item.Label, icon); } else { _items[item].SetPartContent("icon", icon); } } else { //Not a standard icon XFPlatformTizen.Native.Image iconImage = new XFPlatformTizen.Native.Image(_popup); var task = iconImage.LoadFromImageSourceAsync(item.Icon); if (!_items.ContainsKey(item)) { nativeItem = _popup.Append(item.Label, iconImage); } else { _items[item].SetPartContent("icon", iconImage); } } return(nativeItem); }
public TCContextPopup() { InitializeComponent(); _popup = new ContextPopup(); var item1 = new ContextPopupItem("item 1"); var item2 = new ContextPopupItem("item 2"); _popup.Items.Add(item1); _popup.Items.Add(item2); _popup.ItemSelected += (s, e) => { Console.WriteLine($"{_popup.SelectedItem?.Label} is selected"); label1.Text = _popup.SelectedItem?.Label + " is selected!"; }; _popup.Dismissed += (s, e) => { if (_popupVisibility) { Console.WriteLine("Popup is dismissed"); label1.Text = "Popup is dismissed!"; _popupVisibility = false; } }; }
public static void InsertDividerAbove(this ContextPopupItem item) { if (item == null) { throw new ArgumentNullException(nameof(item)); } item.SetPartColor(Parts.Menus.Divider, MColors.Current.OnSurfaceColor.WithAlpha(0.12)); }
/// <summary> /// Updates icon of a given item. /// </summary> /// <param name="item">Item with a new icon.</param> public void UpdateContextPopupItemIcon(ContextPopupItem item) { if (string.IsNullOrEmpty(item.Icon)) { _items[item]?.SetPartContent("icon", null); } else { AppendOrModifyItemWithIcon(item); } }
void AddItem(ContextPopupItem item) { if (_items.ContainsKey(item)) { return; } EContextPopupItem nativeItem; nativeItem = _popup.Append(item.Label); _items.Add(item, nativeItem); nativeItem.Selected += (s, e) => { SelectedItem = item; // This will invoke SelectedIndexChanged if the index has changed ItemSelected?.Invoke(this, new SelectedItemChangedEventArgs(SelectedItem)); }; }
/// <summary> /// Updates label of a given item. /// </summary> /// <param name="item">Item with a new label.</param> public void UpdateContextPopupItemLabel(ContextPopupItem item) { EContextPopupItem nativeItem = _items[item]; nativeItem.SetPartText("default", item.Label); }