dd9868191ac68d57fb0904c8167739afedd7903c
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / StyleManager.cs
1 //------------------------------------------------------------------------------
2 // <auto-generated />
3 //
4 // This file was automatically generated by SWIG (http://www.swig.org).
5 // Version 3.0.9
6 //
7 // Do not make changes to this file unless you know what you are doing--modify
8 // the SWIG interface file instead.
9 //------------------------------------------------------------------------------
10
11 namespace Tizen.NUI
12 {
13
14     using System;
15     using System.Runtime.InteropServices;
16
17     public class StyleManager : BaseHandle
18     {
19         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
20
21         internal StyleManager(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.StyleManager_SWIGUpcast(cPtr), cMemoryOwn)
22         {
23             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
24         }
25
26         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(StyleManager obj)
27         {
28             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
29         }
30
31         ~StyleManager()
32         {
33             DisposeQueue.Instance.Add(this);
34         }
35
36         public override void Dispose()
37         {
38             if (!Stage.IsInstalled())
39             {
40                 DisposeQueue.Instance.Add(this);
41                 return;
42             }
43
44             lock (this)
45             {
46                 if (swigCPtr.Handle != global::System.IntPtr.Zero)
47                 {
48                     if (swigCMemOwn)
49                     {
50                         swigCMemOwn = false;
51                         NDalicPINVOKE.delete_StyleManager(swigCPtr);
52                     }
53                     swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
54                 }
55                 global::System.GC.SuppressFinalize(this);
56                 base.Dispose();
57             }
58         }
59
60
61
62
63         /**
64           * @brief Event arguments that passed via StyleChanged signal
65           *
66           */
67         public class StyleChangedEventArgs : EventArgs
68         {
69             private StyleManager _styleManager;
70             private StyleChangeType _styleChange;
71
72             /**
73               * @brief StyleManager - is the StyleManager that informs applications of system theme change,
74               * and supports application theme change at runtime.
75               *
76               */
77             public StyleManager StyleManager
78             {
79                 get
80                 {
81                     return _styleManager;
82                 }
83                 set
84                 {
85                     _styleManager = value;
86                 }
87             }
88
89             /**
90               * @brief StyleChange - contains Style change information (default font changed or
91               * default font size changed or theme has changed)
92               *
93               */
94             public StyleChangeType StyleChange
95             {
96                 get
97                 {
98                     return _styleChange;
99                 }
100                 set
101                 {
102                     _styleChange = value;
103                 }
104             }
105
106         }
107
108         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
109         private delegate void StyleChangedCallbackDelegate(IntPtr styleManager, Tizen.NUI.StyleChangeType styleChange);
110         private EventHandler<StyleChangedEventArgs> _styleManagerStyleChangedEventHandler;
111         private StyleChangedCallbackDelegate _styleManagerStyleChangedCallbackDelegate;
112
113         /**
114           * @brief Event for StyleChanged signal which can be used to subscribe/unsubscribe the
115           * event handler (in the type of StyleChangedEventHandler-DaliEventHandler<object,StyleChangedEventArgs>) 
116           * provided by the user. StyleChanged signal is is emitted after the style (e.g. theme/font change) has changed
117           * and the controls have been informed.
118           */
119         public event EventHandler<StyleChangedEventArgs> StyleChanged
120         {
121             add
122             {
123                 if (_styleManagerStyleChangedEventHandler == null)
124                 {
125                     _styleManagerStyleChangedCallbackDelegate = (OnStyleChanged);
126                     StyleChangedSignal().Connect(_styleManagerStyleChangedCallbackDelegate);
127                 }
128                 _styleManagerStyleChangedEventHandler += value;
129             }
130             remove
131             {
132                 _styleManagerStyleChangedEventHandler -= value;
133                 if (_styleManagerStyleChangedEventHandler == null && _styleManagerStyleChangedCallbackDelegate != null)
134                 {
135                     StyleChangedSignal().Disconnect(_styleManagerStyleChangedCallbackDelegate);
136                 }
137             }
138         }
139
140         // Callback for StyleManager StyleChangedsignal
141         private void OnStyleChanged(IntPtr styleManager, StyleChangeType styleChange)
142         {
143             StyleChangedEventArgs e = new StyleChangedEventArgs();
144
145             // Populate all members of "e" (StyleChangedEventArgs) with real data
146             e.StyleManager = StyleManager.GetStyleManagerFromPtr(styleManager);
147             e.StyleChange = styleChange;
148
149             if (_styleManagerStyleChangedEventHandler != null)
150             {
151                 //here we send all data to user event handlers
152                 _styleManagerStyleChangedEventHandler(this, e);
153             }
154         }
155
156         internal static StyleManager GetStyleManagerFromPtr(global::System.IntPtr cPtr)
157         {
158             StyleManager ret = new StyleManager(cPtr, false);
159             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
160             return ret;
161         }
162
163
164         public StyleManager() : this(NDalicPINVOKE.new_StyleManager(), true)
165         {
166             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
167         }
168
169         public static StyleManager Get()
170         {
171             StyleManager ret = new StyleManager(NDalicPINVOKE.StyleManager_Get(), true);
172             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
173             return ret;
174         }
175
176         public void ApplyTheme(string themeFile)
177         {
178             NDalicPINVOKE.StyleManager_ApplyTheme(swigCPtr, themeFile);
179             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
180         }
181
182         public void ApplyDefaultTheme()
183         {
184             NDalicPINVOKE.StyleManager_ApplyDefaultTheme(swigCPtr);
185             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
186         }
187
188         public void SetStyleConstant(string key, PropertyValue value)
189         {
190             NDalicPINVOKE.StyleManager_SetStyleConstant(swigCPtr, key, PropertyValue.getCPtr(value));
191             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
192         }
193
194         public bool GetStyleConstant(string key, PropertyValue valueOut)
195         {
196             bool ret = NDalicPINVOKE.StyleManager_GetStyleConstant(swigCPtr, key, PropertyValue.getCPtr(valueOut));
197             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
198             return ret;
199         }
200
201         public void ApplyStyle(View control, string jsonFileName, string styleName)
202         {
203             NDalicPINVOKE.StyleManager_ApplyStyle(swigCPtr, View.getCPtr(control), jsonFileName, styleName);
204             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
205         }
206
207         internal StyleChangedSignal StyleChangedSignal()
208         {
209             StyleChangedSignal ret = new StyleChangedSignal(NDalicPINVOKE.StyleManager_StyleChangedSignal(swigCPtr), false);
210             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
211             return ret;
212         }
213
214     }
215
216     public enum StyleChangeType
217     {
218         DefaultFontChange,
219         DefaultFontSizeChange,
220         ThemeChange
221     }
222
223 }