[NUI] Change GetDefaultWindow() to static func (#900)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / XamlBinding / TriggerAction.cs
1 using System;
2 using System.ComponentModel;
3
4 namespace Tizen.NUI.Binding
5 {
6     /// <since_tizen> 6 </since_tizen>
7     /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
8     [EditorBrowsable(EditorBrowsableState.Never)]
9     public abstract class TriggerAction
10     {
11         internal TriggerAction(Type associatedType)
12         {
13             if (associatedType == null)
14                 throw new ArgumentNullException("associatedType");
15             AssociatedType = associatedType;
16         }
17
18         /// <since_tizen> 6 </since_tizen>
19         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
20         [EditorBrowsable(EditorBrowsableState.Never)]
21         protected Type AssociatedType { get; private set; }
22
23         /// <since_tizen> 6 </since_tizen>
24         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
25         [EditorBrowsable(EditorBrowsableState.Never)]
26         protected abstract void Invoke(object sender);
27
28         internal virtual void DoInvoke(object sender)
29         {
30             Invoke(sender);
31         }
32     }
33
34     internal abstract class TriggerAction<T> : TriggerAction where T : BindableObject
35     {
36         protected TriggerAction() : base(typeof(T))
37         {
38         }
39
40         protected override void Invoke(object sender)
41         {
42             Invoke((T)sender);
43         }
44
45         protected abstract void Invoke(T sender);
46     }
47 }