1 // Copyright (c) 2017 Samsung Electronics Co., Ltd.
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
16 // This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts
17 // Some have been manually changed
19 namespace Tizen.NUI.UIComponents
23 using System.Runtime.InteropServices;
24 using Tizen.NUI.BaseComponents;
27 /// Button is a base class for different kinds of buttons.<br>
28 /// This class provides the disabled property and the clicked signal.<br>
29 /// A Clicked event handler is emitted when the button is touched and the touch point doesn't leave the boundary of the button.<br>
30 /// When the disabled property is set to true, no signal is emitted.<br>
31 /// 'Visual' describes not just traditional images like png, bmp but refers to whatever is used to show the button, it could be a color, gradient or some other kind of renderer.<br>
32 /// The button's appearance can be modified by setting properties for the various visuals/images.<br>
33 /// It is not mandatory to set all visuals. A button could be defined only by setting its background visual or by setting its background and selected visuals.<br>
34 /// The button visual is shown over the background visual.<br>
35 /// When pressed the unselected visuals are replaced by the selected visual.<br>
36 /// The text label is always placed on the top of all images.<br>
37 /// When the button is disabled, background, button and selected visuals are replaced by their disabled visuals.<br>
39 public class Button : View
41 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
43 internal Button(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Button_SWIGUpcast(cPtr), cMemoryOwn)
45 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
48 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Button obj)
50 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
54 /// To make Button instance be disposed.
56 protected override void Dispose(DisposeTypes type)
63 if (type == DisposeTypes.Explicit)
66 //Release your own managed resources here.
67 //You should release all of your own disposable objects here.
71 //Release your own unmanaged resources here.
72 //You should not access any managed member here except static instance.
73 //because the execution order of Finalizes is non-deterministic.
75 if (swigCPtr.Handle != global::System.IntPtr.Zero)
81 //Unreference this instance from Registry.
82 Registry.Unregister(this);
84 NDalicPINVOKE.delete_Button(swigCPtr);
86 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
93 private EventHandlerWithReturnType<object, EventArgs, bool> _clickedEventHandler;
94 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
95 private delegate bool ClickedCallbackType(global::System.IntPtr data);
96 private ClickedCallbackType _clickedCallback;
99 /// Clicked will be triggered when the button is touched and the touch point doesn't leave the boundary of the button.
101 public event EventHandlerWithReturnType<object, EventArgs, bool> Clicked
105 if (_clickedEventHandler == null)
107 _clickedCallback = OnClicked;
108 ClickedSignal().Connect(_clickedCallback);
111 _clickedEventHandler += value;
116 _clickedEventHandler -= value;
118 if (_clickedEventHandler == null && ClickedSignal().Empty() == false)
120 ClickedSignal().Disconnect(_clickedCallback);
126 private bool OnClicked(IntPtr data)
128 if (_clickedEventHandler != null)
130 return _clickedEventHandler(this, null);
137 private EventHandlerWithReturnType<object, EventArgs, bool> _pressedEventHandler;
138 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
139 private delegate bool PressedCallbackType(global::System.IntPtr data);
140 private PressedCallbackType _pressedCallback;
143 /// Pressed will be triggered when the button is touched.
145 public event EventHandlerWithReturnType<object, EventArgs, bool> Pressed
149 if (_pressedEventHandler == null)
151 _pressedCallback = OnPressed;
152 PressedSignal().Connect(_pressedCallback);
155 _pressedEventHandler += value;
160 _pressedEventHandler -= value;
162 if (_pressedEventHandler == null && PressedSignal().Empty() == false)
164 this.PressedSignal().Disconnect(_pressedCallback);
169 private bool OnPressed(IntPtr data)
171 if (_pressedEventHandler != null)
173 return _pressedEventHandler(this, null);
180 private EventHandlerWithReturnType<object, EventArgs, bool> _releasedEventHandler;
181 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
182 private delegate bool ReleasedCallbackType(global::System.IntPtr data);
183 private ReleasedCallbackType _releasedCallback;
186 /// Released will be triggered when the button is touched and the touch point leaves the boundary of the button.
188 public event EventHandlerWithReturnType<object, EventArgs, bool> Released
192 if (_releasedEventHandler == null)
194 _releasedCallback = OnReleased;
195 ReleasedSignal().Connect(_releasedCallback);
197 _releasedEventHandler += value;
202 _releasedEventHandler -= value;
204 if (_releasedEventHandler == null && ReleasedSignal().Empty() == false)
206 ReleasedSignal().Disconnect(_releasedCallback);
212 private bool OnReleased(IntPtr data)
214 if (_releasedEventHandler != null)
216 return _releasedEventHandler(this, null);
222 private EventHandlerWithReturnType<object, EventArgs, bool> _stateChangedEventHandler;
223 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
224 private delegate bool StateChangedCallback(global::System.IntPtr data);
225 private StateChangedCallback _stateChangedCallback;
228 /// StateChanged will be triggered when the button's state is changed.
230 public event EventHandlerWithReturnType<object, EventArgs, bool> StateChanged
234 if (_stateChangedEventHandler == null)
236 _stateChangedCallback = OnStateChanged;
237 StateChangedSignal().Connect(_stateChangedCallback);
240 _stateChangedEventHandler += value;
245 _stateChangedEventHandler -= value;
247 if (_stateChangedEventHandler == null && StateChangedSignal().Empty() == false)
249 StateChangedSignal().Disconnect(_stateChangedCallback);
254 private bool OnStateChanged(IntPtr data)
256 if (_stateChangedEventHandler != null)
258 return _stateChangedEventHandler(this, null);
265 /// Gets/Sets the unselected button foreground/icon visual
267 public Tizen.NUI.PropertyMap UnselectedVisual
271 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
272 GetProperty(Button.Property.UNSELECTED_VISUAL).Get(temp);
277 SetProperty(Button.Property.UNSELECTED_VISUAL, new Tizen.NUI.PropertyValue(value));
282 /// Gets/Sets the selected button foreground/icon visual
284 public Tizen.NUI.PropertyMap SelectedVisual
288 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
289 GetProperty(Button.Property.SELECTED_VISUAL).Get(temp);
294 SetProperty(Button.Property.SELECTED_VISUAL, new Tizen.NUI.PropertyValue(value));
299 /// Gets/Sets the disabled selected state foreground/icon button visual
301 public Tizen.NUI.PropertyMap DisabledSelectedVisual
305 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
306 GetProperty(Button.Property.DISABLED_SELECTED_VISUAL).Get(temp);
311 SetProperty(Button.Property.DISABLED_SELECTED_VISUAL, new Tizen.NUI.PropertyValue(value));
316 /// Gets/Sets the disabled unselected state foreground/icon visual
318 public Tizen.NUI.PropertyMap DisabledUnselectedVisual
322 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
323 GetProperty(Button.Property.DISABLED_UNSELECTED_VISUAL).Get(temp);
328 SetProperty(Button.Property.DISABLED_UNSELECTED_VISUAL, new Tizen.NUI.PropertyValue(value));
333 /// Gets/Sets the disabled in the unselected state background, button visual
335 public Tizen.NUI.PropertyMap UnselectedBackgroundVisual
339 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
340 GetProperty(Button.Property.UNSELECTED_BACKGROUND_VISUAL).Get(temp);
345 SetProperty(Button.Property.UNSELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue(value));
350 /// Gets/Sets the selected background button visual
352 public Tizen.NUI.PropertyMap SelectedBackgroundVisual
356 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
357 GetProperty(Button.Property.SELECTED_BACKGROUND_VISUAL).Get(temp);
362 SetProperty(Button.Property.SELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue(value));
367 /// Gets/Sets the disabled while unselected background button visual
369 public Tizen.NUI.PropertyMap DisabledUnselectedBackgroundVisual
373 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
374 GetProperty(Button.Property.DISABLED_UNSELECTED_BACKGROUND_VISUAL).Get(temp);
379 SetProperty(Button.Property.DISABLED_UNSELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue(value));
384 /// Gets/Sets the disabled while selected background button visual
386 public Tizen.NUI.PropertyMap DisabledSelectedBackgroundVisual
390 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
391 GetProperty(Button.Property.DISABLED_SELECTED_BACKGROUND_VISUAL).Get(temp);
396 SetProperty(Button.Property.DISABLED_SELECTED_BACKGROUND_VISUAL, new Tizen.NUI.PropertyValue(value));
401 /// Gets/Sets the position of the the label in relation to the foreground/icon if both present
403 public Align LabelRelativeAlignment
408 if (GetProperty(Button.Property.LABEL_RELATIVE_ALIGNMENT).Get(out temp) == false)
410 NUILog.Error("LabelRelativeAlignment get error!");
428 string valueToString = "";
433 valueToString = "BEGIN";
438 valueToString = "END";
443 valueToString = "TOP";
448 valueToString = "BOTTOM";
453 valueToString = "END";
457 SetProperty(Button.Property.LABEL_RELATIVE_ALIGNMENT, new Tizen.NUI.PropertyValue(valueToString));
462 /// Gets/Sets the padding around the text
464 public Vector4 LabelPadding
468 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
469 GetProperty(Button.Property.LABEL_PADDING).Get(temp);
474 SetProperty(Button.Property.LABEL_PADDING, new Tizen.NUI.PropertyValue(value));
479 /// Gets/Sets the padding around the foreground visual
481 public Vector4 ForegroundVisualPadding
485 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
486 GetProperty(Button.Property.FOREGROUND_VISUAL_PADDING).Get(temp);
491 SetProperty(Button.Property.FOREGROUND_VISUAL_PADDING, new Tizen.NUI.PropertyValue(value));
495 internal class Property
497 internal static readonly int UNSELECTED_VISUAL = NDalicManualPINVOKE.Button_Property_UNSELECTED_VISUAL_get();
498 internal static readonly int SELECTED_VISUAL = NDalicManualPINVOKE.Button_Property_SELECTED_VISUAL_get();
499 internal static readonly int DISABLED_SELECTED_VISUAL = NDalicManualPINVOKE.Button_Property_DISABLED_SELECTED_VISUAL_get();
500 internal static readonly int DISABLED_UNSELECTED_VISUAL = NDalicManualPINVOKE.Button_Property_DISABLED_UNSELECTED_VISUAL_get();
501 internal static readonly int UNSELECTED_BACKGROUND_VISUAL = NDalicManualPINVOKE.Button_Property_UNSELECTED_BACKGROUND_VISUAL_get();
502 internal static readonly int SELECTED_BACKGROUND_VISUAL = NDalicManualPINVOKE.Button_Property_SELECTED_BACKGROUND_VISUAL_get();
503 internal static readonly int DISABLED_UNSELECTED_BACKGROUND_VISUAL = NDalicManualPINVOKE.Button_Property_DISABLED_UNSELECTED_BACKGROUND_VISUAL_get();
504 internal static readonly int DISABLED_SELECTED_BACKGROUND_VISUAL = NDalicManualPINVOKE.Button_Property_DISABLED_SELECTED_BACKGROUND_VISUAL_get();
505 internal static readonly int LABEL_RELATIVE_ALIGNMENT = NDalicManualPINVOKE.Button_Property_LABEL_RELATIVE_ALIGNMENT_get();
506 internal static readonly int LABEL_PADDING = NDalicManualPINVOKE.Button_Property_LABEL_PADDING_get();
507 internal static readonly int FOREGROUND_VISUAL_PADDING = NDalicManualPINVOKE.Button_Property_VISUAL_PADDING_get();
508 internal static readonly int AUTO_REPEATING = NDalicPINVOKE.Button_Property_AUTO_REPEATING_get();
509 internal static readonly int INITIAL_AUTO_REPEATING_DELAY = NDalicPINVOKE.Button_Property_INITIAL_AUTO_REPEATING_DELAY_get();
510 internal static readonly int NEXT_AUTO_REPEATING_DELAY = NDalicPINVOKE.Button_Property_NEXT_AUTO_REPEATING_DELAY_get();
511 internal static readonly int TOGGLABLE = NDalicPINVOKE.Button_Property_TOGGLABLE_get();
512 internal static readonly int SELECTED = NDalicPINVOKE.Button_Property_SELECTED_get();
513 internal static readonly int UNSELECTED_COLOR = NDalicPINVOKE.Button_Property_UNSELECTED_COLOR_get();
514 internal static readonly int SELECTED_COLOR = NDalicPINVOKE.Button_Property_SELECTED_COLOR_get();
515 internal static readonly int LABEL = NDalicPINVOKE.Button_Property_LABEL_get();
519 /// Creates an uninitialized Button.<br>
520 /// Only derived versions can be instantiated.<br>
522 public Button() : this(NDalicPINVOKE.new_Button__SWIG_0(), true)
524 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
527 internal ButtonSignal PressedSignal()
529 ButtonSignal ret = new ButtonSignal(NDalicPINVOKE.Button_PressedSignal(swigCPtr), false);
530 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
534 internal ButtonSignal ReleasedSignal()
536 ButtonSignal ret = new ButtonSignal(NDalicPINVOKE.Button_ReleasedSignal(swigCPtr), false);
537 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
541 internal ButtonSignal ClickedSignal()
543 ButtonSignal ret = new ButtonSignal(NDalicPINVOKE.Button_ClickedSignal(swigCPtr), false);
544 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
548 internal ButtonSignal StateChangedSignal()
550 ButtonSignal ret = new ButtonSignal(NDalicPINVOKE.Button_StateChangedSignal(swigCPtr), false);
551 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
556 /// If the autorepeating property is set to true then the togglable property is set to false.
558 public bool AutoRepeating
563 GetProperty(Button.Property.AUTO_REPEATING).Get(out temp);
568 SetProperty(Button.Property.AUTO_REPEATING, new Tizen.NUI.PropertyValue(value));
573 /// By default this value is set to 0.15 seconds.
575 public float InitialAutoRepeatingDelay
580 GetProperty(Button.Property.INITIAL_AUTO_REPEATING_DELAY).Get(out temp);
585 SetProperty(Button.Property.INITIAL_AUTO_REPEATING_DELAY, new Tizen.NUI.PropertyValue(value));
590 /// default this value is set to 0.05 seconds.
592 public float NextAutoRepeatingDelay
597 GetProperty(Button.Property.NEXT_AUTO_REPEATING_DELAY).Get(out temp);
602 SetProperty(Button.Property.NEXT_AUTO_REPEATING_DELAY, new Tizen.NUI.PropertyValue(value));
607 /// If the togglable property is set to true, then the autorepeating property is set to false.
609 public bool Togglable
614 GetProperty(Button.Property.TOGGLABLE).Get(out temp);
619 SetProperty(Button.Property.TOGGLABLE, new Tizen.NUI.PropertyValue(value));
624 /// /Gets/Sets the togglable button as either selected or unselected, togglable property must be set to true.
631 GetProperty(Button.Property.SELECTED).Get(out temp);
636 SetProperty(Button.Property.SELECTED, new Tizen.NUI.PropertyValue(value));
641 /// Gets/Sets unselected color.
643 public Color UnselectedColor
647 Color temp = new Color(0.0f, 0.0f, 0.0f, 0.0f);
648 GetProperty(Button.Property.UNSELECTED_COLOR).Get(temp);
653 SetProperty(Button.Property.UNSELECTED_COLOR, new Tizen.NUI.PropertyValue(value));
658 /// Gets/Sets selected color.
660 public Color SelectedColor
664 Color temp = new Color(0.0f, 0.0f, 0.0f, 0.0f);
665 GetProperty(Button.Property.SELECTED_COLOR).Get(temp);
670 SetProperty(Button.Property.SELECTED_COLOR, new Tizen.NUI.PropertyValue(value));
677 public Tizen.NUI.PropertyMap Label
681 Tizen.NUI.PropertyMap temp = new Tizen.NUI.PropertyMap();
682 GetProperty(Button.Property.LABEL).Get(temp);
687 SetProperty(Button.Property.LABEL, new Tizen.NUI.PropertyValue(value));
692 /// Gets/Sets text of label.
694 public string LabelText
698 Tizen.NUI.PropertyMap map = new Tizen.NUI.PropertyMap();
699 GetProperty( Button.Property.LABEL).Get(map);
700 Tizen.NUI.PropertyValue value = map.Find( TextVisualProperty.Text, "Text");
707 SetProperty( Button.Property.LABEL, new Tizen.NUI.PropertyValue( value ) );
712 /// Enumeration for describing the position the text label can be in relation to the control(and foreground/icon).
717 /// At the start of the control before the foreground/icon
721 /// At the end of the control after the foreground/icon
725 /// At the top of the control above the foreground/icon
729 /// At the bottom of the control below the foreground/icon