-using System;
-using Tizen.NUI;
+using Tizen.NUI;
using Tizen.NUI.BaseComponents;
-
+using Tizen.NUI.Components;\r
+\r
namespace Oobe.Common.Utils
{
public class Popup
{
private View view;
private Layer layer = null;
+ private bool dismissible; //can be dissmissed when clicked outside
+ private float backgroundOpacity;\r
- public Popup(View view, bool centered = false)
+ public Popup(View view, float backgroundOpacity = 0.1f, bool dismissible = false, bool centered = false)
{
+ this.dismissible = dismissible;\r
+ this.backgroundOpacity = backgroundOpacity;\r
this.view = view;
if (centered)
{
{
Dismiss();
layer = new Layer();
+ layer.Add(CreateGray());
+ layer.Add(view);
+ view.TouchEvent += (s, e) => false; //prevent gray view reacting\r
+ Window.Instance.AddLayer(layer);
+ }\r
+\r
+ private Control CreateGray()\r
+ {\r
var gray = new Tizen.NUI.Components.Control()
{
WidthResizePolicy = ResizePolicyType.FillToParent,
HeightResizePolicy = ResizePolicyType.FillToParent,
- BackgroundColor = new Color(0f, 0f, 0f, 0.1f),
- };
- gray.TouchEvent += (s, e) =>
- {
- if (e.Touch.GetState(0) == PointStateType.Up)
- {
- Dismiss();
- }
- return true;
+ BackgroundColor = new Color(0f, 0f, 0f, backgroundOpacity),
};
- layer.Add(gray);
-
- view.TouchEvent += (s, e) => false; //prevent gray view reacting
- layer.Add(view);
- Window.Instance.AddLayer(layer);
- }
+ if (dismissible)\r
+ {\r
+ gray.TouchEvent += (s, e) =>\r
+ {\r
+ if (e.Touch.GetState(0) == PointStateType.Up)\r
+ {\r
+ Dismiss();\r
+ }\r
+ return true;\r
+ };\r
+ }\r
+ return gray;\r
+ }\r
}
}