[NUI] Add Obsolete attributes for EditorBrowsable apis
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / UIComponents / PushButton.cs
1 /*
2  * Copyright(c) 2017 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 using System;
19 using System.ComponentModel;
20 using Tizen.NUI.BaseComponents;
21
22 namespace Tizen.NUI.UIComponents
23 {
24
25     /// <summary>
26     /// The PushButton changes its appearance when it is pressed, and returns to its original when it is released.
27     /// </summary>
28     /// <since_tizen> 3 </since_tizen>
29     public class PushButton : Button
30     {
31         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
32
33         internal PushButton(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.PushButton_SWIGUpcast(cPtr), cMemoryOwn)
34         {
35             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
36         }
37
38         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PushButton obj)
39         {
40             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
41         }
42
43         /// <summary>
44         /// To dispose the PushButton instance.
45         /// </summary>
46         /// <since_tizen> 3 </since_tizen>
47         protected override void Dispose(DisposeTypes type)
48         {
49             if (disposed)
50             {
51                 return;
52             }
53
54             if(type == DisposeTypes.Explicit)
55             {
56                 //Called by User
57                 //Release your own managed resources here.
58                 //You should release all of your own disposable objects here.
59             }
60
61             //Release your own unmanaged resources here.
62             //You should not access any managed member here except static instance.
63             //because the execution order of Finalizes is non-deterministic.
64
65             if (swigCPtr.Handle != global::System.IntPtr.Zero)
66             {
67                 if (swigCMemOwn)
68                 {
69                     swigCMemOwn = false;
70                     NDalicPINVOKE.delete_PushButton(swigCPtr);
71                 }
72                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
73             }
74
75             base.Dispose(type);
76         }
77
78
79         internal new class Property
80         {
81             internal static readonly int UNSELECTED_ICON = NDalicPINVOKE.PushButton_Property_UNSELECTED_ICON_get();
82             internal static readonly int SELECTED_ICON = NDalicPINVOKE.PushButton_Property_SELECTED_ICON_get();
83             internal static readonly int ICON_ALIGNMENT = NDalicPINVOKE.PushButton_Property_ICON_ALIGNMENT_get();
84             internal static readonly int LABEL_PADDING = NDalicPINVOKE.PushButton_Property_LABEL_PADDING_get();
85             internal static readonly int ICON_PADDING = NDalicPINVOKE.PushButton_Property_ICON_PADDING_get();
86         }
87
88         /// <summary>
89         /// Creates the PushButton.
90         /// </summary>
91         /// <since_tizen> 3 </since_tizen>
92         public PushButton() : this(NDalicPINVOKE.PushButton_New(), true)
93         {
94             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
95
96         }
97
98         /// <summary>
99         /// Downcasts a handle to pushButton handle.
100         /// </summary>
101         /// <since_tizen> 3 </since_tizen>
102         /// Please do not use! this will be deprecated!
103         /// Instead please use as keyword.
104         [Obsolete("Please do not use! This will be deprecated! Please use as keyword instead!")]
105         [EditorBrowsable(EditorBrowsableState.Never)]
106         public new static PushButton DownCast(BaseHandle handle)
107         {
108             PushButton ret =  Registry.GetManagedBaseHandleFromNativePtr(handle) as PushButton;
109             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
110             return ret;
111         }
112
113         /// <summary>
114         /// UnselectedIcon.
115         /// </summary>
116         /// <since_tizen> 3 </since_tizen>
117         /// Please do not use! this will be deprecated!
118         /// Instead please use UnselectedVisual.
119         [Obsolete("Please do not use! This will be deprecated! Please use UnselectedVisual instead!")]
120         [EditorBrowsable(EditorBrowsableState.Never)]
121         public string UnselectedIcon
122         {
123             set
124             {
125                 SetProperty(PushButton.Property.UNSELECTED_ICON, new Tizen.NUI.PropertyValue(value));
126             }
127         }
128
129         /// <summary>
130         /// SelectedIcon.
131         /// </summary>
132         /// <since_tizen> 3 </since_tizen>
133         /// Please do not use! this will be deprecated!
134         /// Instead please use SelectedVisual.
135         [Obsolete("Please do not use! This will be deprecated! Please use SelectedVisual instead!")]
136         [EditorBrowsable(EditorBrowsableState.Never)]
137         public string SelectedIcon
138         {
139             set
140             {
141                 SetProperty(PushButton.Property.SELECTED_ICON, new Tizen.NUI.PropertyValue(value));
142             }
143         }
144
145         /// <summary>
146         /// Please do not use! this will be deprecated
147         /// </summary>
148         /// <since_tizen> 3 </since_tizen>
149         [Obsolete("Please do not use! This will be deprecated! Please use LabelRelativeAlignment instead!")]
150         [EditorBrowsable(EditorBrowsableState.Never)]
151         public IconAlignmentType IconAlignment
152         {
153             get
154             {
155                 string temp;
156                 if (GetProperty(PushButton.Property.ICON_ALIGNMENT).Get(out temp) == false)
157                 {
158                     NUILog.Error("IconAlignment get error!");
159                 }
160                 switch (temp)
161                 {
162                     case "LEFT":
163                         return IconAlignmentType.Left;
164                     case "RIGHT":
165                         return IconAlignmentType.Right;
166                     case "TOP":
167                         return IconAlignmentType.Top;
168                     case "BOTTOM":
169                         return IconAlignmentType.Bottom;
170                     default:
171                         return IconAlignmentType.Default;
172                 }
173             }
174             set
175             {
176                 string valueToString = "";
177                 switch (value)
178                 {
179                     case IconAlignmentType.Left:
180                         {
181                             valueToString = "LEFT";
182                             break;
183                         }
184                     case IconAlignmentType.Right:
185                         {
186                             valueToString = "RIGHT";
187                             break;
188                         }
189                     case IconAlignmentType.Top:
190                         {
191                             valueToString = "TOP";
192                             break;
193                         }
194                     case IconAlignmentType.Bottom:
195                         {
196                             valueToString = "BOTTOM";
197                             break;
198                         }
199                     default:
200                         {
201                             valueToString = "DEFAULT";
202                             break;
203                         }
204                 }
205                 SetProperty(PushButton.Property.ICON_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
206             }
207         }
208
209         /// <summary>
210         /// Please do not use! this will be deprecated
211         /// </summary>
212         /// <since_tizen> 3 </since_tizen>
213         /// no use
214         [Obsolete("Please do not use! This will be deprecated! Please use Button.LabelPadding instead!")]
215         [EditorBrowsable(EditorBrowsableState.Never)]
216         public new Vector4 LabelPadding
217         {
218             get
219             {
220                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
221                 GetProperty(PushButton.Property.LABEL_PADDING).Get(temp);
222                 return temp;
223             }
224             set
225             {
226                 SetProperty(PushButton.Property.LABEL_PADDING, new Tizen.NUI.PropertyValue(value));
227             }
228         }
229
230         /// <summary>
231         /// Please do not use! this will be deprecated
232         /// </summary>
233         /// <since_tizen> 3 </since_tizen>
234         /// no use
235         [Obsolete("Please do not use! This will be deprecated! Please use ForegroundVisualPadding instead!")]
236         [EditorBrowsable(EditorBrowsableState.Never)]
237         public Vector4 IconPadding
238         {
239             get
240             {
241                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
242                 GetProperty(PushButton.Property.ICON_PADDING).Get(temp);
243                 return temp;
244             }
245             set
246             {
247                 SetProperty(PushButton.Property.ICON_PADDING, new Tizen.NUI.PropertyValue(value));
248             }
249         }
250
251         /// <summary>
252         /// Please do not use! this will be deprecated
253         /// </summary>
254         /// <since_tizen> 3 </since_tizen>
255         /// no use
256         [Obsolete("Please do not use! This will be deprecated! Please use Button.Align instead!")]
257         [EditorBrowsable(EditorBrowsableState.Never)]
258         public enum IconAlignmentType
259         {
260             /// <summary>
261             /// The icon located to the left of text.
262             /// </summary>
263             Left,
264             /// <summary>
265             /// The icon located to the right of text.
266             /// </summary>
267             Right,
268             /// <summary>
269             /// The icon located to the top of text.
270             /// </summary>
271             Top,
272             /// <summary>
273             /// The icon located to the bottom of text.
274             /// </summary>
275             Bottom,
276             /// <summary>
277             /// The icon located to the right of text by default.
278             /// </summary>
279             Default = Right
280         }
281
282     }
283 }