/// <summary> /// Creates and initializes a new instance of the RotarySelector class. /// </summary> /// <param name="parent">The Efl.Ui.Widget to which the new RotarySelector will be attached as a child.</param> /// <since_tizen> 6 </since_tizen> public RotarySelector(Efl.Ui.Widget parent) : base(Interop.Eext.eext_rotary_selector_add(parent.NativeHandle)) { smartClicked = new Interop.Evas.SmartCallback((d, o, e) => { RotarySelectorItem clickedItem = FindItemByNativeHandle(e); if (clickedItem != null) { ClickedEvt?.Invoke(this, new RotarySelectorItemEventArgs { item = clickedItem }); } }); smartSelected = new Interop.Evas.SmartCallback((d, o, e) => { RotarySelectorItem selectedItem = FindItemByNativeHandle(e); if (selectedItem != null) { SelectedEvt?.Invoke(this, new RotarySelectorItemEventArgs { item = selectedItem }); } }); smartDeleted = new Interop.Evas.SmartCallback((d, o, e) => { RotarySelectorItem deletedItem = FindItemByNativeHandle(e); if (deletedItem != null) { Deleted?.Invoke(this, new RotarySelectorItemEventArgs { item = deletedItem }); } Items.Remove(deletedItem); }); smartReordered = new Interop.Evas.SmartCallback((d, o, e) => { var items_list = Interop.Eext.eext_rotary_selector_items_get(this.NativeHandle); int idx = Eina.ListNativeFunctions.eina_list_data_idx(items_list, e); RotarySelectorItem reorderedItem = FindItemByNativeHandle(e); if (reorderedItem != null) { Reordered?.Invoke(this, new RotarySelectorItemReorderedEventArgs { item = reorderedItem, OldIndex = Items.IndexOf(reorderedItem), NewIndex = idx }); } UpdateListOrder(reorderedItem, idx); }); Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemClickedEventName, smartClicked, IntPtr.Zero); Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemSelectedEventName, smartSelected, IntPtr.Zero); Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemDeletedEventName, smartDeleted, IntPtr.Zero); Interop.Evas.evas_object_smart_callback_add(this.NativeHandle, ItemReorderedEventName, smartReordered, IntPtr.Zero); }
/// <summary> /// Raises the Reordered event. /// </summary> /// <param name="e">An EventArgs instance containing event data.</param> protected virtual void OnReordered(EventArgs e) { Reordered?.Invoke(this, e); }