Add GenList.ReorderMode property 00/117300/2
authorPiotr Szydelko <p.szydelko@samsung.com>
Wed, 1 Mar 2017 10:31:13 +0000 (11:31 +0100)
committerPiotr Szydelko <p.szydelko@samsung.com>
Thu, 9 Mar 2017 15:21:54 +0000 (16:21 +0100)
The EFL GenList offer the reorder mode, but ElmSharp does didn't
include the relevant functions. This commit fixed the omission.

Change-Id: Ib0dfc1578677e401d6b3639ac340872507f89216
Signed-off-by: Piotr Szydelko <p.szydelko@samsung.com>
ElmSharp/ElmSharp/GenList.cs
ElmSharp/Interop/Interop.Elementary.GenListView.cs

index eba52f5..1106cf1 100644 (file)
@@ -68,6 +68,9 @@ namespace ElmSharp
         SmartEvent<GenListItemEventArgs> _realized;
         SmartEvent<GenListItemEventArgs> _unrealized;
         SmartEvent<GenListItemEventArgs> _longpressed;
+        SmartEvent<GenListItemEventArgs> _moved;
+        SmartEvent<GenListItemEventArgs> _movedAfter;
+        SmartEvent<GenListItemEventArgs> _movedBefore;
         SmartEvent _scrollAnimationStarted;
         SmartEvent _scrollAnimationStopped;
         SmartEvent _changed;
@@ -119,6 +122,18 @@ namespace ElmSharp
             }
         }
 
+        public bool ReorderMode
+        {
+            get
+            {
+                return Interop.Elementary.elm_genlist_reorder_mode_get(RealHandle);
+            }
+            set
+            {
+                Interop.Elementary.elm_genlist_reorder_mode_set(RealHandle, value);
+            }
+        }
+
         public event EventHandler<GenListItemEventArgs> ItemSelected;
         public event EventHandler<GenListItemEventArgs> ItemUnselected;
         public event EventHandler<GenListItemEventArgs> ItemPressed;
@@ -129,6 +144,9 @@ namespace ElmSharp
         public event EventHandler<GenListItemEventArgs> ItemRealized;
         public event EventHandler<GenListItemEventArgs> ItemUnrealized;
         public event EventHandler<GenListItemEventArgs> ItemLongPressed;
+        public event EventHandler<GenListItemEventArgs> ItemMoved;
+        public event EventHandler<GenListItemEventArgs> ItemMovedAfter;
+        public event EventHandler<GenListItemEventArgs> ItemMovedBefore;
 
         public event EventHandler Changed
         {
@@ -257,6 +275,9 @@ namespace ElmSharp
             _realized = new SmartEvent<GenListItemEventArgs>(this, this.RealHandle, "realized", GenListItemEventArgs.CreateFromSmartEvent);
             _unrealized = new SmartEvent<GenListItemEventArgs>(this, this.RealHandle, "unrealized", GenListItemEventArgs.CreateFromSmartEvent);
             _longpressed = new SmartEvent<GenListItemEventArgs>(this, this.RealHandle, "longpressed", GenListItemEventArgs.CreateFromSmartEvent);
+            _moved = new SmartEvent<GenListItemEventArgs>(this, this.RealHandle, "moved", GenListItemEventArgs.CreateFromSmartEvent);
+            _movedAfter = new SmartEvent<GenListItemEventArgs>(this, this.RealHandle, "moved,after", GenListItemEventArgs.CreateFromSmartEvent);
+            _movedBefore = new SmartEvent<GenListItemEventArgs>(this, this.RealHandle, "moved,before", GenListItemEventArgs.CreateFromSmartEvent);
             _scrollAnimationStarted = new SmartEvent(this, this.RealHandle, "scroll,anim,start");
             _scrollAnimationStopped = new SmartEvent(this, this.RealHandle, "scroll,anim,stop");
             _changed = new SmartEvent(this, this.RealHandle, "changed");
@@ -271,6 +292,9 @@ namespace ElmSharp
             _realized.On += (s, e) => { if (e.Item != null) ItemRealized?.Invoke(this, e); };
             _unrealized.On += (s, e) => { if (e.Item != null) ItemUnrealized?.Invoke(this, e); };
             _longpressed.On += (s, e) => { if (e.Item != null) ItemLongPressed?.Invoke(this, e); };
+            _moved.On += (s, e) => { if (e.Item != null) ItemMoved?.Invoke(this, e); };
+            _movedAfter.On += (s, e) => { if (e.Item != null) ItemMovedAfter?.Invoke(this, e); };
+            _movedBefore.On += (s, e) => { if (e.Item != null) ItemMovedBefore?.Invoke(this, e); };
         }
 
         void AddInternal(GenListItem item)
index 75698da..732db0d 100644 (file)
@@ -135,5 +135,12 @@ internal static partial class Interop
 
         [DllImport(Libraries.Elementary)]
         internal static extern void elm_genlist_item_fields_update(IntPtr item, string part, uint type);
+
+        [DllImport(Libraries.Elementary)]
+        internal static extern void elm_genlist_reorder_mode_set(IntPtr obj, bool mode);
+
+        [DllImport(Libraries.Elementary)]
+        [return: MarshalAs(UnmanagedType.U1)]
+        internal static extern bool elm_genlist_reorder_mode_get(IntPtr obj);
     }
 }