示例#1
0
 public void DeleteItem(RotarySelectorItem item)
 {
     if (item.NativeHandle != null)
     {
         Interop.Eext.eext_rotary_selector_item_del(item.NativeHandle);
     }
 }
示例#2
0
 public void Prepend(RotarySelectorItem item)
 {
     if (item.NativeHandle != null)
     {
         item.NativeHandle = Interop.Eext.eext_rotary_selector_item_prepend(this.NativeHandle);
     }
 }
示例#3
0
 public void InsertBefore(RotarySelectorItem targetItem, RotarySelectorItem item)
 {
     if (item.NativeHandle != null)
     {
         item.NativeHandle = Interop.Eext.eext_rotary_selector_item_insert_before(this.NativeHandle, targetItem.NativeHandle);
     }
 }
示例#4
0
                /// <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)
                        {
                            Clicked?.Invoke(this, new RotarySelectorItemEventArgs {
                                item = clickedItem
                            });
                        }
                    });

                    smartSelected = new Interop.Evas.SmartCallback((d, o, e) =>
                    {
                        RotarySelectorItem selectedItem = FindItemByNativeHandle(e);
                        if (selectedItem != null)
                        {
                            Selected.Invoke(this, new RotarySelectorItemEventArgs {
                                item = selectedItem
                            });
                        }
                    });

                    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);
                }
示例#5
0
 /// <summary>
 /// Appends a rotary selector item.
 /// </summary>
 /// <since_tizen> 6 </since_tizen>
 public void Append(RotarySelectorItem item)
 {
     if (item.NativeHandle != null)
     {
         Items.Add(item);
         item.NativeHandle = Interop.Eext.eext_rotary_selector_item_append(this.NativeHandle);
     }
 }
示例#6
0
                /// <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);
                }
示例#7
0
 /// <summary>
 /// Delete a rotary selector item.
 /// </summary>
 /// <since_tizen> 6 </since_tizen>
 public void DeleteItem(RotarySelectorItem item)
 {
     if (item.NativeHandle != null)
     {
         if (!Items.Contains(item))
         {
             return;
         }
         Items.Remove(item);
         Interop.Eext.eext_rotary_selector_item_del(item.NativeHandle);
     }
 }
示例#8
0
 /// <summary>
 /// Inserts a rotary selector item before the target item.
 /// </summary>
 /// <since_tizen> 6 </since_tizen>
 public void InsertBefore(RotarySelectorItem targetItem, RotarySelectorItem item)
 {
     if (item.NativeHandle != null && targetItem != null)
     {
         if (!Items.Contains(targetItem))
         {
             return;
         }
         Items.Insert(Items.IndexOf(targetItem), item);
         item.NativeHandle = Interop.Eext.eext_rotary_selector_item_insert_before(this.NativeHandle, targetItem.NativeHandle);
     }
 }
示例#9
0
                public RotarySelector(Efl.Ui.Widget parent) : base(Interop.Eext.eext_rotary_selector_add(parent.NativeHandle))
                {
                    Interop.Evas.SmartCallback _smartClicked = new Interop.Evas.SmartCallback((d, o, e) =>
                    {
                        RotarySelectorItem clickedItem = new RotarySelectorItem();
                        clickedItem._handle            = e;
                        Clicked?.Invoke(this, new RotarySelectorItemEventArgs {
                            item = clickedItem
                        });
                    });

                    Interop.Evas.SmartCallback _smartSelected = new Interop.Evas.SmartCallback((d, o, e) =>
                    {
                        Selected?.Invoke(this, new RotarySelectorItemEventArgs {
                            item = this.SelectedItem
                        });
                    });

                    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);
                }
示例#10
0
 private void UpdateListOrder(RotarySelectorItem reorderedItem, int currentIdx)
 {
     Items.Remove(reorderedItem);
     Items.Insert(currentIdx, reorderedItem);
 }