2 * Copyright(c) 2019 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.ComponentModel;
19 using System.Runtime.InteropServices;
20 using Tizen.NUI.BaseComponents;
21 using Tizen.NUI.Binding;
23 namespace Tizen.NUI.UIComponents
26 /// The Button class is a base class for different kinds of buttons.<br />
27 /// This class provides the disabled property and the clicked signal.<br />
28 /// The clicked event handler is emitted when the button is touched, and the touch point doesn't leave the boundary of the button.<br />
29 /// When the disabled property is set to true, no signal is emitted.<br />
30 /// The 'Visual' describes not just traditional images like PNG and BMP, but also refers to whatever is used to show the button. It could be a color, gradient, or some other kind of renderer.<br />
31 /// The button's appearance can be modified by setting properties for the various visuals or images.<br />
32 /// It is not mandatory to set all the visuals. A button could be defined only by setting its background visual, or by setting its background and selected visuals.<br />
33 /// The button visual is shown over the background visual.<br />
34 /// When pressed, the unselected visuals are replaced by the selected visuals.<br />
35 /// The text label is always placed on the top of all images.<br />
36 /// When the button is disabled, the background button and the selected visuals are replaced by their disabled visuals.<br />
38 /// <since_tizen> 3 </since_tizen>
39 /// This will be deprecated
40 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
41 [EditorBrowsable(EditorBrowsableState.Never)]
42 public class Button : View
44 /// This will be deprecated
45 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
46 [EditorBrowsable(EditorBrowsableState.Never)]
47 public static readonly BindableProperty UnselectedVisualProperty = BindableProperty.Create(nameof(UnselectedVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
49 var button = (Button)bindable;
52 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.UNSELECTED_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
55 defaultValueCreator:(bindable) =>
57 var button = (Button)bindable;
58 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
59 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.UNSELECTED_VISUAL).Get(temp);
62 /// This will be deprecated
63 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
64 [EditorBrowsable(EditorBrowsableState.Never)]
65 public static readonly BindableProperty SelectedVisualProperty = BindableProperty.Create(nameof(SelectedVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
67 var button = (Button)bindable;
70 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.SELECTED_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
73 defaultValueCreator:(bindable) =>
75 var button = (Button)bindable;
76 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
77 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.SELECTED_VISUAL).Get(temp);
80 /// This will be deprecated
81 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
82 [EditorBrowsable(EditorBrowsableState.Never)]
83 public static readonly BindableProperty DisabledSelectedVisualProperty = BindableProperty.Create(nameof(DisabledSelectedVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
85 var button = (Button)bindable;
88 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.DISABLED_SELECTED_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
91 defaultValueCreator:(bindable) =>
93 var button = (Button)bindable;
94 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
95 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.DISABLED_SELECTED_VISUAL).Get(temp);
98 /// This will be deprecated
99 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
100 [EditorBrowsable(EditorBrowsableState.Never)]
101 public static readonly BindableProperty DisabledUnselectedVisualProperty = BindableProperty.Create(nameof(DisabledUnselectedVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
103 var button = (Button)bindable;
104 if (newValue != null)
106 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.DISABLED_UNSELECTED_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
109 defaultValueCreator:(bindable) =>
111 var button = (Button)bindable;
112 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
113 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.DISABLED_UNSELECTED_VISUAL).Get(temp);
116 /// This will be deprecated
117 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
118 [EditorBrowsable(EditorBrowsableState.Never)]
119 public static readonly BindableProperty UnselectedBackgroundVisualProperty = BindableProperty.Create(nameof(UnselectedBackgroundVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
121 var button = (Button)bindable;
122 if (newValue != null)
124 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.UNSELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
127 defaultValueCreator:(bindable) =>
129 var button = (Button)bindable;
130 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
131 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.UNSELECTED_BACKGROUND_VISUAL).Get(temp);
134 /// This will be deprecated
135 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
136 [EditorBrowsable(EditorBrowsableState.Never)]
137 public static readonly BindableProperty SelectedBackgroundVisualProperty = BindableProperty.Create(nameof(SelectedBackgroundVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
139 var button = (Button)bindable;
140 if (newValue != null)
142 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.SELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
145 defaultValueCreator:(bindable) =>
147 var button = (Button)bindable;
148 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
149 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.SELECTED_BACKGROUND_VISUAL).Get(temp);
152 /// This will be deprecated
153 [EditorBrowsable(EditorBrowsableState.Never)]
154 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
155 public static readonly BindableProperty DisabledUnselectedBackgroundVisualProperty = BindableProperty.Create(nameof(DisabledUnselectedBackgroundVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
157 var button = (Button)bindable;
158 if (newValue != null)
160 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.DISABLED_UNSELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
163 defaultValueCreator:(bindable) =>
165 var button = (Button)bindable;
166 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
167 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.DISABLED_UNSELECTED_BACKGROUND_VISUAL).Get(temp);
170 /// This will be deprecated
171 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
172 [EditorBrowsable(EditorBrowsableState.Never)]
173 public static readonly BindableProperty DisabledSelectedBackgroundVisualProperty = BindableProperty.Create(nameof(DisabledSelectedBackgroundVisual), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
175 var button = (Button)bindable;
176 if (newValue != null)
178 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.DISABLED_SELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
181 defaultValueCreator:(bindable) =>
183 var button = (Button)bindable;
184 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
185 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.DISABLED_SELECTED_BACKGROUND_VISUAL).Get(temp);
188 /// This will be deprecated
189 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
190 [EditorBrowsable(EditorBrowsableState.Never)]
191 public static readonly BindableProperty LabelRelativeAlignmentProperty = BindableProperty.Create(nameof(LabelRelativeAlignment), typeof(Align), typeof(Button), Align.End, propertyChanged: (bindable, oldValue, newValue) =>
193 var button = (Button)bindable;
194 string valueToString = "";
195 if (newValue != null)
197 switch ((Align)newValue)
199 case Align.Begin: { valueToString = "BEGIN"; break; }
200 case Align.End: { valueToString = "END"; break; }
201 case Align.Top: { valueToString = "TOP"; break; }
202 case Align.Bottom: { valueToString = "BOTTOM"; break; }
203 default: { valueToString = "END"; break; }
205 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.LABEL_RELATIVE_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
208 defaultValueCreator:(bindable) =>
210 var button = (Button)bindable;
212 if (Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.LABEL_RELATIVE_ALIGNMENT).Get(out temp) == false)
214 NUILog.Error("LabelRelativeAlignment get error!");
218 case "BEGIN": return Align.Begin;
219 case "END": return Align.End;
220 case "TOP": return Align.Top;
221 case "BOTTOM": return Align.Bottom;
222 default: return Align.End;
225 /// This will be deprecated
226 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
227 [EditorBrowsable(EditorBrowsableState.Never)]
228 public static readonly BindableProperty LabelPaddingProperty = BindableProperty.Create(nameof(LabelPadding), typeof(Vector4), typeof(Button), Vector4.Zero, propertyChanged: (bindable, oldValue, newValue) =>
230 var button = (Button)bindable;
231 if (newValue != null)
233 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.LABEL_PADDING, new Tizen.NUI.PropertyValue((Vector4)newValue));
236 defaultValueCreator:(bindable) =>
238 var button = (Button)bindable;
239 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
240 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.LABEL_PADDING).Get(temp);
243 /// This will be deprecated
244 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
245 [EditorBrowsable(EditorBrowsableState.Never)]
246 public static readonly BindableProperty ForegroundVisualPaddingProperty = BindableProperty.Create(nameof(ForegroundVisualPadding), typeof(Vector4), typeof(Button), Vector4.Zero, propertyChanged: (bindable, oldValue, newValue) =>
248 var button = (Button)bindable;
249 if (newValue != null)
251 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.FOREGROUND_VISUAL_PADDING, new Tizen.NUI.PropertyValue((Vector4)newValue));
254 defaultValueCreator:(bindable) =>
256 var button = (Button)bindable;
257 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
258 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.FOREGROUND_VISUAL_PADDING).Get(temp);
261 /// This will be deprecated
262 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
263 [EditorBrowsable(EditorBrowsableState.Never)]
264 public static readonly BindableProperty AutoRepeatingProperty = BindableProperty.Create(nameof(AutoRepeating), typeof(bool), typeof(Button), false, propertyChanged: (bindable, oldValue, newValue) =>
266 var button = (Button)bindable;
267 if (newValue != null)
269 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.AUTO_REPEATING, new Tizen.NUI.PropertyValue((bool)newValue));
272 defaultValueCreator:(bindable) =>
274 var button = (Button)bindable;
276 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.AUTO_REPEATING).Get(out temp);
279 /// This will be deprecated
280 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
281 [EditorBrowsable(EditorBrowsableState.Never)]
282 public static readonly BindableProperty InitialAutoRepeatingDelayProperty = BindableProperty.Create(nameof(InitialAutoRepeatingDelay), typeof(float), typeof(Button), default(float), propertyChanged: (bindable, oldValue, newValue) =>
284 var button = (Button)bindable;
285 if (newValue != null)
287 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.INITIAL_AUTO_REPEATING_DELAY, new Tizen.NUI.PropertyValue((float)newValue));
290 defaultValueCreator:(bindable) =>
292 var button = (Button)bindable;
294 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.INITIAL_AUTO_REPEATING_DELAY).Get(out temp);
297 /// This will be deprecated
298 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
299 [EditorBrowsable(EditorBrowsableState.Never)]
300 public static readonly BindableProperty NextAutoRepeatingDelayProperty = BindableProperty.Create(nameof(NextAutoRepeatingDelay), typeof(float), typeof(Button), default(float), propertyChanged: (bindable, oldValue, newValue) =>
302 var button = (Button)bindable;
303 if (newValue != null)
305 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.NEXT_AUTO_REPEATING_DELAY, new Tizen.NUI.PropertyValue((float)newValue));
308 defaultValueCreator:(bindable) =>
310 var button = (Button)bindable;
312 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.NEXT_AUTO_REPEATING_DELAY).Get(out temp);
315 /// This will be deprecated
316 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
317 [EditorBrowsable(EditorBrowsableState.Never)]
318 public static readonly BindableProperty TogglableProperty = BindableProperty.Create(nameof(Togglable), typeof(bool), typeof(Button), false, propertyChanged: (bindable, oldValue, newValue) =>
320 var button = (Button)bindable;
321 if (newValue != null)
323 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.TOGGLABLE, new Tizen.NUI.PropertyValue((bool)newValue));
326 defaultValueCreator:(bindable) =>
328 var button = (Button)bindable;
330 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.TOGGLABLE).Get(out temp);
333 /// This will be deprecated
334 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
335 [EditorBrowsable(EditorBrowsableState.Never)]
336 public static readonly BindableProperty SelectedProperty = BindableProperty.Create(nameof(Selected), typeof(bool), typeof(Button), false, propertyChanged: (bindable, oldValue, newValue) =>
338 var button = (Button)bindable;
339 if (newValue != null)
341 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.SELECTED, new Tizen.NUI.PropertyValue((bool)newValue));
344 defaultValueCreator:(bindable) =>
346 var button = (Button)bindable;
348 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.SELECTED).Get(out temp);
351 /// This will be deprecated
352 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
353 [EditorBrowsable(EditorBrowsableState.Never)]
354 public static readonly BindableProperty UnselectedColorProperty = BindableProperty.Create(nameof(UnselectedColor), typeof(Color), typeof(Button), Color.Transparent, propertyChanged: (bindable, oldValue, newValue) =>
356 var button = (Button)bindable;
357 if (newValue != null)
359 PropertyMap background = new PropertyMap();
360 background.Add( Visual.Property.Type, new PropertyValue((int)Visual.Type.Color) )
361 .Add( ColorVisualProperty.MixColor, new PropertyValue((Color)newValue) );
362 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.UNSELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue(background));
365 defaultValueCreator:(bindable) =>
367 var button = (Button)bindable;
368 Color temp = new Color(0.0f, 0.0f, 0.0f, 0.0f);
369 Tizen.NUI.PropertyMap map = new Tizen.NUI.PropertyMap();
370 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.UNSELECTED_BACKGROUND_VISUAL).Get(map);
371 Tizen.NUI.PropertyValue value = map.Find( Visual.Property.MixColor);
375 /// This will be deprecated
376 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
377 [EditorBrowsable(EditorBrowsableState.Never)]
378 public static readonly BindableProperty SelectedColorProperty = BindableProperty.Create(nameof(SelectedColor), typeof(Color), typeof(Button), Color.Transparent, propertyChanged: (bindable, oldValue, newValue) =>
380 var button = (Button)bindable;
381 if (newValue != null)
383 PropertyMap background = new PropertyMap();
384 background.Add( Visual.Property.Type, new PropertyValue((int)Visual.Type.Color) )
385 .Add( ColorVisualProperty.MixColor, new PropertyValue((Color)newValue) );
386 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.SELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue(background));
389 defaultValueCreator:(bindable) =>
391 var button = (Button)bindable;
392 Color temp = new Color(0.0f, 0.0f, 0.0f, 0.0f);
393 Tizen.NUI.PropertyMap map = new Tizen.NUI.PropertyMap();
394 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.SELECTED_BACKGROUND_VISUAL).Get(map);
395 Tizen.NUI.PropertyValue value = map.Find( Visual.Property.MixColor);
399 /// This will be deprecated
400 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
401 [EditorBrowsable(EditorBrowsableState.Never)]
402 public static readonly BindableProperty LabelProperty = BindableProperty.Create(nameof(Label), typeof(PropertyMap), typeof(Button), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
404 var button = (Button)bindable;
405 if (newValue != null)
407 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.LABEL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
410 defaultValueCreator:(bindable) =>
412 var button = (Button)bindable;
413 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
414 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.LABEL).Get(temp);
417 /// This will be deprecated
418 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
419 [EditorBrowsable(EditorBrowsableState.Never)]
420 public static readonly BindableProperty LabelTextProperty = BindableProperty.Create(nameof(LabelText), typeof(string), typeof(Button), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
422 var button = (Button)bindable;
423 if (newValue != null)
425 Tizen.NUI.Object.SetProperty(button.swigCPtr, Button.Property.LABEL, new Tizen.NUI.PropertyValue((string)newValue));
428 defaultValueCreator:(bindable) =>
430 var button = (Button)bindable;
431 Tizen.NUI.PropertyMap map = new Tizen.NUI.PropertyMap();
432 Tizen.NUI.Object.GetProperty(button.swigCPtr, Button.Property.LABEL).Get(map);
433 Tizen.NUI.PropertyValue value = map.Find( TextVisualProperty.Text, "Text");
439 private EventHandlerWithReturnType<object, EventArgs, bool> _clickedEventHandler;
440 private ClickedCallbackType _clickedCallback;
441 private EventHandlerWithReturnType<object, EventArgs, bool> _pressedEventHandler;
442 private PressedCallbackType _pressedCallback;
443 private EventHandlerWithReturnType<object, EventArgs, bool> _releasedEventHandler;
444 private ReleasedCallbackType _releasedCallback;
445 private EventHandlerWithReturnType<object, EventArgs, bool> _stateChangedEventHandler;
446 private StateChangedCallback _stateChangedCallback;
449 /// Creates an uninitialized button.<br />
450 /// Only the derived versions can be instantiated.<br />
452 /// <since_tizen> 3 </since_tizen>
453 /// This will be deprecated
454 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
455 [EditorBrowsable(EditorBrowsableState.Never)]
456 public Button() : this(Interop.Button.new_Button__SWIG_0(), true)
458 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
461 internal Button(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.Button.Button_SWIGUpcast(cPtr), cMemoryOwn)
465 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
466 private delegate bool ClickedCallbackType(global::System.IntPtr data);
467 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
468 private delegate bool PressedCallbackType(global::System.IntPtr data);
469 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
470 private delegate bool ReleasedCallbackType(global::System.IntPtr data);
471 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
472 private delegate bool StateChangedCallback(global::System.IntPtr data);
475 /// The Clicked event will be triggered when the button is touched and the touch point doesn't leave the boundary of the button.
477 /// <since_tizen> 3 </since_tizen>
478 /// This will be deprecated
479 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
480 [EditorBrowsable(EditorBrowsableState.Never)]
481 public event EventHandlerWithReturnType<object, EventArgs, bool> Clicked
485 if (_clickedEventHandler == null)
487 _clickedCallback = OnClicked;
488 ClickedSignal().Connect(_clickedCallback);
491 _clickedEventHandler += value;
496 _clickedEventHandler -= value;
498 if (_clickedEventHandler == null && ClickedSignal().Empty() == false)
500 ClickedSignal().Disconnect(_clickedCallback);
506 /// The Pressed event will be triggered when the button is touched.
508 /// <since_tizen> 3 </since_tizen>
509 /// This will be deprecated
510 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
511 [EditorBrowsable(EditorBrowsableState.Never)]
512 public event EventHandlerWithReturnType<object, EventArgs, bool> Pressed
516 if (_pressedEventHandler == null)
518 _pressedCallback = OnPressed;
519 PressedSignal().Connect(_pressedCallback);
522 _pressedEventHandler += value;
527 _pressedEventHandler -= value;
529 if (_pressedEventHandler == null && PressedSignal().Empty() == false)
531 this.PressedSignal().Disconnect(_pressedCallback);
537 /// The Released event will be triggered when the button is touched and the touch point leaves the boundary of the button.
539 /// <since_tizen> 3 </since_tizen>
540 /// This will be deprecated
541 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
542 [EditorBrowsable(EditorBrowsableState.Never)]
543 public event EventHandlerWithReturnType<object, EventArgs, bool> Released
547 if (_releasedEventHandler == null)
549 _releasedCallback = OnReleased;
550 ReleasedSignal().Connect(_releasedCallback);
552 _releasedEventHandler += value;
557 _releasedEventHandler -= value;
559 if (_releasedEventHandler == null && ReleasedSignal().Empty() == false)
561 ReleasedSignal().Disconnect(_releasedCallback);
568 /// The StateChanged event will be triggered when the button's state is changed.
570 /// <since_tizen> 3 </since_tizen>
571 /// This will be deprecated
572 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
573 [EditorBrowsable(EditorBrowsableState.Never)]
574 public event EventHandlerWithReturnType<object, EventArgs, bool> StateChanged
578 if (_stateChangedEventHandler == null)
580 _stateChangedCallback = OnStateChanged;
581 StateChangedSignal().Connect(_stateChangedCallback);
584 _stateChangedEventHandler += value;
589 _stateChangedEventHandler -= value;
591 if (_stateChangedEventHandler == null && StateChangedSignal().Empty() == false)
593 StateChangedSignal().Disconnect(_stateChangedCallback);
599 /// Enumeration for describing the position, the text label can be, in relation to the control (and foreground/icon).
601 /// <since_tizen> 3 </since_tizen>
602 /// This will be deprecated
603 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
604 [EditorBrowsable(EditorBrowsableState.Never)]
608 /// At the start of the control before the foreground or icon.
612 /// At the end of the control after the foreground or icon.
616 /// At the top of the control above the foreground or icon.
620 /// At the bottom of the control below the foreground or icon.
626 /// Gets or sets the unselected button foreground or icon visual.
628 /// <since_tizen> 3 </since_tizen>
629 /// This will be deprecated
630 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
631 [EditorBrowsable(EditorBrowsableState.Never)]
632 public Tizen.NUI.PropertyMap UnselectedVisual
636 return (PropertyMap)GetValue(UnselectedVisualProperty);
640 SetValue(UnselectedVisualProperty, value);
645 /// Gets or sets the selected button foreground or icon visual.
647 /// <since_tizen> 3 </since_tizen>
648 /// This will be deprecated
649 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
650 [EditorBrowsable(EditorBrowsableState.Never)]
651 public Tizen.NUI.PropertyMap SelectedVisual
655 return (PropertyMap)GetValue(SelectedVisualProperty);
659 SetValue(SelectedVisualProperty, value);
664 /// Gets or sets the disabled selected state foreground or icon button visual.
666 /// <since_tizen> 3 </since_tizen>
667 /// This will be deprecated
668 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
669 [EditorBrowsable(EditorBrowsableState.Never)]
670 public Tizen.NUI.PropertyMap DisabledSelectedVisual
674 return (PropertyMap)GetValue(DisabledSelectedVisualProperty);
678 SetValue(DisabledSelectedVisualProperty, value);
683 /// Gets or sets the disabled unselected state foreground or icon visual.
685 /// <since_tizen> 3 </since_tizen>
686 /// This will be deprecated
687 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
688 [EditorBrowsable(EditorBrowsableState.Never)]
689 public Tizen.NUI.PropertyMap DisabledUnselectedVisual
693 return (PropertyMap)GetValue(DisabledUnselectedVisualProperty);
697 SetValue(DisabledUnselectedVisualProperty, value);
702 /// Gets or sets the disabled unselected state background button visual.
704 /// <since_tizen> 3 </since_tizen>
705 /// This will be deprecated
706 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
707 [EditorBrowsable(EditorBrowsableState.Never)]
708 public Tizen.NUI.PropertyMap UnselectedBackgroundVisual
712 return (PropertyMap)GetValue(UnselectedBackgroundVisualProperty);
716 SetValue(UnselectedBackgroundVisualProperty, value);
721 /// Gets or sets the selected background button visual.
723 /// <since_tizen> 3 </since_tizen>
724 /// This will be deprecated
725 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
726 [EditorBrowsable(EditorBrowsableState.Never)]
727 public Tizen.NUI.PropertyMap SelectedBackgroundVisual
731 return (PropertyMap)GetValue(SelectedBackgroundVisualProperty);
735 SetValue(SelectedBackgroundVisualProperty, value);
740 /// Gets or sets the disabled while unselected background button visual.
742 /// <since_tizen> 3 </since_tizen>
743 /// This will be deprecated
744 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
745 [EditorBrowsable(EditorBrowsableState.Never)]
746 public Tizen.NUI.PropertyMap DisabledUnselectedBackgroundVisual
750 return (PropertyMap)GetValue(DisabledUnselectedBackgroundVisualProperty);
754 SetValue(DisabledUnselectedBackgroundVisualProperty, value);
759 /// Gets or sets the disabled while selected background button visual.
761 /// <since_tizen> 3 </since_tizen>
762 /// This will be deprecated
763 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
764 [EditorBrowsable(EditorBrowsableState.Never)]
765 public Tizen.NUI.PropertyMap DisabledSelectedBackgroundVisual
769 return (PropertyMap)GetValue(DisabledSelectedBackgroundVisualProperty);
773 SetValue(DisabledSelectedBackgroundVisualProperty, value);
778 /// Gets or sets the position of the the label in relation to the foreground or icon, if both present.
780 /// <since_tizen> 3 </since_tizen>
781 /// This will be deprecated
782 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
783 [EditorBrowsable(EditorBrowsableState.Never)]
784 public Align LabelRelativeAlignment
788 return (Align)GetValue(LabelRelativeAlignmentProperty);
792 SetValue(LabelRelativeAlignmentProperty, value);
797 /// Gets or sets the padding around the text.
799 /// <since_tizen> 3 </since_tizen>
800 /// This will be deprecated
801 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
802 [EditorBrowsable(EditorBrowsableState.Never)]
803 public Vector4 LabelPadding
807 return (Vector4)GetValue(LabelPaddingProperty);
811 SetValue(LabelPaddingProperty, value);
816 /// Gets or sets the padding around the foreground visual.
818 /// <since_tizen> 3 </since_tizen>
819 /// This will be deprecated
820 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
821 [EditorBrowsable(EditorBrowsableState.Never)]
822 public Vector4 ForegroundVisualPadding
826 return (Vector4)GetValue(ForegroundVisualPaddingProperty);
830 SetValue(ForegroundVisualPaddingProperty, value);
835 /// If the autorepeating property is set to true, then the togglable property is set to false.
837 /// <since_tizen> 3 </since_tizen>
838 /// This will be deprecated
839 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
840 [EditorBrowsable(EditorBrowsableState.Never)]
841 public bool AutoRepeating
845 return (bool)GetValue(AutoRepeatingProperty);
849 SetValue(AutoRepeatingProperty, value);
854 /// By default, this value is set to 0.15 seconds.
856 /// <since_tizen> 3 </since_tizen>
857 /// This will be deprecated
858 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
859 [EditorBrowsable(EditorBrowsableState.Never)]
860 public float InitialAutoRepeatingDelay
864 return (float)GetValue(InitialAutoRepeatingDelayProperty);
868 SetValue(InitialAutoRepeatingDelayProperty, value);
873 /// By default, this value is set to 0.05 seconds.
875 /// <since_tizen> 3 </since_tizen>
876 /// This will be deprecated
877 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
878 [EditorBrowsable(EditorBrowsableState.Never)]
879 public float NextAutoRepeatingDelay
883 return (float)GetValue(NextAutoRepeatingDelayProperty);
887 SetValue(NextAutoRepeatingDelayProperty, value);
892 /// If the togglable property is set to true, then the autorepeating property is set to false.
894 /// <since_tizen> 3 </since_tizen>
895 /// This will be deprecated
896 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
897 [EditorBrowsable(EditorBrowsableState.Never)]
898 public bool Togglable
902 return (bool)GetValue(TogglableProperty);
906 SetValue(TogglableProperty, value);
911 /// Gets or sets the togglable button as either selected or unselected, togglable property must be set to true.
913 /// <since_tizen> 3 </since_tizen>
914 /// This will be deprecated
915 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
916 [EditorBrowsable(EditorBrowsableState.Never)]
921 return (bool)GetValue(SelectedProperty);
925 SetValue(SelectedProperty, value);
930 /// Gets or sets the unselected color.
932 /// <since_tizen> 3 </since_tizen>
933 /// This will be deprecated
934 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
935 [EditorBrowsable(EditorBrowsableState.Never)]
936 public Color UnselectedColor
940 return (Color)GetValue(UnselectedColorProperty);
944 SetValue(UnselectedColorProperty, value);
949 /// Gets or sets the selected color.
951 /// <since_tizen> 3 </since_tizen>
952 /// This will be deprecated
953 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
954 [EditorBrowsable(EditorBrowsableState.Never)]
955 public Color SelectedColor
959 return (Color)GetValue(SelectedColorProperty);
963 SetValue(SelectedColorProperty, value);
968 /// Gets or sets the label.
970 /// <since_tizen> 3 </since_tizen>
971 /// This will be deprecated
972 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
973 [EditorBrowsable(EditorBrowsableState.Never)]
974 public Tizen.NUI.PropertyMap Label
978 return (PropertyMap)GetValue(LabelProperty);
982 SetValue(LabelProperty, value);
987 /// Gets or sets the text of the label.
989 /// <since_tizen> 3 </since_tizen>
990 /// This will be deprecated
991 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
992 [EditorBrowsable(EditorBrowsableState.Never)]
993 public string LabelText
997 return (string)GetValue(LabelTextProperty);
1001 SetValue(LabelTextProperty, value);
1005 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Button obj)
1007 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
1010 internal ButtonSignal PressedSignal()
1012 ButtonSignal ret = new ButtonSignal(Interop.Button.Button_PressedSignal(swigCPtr), false);
1013 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1017 internal ButtonSignal ReleasedSignal()
1019 ButtonSignal ret = new ButtonSignal(Interop.Button.Button_ReleasedSignal(swigCPtr), false);
1020 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1024 internal ButtonSignal ClickedSignal()
1026 ButtonSignal ret = new ButtonSignal(Interop.Button.Button_ClickedSignal(swigCPtr), false);
1027 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1031 internal ButtonSignal StateChangedSignal()
1033 ButtonSignal ret = new ButtonSignal(Interop.Button.Button_StateChangedSignal(swigCPtr), false);
1034 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1039 /// To dispose the button instance.
1041 /// <since_tizen> 3 </since_tizen>
1042 /// This will be deprecated
1043 [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
1044 [EditorBrowsable(EditorBrowsableState.Never)]
1045 protected override void Dispose(DisposeTypes type)
1052 //Release your own unmanaged resources here.
1053 //You should not access any managed member here except static instance.
1054 //because the execution order of Finalizes is non-deterministic.
1057 DisConnectFromSignals();
1063 /// This will not be public opened.
1064 [EditorBrowsable(EditorBrowsableState.Never)]
1065 protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
1067 Interop.Button.delete_Button(swigCPtr);
1070 private void DisConnectFromSignals()
1072 // Save current CPtr.
1073 global::System.Runtime.InteropServices.HandleRef currentCPtr = swigCPtr;
1075 // Use BaseHandle CPtr as current might have been deleted already in derived classes.
1076 swigCPtr = GetBaseHandleCPtrHandleRef;
1078 if (_stateChangedCallback != null)
1080 StateChangedSignal().Disconnect(_stateChangedCallback);
1083 if (_releasedCallback != null)
1085 ReleasedSignal().Disconnect(_releasedCallback);
1088 if (_pressedCallback != null)
1090 this.PressedSignal().Disconnect(_pressedCallback);
1093 if (_clickedCallback != null)
1095 ClickedSignal().Disconnect(_clickedCallback);
1098 // BaseHandle CPtr is used in Registry and there is danger of deletion if we keep using it here.
1099 // Restore current CPtr.
1100 swigCPtr = currentCPtr;
1103 private bool OnClicked(IntPtr data)
1105 if (_clickedEventHandler != null)
1107 return _clickedEventHandler(this, null);
1112 private bool OnPressed(IntPtr data)
1114 if (_pressedEventHandler != null)
1116 return _pressedEventHandler(this, null);
1121 private bool OnReleased(IntPtr data)
1123 if (_releasedEventHandler != null)
1125 return _releasedEventHandler(this, null);
1130 private bool OnStateChanged(IntPtr data)
1132 if (_stateChangedEventHandler != null)
1134 return _stateChangedEventHandler(this, null);
1139 internal new class Property
1141 internal static readonly int UNSELECTED_VISUAL = Interop.Button.Button_Property_UNSELECTED_VISUAL_get();
1142 internal static readonly int SELECTED_VISUAL = Interop.Button.Button_Property_SELECTED_VISUAL_get();
1143 internal static readonly int DISABLED_SELECTED_VISUAL = Interop.Button.Button_Property_DISABLED_SELECTED_VISUAL_get();
1144 internal static readonly int DISABLED_UNSELECTED_VISUAL = Interop.Button.Button_Property_DISABLED_UNSELECTED_VISUAL_get();
1145 internal static readonly int UNSELECTED_BACKGROUND_VISUAL = Interop.Button.Button_Property_UNSELECTED_BACKGROUND_VISUAL_get();
1146 internal static readonly int SELECTED_BACKGROUND_VISUAL = Interop.Button.Button_Property_SELECTED_BACKGROUND_VISUAL_get();
1147 internal static readonly int DISABLED_UNSELECTED_BACKGROUND_VISUAL = Interop.Button.Button_Property_DISABLED_UNSELECTED_BACKGROUND_VISUAL_get();
1148 internal static readonly int DISABLED_SELECTED_BACKGROUND_VISUAL = Interop.Button.Button_Property_DISABLED_SELECTED_BACKGROUND_VISUAL_get();
1149 internal static readonly int LABEL_RELATIVE_ALIGNMENT = Interop.Button.Button_Property_LABEL_RELATIVE_ALIGNMENT_get();
1150 internal static readonly int LABEL_PADDING = Interop.Button.Button_Property_LABEL_PADDING_get();
1151 internal static readonly int FOREGROUND_VISUAL_PADDING = Interop.Button.Button_Property_VISUAL_PADDING_get();
1152 internal static readonly int AUTO_REPEATING = Interop.Button.Button_Property_AUTO_REPEATING_get();
1153 internal static readonly int INITIAL_AUTO_REPEATING_DELAY = Interop.Button.Button_Property_INITIAL_AUTO_REPEATING_DELAY_get();
1154 internal static readonly int NEXT_AUTO_REPEATING_DELAY = Interop.Button.Button_Property_NEXT_AUTO_REPEATING_DELAY_get();
1155 internal static readonly int TOGGLABLE = Interop.Button.Button_Property_TOGGLABLE_get();
1156 internal static readonly int SELECTED = Interop.Button.Button_Property_SELECTED_get();
1157 internal static readonly int LABEL = Interop.Button.Button_Property_LABEL_get();