26e8232f5a5000766ed0bed0dd8e2af3f677fe1e
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / UIComponents / ToggleButton.cs
1 /*
2  * Copyright(c) 2018 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 using System;
18 using System.ComponentModel;
19 using Tizen.NUI.Binding;
20
21 namespace Tizen.NUI
22 {
23     /// <summary>
24     /// A ToggleButton allows the user to change a setting between two or more states.
25     /// </summary>
26     /// <since_tizen> 3 </since_tizen>
27     /// This will be deprecated
28     [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
29     [EditorBrowsable(EditorBrowsableState.Never)]
30     public class ToggleButton : Tizen.NUI.UIComponents.Button
31     {
32         /// This will be deprecated
33         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
34         [EditorBrowsable(EditorBrowsableState.Never)]
35         public static readonly BindableProperty StateVisualsProperty = BindableProperty.Create("StateVisuals", typeof(PropertyArray), typeof(ToggleButton), new PropertyArray(), propertyChanged: (bindable, oldValue, newValue) =>
36         {
37             var toggleButton = (ToggleButton)bindable;
38             if (newValue != null)
39             {
40                 Tizen.NUI.Object.SetProperty(toggleButton.swigCPtr, ToggleButton.Property.STATE_VISUALS, new Tizen.NUI.PropertyValue((PropertyArray)newValue));
41             }
42         },
43         defaultValueCreator: (bindable) =>
44         {
45             var toggleButton = (ToggleButton)bindable;
46             Tizen.NUI.PropertyArray temp = new Tizen.NUI.PropertyArray();
47             Tizen.NUI.Object.GetProperty(toggleButton.swigCPtr, ToggleButton.Property.STATE_VISUALS).Get(temp);
48             return temp;
49         });
50
51         /// Only for XAML property binding. This will be changed as Inhouse API by ACR later.
52         /// This will be deprecated
53         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
54         [EditorBrowsable(EditorBrowsableState.Never)]
55         public static readonly BindableProperty TooltipsProperty = BindableProperty.Create("Tooltips", typeof(PropertyArray), typeof(ToggleButton), new PropertyArray(), propertyChanged: (bindable, oldValue, newValue) =>
56         {
57             var toggleButton = (ToggleButton)bindable;
58             if (newValue != null)
59             {
60                 Tizen.NUI.Object.SetProperty(toggleButton.swigCPtr, ToggleButton.Property.TOOLTIPS, new Tizen.NUI.PropertyValue((PropertyArray)newValue));
61             }
62         },
63         defaultValueCreator: (bindable) =>
64         {
65             var toggleButton = (ToggleButton)bindable;
66             Tizen.NUI.PropertyArray temp = new Tizen.NUI.PropertyArray();
67             Tizen.NUI.Object.GetProperty(toggleButton.swigCPtr, ToggleButton.Property.TOOLTIPS).Get(temp);
68             return temp;
69         });
70
71         /// This will be deprecated
72         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
73         [EditorBrowsable(EditorBrowsableState.Never)]
74         public static readonly BindableProperty CurrentStateIndexProperty = BindableProperty.Create("CurrentStateIndex", typeof(int), typeof(ToggleButton), default(int), propertyChanged: (bindable, oldValue, newValue) =>
75         {
76             var toggleButton = (ToggleButton)bindable;
77             if (newValue != null)
78             {
79                 Tizen.NUI.Object.SetProperty(toggleButton.swigCPtr, ToggleButton.Property.CURRENT_STATE_INDEX, new Tizen.NUI.PropertyValue((int)newValue));
80             }
81         },
82         defaultValueCreator: (bindable) =>
83         {
84             var toggleButton = (ToggleButton)bindable;
85             int temp = 0;
86             Tizen.NUI.Object.GetProperty(toggleButton.swigCPtr, ToggleButton.Property.CURRENT_STATE_INDEX).Get(out temp);
87             return temp;
88         });
89
90         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
91
92         /// <summary>
93         /// Create an instance for toggleButton.
94         /// </summary>
95         /// <since_tizen> 3 </since_tizen>
96         /// This will be deprecated
97         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
98         [EditorBrowsable(EditorBrowsableState.Never)]
99         public ToggleButton() : this(Interop.ToggleButton.ToggleButton_New(), true)
100         {
101             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
102         }
103
104         internal ToggleButton(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.ToggleButton.ToggleButton_SWIGUpcast(cPtr), cMemoryOwn)
105         {
106             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
107         }
108
109         /// <summary>
110         /// Gets and Sets the state visual array of toggle button.
111         /// </summary>
112         /// <since_tizen> 3 </since_tizen>
113         /// This will be deprecated
114         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
115         [EditorBrowsable(EditorBrowsableState.Never)]
116         public Tizen.NUI.PropertyArray StateVisuals
117         {
118             get
119             {
120                 return (PropertyArray)GetValue(StateVisualsProperty);
121             }
122             set
123             {
124                 SetValue(StateVisualsProperty, value);
125             }
126         }
127
128         /// <summary>
129         /// Gets and Sets the tooltips of toggle button.
130         /// </summary>
131         /// <since_tizen> 3 </since_tizen>
132         /// This will be deprecated
133         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
134         [EditorBrowsable(EditorBrowsableState.Never)]
135         public Tizen.NUI.PropertyArray Tooltips
136         {
137             get
138             {
139                 return (PropertyArray)GetValue(TooltipsProperty);
140             }
141             set
142             {
143                 SetValue(TooltipsProperty, value);
144             }
145         }
146
147         /// <summary>
148         /// Gets and Sets the current state index of toggle button.
149         /// </summary>
150         /// <since_tizen> 3 </since_tizen>
151         /// This will be deprecated
152         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
153         [EditorBrowsable(EditorBrowsableState.Never)]
154         public int CurrentStateIndex
155         {
156             get
157             {
158                 return (int)GetValue(CurrentStateIndexProperty);
159             }
160             set
161             {
162                 SetValue(CurrentStateIndexProperty, value);
163             }
164         }
165
166         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ToggleButton obj)
167         {
168             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
169         }
170
171         /// <summary>
172         /// Dispose
173         /// </summary>
174         /// <param name="type">The dispose type</param>
175         /// <since_tizen> 3 </since_tizen>
176         /// This will be deprecated
177         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
178         [EditorBrowsable(EditorBrowsableState.Never)]
179         protected override void Dispose(DisposeTypes type)
180         {
181             if (disposed)
182             {
183                 return;
184             }
185
186             //Release your own unmanaged resources here.
187             //You should not access any managed member here except static instance.
188             //because the execution order of Finalizes is non-deterministic.
189
190             if (swigCPtr.Handle != global::System.IntPtr.Zero)
191             {
192                 if (swigCMemOwn)
193                 {
194                     swigCMemOwn = false;
195                     Interop.ToggleButton.delete_ToggleButton(swigCPtr);
196                 }
197                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
198             }
199
200             base.Dispose(type);
201         }
202
203         /// <summary>
204         /// This should be internal, please do not use.
205         /// </summary>
206         /// <since_tizen> 3 </since_tizen>
207         /// This will be deprecated
208         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
209         [EditorBrowsable(EditorBrowsableState.Never)]
210         public new class Property
211         {
212             /// <summary>
213             /// This should be internal, please do not use.
214             /// </summary>
215             /// <since_tizen> 3 </since_tizen>
216             /// This will be deprecated
217             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
218             [EditorBrowsable(EditorBrowsableState.Never)]
219             public static readonly int STATE_VISUALS = Interop.ToggleButton.ToggleButton_Property_STATE_VISUALS_get();
220             /// <summary>
221             /// This should be internal, please do not use.
222             /// </summary>
223             /// <since_tizen> 3 </since_tizen>
224             /// This will be deprecated
225             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
226             [EditorBrowsable(EditorBrowsableState.Never)]
227             public static readonly int TOOLTIPS = Interop.ToggleButton.ToggleButton_Property_TOOLTIPS_get();
228             /// <summary>
229             /// This should be internal, please do not use.
230             /// </summary>
231             /// <since_tizen> 3 </since_tizen>
232             /// This will be deprecated
233             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
234             [EditorBrowsable(EditorBrowsableState.Never)]
235             public static readonly int CURRENT_STATE_INDEX = Interop.ToggleButton.ToggleButton_Property_CURRENT_STATE_INDEX_get();
236         }
237     }
238 }