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.
17 using System.ComponentModel;
19 namespace Tizen.NUI.Components
22 /// Selector class, which is related by Control State, it is base class for other Selector.
24 /// <since_tizen> 6 </since_tizen>
25 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
26 [EditorBrowsable(EditorBrowsableState.Never)]
27 public class Selector<T>
33 /// <since_tizen> 6 </since_tizen>
34 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
35 [EditorBrowsable(EditorBrowsableState.Never)]
44 /// <since_tizen> 6 </since_tizen>
45 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
46 [EditorBrowsable(EditorBrowsableState.Never)]
55 /// <since_tizen> 6 </since_tizen>
56 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
57 [EditorBrowsable(EditorBrowsableState.Never)]
66 /// <since_tizen> 6 </since_tizen>
67 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
68 [EditorBrowsable(EditorBrowsableState.Never)]
77 /// <since_tizen> 6 </since_tizen>
78 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
79 [EditorBrowsable(EditorBrowsableState.Never)]
88 /// <since_tizen> 6 </since_tizen>
89 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
90 [EditorBrowsable(EditorBrowsableState.Never)]
97 /// DisabledFocused State.
99 /// <since_tizen> 6 </since_tizen>
100 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
101 [EditorBrowsable(EditorBrowsableState.Never)]
102 public T DisabledFocused
108 /// SelectedFocused State.
110 /// <since_tizen> 6 </since_tizen>
111 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
112 public T SelectedFocused
118 /// DisabledSelected State.
120 /// <since_tizen> 6 </since_tizen>
121 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
122 [EditorBrowsable(EditorBrowsableState.Never)]
123 public T DisabledSelected
131 /// <since_tizen> 6 </since_tizen>
132 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
133 [EditorBrowsable(EditorBrowsableState.Never)]
140 /// Get value by State.
142 /// <since_tizen> 6 </since_tizen>
143 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
144 [EditorBrowsable(EditorBrowsableState.Never)]
145 public T GetValue(ControlStates state)
153 case ControlStates.Normal:
154 return Normal != null? Normal : Other;
155 case ControlStates.Focused:
156 return Focused != null? Focused : Other;
157 case ControlStates.Pressed:
158 return Pressed != null? Pressed : Other;
159 case ControlStates.Disabled:
160 return Disabled != null? Disabled : Other;
161 case ControlStates.Selected:
162 return Selected != null? Selected : Other;
163 case ControlStates.DisabledFocused:
164 return DisabledFocused != null? DisabledFocused : Other;
165 case ControlStates.DisabledSelected:
166 return DisabledSelected != null? DisabledSelected : Other;
167 case ControlStates.SelectedFocused:
168 return SelectedFocused != null ? SelectedFocused : Other;
176 /// <since_tizen> 6 </since_tizen>
177 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
178 [EditorBrowsable(EditorBrowsableState.Never)]
179 public void Clone(Selector<T> selector)
182 Normal = selector.Normal;
183 Focused = selector.Focused;
184 Pressed = selector.Pressed;
185 Disabled = selector.Disabled;
186 Selected = selector.Selected;
187 DisabledSelected = selector.DisabledSelected;
188 DisabledFocused = selector.DisabledFocused;
189 SelectedFocused = selector.SelectedFocused;
190 Other = selector.Other;
198 /// <since_tizen> 6 </since_tizen>
199 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
200 [EditorBrowsable(EditorBrowsableState.Never)]
201 public class IntSelector : Selector<int?>
204 /// Int selector clone function.
206 /// <since_tizen> 6 </since_tizen>
207 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
208 [EditorBrowsable(EditorBrowsableState.Never)]
209 public IntSelector Clone()
211 IntSelector selector = new IntSelector();
212 selector.Clone(this);
220 /// <since_tizen> 6 </since_tizen>
221 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
222 [EditorBrowsable(EditorBrowsableState.Never)]
223 public class FloatSelector : Selector<float?>
226 /// Float selector clone function.
228 /// <since_tizen> 6 </since_tizen>
229 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
230 [EditorBrowsable(EditorBrowsableState.Never)]
231 public FloatSelector Clone()
233 FloatSelector selector = new FloatSelector();
234 selector.Clone(this);
241 /// <since_tizen> 6 </since_tizen>
242 internal class BoolSelector : Selector<bool?>
245 /// Bool selector clone function.
247 /// <since_tizen> 6 </since_tizen>
248 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
249 [EditorBrowsable(EditorBrowsableState.Never)]
250 public BoolSelector Clone()
252 BoolSelector selector = new BoolSelector();
253 selector.Clone(this);
260 /// <since_tizen> 6 </since_tizen>
261 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
262 [EditorBrowsable(EditorBrowsableState.Never)]
263 public class StringSelector : Selector<string>
266 /// String selector clone function.
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 StringSelector Clone()
273 StringSelector selector = new StringSelector();
274 selector.Clone(this);
282 /// <since_tizen> 6 </since_tizen>
283 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
284 [EditorBrowsable(EditorBrowsableState.Never)]
285 public class ColorSelector : Selector<Color>
288 /// Color selector clone function.
290 /// <since_tizen> 6 </since_tizen>
291 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
292 [EditorBrowsable(EditorBrowsableState.Never)]
293 public ColorSelector Clone()
295 ColorSelector selector = new ColorSelector();
296 selector.Clone(this);
304 /// <since_tizen> 6 </since_tizen>
305 internal class Size2DSelector : Selector<Size2D>
308 /// Size2D selector clone function.
310 /// <since_tizen> 6 </since_tizen>
311 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
312 [EditorBrowsable(EditorBrowsableState.Never)]
313 public Size2DSelector Clone()
315 Size2DSelector selector = new Size2DSelector();
316 selector.Clone(this);
321 /// Position2D selector.
323 /// <since_tizen> 6 </since_tizen>
324 internal class Position2DSelector : Selector<Position2D>
327 /// Position2D selector clone function.
329 /// <since_tizen> 6 </since_tizen>
330 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
331 [EditorBrowsable(EditorBrowsableState.Never)]
332 public Position2DSelector Clone()
334 Position2DSelector selector = new Position2DSelector();
335 selector.Clone(this);
341 /// Position selector.
343 /// <since_tizen> 6 </since_tizen>
344 internal class PositionSelector : Selector<Position>
347 /// Position selector clone function.
349 /// <since_tizen> 6 </since_tizen>
350 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
351 [EditorBrowsable(EditorBrowsableState.Never)]
352 public PositionSelector Clone()
354 PositionSelector selector = new PositionSelector();
355 selector.Clone(this);
361 /// Vector2 selector.
363 /// <since_tizen> 6 </since_tizen>
364 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
365 [EditorBrowsable(EditorBrowsableState.Never)]
366 public class Vector2Selector : Selector<Vector2>
369 /// Vector selector clone function.
371 /// <since_tizen> 6 </since_tizen>
372 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
373 [EditorBrowsable(EditorBrowsableState.Never)]
374 public Vector2Selector Clone()
376 Vector2Selector selector = new Vector2Selector();
377 selector.Clone(this);
383 /// Vector3 selector.
385 /// <since_tizen> 6 </since_tizen>
386 internal class Vector3Selector : Selector<Vector3>
389 /// Vector3 selector clone function.
391 /// <since_tizen> 6 </since_tizen>
392 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
393 [EditorBrowsable(EditorBrowsableState.Never)]
394 public Vector3Selector Clone()
396 Vector3Selector selector = new Vector3Selector();
397 selector.Clone(this);
403 /// Rectangle selector.
405 /// <since_tizen> 6 </since_tizen>
406 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
407 [EditorBrowsable(EditorBrowsableState.Never)]
408 public class RectangleSelector : Selector<Rectangle>
411 /// Rectangle selector clone function.
413 /// <since_tizen> 6 </since_tizen>
414 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
415 [EditorBrowsable(EditorBrowsableState.Never)]
416 public RectangleSelector Clone()
418 RectangleSelector selector = new RectangleSelector();
419 selector.Clone(this);
425 /// Horizontal alignment selector.
427 /// <since_tizen> 6 </since_tizen>
428 internal class HorizontalAlignmentSelector : Selector<HorizontalAlignment?>
431 /// Horizontal alignment selector clone function.
433 /// <since_tizen> 6 </since_tizen>
434 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
435 [EditorBrowsable(EditorBrowsableState.Never)]
436 public HorizontalAlignmentSelector Clone()
438 HorizontalAlignmentSelector selector = new HorizontalAlignmentSelector();
439 selector.Clone(this);
444 /// Vertical alignment selector.
446 /// <since_tizen> 6 </since_tizen>
447 internal class VerticalAlignmentSelector : Selector<VerticalAlignment?>
450 /// Vertical alignment selector clone function.
452 /// <since_tizen> 6 </since_tizen>
453 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
454 [EditorBrowsable(EditorBrowsableState.Never)]
455 public VerticalAlignmentSelector Clone()
457 VerticalAlignmentSelector selector = new VerticalAlignmentSelector();
458 selector.Clone(this);
464 /// AutoScrollStopMode selector.
466 /// <since_tizen> 6 </since_tizen>
467 internal class AutoScrollStopModeSelector : Selector<AutoScrollStopMode?>
470 /// AutoScrollStopMode selector clone function.
472 /// <since_tizen> 6 </since_tizen>
473 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
474 [EditorBrowsable(EditorBrowsableState.Never)]
475 public AutoScrollStopModeSelector Clone()
477 AutoScrollStopModeSelector selector = new AutoScrollStopModeSelector();
478 selector.Clone(this);
484 /// ResizePolicyType selector.
486 /// <since_tizen> 6 </since_tizen>
487 internal class ResizePolicyTypeSelector : Selector<ResizePolicyType?>
490 /// ResizePolicyType selector clone function.
492 /// <since_tizen> 6 </since_tizen>
493 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
494 [EditorBrowsable(EditorBrowsableState.Never)]
495 public ResizePolicyTypeSelector Clone()
497 ResizePolicyTypeSelector selector = new ResizePolicyTypeSelector();
498 selector.Clone(this);