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.
17 namespace Tizen.NUI.UIComponents
21 using System.Runtime.InteropServices;
22 using Tizen.NUI.BaseComponents;
25 /// The Popup widget provides a configurable pop-up dialog with built-in layout of three main fields.
27 public class Popup : View
29 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
31 internal Popup(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Popup_SWIGUpcast(cPtr), cMemoryOwn)
33 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
36 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Popup obj)
38 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
42 protected override void Dispose(DisposeTypes type)
49 if (type == DisposeTypes.Explicit)
52 //Release your own managed resources here.
53 //You should release all of your own disposable objects here.
57 //Release your own unmanaged resources here.
58 //You should not access any managed member here except static instance.
59 //because the execution order of Finalizes is non-deterministic.
61 if (swigCPtr.Handle != global::System.IntPtr.Zero)
67 //Unreference this instance from Registry.
68 Registry.Unregister(this);
70 NDalicPINVOKE.delete_Popup(swigCPtr);
72 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
82 /// Event arguments that passed via OutsideTouchedEvent
84 public class TouchedOutsideEventArgs : EventArgs
89 /// Event arguments that passed via ShowingEventArgs
91 public class ShowingEventArgs : EventArgs
96 /// Event arguments that passed via ShownEventArgs
98 public class ShownEventArgs : EventArgs
103 /// Event arguments that passed via HidingEventArgs
105 public class HidingEventArgs : EventArgs
110 /// Event arguments that passed via HiddenEventArgs
112 public class HiddenEventArgs : EventArgs
116 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
117 private delegate void OutsideTouchedEventCallbackDelegate();
118 private EventHandler<TouchedOutsideEventArgs> _popUpOutsideTouchedEventHandler;
119 private OutsideTouchedEventCallbackDelegate _popUpOutsideTouchedEventCallbackDelegate;
121 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
122 private delegate void ShowingEventCallbackDelegate();
123 private EventHandler<ShowingEventArgs> _popUpShowingEventHandler;
124 private ShowingEventCallbackDelegate _popUpShowingEventCallbackDelegate;
126 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
127 private delegate void ShownEventCallbackDelegate();
128 private EventHandler<ShownEventArgs> _popUpShownEventHandler;
129 private ShownEventCallbackDelegate _popUpShownEventCallbackDelegate;
131 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
132 private delegate void HidingEventCallbackDelegate();
133 private EventHandler<HidingEventArgs> _popUpHidingEventHandler;
134 private HidingEventCallbackDelegate _popUpHidingEventCallbackDelegate;
136 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
137 private delegate void HiddenEventCallbackDelegate();
138 private EventHandler<HiddenEventArgs> _popUpHiddenEventHandler;
139 private HiddenEventCallbackDelegate _popUpHiddenEventCallbackDelegate;
142 /// Event is sent when user has touched outside of the Dialog.
144 public event EventHandler<TouchedOutsideEventArgs> TouchedOutside
148 if (_popUpOutsideTouchedEventHandler == null)
150 _popUpOutsideTouchedEventCallbackDelegate = (OnOutsideTouched);
151 OutsideTouchedSignal().Connect(_popUpOutsideTouchedEventCallbackDelegate);
153 _popUpOutsideTouchedEventHandler += value;
157 _popUpOutsideTouchedEventHandler -= value;
158 if (_popUpOutsideTouchedEventHandler == null && OutsideTouchedSignal().Empty() == false)
160 this.OutsideTouchedSignal().Disconnect(_popUpOutsideTouchedEventCallbackDelegate);
165 // Callback for Popup OutsideTouchedSignal
166 private void OnOutsideTouched()
168 TouchedOutsideEventArgs e = new TouchedOutsideEventArgs();
170 if (_popUpOutsideTouchedEventHandler != null)
172 //here we send all data to user event handlers
173 _popUpOutsideTouchedEventHandler(this, e);
178 /// Event is sent when the Popup is starting to be shown.
180 public event EventHandler<ShowingEventArgs> Showing
184 if (_popUpShowingEventHandler == null)
186 _popUpShowingEventCallbackDelegate = (OnShowing);
187 ShowingSignal().Connect(_popUpShowingEventCallbackDelegate);
189 _popUpShowingEventHandler += value;
193 _popUpShowingEventHandler -= value;
194 if (_popUpShowingEventHandler == null && ShowingSignal().Empty() == false)
196 ShowingSignal().Disconnect(_popUpShowingEventCallbackDelegate);
201 // Callback for ShowingSignal
202 private void OnShowing()
204 ShowingEventArgs e = new ShowingEventArgs();
206 if (_popUpShowingEventHandler != null)
208 //here we send all data to user event handlers
209 _popUpShowingEventHandler(this, e);
215 /// Event is sent when the Popup has been fully displayed.
217 public event EventHandler<ShownEventArgs> Shown
221 if (_popUpShownEventHandler == null)
223 _popUpShownEventCallbackDelegate = (OnShown);
224 ShownSignal().Connect(_popUpShownEventCallbackDelegate);
226 _popUpShownEventHandler += value;
230 _popUpShownEventHandler -= value;
231 if (_popUpShownEventHandler == null && ShownSignal().Empty() == false)
233 ShownSignal().Disconnect(_popUpShownEventCallbackDelegate);
238 // Callback for ShownSignal
239 private void OnShown()
241 ShownEventArgs e = new ShownEventArgs();
243 if (_popUpShownEventHandler != null)
245 //here we send all data to user event handlers
246 _popUpShownEventHandler(this, e);
251 /// Event is sent when the Popup is starting to be hidden.
253 public event EventHandler<HidingEventArgs> Hiding
257 if (_popUpHidingEventHandler == null)
259 _popUpHidingEventCallbackDelegate = (OnHiding);
260 HidingSignal().Connect(_popUpHidingEventCallbackDelegate);
262 _popUpHidingEventHandler += value;
266 _popUpHidingEventHandler -= value;
267 if (_popUpHidingEventHandler == null && HidingSignal().Empty() == false)
269 HidingSignal().Disconnect(_popUpHidingEventCallbackDelegate);
274 // Callback for HidingSignal
275 private void OnHiding()
277 HidingEventArgs e = new HidingEventArgs();
279 if (_popUpHidingEventHandler != null)
281 //here we send all data to user event handlers
282 _popUpHidingEventHandler(this, e);
287 /// Event is sent when the Popup has been completely hidden.
289 public event EventHandler<HiddenEventArgs> Hidden
293 if (_popUpHiddenEventHandler == null)
295 _popUpHiddenEventCallbackDelegate = (OnHidden);
296 HiddenSignal().Connect(_popUpHiddenEventCallbackDelegate);
298 _popUpHiddenEventHandler += value;
302 _popUpHiddenEventHandler -= value;
303 if (_popUpHiddenEventHandler == null && HiddenSignal().Empty() == false)
305 HiddenSignal().Disconnect(_popUpHiddenEventCallbackDelegate);
310 // Callback for HiddenSignal
311 private void OnHidden()
313 HiddenEventArgs e = new HiddenEventArgs();
315 if (_popUpHiddenEventHandler != null)
317 //here we send all data to user event handlers
318 _popUpHiddenEventHandler(this, e);
322 internal class Property
324 internal static readonly int TITLE = NDalicPINVOKE.Popup_Property_TITLE_get();
325 internal static readonly int CONTENT = NDalicPINVOKE.Popup_Property_CONTENT_get();
326 internal static readonly int FOOTER = NDalicPINVOKE.Popup_Property_FOOTER_get();
327 internal static readonly int DISPLAY_STATE = NDalicPINVOKE.Popup_Property_DISPLAY_STATE_get();
328 internal static readonly int TOUCH_TRANSPARENT = NDalicPINVOKE.Popup_Property_TOUCH_TRANSPARENT_get();
329 internal static readonly int TAIL_VISIBILITY = NDalicPINVOKE.Popup_Property_TAIL_VISIBILITY_get();
330 internal static readonly int TAIL_POSITION = NDalicPINVOKE.Popup_Property_TAIL_POSITION_get();
331 internal static readonly int CONTEXTUAL_MODE = NDalicPINVOKE.Popup_Property_CONTEXTUAL_MODE_get();
332 internal static readonly int ANIMATION_DURATION = NDalicPINVOKE.Popup_Property_ANIMATION_DURATION_get();
333 internal static readonly int ANIMATION_MODE = NDalicPINVOKE.Popup_Property_ANIMATION_MODE_get();
334 internal static readonly int ENTRY_ANIMATION = NDalicPINVOKE.Popup_Property_ENTRY_ANIMATION_get();
335 internal static readonly int EXIT_ANIMATION = NDalicPINVOKE.Popup_Property_EXIT_ANIMATION_get();
336 internal static readonly int AUTO_HIDE_DELAY = NDalicPINVOKE.Popup_Property_AUTO_HIDE_DELAY_get();
337 internal static readonly int BACKING_ENABLED = NDalicPINVOKE.Popup_Property_BACKING_ENABLED_get();
338 internal static readonly int BACKING_COLOR = NDalicPINVOKE.Popup_Property_BACKING_COLOR_get();
339 internal static readonly int POPUP_BACKGROUND_IMAGE = NDalicPINVOKE.Popup_Property_POPUP_BACKGROUND_IMAGE_get();
340 internal static readonly int POPUP_BACKGROUND_BORDER = NDalicPINVOKE.Popup_Property_POPUP_BACKGROUND_BORDER_get();
341 internal static readonly int TAIL_UP_IMAGE = NDalicPINVOKE.Popup_Property_TAIL_UP_IMAGE_get();
342 internal static readonly int TAIL_DOWN_IMAGE = NDalicPINVOKE.Popup_Property_TAIL_DOWN_IMAGE_get();
343 internal static readonly int TAIL_LEFT_IMAGE = NDalicPINVOKE.Popup_Property_TAIL_LEFT_IMAGE_get();
344 internal static readonly int TAIL_RIGHT_IMAGE = NDalicPINVOKE.Popup_Property_TAIL_RIGHT_IMAGE_get();
348 /// Create the Popup.
350 public Popup() : this(NDalicPINVOKE.Popup_New(), true)
352 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
356 [Obsolete("Please do not use! this will be deprecated")]
357 public new static Popup DownCast(BaseHandle handle)
359 Popup ret = new Popup(NDalicPINVOKE.Popup_DownCast(BaseHandle.getCPtr(handle)), true);
360 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
365 /// Sets a title for this Popup.
367 /// <param name="titleView">The actor to set a title</param>
368 public void SetTitle(View titleView)
370 NDalicPINVOKE.Popup_SetTitle(swigCPtr, View.getCPtr(titleView));
371 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
374 internal View GetTitle()
376 View ret = new View(NDalicPINVOKE.Popup_GetTitle(swigCPtr), true);
377 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
382 /// Sets the content actor.
384 /// <param name="content">The actor to use</param>
385 public void SetContent(View content)
387 NDalicPINVOKE.Popup_SetContent(swigCPtr, View.getCPtr(content));
388 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
391 internal View GetContent()
393 View ret = new View(NDalicPINVOKE.Popup_GetContent(swigCPtr), true);
394 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
399 /// Sets the actor to use for a footer in this Popup.
401 /// <param name="footer">The footer actor to be added to this Popup</param>
402 public void SetFooter(View footer)
404 NDalicPINVOKE.Popup_SetFooter(swigCPtr, View.getCPtr(footer));
405 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
408 internal View GetFooter()
410 View ret = new View(NDalicPINVOKE.Popup_GetFooter(swigCPtr), true);
411 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
416 /// Sets the display state of Popup.<br>
417 /// There are 4 total display states.<br>
418 /// Only 2 can be set, but all four can be read for better inspection of the current popup state.<br>
420 /// The other two states are getable, but not setable and are there for consistency.<br>
422 /// | Value | Setting the state | Getting the state |<br>
423 /// |----------|--------------------------------|--------------------------------|<br>
424 /// | SHOWN | Show the popup | The popup is fully shown |<br>
425 /// | HIDDEN | Hide the popup | The popup is fully hidden |<br>
426 /// | SHOWING | | The popup is transitioning in |<br>
427 /// | HIDING | | The popup is transitioning out |<br>
429 /// All 4 state changes cause notifications via 4 respective signals that can be connected to.<br>
431 /// <param name="displayState">The desired display state to change to</param>
432 public void SetDisplayState(Popup.DisplayStateType displayState)
434 NDalicPINVOKE.Popup_SetDisplayState(swigCPtr, (int)displayState);
435 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
438 internal Popup.DisplayStateType GetDisplayState()
440 Popup.DisplayStateType ret = (Popup.DisplayStateType)NDalicPINVOKE.Popup_GetDisplayState(swigCPtr);
441 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
445 internal VoidSignal OutsideTouchedSignal()
447 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Popup_OutsideTouchedSignal(swigCPtr), false);
448 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
452 internal VoidSignal ShowingSignal()
454 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Popup_ShowingSignal(swigCPtr), false);
455 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
459 internal VoidSignal ShownSignal()
461 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Popup_ShownSignal(swigCPtr), false);
462 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
466 internal VoidSignal HidingSignal()
468 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Popup_HidingSignal(swigCPtr), false);
469 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
473 internal VoidSignal HiddenSignal()
475 VoidSignal ret = new VoidSignal(NDalicPINVOKE.Popup_HiddenSignal(swigCPtr), false);
476 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
481 /// The display states of the Popup.
483 public enum DisplayStateType
492 /// The animation mode within popup.<br>
493 /// Choose from a predefined mode or "CUSTOM" to use the ANIMATION_IN and ANIMATION_OUT properties.<br>
495 public enum AnimationModeType
504 /// Types of contextual layout.<br>
505 /// The Popup is positioned adjacent to it's parent in the direction specified by this mode.<br>
506 /// NON_CONTEXTUAL disables any contextual positioning.<br>
508 public enum ContextualModeType
520 public PropertyMap Title
524 PropertyMap temp = new PropertyMap();
525 GetProperty(Popup.Property.TITLE).Get(temp);
530 SetProperty(Popup.Property.TITLE, new Tizen.NUI.PropertyValue(value));
536 public PropertyMap Content
540 PropertyMap temp = new PropertyMap();
541 GetProperty(Popup.Property.CONTENT).Get(temp);
546 SetProperty(Popup.Property.CONTENT, new Tizen.NUI.PropertyValue(value));
552 public PropertyMap Footer
556 PropertyMap temp = new PropertyMap();
557 GetProperty(Popup.Property.FOOTER).Get(temp);
562 SetProperty(Popup.Property.FOOTER, new Tizen.NUI.PropertyValue(value));
566 /// Popup display state.
568 public DisplayStateType DisplayState
573 if (GetProperty(Popup.Property.DISPLAY_STATE).Get(out temp) == false)
575 NUILog.Error("DisplayState get error!");
580 return DisplayStateType.Showing;
582 return DisplayStateType.Shown;
584 return DisplayStateType.Hiding;
586 return DisplayStateType.Hidden;
588 return DisplayStateType.Hidden;
593 string valueToString = "";
596 case DisplayStateType.Showing:
598 valueToString = "SHOWING";
601 case DisplayStateType.Shown:
603 valueToString = "SHOWN";
606 case DisplayStateType.Hiding:
608 valueToString = "HIDING";
611 case DisplayStateType.Hidden:
613 valueToString = "HIDDEN";
618 valueToString = "HIDDEN";
622 SetProperty(Popup.Property.DISPLAY_STATE, new Tizen.NUI.PropertyValue(valueToString));
626 /// Touch transparent.
628 public bool TouchTransparent
633 GetProperty(Popup.Property.TOUCH_TRANSPARENT).Get(out temp);
638 SetProperty(Popup.Property.TOUCH_TRANSPARENT, new Tizen.NUI.PropertyValue(value));
642 /// Popup tail visibility.
644 public bool TailVisibility
649 GetProperty(Popup.Property.TAIL_VISIBILITY).Get(out temp);
654 SetProperty(Popup.Property.TAIL_VISIBILITY, new Tizen.NUI.PropertyValue(value));
658 /// Popup tail position.
660 public Vector3 TailPosition
664 Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
665 GetProperty(Popup.Property.TAIL_POSITION).Get(temp);
670 SetProperty(Popup.Property.TAIL_POSITION, new Tizen.NUI.PropertyValue(value));
676 public ContextualModeType ContextualMode
681 if (GetProperty(Popup.Property.CONTEXTUAL_MODE).Get(out temp) == false)
683 NUILog.Error("ContextualMode get error!");
687 case "NON_CONTEXTUAL":
688 return ContextualModeType.NonContextual;
690 return ContextualModeType.Above;
692 return ContextualModeType.Rright;
694 return ContextualModeType.Below;
696 return ContextualModeType.Left;
698 return ContextualModeType.Below;
703 string valueToString = "";
706 case ContextualModeType.NonContextual:
708 valueToString = "NON_CONTEXTUAL";
711 case ContextualModeType.Above:
713 valueToString = "ABOVE";
716 case ContextualModeType.Rright:
718 valueToString = "RIGHT";
721 case ContextualModeType.Below:
723 valueToString = "BELOW";
726 case ContextualModeType.Left:
728 valueToString = "LEFT";
733 valueToString = "BELOW";
737 SetProperty(Popup.Property.CONTEXTUAL_MODE, new Tizen.NUI.PropertyValue(valueToString));
741 /// Animation duration.
743 public float AnimationDuration
748 GetProperty(Popup.Property.ANIMATION_DURATION).Get(out temp);
753 SetProperty(Popup.Property.ANIMATION_DURATION, new Tizen.NUI.PropertyValue(value));
759 public AnimationModeType AnimationMode
764 if (GetProperty(Popup.Property.ANIMATION_MODE).Get(out temp) == false)
766 NUILog.Error("AnimationMode get error!");
771 return AnimationModeType.None;
773 return AnimationModeType.Zoom;
775 return AnimationModeType.Fade;
777 return AnimationModeType.Custom;
779 return AnimationModeType.Fade;
784 string valueToString = "";
787 case AnimationModeType.None:
789 valueToString = "NONE";
792 case AnimationModeType.Zoom:
794 valueToString = "ZOOM";
797 case AnimationModeType.Fade:
799 valueToString = "FADE";
802 case AnimationModeType.Custom:
804 valueToString = "CUSTOM";
809 valueToString = "FADE";
813 SetProperty(Popup.Property.ANIMATION_MODE, new Tizen.NUI.PropertyValue(valueToString));
819 public PropertyMap EntryAnimation
823 PropertyMap temp = new PropertyMap();
824 GetProperty(Popup.Property.ENTRY_ANIMATION).Get(temp);
829 SetProperty(Popup.Property.ENTRY_ANIMATION, new Tizen.NUI.PropertyValue(value));
835 public PropertyMap ExitAnimation
839 PropertyMap temp = new PropertyMap();
840 GetProperty(Popup.Property.EXIT_ANIMATION).Get(temp);
845 SetProperty(Popup.Property.EXIT_ANIMATION, new Tizen.NUI.PropertyValue(value));
851 public int AutoHideDelay
856 GetProperty(Popup.Property.AUTO_HIDE_DELAY).Get(out temp);
861 SetProperty(Popup.Property.AUTO_HIDE_DELAY, new Tizen.NUI.PropertyValue(value));
867 public bool BackingEnabled
872 GetProperty(Popup.Property.BACKING_ENABLED).Get(out temp);
877 SetProperty(Popup.Property.BACKING_ENABLED, new Tizen.NUI.PropertyValue(value));
883 public Vector4 BackingColor
887 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
888 GetProperty(Popup.Property.BACKING_COLOR).Get(temp);
893 SetProperty(Popup.Property.BACKING_COLOR, new Tizen.NUI.PropertyValue(value));
897 /// Background image.
899 public string PopupBackgroundImage
904 GetProperty(Popup.Property.POPUP_BACKGROUND_IMAGE).Get(out temp);
909 SetProperty(Popup.Property.POPUP_BACKGROUND_IMAGE, new Tizen.NUI.PropertyValue(value));
913 /// Background border.
915 public Rectangle PopupBackgroundBorder
919 Rectangle temp = new Rectangle(0, 0, 0, 0);
920 GetProperty(Popup.Property.POPUP_BACKGROUND_BORDER).Get(temp);
925 SetProperty(Popup.Property.POPUP_BACKGROUND_BORDER, new Tizen.NUI.PropertyValue(value));
931 public string TailUpImage
936 GetProperty(Popup.Property.TAIL_UP_IMAGE).Get(out temp);
941 SetProperty(Popup.Property.TAIL_UP_IMAGE, new Tizen.NUI.PropertyValue(value));
947 public string TailDownImage
952 GetProperty(Popup.Property.TAIL_DOWN_IMAGE).Get(out temp);
957 SetProperty(Popup.Property.TAIL_DOWN_IMAGE, new Tizen.NUI.PropertyValue(value));
963 public string TailLeftImage
968 GetProperty(Popup.Property.TAIL_LEFT_IMAGE).Get(out temp);
973 SetProperty(Popup.Property.TAIL_LEFT_IMAGE, new Tizen.NUI.PropertyValue(value));
977 /// Tail right image.
979 public string TailRightImage
984 GetProperty(Popup.Property.TAIL_RIGHT_IMAGE).Get(out temp);
989 SetProperty(Popup.Property.TAIL_RIGHT_IMAGE, new Tizen.NUI.PropertyValue(value));