/// <summary> /// Creates and initializes a new instance of the Hoversel class. /// </summary> /// <param name="parent">The parent is a given container which will be attached by Hoversel as a child. It's <see cref="EvasObject"/> type.</param> /// <since_tizen> preview </since_tizen> public Hoversel(EvasObject parent) : base(parent) { _clicked = new SmartEvent(this, "clicked"); _clicked.On += (sender, e) => { Clicked?.Invoke(this, EventArgs.Empty); }; _expanded = new SmartEvent(this, "expanded"); _expanded.On += (sender, e) => { Expanded?.Invoke(this, EventArgs.Empty); }; _dismissed = new SmartEvent(this, "dismissed"); _dismissed.On += (sender, e) => { Dismissed?.Invoke(this, EventArgs.Empty); }; _selected = new SmartEvent <HoverselItemEventArgs>(this, RealHandle, "selected", HoverselItemEventArgs.CreateFromSmartEvent); _selected.On += (s, e) => { if (e.Item != null) { ItemSelected?.Invoke(this, e); } }; _onItemSelected = (data, obj, info) => { HoverselItem item = ItemObject.GetItemById((int)data) as HoverselItem; item?.SendItemSelected(); }; }
/// <summary> /// Add an item to the hoversel button. /// This adds an item to the hoversel to show when it is clicked. /// </summary> /// <param name="label">Item's label</param> /// <returns>A handle to the added item.</returns> /// <since_tizen> preview </since_tizen> public HoverselItem AddItem(string label) { HoverselItem item = new HoverselItem(); item.Label = label; item.Handle = Interop.Elementary.elm_hoversel_item_add(RealHandle, label, null, 0, _onItemSelected, (IntPtr)item.Id); return(item); }
internal static HoverselItemEventArgs CreateFromSmartEvent(IntPtr data, IntPtr obj, IntPtr info) { HoverselItem item = ItemObject.GetItemByHandle(info) as HoverselItem; return(new HoverselItemEventArgs { Item = item }); }