[ACR-564] deprecate unused API
[platform/core/csapi/tizenfx.git] / src / ElmSharp / ElmSharp / ItemObject.cs
index 6a6342c..bd98ecb 100644 (file)
@@ -23,6 +23,7 @@ namespace ElmSharp
     /// The ItemObject is used to manage the item object.
     /// </summary>
     /// <since_tizen> preview </since_tizen>
+    [Obsolete("This has been deprecated in API12")]
     public class ItemObject
     {
         private static Dictionary<int, ItemObject> s_IdToItemTable = new Dictionary<int, ItemObject>();
@@ -36,15 +37,40 @@ namespace ElmSharp
         EvasObject _trackObject = null;
 
         /// <summary>
+        /// Gets the parent object for ItemObject.
+        /// </summary>
+        /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
+        public EvasObject Parent { get; internal set; }
+
+        /// <summary>
         /// Creates and initializes a new instance of the ItemObject class.
         /// </summary>
         /// <param name="handle">IntPtr</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         protected ItemObject(IntPtr handle)
         {
             _deleteCallback = DeleteCallbackHandler;
             Id = GetNextId();
             s_IdToItemTable[Id] = this;
+            Parent = null;
+            Handle = handle;
+        }
+
+        /// <summary>
+        /// Creates and initializes a new instance of the ItemObject class with parent object.
+        /// </summary>
+        /// <param name="handle">IntPtr</param>
+        /// <param name="parent">Parent EvasObject</param>
+        /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
+        protected ItemObject(IntPtr handle, EvasObject parent)
+        {
+            _deleteCallback = DeleteCallbackHandler;
+            Id = GetNextId();
+            s_IdToItemTable[Id] = this;
+            Parent = parent;
             Handle = handle;
         }
 
@@ -61,12 +87,14 @@ namespace ElmSharp
         /// Gets the ID of the item object.
         /// </summary>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public int Id { get; private set; }
 
         /// <summary>
         /// Sets or gets whether the item object is enabled.
         /// </summary>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public bool IsEnabled
         {
             get { return !Interop.Elementary.elm_object_item_disabled_get(Handle); }
@@ -77,12 +105,15 @@ namespace ElmSharp
         /// Gets the track object of the item.
         /// </summary>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public EvasObject TrackObject
         {
             get
             {
-                if (_trackObject == null)
+                if (_trackObject == null || Interop.Elementary.elm_object_item_track_get(Handle) == 0)
+                {
                     _trackObject = new ItemEvasObject(Handle);
+                }
                 return _trackObject;
             }
         }
@@ -91,6 +122,7 @@ namespace ElmSharp
         /// Sets or gets the style of the item.
         /// </summary>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public virtual string Style
         {
             get
@@ -121,6 +153,10 @@ namespace ElmSharp
                 _handle = value;
                 SetDeleteCallback();
                 s_HandleToItemTable[Handle] = this;
+                if (_handle != IntPtr.Zero)
+                {
+                    Elementary.SendItemObjectRealized(this);
+                }
             }
         }
 
@@ -128,12 +164,14 @@ namespace ElmSharp
         /// Deleted will be triggered when the item object is deleted.
         /// </summary>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public event EventHandler Deleted;
 
         /// <summary>
         /// Deletes the item object.
         /// </summary>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void Delete()
         {
             Interop.Elementary.elm_object_item_del(Handle);
@@ -146,6 +184,7 @@ namespace ElmSharp
         /// <param name="part">The content part name (null for the default content).</param>
         /// <param name="content">The content of the object item.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void SetPartContent(string part, EvasObject content)
         {
             SetPartContent(part, content, false);
@@ -158,6 +197,7 @@ namespace ElmSharp
         /// <param name="content">The content of the object item.</param>
         /// <param name="preserveOldContent">Judge whether to delete the old content.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void SetPartContent(string part, EvasObject content, bool preserveOldContent)
         {
             IntPtr oldContent = Interop.Elementary.elm_object_item_part_content_unset(Handle, part);
@@ -175,6 +215,7 @@ namespace ElmSharp
         /// <param name="part">The text part name (null for the default label).</param>
         /// <param name="text">Text of the label.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void SetPartText(string part, string text)
         {
             Interop.Elementary.elm_object_item_part_text_set(Handle, part, text);
@@ -186,6 +227,7 @@ namespace ElmSharp
         /// <param name="part">The text part name (null for the default label).</param>
         /// <returns></returns>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public string GetPartText(string part)
         {
             return Interop.Elementary.elm_object_item_part_text_get(Handle, part);
@@ -197,6 +239,7 @@ namespace ElmSharp
         /// <param name="part">The text part name (null for the default label).</param>
         /// <param name="color">The color.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void SetPartColor(string part, Color color)
         {
             Interop.Elementary.elm_object_item_color_class_color_set(Handle, part, color.R * color.A / 255,
@@ -211,6 +254,7 @@ namespace ElmSharp
         /// <param name="part">The text part name (null for the default label).</param>
         /// <returns>The color of an object item.</returns>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public Color GetPartColor(string part)
         {
             int r, g, b, a;
@@ -223,6 +267,7 @@ namespace ElmSharp
         /// </summary>
         /// <param name="part">The text part name.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void DeletePartColor(string part)
         {
             Interop.Elementary.elm_object_item_color_class_del(Handle, part);
@@ -235,6 +280,7 @@ namespace ElmSharp
         /// <param name="source">The signal's source.</param>
         /// <param name="func">The function to be executed when the signal is emitted.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void AddSignalHandler(string emission, string source, Func<string, string, bool> func)
         {
             if (emission != null && source != null && func != null)
@@ -258,6 +304,7 @@ namespace ElmSharp
         /// <param name="source">The signal's source.</param>
         /// <param name="func">The function to be executed when the signal is emitted.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void RemoveSignalHandler(string emission, string source, Func<string, string, bool> func)
         {
             if (emission != null && source != null && func != null)
@@ -281,6 +328,7 @@ namespace ElmSharp
         /// <param name="emission">The signal's name.</param>
         /// <param name="source">The signal's source.</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public void EmitSignal(string emission, string source)
         {
             Interop.Elementary.elm_object_item_signal_emit(Handle, emission, source);
@@ -291,6 +339,7 @@ namespace ElmSharp
         /// </summary>
         /// <param name="obj">ItemObject</param>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         public static implicit operator IntPtr(ItemObject obj)
         {
             if (obj == null)
@@ -302,6 +351,7 @@ namespace ElmSharp
         /// OnInvalidate of the object item.
         /// </summary>
         /// <since_tizen> preview </since_tizen>
+        [Obsolete("This has been deprecated in API12")]
         protected virtual void OnInvalidate() { }
 
         internal static ItemObject GetItemById(int id)
@@ -321,6 +371,7 @@ namespace ElmSharp
         void DeleteCallbackHandler(IntPtr data, IntPtr obj, IntPtr info)
         {
             Deleted?.Invoke(this, EventArgs.Empty);
+            Parent = null;
             OnInvalidate();
             if (s_IdToItemTable.ContainsKey(Id))
             {
@@ -350,7 +401,7 @@ namespace ElmSharp
             return s_globalId++;
         }
 
-        class SignalData
+        class SignalData : IEquatable<SignalData>
         {
             public string Emission { get; set; }
             public string Source { get; set; }
@@ -363,22 +414,18 @@ namespace ElmSharp
                 Func = func;
             }
 
-            /// <summary>
-            /// Indicates whether this instance and a specified object are equal.
-            /// </summary>
-            /// <param name="obj">The object to compare with the current instance.</param>
-            /// <returns>
-            /// true if the object and this instance are of the same type and represent the same value,
-            /// otherwise false.
-            /// </returns>
-            public override bool Equals(object obj)
+            public override bool Equals(object other)
+            {
+                return Equals(other as SignalData);
+            }
+
+            public bool Equals(SignalData other)
             {
-                SignalData s = obj as SignalData;
-                if (s == null)
+                if (other == null)
                 {
                     return false;
                 }
-                return (Emission == s.Emission) && (Source == s.Source) && (Func == s.Func);
+                return (Emission == other.Emission) && (Source == other.Source) && (Func == other.Func);
             }
 
             public override int GetHashCode()
@@ -392,26 +439,20 @@ namespace ElmSharp
 
         class ItemEvasObject : EvasObject
         {
-            IntPtr _parent = IntPtr.Zero;
+            IntPtr _trackHandle = IntPtr.Zero;
 
-            /// <summary>
-            /// Creates and initializes a new instance of the ItemEvasObject class.
-            /// </summary>
-            /// <param name="parent">IntPtr</param>
-            public ItemEvasObject(IntPtr parent) : base()
+            public ItemEvasObject(IntPtr parent)
             {
-                _parent = parent;
-                Realize(null);
+                _trackHandle = Interop.Elementary.elm_object_item_track(parent);
+                if (_trackHandle != IntPtr.Zero)
+                {
+                    Realize(null);
+                }
             }
 
-            /// <summary>
-            /// Creates a widget handle.
-            /// </summary>
-            /// <param name="parent">Parent EvasObject.</param>
-            /// <returns>Handle IntPtr.</returns>
             protected override IntPtr CreateHandle(EvasObject parent)
             {
-                return Interop.Elementary.elm_object_item_track(_parent);
+                return _trackHandle;
             }
         }
     }