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.Collections.Generic;
19 using Tizen.NUI.BaseComponents;
20 using System.ComponentModel;
22 namespace Tizen.NUI.Components
25 /// Popup is one kind of common component, it can be used as popup window.
26 /// User can handle Popup button count, head title and content area.
28 /// <since_tizen> 6 </since_tizen>
29 public class Popup : Control
31 private ImageView backgroundImage;
32 private ImageView shadowImage;
33 private TextLabel titleText;
34 private List<Button> buttonList;
35 private List<string> buttonTextList = new List<string>();
37 private PopupAttributes popupAttributes;
38 private int buttonCount = 0;
41 /// Creates a new instance of a Popup.
43 /// <since_tizen> 6 </since_tizen>
44 public Popup() : base()
50 /// Creates a new instance of a Popup with style.
52 /// <param name="style">Create Popup by special style defined in UX.</param>
53 /// <since_tizen> 6 </since_tizen>
54 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
55 [EditorBrowsable(EditorBrowsableState.Never)]
56 public Popup(string style) : base(style)
62 /// Creates a new instance of a Popup with attributes.
64 /// <param name="attributes">Create Popup by attributes customized by user.</param>
65 /// <since_tizen> 6 </since_tizen>
66 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
67 [EditorBrowsable(EditorBrowsableState.Never)]
68 public Popup(PopupAttributes attributes) : base(attributes)
74 /// An event for the button clicked signal which can be used to subscribe or unsubscribe the event handler provided by the user.<br />
76 /// <since_tizen> 6 </since_tizen>
77 public event EventHandler<ButtonClickEventArgs> PopupButtonClickEvent;
80 /// Title text string in Popup.
82 /// <since_tizen> 6 </since_tizen>
83 public string TitleText
87 return popupAttributes?.TitleTextAttributes?.Text?.All;
93 CreateTitleTextAttributes();
94 if (popupAttributes.TitleTextAttributes.Text == null)
96 popupAttributes.TitleTextAttributes.Text = new StringSelector();
98 popupAttributes.TitleTextAttributes.Text.All = value;
106 /// Button count in Popup.
108 /// <since_tizen> 6 </since_tizen>
109 public int ButtonCount
117 if (buttonCount != value)
126 /// Content view in Popup, only can be gotten.
128 /// <since_tizen> 6 </since_tizen>
129 public View ContentView
136 /// Shadow image's resource url in Popup.
138 /// <since_tizen> 6 </since_tizen>
139 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
140 [EditorBrowsable(EditorBrowsableState.Never)]
141 public string ShadowImageURL
145 return popupAttributes?.ShadowImageAttributes?.ResourceURL?.All;
151 CreateShadowAttributes();
152 if (popupAttributes.ShadowImageAttributes.ResourceURL == null)
154 popupAttributes.ShadowImageAttributes.ResourceURL = new StringSelector();
156 popupAttributes.ShadowImageAttributes.ResourceURL.All = value;
163 /// Shadow image's border in Popup.
165 /// <since_tizen> 6 </since_tizen>
166 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
167 [EditorBrowsable(EditorBrowsableState.Never)]
168 public Rectangle ShadowImageBorder
172 return popupAttributes?.ShadowImageAttributes?.Border?.All;
178 CreateShadowAttributes();
179 if (popupAttributes.ShadowImageAttributes.Border == null)
181 popupAttributes.ShadowImageAttributes.Border = new RectangleSelector();
183 popupAttributes.ShadowImageAttributes.Border.All = value;
190 /// Background image's resource url in Popup.
192 /// <since_tizen> 6 </since_tizen>
193 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
194 [EditorBrowsable(EditorBrowsableState.Never)]
195 public string BackgroundImageURL
199 return popupAttributes?.BackgroundImageAttributes?.ResourceURL?.All;
205 CreateBackgroundAttributes();
206 if (popupAttributes.BackgroundImageAttributes.ResourceURL == null)
208 popupAttributes.BackgroundImageAttributes.ResourceURL = new StringSelector();
210 popupAttributes.BackgroundImageAttributes.ResourceURL.All = value;
217 /// Background image's border in Popup.
219 /// <since_tizen> 6 </since_tizen>
220 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
221 [EditorBrowsable(EditorBrowsableState.Never)]
222 public Rectangle BackgroundImageBorder
226 return popupAttributes?.BackgroundImageAttributes?.Border?.All;
232 CreateBackgroundAttributes();
233 if (popupAttributes.BackgroundImageAttributes.Border == null)
235 popupAttributes.BackgroundImageAttributes.Border = new RectangleSelector();
237 popupAttributes.BackgroundImageAttributes.Border.All = value;
244 /// Title text point size in Popup.
246 /// <since_tizen> 6 </since_tizen>
247 public float TitlePointSize
251 return popupAttributes?.TitleTextAttributes?.PointSize?.All ?? 0;
255 CreateTitleTextAttributes();
256 if (popupAttributes.TitleTextAttributes.PointSize == null)
258 popupAttributes.TitleTextAttributes.PointSize = new FloatSelector();
260 popupAttributes.TitleTextAttributes.PointSize.All = value;
266 /// Title text font family in Popup.
268 /// <since_tizen> 6 </since_tizen>
269 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
270 [EditorBrowsable(EditorBrowsableState.Never)]
271 public string TitleFontFamily
275 return popupAttributes?.TitleTextAttributes?.FontFamily;
279 CreateTitleTextAttributes();
280 popupAttributes.TitleTextAttributes.FontFamily = value;
286 /// Title text color in Popup.
288 /// <since_tizen> 6 </since_tizen>
289 public Color TitleTextColor
293 return popupAttributes?.TitleTextAttributes?.TextColor?.All;
297 CreateTitleTextAttributes();
298 if (popupAttributes.TitleTextAttributes.TextColor == null)
300 popupAttributes.TitleTextAttributes.TextColor = new ColorSelector();
302 popupAttributes.TitleTextAttributes.TextColor.All = value;
308 /// Title text horizontal alignment in Popup.
310 /// <since_tizen> 6 </since_tizen>
311 public HorizontalAlignment TitleTextHorizontalAlignment
315 return popupAttributes?.TitleTextAttributes?.HorizontalAlignment ?? HorizontalAlignment.Center;
319 CreateTitleTextAttributes();
320 popupAttributes.TitleTextAttributes.HorizontalAlignment = value;
326 /// Title text's position in Popup.
328 /// <since_tizen> 6 </since_tizen>
329 public Position TitleTextPosition
333 return popupAttributes?.TitleTextAttributes?.Position ?? new Position(0, 0, 0);
337 CreateTitleTextAttributes();
338 popupAttributes.TitleTextAttributes.Position = value;
344 /// Title text's height in Popup.
346 /// <since_tizen> 6 </since_tizen>
347 public int TitleHeight
351 return (int)(popupAttributes?.TitleTextAttributes?.Size?.Height ?? 0);
355 CreateTitleTextAttributes();
356 popupAttributes.TitleTextAttributes.Size.Height = value;
362 /// Shadow offset in Popup, including left, right, up and bottom offset.
364 /// <since_tizen> 6 </since_tizen>
365 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
366 [EditorBrowsable(EditorBrowsableState.Never)]
367 public Vector4 ShadowOffset
371 return popupAttributes?.ShadowOffset;
377 if (popupAttributes.ShadowOffset == null)
379 popupAttributes.ShadowOffset = new Vector4(0, 0, 0, 0);
381 popupAttributes.ShadowOffset = value;
388 /// Button height in Popup.
390 /// <since_tizen> 6 </since_tizen>
391 public int ButtonHeight
395 return (int)(popupAttributes?.ButtonAttributes?.Size?.Height ?? 0);
399 CreateButtonAttributes();
400 popupAttributes.ButtonAttributes.Size.Height = value;
406 /// Button text point size in Popup.
408 /// <since_tizen> 6 </since_tizen>
409 public float ButtonTextPointSize
413 return popupAttributes?.ButtonAttributes?.TextAttributes?.PointSize?.All ?? 0;
417 CreateButtonAttributes();
418 if (popupAttributes.ButtonAttributes.TextAttributes.PointSize == null)
420 popupAttributes.ButtonAttributes.TextAttributes.PointSize = new FloatSelector();
422 popupAttributes.ButtonAttributes.TextAttributes.PointSize.All = value;
428 /// Button text font family in Popup.
430 /// <since_tizen> 6 </since_tizen>
431 public string ButtonFontFamily
435 return popupAttributes?.ButtonAttributes?.TextAttributes?.FontFamily;
439 CreateButtonAttributes();
440 popupAttributes.ButtonAttributes.TextAttributes.FontFamily = value;
446 /// Button text color in Popup.
448 /// <since_tizen> 6 </since_tizen>
449 public Color ButtonTextColor
453 return popupAttributes?.ButtonAttributes?.TextAttributes?.TextColor?.All;
457 CreateButtonAttributes();
458 if (popupAttributes.ButtonAttributes.TextAttributes.TextColor == null)
460 popupAttributes.ButtonAttributes.TextAttributes.TextColor = new ColorSelector();
462 popupAttributes.ButtonAttributes.TextAttributes.TextColor.All = value;
468 /// Button overlay background color selector in Popup.
470 /// <since_tizen> 6 </since_tizen>
471 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
472 [EditorBrowsable(EditorBrowsableState.Never)]
473 public ColorSelector ButtonOverLayBackgroundColorSelector
477 return popupAttributes?.ButtonAttributes?.OverlayImageAttributes?.BackgroundColor;
483 CreateButtonAttributes();
484 popupAttributes.ButtonAttributes.OverlayImageAttributes.BackgroundColor = value.Clone() as ColorSelector;
491 /// Button text horizontal alignment in Popup.
493 /// <since_tizen> 6 </since_tizen>
494 public HorizontalAlignment ButtonTextAlignment
498 return popupAttributes?.ButtonAttributes?.TextAttributes?.HorizontalAlignment ?? HorizontalAlignment.Center;
502 CreateButtonAttributes();
503 popupAttributes.ButtonAttributes.TextAttributes.HorizontalAlignment = value;
509 /// Button background image's resource url in Popup.
511 /// <since_tizen> 6 </since_tizen>
512 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
513 [EditorBrowsable(EditorBrowsableState.Never)]
514 public string ButtonBackgroundImageURL
518 return popupAttributes?.ButtonAttributes?.BackgroundImageAttributes?.ResourceURL?.All;
524 CreateButtonAttributes();
525 if (popupAttributes.ButtonAttributes.BackgroundImageAttributes.ResourceURL == null)
527 popupAttributes.ButtonAttributes.BackgroundImageAttributes.ResourceURL = new StringSelector();
529 popupAttributes.ButtonAttributes.BackgroundImageAttributes.ResourceURL.All = value;
536 /// Button background image's border in Popup.
538 /// <since_tizen> 6 </since_tizen>
539 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
540 [EditorBrowsable(EditorBrowsableState.Never)]
541 public Rectangle ButtonBackgroundImageBorder
545 return popupAttributes?.ButtonAttributes?.BackgroundImageAttributes?.Border?.All;
551 CreateButtonAttributes();
552 if (popupAttributes.ButtonAttributes.BackgroundImageAttributes.Border == null)
554 popupAttributes.ButtonAttributes.BackgroundImageAttributes.Border = new RectangleSelector();
556 popupAttributes.ButtonAttributes.BackgroundImageAttributes.Border.All = value;
563 /// Set button text by index.
565 /// <param name="index">Button index.</param>
566 /// <param name="text">Button text string.</param>
567 /// <since_tizen> 6 </since_tizen>
568 public void SetButtonText(int index, string text)
570 if(index < 0 && index >= buttonCount)
574 if(buttonTextList.Count < index + 1)
576 for (int i = buttonTextList.Count; i < index + 1; i++)
578 buttonTextList.Add("");
581 buttonTextList[index] = text;
586 /// Dispose Popup and all children on it.
588 /// <param name="type">Dispose type.</param>
589 /// <since_tizen> 6 </since_tizen>
590 protected override void Dispose(DisposeTypes type)
597 if (type == DisposeTypes.Explicit)
599 if (titleText != null)
605 if (backgroundImage != null)
607 Remove(backgroundImage);
608 backgroundImage.Dispose();
609 backgroundImage = null;
611 if (shadowImage != null)
614 shadowImage.Dispose();
617 if (ContentView != null)
620 ContentView.Dispose();
623 if (buttonList != null)
625 foreach(Button btn in buttonList)
637 /// Focus gained callback.
639 /// <since_tizen> 6 </since_tizen>
640 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
641 [EditorBrowsable(EditorBrowsableState.Never)]
642 public override void OnFocusGained()
644 base.OnFocusGained();
648 /// Focus lost callback.
650 /// <since_tizen> 6 </since_tizen>
651 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
652 [EditorBrowsable(EditorBrowsableState.Never)]
653 public override void OnFocusLost()
659 /// Get Popup attribues.
661 /// <since_tizen> 6 </since_tizen>
662 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
663 [EditorBrowsable(EditorBrowsableState.Never)]
664 protected override Attributes GetAttributes()
666 return new PopupAttributes();
670 /// Update Popup by attributes.
672 /// <since_tizen> 6 </since_tizen>
673 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
674 [EditorBrowsable(EditorBrowsableState.Never)]
675 protected override void OnUpdate()
684 if (popupAttributes.ShadowImageAttributes != null)
686 if (shadowImage == null)
688 shadowImage = new ImageView();
691 ApplyAttributes(shadowImage, popupAttributes.ShadowImageAttributes);
694 if (popupAttributes.ShadowOffset != null)
696 w = (int)(Size2D.Width + popupAttributes.ShadowOffset.W + popupAttributes.ShadowOffset.X);
697 h = (int)(Size2D.Height + popupAttributes.ShadowOffset.Y + popupAttributes.ShadowOffset.Z);
700 shadowImage.Size2D = new Size2D(w, h);
703 if (popupAttributes.BackgroundImageAttributes != null)
705 if (backgroundImage == null)
707 backgroundImage = new ImageView()
709 WidthResizePolicy = ResizePolicyType.FillToParent,
710 HeightResizePolicy = ResizePolicyType.FillToParent
712 Add(backgroundImage);
714 ApplyAttributes(backgroundImage, popupAttributes.BackgroundImageAttributes);
717 if (popupAttributes.TitleTextAttributes != null)
719 if (titleText == null)
721 titleText = new TextLabel();
725 ApplyAttributes(titleText, popupAttributes.TitleTextAttributes);
727 if (titleText.Text != null && titleText.Text != "")
729 popupAttributes.TitleTextAttributes.Text = new StringSelector { All = titleText.Text };
730 w = (int)(Size2D.Width - titleText.PositionX * 2);
732 if (popupAttributes.TitleTextAttributes.Size != null)
734 titleH = (int)titleText.Size.Height;
736 titleText.Size2D = new Size2D(w, titleH);
738 if (popupAttributes.TitleTextAttributes.Position != null)
740 titleX = (int)popupAttributes.TitleTextAttributes.Position.X;
741 titleY = (int)popupAttributes.TitleTextAttributes.Position.Y;
746 titleText.Size2D = new Size2D(0, 0);
751 ContentView.RaiseToTop();
753 UpdateButton(buttonCount);
755 if (buttonList != null && popupAttributes.ButtonAttributes != null && popupAttributes.ButtonAttributes.Size != null)
757 buttonH = (int)popupAttributes.ButtonAttributes.Size.Height;
759 ContentView.Size2D = new Size2D(Size2D.Width - titleX * 2, Size2D.Height - titleY - titleH - buttonH);
760 ContentView.Position2D = new Position2D(titleX, titleY + titleH);
766 /// Layout child in Popup and it can be override by user.
768 /// <since_tizen> 6 </since_tizen>
769 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
770 [EditorBrowsable(EditorBrowsableState.Never)]
771 protected virtual void LayoutChild()
773 if (popupAttributes == null)
778 if(titleText != null)
780 if(LayoutDirection == ViewLayoutDirectionType.RTL)
782 if (popupAttributes.TitleTextAttributes != null)
784 popupAttributes.TitleTextAttributes.HorizontalAlignment = HorizontalAlignment.End;
786 titleText.HorizontalAlignment = HorizontalAlignment.End;
788 else if(LayoutDirection == ViewLayoutDirectionType.LTR)
790 if (popupAttributes.TitleTextAttributes != null)
792 popupAttributes.TitleTextAttributes.HorizontalAlignment = HorizontalAlignment.Begin;
794 titleText.HorizontalAlignment = HorizontalAlignment.Begin;
798 if(buttonList != null && buttonList.Count > 0)
801 if (LayoutDirection == ViewLayoutDirectionType.RTL)
803 for (int i = buttonList.Count - 1; i >= 0; i--)
805 buttonList[i].PositionX = pos;
806 pos += buttonList[i].Size2D.Width;
811 for (int i = 0; i < buttonList.Count; i++)
813 buttonList[i].PositionX = pos;
814 pos += buttonList[i].Size2D.Width;
821 /// Theme change callback when theme is changed, this callback will be trigger.
823 /// <since_tizen> 6 </since_tizen>
824 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
825 [EditorBrowsable(EditorBrowsableState.Never)]
826 protected override void OnThemeChangedEvent(object sender, StyleManager.ThemeChangeEventArgs e)
828 PopupAttributes tempAttributes = StyleManager.Instance.GetAttributes(style) as PopupAttributes;
829 if (tempAttributes != null)
831 attributes = popupAttributes = tempAttributes;
836 private void Initialize()
838 popupAttributes = attributes as PopupAttributes;
839 if (popupAttributes == null)
841 throw new Exception("Popup attribute parse error.");
844 ApplyAttributes(this, popupAttributes);
845 LeaveRequired = true;
847 ContentView = new View()
849 ParentOrigin = Tizen.NUI.ParentOrigin.TopLeft,
850 PivotPoint = Tizen.NUI.PivotPoint.TopLeft,
851 PositionUsesPivotPoint = true
854 ContentView.RaiseToTop();
857 private void CreateShadowAttributes()
859 if (popupAttributes.ShadowImageAttributes == null)
861 popupAttributes.ShadowImageAttributes = new ImageAttributes()
863 PositionUsesPivotPoint = true,
864 ParentOrigin = Tizen.NUI.ParentOrigin.Center,
865 PivotPoint = Tizen.NUI.PivotPoint.Center,
870 private void CreateBackgroundAttributes()
872 if (popupAttributes.BackgroundImageAttributes == null)
874 popupAttributes.BackgroundImageAttributes = new ImageAttributes()
876 PositionUsesPivotPoint = true,
877 ParentOrigin = Tizen.NUI.ParentOrigin.Center,
878 PivotPoint = Tizen.NUI.PivotPoint.Center,
879 WidthResizePolicy = ResizePolicyType.FillToParent,
880 HeightResizePolicy = ResizePolicyType.FillToParent
885 private void CreateTitleTextAttributes()
887 if (popupAttributes.TitleTextAttributes == null)
889 popupAttributes.TitleTextAttributes = new TextAttributes()
891 Size = new Size(0, 0),
892 PositionUsesPivotPoint = true,
893 ParentOrigin = Tizen.NUI.ParentOrigin.TopLeft,
894 PivotPoint = Tizen.NUI.PivotPoint.TopLeft,
895 HorizontalAlignment = HorizontalAlignment.Begin,
896 VerticalAlignment = VerticalAlignment.Bottom
901 private void CreateButtonAttributes()
903 if (popupAttributes.ButtonAttributes == null)
905 popupAttributes.ButtonAttributes = new ButtonAttributes()
907 Size = new Size(0, 0),
908 PositionUsesPivotPoint = true,
909 ParentOrigin = Tizen.NUI.ParentOrigin.BottomLeft,
910 PivotPoint = Tizen.NUI.PivotPoint.BottomLeft,
911 TextAttributes = new TextAttributes
913 PositionUsesPivotPoint = true,
914 ParentOrigin = Tizen.NUI.ParentOrigin.Center,
915 PivotPoint = Tizen.NUI.PivotPoint.Center,
916 HorizontalAlignment = HorizontalAlignment.Center,
917 VerticalAlignment = VerticalAlignment.Center
919 BackgroundImageAttributes = new ImageAttributes
921 PositionUsesPivotPoint = true,
922 ParentOrigin = Tizen.NUI.ParentOrigin.Center,
923 PivotPoint = Tizen.NUI.PivotPoint.Center,
924 WidthResizePolicy = ResizePolicyType.FillToParent,
925 HeightResizePolicy = ResizePolicyType.FillToParent,
926 Border = new RectangleSelector { All = new Rectangle(0, 0, 0, 0) },
928 OverlayImageAttributes = new ImageAttributes
930 PositionUsesPivotPoint = true,
931 ParentOrigin = Tizen.NUI.ParentOrigin.Center,
932 PivotPoint = Tizen.NUI.PivotPoint.Center,
933 WidthResizePolicy = ResizePolicyType.FillToParent,
934 HeightResizePolicy = ResizePolicyType.FillToParent,
935 Border = new RectangleSelector { All = new Rectangle(0, 0, 0, 0) },
941 private void UpdateButton(int count)
943 if(buttonList != null && buttonCount == buttonList.Count)
945 for (int i = 0; i < count; i++)
947 buttonList[i].TextColor = popupAttributes.ButtonAttributes.TextAttributes.TextColor.All;
952 if (buttonList != null)
954 foreach (Button btn in buttonList)
956 btn.ClickEvent -= ButtonClickEvent;
967 int buttonWidth = Size2D.Width / count;
968 int buttonHeight = (int)popupAttributes.ButtonAttributes.Size.Height;
970 buttonList = new List<Button>();
971 for (int i = 0; i < count; i++)
974 popupAttributes.ButtonAttributes.Size.Width = buttonWidth;
975 btn = new Button(popupAttributes.ButtonAttributes);
976 btn.Position2D = new Position2D(pos, 0);
978 if (i >= buttonTextList.Count)
980 buttonTextList.Add("");
982 btn.Text = buttonTextList[i];
983 btn.ClickEvent += ButtonClickEvent;
990 private void ButtonClickEvent(object sender, Button.ClickEventArgs e)
992 if (PopupButtonClickEvent != null && buttonList != null)
994 Button button = sender as Button;
995 for (int i = 0; i < buttonList.Count; i++)
997 if(button == buttonList[i])
999 ButtonClickEventArgs args = new ButtonClickEventArgs();
1000 args.ButtonIndex = i;
1001 PopupButtonClickEvent(this, args);
1008 /// ButtonClickEventArgs is a class to record button click event arguments which will sent to user.
1010 /// <since_tizen> 6 </since_tizen>
1011 public class ButtonClickEventArgs : EventArgs
1013 /// <summary> Button index which is clicked in Popup </summary>
1014 /// <since_tizen> 6 </since_tizen>
1015 public int ButtonIndex;