4 using Tizen.NUI.UIComponents;
5 using Tizen.NUI.BaseComponents;
7 namespace FlexContainerTest
9 public class SampleMain : NUIApplication
11 public readonly static string[] samples = new string[]
19 "FrameAnimationSample"
23 FlexContainer container;
26 PushButton pushButton1, pushButton2;
28 private Animation _ani;
30 protected override void OnCreate()
34 Window.Instance.BackgroundColor = new Color(0.1f, 0.8f, 0.1f, 1.0f);
36 container = new FlexContainer();
37 container.Size2D = new Size2D(Window.Instance.Size.Width, Window.Instance.Size.Height);
38 container.PivotPoint = PivotPoint.TopLeft;
39 container.Padding = new Vector4(100, 100, 100, 100);
41 container.FlexWrap = FlexContainer.WrapType.Wrap;
42 container.FlexDirection = FlexContainer.FlexDirectionType.Column;
44 Window.Instance.Add(container);
46 numOfSamples = samples.GetLength(0);
47 Tizen.Log.Debug("NUI", "NUM = " + numOfSamples);
48 label = new TextLabel[numOfSamples];
49 for (int i = 0; i < numOfSamples; i++)
51 label[i] = new TextLabel();
52 label[i].Focusable = true;
53 label[i].BackgroundColor = Color.Red;
54 //label[i].Size = new Size(100, 50, 0);
55 label[i].Text = samples[i];
56 label[i].FlexMargin = new Vector4(20, 20, 20, 20);
57 label[i].PointSize = 10;
58 label[i].Name = "label" + i.ToString();
59 container.Add(label[i]);
62 //label[3].SetKeyInputFocus(); //removed
63 FocusManager.Instance.SetCurrentFocusView(label[3]);
65 FocusManager.Instance.PreFocusChange += Instance_PreFocusChange;
67 FocusManager.Instance.FocusChanged += (sender, e) =>
69 if(e.CurrentView) Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.CurrentView.Name=" + e.CurrentView.Name);
70 else Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.CurrentView is null!");
71 if (e.NextView) Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.NextView.Name=" + e.NextView.Name);
72 else Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.NextView is null!");
75 FocusManager.Instance.FocusedViewActivated += (sender, e) =>
77 if (e.View) Tizen.Log.Debug("NUI", "FocusManager FocusedViewEnterKeyPressed signal callback! e.View.Name=" + e.View.Name);
78 else Tizen.Log.Debug("NUI", "FocusManager FocusChanged signal callback! e.View is null!");
82 Window.Instance.TouchEvent += (sender, e) =>
84 Tizen.Log.Debug("NUI", "Window Touch signal callback! To avoid crash, when losing key focus, set here again unless the NextView is null");
85 FocusManager.Instance.SetCurrentFocusView(label[3]);
89 pushButton1 = new PushButton();
90 pushButton1.MinimumSize = new Size2D(400, 200);
91 pushButton1.LabelText = "+PreFocusChange";
92 pushButton1.ParentOrigin = ParentOrigin.TopLeft;
93 pushButton1.PivotPoint = PivotPoint.TopLeft;
94 pushButton1.Position2D = new Position2D(200, 800);
95 pushButton1.Clicked += (sender, e) =>
97 Tizen.Log.Debug("NUI", "pushbutton1 clicked! add handler!");
99 FocusManager.Instance.PreFocusChange += Instance_PreFocusChange;
100 _ani.Finished += _ani_Finished;
101 pushButton1.LabelText = "Add Handler" + _cnt;
102 pushButton2.LabelText = "Remove Handler" + _cnt;
105 Window.Instance.Add(pushButton1);
107 pushButton2 = new PushButton();
108 pushButton2.MinimumSize = new Size2D(400, 200);
109 pushButton2.LabelText = "-PreFocusChange";
110 pushButton2.ParentOrigin = ParentOrigin.TopLeft;
111 pushButton2.PivotPoint = PivotPoint.TopLeft;
112 pushButton2.Position2D = new Position2D(800, 800);
113 pushButton2.Clicked += (sender, e) =>
115 Tizen.Log.Debug("NUI", "pushbutton2 clicked! remove handler!");
117 FocusManager.Instance.PreFocusChange -= Instance_PreFocusChange;
118 _ani.Finished -= _ani_Finished;
119 pushButton1.LabelText = "Add Handler" + _cnt;
120 pushButton2.LabelText = "Remove Handler" + _cnt;
123 Window.Instance.Add(pushButton2);
126 _ani = new Animation(2000);
127 _ani.AnimateTo(pushButton1, "Opacity", 0.0f);
128 _ani.AnimateTo(pushButton2, "Opacity", 0.0f);
129 _ani.EndAction = Animation.EndActions.Discard;
130 _ani.Finished += _ani_Finished;
134 private void _ani_Finished(object sender, EventArgs e)
136 Tizen.Log.Debug("NUI", "_ani finished! _cnt=" + _cnt);
139 private View Instance_PreFocusChange(object source, FocusManager.PreFocusChangeEventArgs e)
142 Tizen.Log.Debug("NUI", "Instance_PreFocusChange = " + e.Direction.ToString());
145 if (e.CurrentView == null) e.CurrentView = label[0];
146 if (e.ProposedView == null) e.ProposedView = label[0];
148 int index = Array.FindIndex(label, x => x == e.CurrentView);
150 Tizen.Log.Debug("NUI", "index = " + index);
154 case View.FocusDirection.Up:
155 index = (index + numOfSamples - 2) % numOfSamples; //changed
158 case View.FocusDirection.Down:
159 index = (index + 2) % numOfSamples; //changed
160 Tizen.Log.Debug("NUI", "pushbutton1 Visible=" + pushButton1.Visible + " pushbutton2 Visible=" + pushButton2.Visible); //added
162 case View.FocusDirection.Left:
167 case View.FocusDirection.Right:
176 Tizen.Log.Debug("NUI", "next index = " + index);
177 nextView = label[index];
179 if (e.CurrentView.HasFocus())
181 //currentView?.ClearKeyInputFocus(); //removed
183 //nextView?.SetKeyInputFocus(); //removed
188 static void _Main(string[] args)
191 SampleMain sample = new SampleMain();