5 namespace FlexContainerTest
7 public class SampleMain : NUIApplication
9 public readonly static string[] samples = new string[]
17 "FrameAnimationSample"
21 FlexContainer container;
24 PushButton pushButton1, pushButton2;
26 private Animation _ani;
28 protected override void OnCreate()
32 Stage.Instance.BackgroundColor = new Color(0.1f, 0.8f, 0.1f, 1.0f);
34 container = new FlexContainer();
35 container.Size = new Size(Stage.Instance.Size.Width, Stage.Instance.Size.Height, 0);
36 container.AnchorPoint = AnchorPoint.TopLeft;
37 container.Padding = new Vector4(100, 100, 100, 100);
39 container.FlexWrap = FlexContainer.WrapType.Wrap;
40 container.FlexDirection = FlexContainer.FlexDirectionType.Column;
42 Stage.Instance.GetDefaultLayer().Add(container);
44 numOfSamples = samples.GetLength(0);
45 Tizen.Log.Debug("NUI", "NUM = " + numOfSamples);
46 label = new TextLabel[numOfSamples];
47 for (int i = 0; i < numOfSamples; i++)
49 label[i] = new TextLabel();
50 label[i].Focusable = true;
51 label[i].BackgroundColor = Color.Red;
52 //label[i].Size = new Size(100, 50, 0);
53 label[i].Text = samples[i];
54 label[i].FlexMargin = new Vector4(20, 20, 20, 20);
55 label[i].PointSize = 10;
56 label[i].Name = "label" + i.ToString();
57 container.Add(label[i]);
60 //label[3].SetKeyInputFocus(); //removed
61 FocusManager.Instance.SetCurrentFocusView(label[3]);
63 FocusManager.Instance.PreFocusChange += Instance_PreFocusChange;
65 FocusManager.Instance.FocusChanged += (sender, e) =>
67 if(e.CurrentView) Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.CurrentView.Name=" + e.CurrentView.Name);
68 else Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.CurrentView is null!");
69 if (e.NextView) Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.NextView.Name=" + e.NextView.Name);
70 else Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.NextView is null!");
73 FocusManager.Instance.FocusedViewEnterKeyPressed += (sender, e) =>
75 if (e.View) Tizen.Log.Debug("NUI", "FocusManager FocusedViewEnterKeyPressed signal callback! e.View.Name=" + e.View.Name);
76 else Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.View is null!");
80 Stage.Instance.Touch += (sender, e) =>
82 Tizen.Log.Debug("NUI", "Stage Touch signal callback! To avoid crash, when losing key focus, set here again unless the NextView is null");
83 FocusManager.Instance.SetCurrentFocusView(label[3]);
87 pushButton1 = new PushButton();
88 pushButton1.MinimumSize = new Size2D(400, 200);
89 pushButton1.LabelText = "+PreFocusChange";
90 pushButton1.ParentOrigin = ParentOrigin.TopLeft;
91 pushButton1.AnchorPoint = AnchorPoint.TopLeft;
92 pushButton1.Position2D = new Position2D(200, 800);
93 pushButton1.Clicked += (sender, e) =>
95 Tizen.Log.Debug("NUI", "pushbutton1 clicked! add handler!");
97 FocusManager.Instance.PreFocusChange += Instance_PreFocusChange;
98 pushButton1.LabelText = "Add Handler" + _cnt;
99 pushButton2.LabelText = "Remove Handler" + _cnt;
102 Stage.Instance.GetDefaultLayer().Add(pushButton1);
104 pushButton2 = new PushButton();
105 pushButton2.MinimumSize = new Size2D(400, 200);
106 pushButton2.LabelText = "-PreFocusChange";
107 pushButton2.ParentOrigin = ParentOrigin.TopLeft;
108 pushButton2.AnchorPoint = AnchorPoint.TopLeft;
109 pushButton2.Position2D = new Position2D(800, 800);
110 pushButton2.Clicked += (sender, e) =>
112 Tizen.Log.Debug("NUI", "pushbutton2 clicked! remove handler!");
114 FocusManager.Instance.PreFocusChange -= Instance_PreFocusChange;
115 pushButton1.LabelText = "Add Handler" + _cnt;
116 pushButton2.LabelText = "Remove Handler" + _cnt;
119 Stage.Instance.GetDefaultLayer().Add(pushButton2);
122 _ani = new Animation(2000);
123 _ani.AnimateTo(pushButton1, "Opacity", 0.0f);
124 _ani.AnimateTo(pushButton2, "Opacity", 0.0f);
125 _ani.EndAction = Animation.EndActions.Discard;
129 private View Instance_PreFocusChange(object source, FocusManager.PreFocusChangeEventArgs e)
132 Tizen.Log.Debug("NUI", "Instance_PreFocusChange = " + e.Direction.ToString());
135 if (e.CurrentView == null) e.CurrentView = label[0];
136 if (e.ProposedView == null) e.ProposedView = label[0];
138 int index = Array.FindIndex(label, x => x == e.CurrentView);
140 Tizen.Log.Debug("NUI", "index = " + index);
144 case View.FocusDirection.Up:
145 index = (index + numOfSamples - 2) % numOfSamples; //changed
148 case View.FocusDirection.Down:
149 index = (index + 2) % numOfSamples; //changed
150 Tizen.Log.Debug("NUI", "pushbutton1 Visible=" + pushButton1.Visible + " pushbutton2 Visible=" + pushButton2.Visible); //added
152 case View.FocusDirection.Left:
157 case View.FocusDirection.Right:
166 Tizen.Log.Debug("NUI", "next index = " + index);
167 nextView = label[index];
169 if (e.CurrentView.HasKeyInputFocus())
171 //currentView?.ClearKeyInputFocus(); //removed
173 //nextView?.SetKeyInputFocus(); //removed
178 static void _Main(string[] args)
181 SampleMain sample = new SampleMain();