Merge "Resource ready signal for Controls (for ImageLoading)" into devel/master
[platform/core/uifw/dali-toolkit.git] / plugins / dali-sharp / sharp / internal / StyleManager.cs
1 //------------------------------------------------------------------------------
2 // <auto-generated />
3 //
4 // This file was automatically generated by SWIG (http://www.swig.org).
5 // Version 3.0.10
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 Dali {
12
13 using System;
14 using System.Runtime.InteropServices;
15
16 public class StyleManager : BaseHandle {
17   private global::System.Runtime.InteropServices.HandleRef swigCPtr;
18
19   internal StyleManager(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.StyleManager_SWIGUpcast(cPtr), cMemoryOwn) {
20     swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
21   }
22
23   internal static global::System.Runtime.InteropServices.HandleRef getCPtr(StyleManager obj) {
24     return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
25   }
26
27   ~StyleManager() {
28     DisposeQueue.Instance.Add(this);
29   }
30
31   public override void Dispose() {
32     if (!Stage.IsInstalled()) {
33       DisposeQueue.Instance.Add(this);
34       return;
35     }
36
37     lock(this) {
38       if (swigCPtr.Handle != global::System.IntPtr.Zero) {
39         if (swigCMemOwn) {
40           swigCMemOwn = false;
41           NDalicPINVOKE.delete_StyleManager(swigCPtr);
42         }
43         swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
44       }
45       global::System.GC.SuppressFinalize(this);
46       base.Dispose();
47     }
48   }
49
50
51
52
53 /**
54   * @brief Event arguments that passed via StyleChanged signal
55   *
56   */
57 public class StyleChangedEventArgs : EventArgs
58 {
59    private StyleManager _styleManager;
60    private Dali.StyleChangeType _styleChange;
61
62    /**
63      * @brief StyleManager - is the StyleManager that informs applications of system theme change,
64      * and supports application theme change at runtime.
65      *
66      */
67    public StyleManager StyleManager
68    {
69       get
70       {
71          return _styleManager;
72       }
73       set
74       {
75          _styleManager = value;
76       }
77    }
78
79    /**
80      * @brief StyleChange - contains Style change information (default font changed or
81      * default font size changed or theme has changed)
82      *
83      */
84    public Dali.StyleChangeType StyleChange
85    {
86       get
87       {
88          return _styleChange;
89       }
90       set
91       {
92          _styleChange = value;
93       }
94    }
95
96 }
97
98   [UnmanagedFunctionPointer(CallingConvention.StdCall)]
99   private delegate void StyleChangedCallbackDelegate(IntPtr styleManager, Dali.StyleChangeType styleChange);
100   private DaliEventHandler<object,StyleChangedEventArgs> _styleManagerStyleChangedEventHandler;
101   private StyleChangedCallbackDelegate _styleManagerStyleChangedCallbackDelegate;
102
103   /**
104     * @brief Event for StyleChanged signal which can be used to subscribe/unsubscribe the
105     * event handler (in the type of StyleChangedEventHandler-DaliEventHandler<object,StyleChangedEventArgs>) 
106     * provided by the user. StyleChanged signal is is emitted after the style (e.g. theme/font change) has changed
107     * and the controls have been informed.
108     */
109   public event DaliEventHandler<object,StyleChangedEventArgs> StyleChanged
110   {
111      add
112      {
113         lock(this)
114         {
115            // Restricted to only one listener
116            if (_styleManagerStyleChangedEventHandler == null)
117            {
118               _styleManagerStyleChangedEventHandler += value;
119
120               _styleManagerStyleChangedCallbackDelegate = new StyleChangedCallbackDelegate(OnStyleChanged);
121               this.StyleChangedSignal().Connect(_styleManagerStyleChangedCallbackDelegate);
122            }
123         }
124      }
125
126      remove
127      {
128         lock(this)
129         {
130            if (_styleManagerStyleChangedEventHandler != null)
131            {
132               this.StyleChangedSignal().Disconnect(_styleManagerStyleChangedCallbackDelegate);
133            }
134
135            _styleManagerStyleChangedEventHandler -= value;
136         }
137      }
138   }
139
140   // Callback for StyleManager StyleChangedsignal
141   private void OnStyleChanged(IntPtr styleManager, Dali.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    public static StyleManager GetStyleManagerFromPtr(global::System.IntPtr cPtr) {
157       StyleManager ret = new StyleManager(cPtr, false);
158       if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
159       return ret;
160    }
161
162
163   public StyleManager() : this(NDalicPINVOKE.new_StyleManager(), true) {
164     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
165   }
166
167   public static StyleManager Get() {
168     StyleManager ret = new StyleManager(NDalicPINVOKE.StyleManager_Get(), true);
169     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
170     return ret;
171   }
172
173   public void ApplyTheme(string themeFile) {
174     NDalicPINVOKE.StyleManager_ApplyTheme(swigCPtr, themeFile);
175     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
176   }
177
178   public void ApplyDefaultTheme() {
179     NDalicPINVOKE.StyleManager_ApplyDefaultTheme(swigCPtr);
180     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
181   }
182
183   public void SetStyleConstant(string key, Property.Value value) {
184     NDalicPINVOKE.StyleManager_SetStyleConstant(swigCPtr, key, Property.Value.getCPtr(value));
185     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
186   }
187
188   public bool GetStyleConstant(string key, Property.Value valueOut) {
189     bool ret = NDalicPINVOKE.StyleManager_GetStyleConstant(swigCPtr, key, Property.Value.getCPtr(valueOut));
190     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
191     return ret;
192   }
193
194   public void ApplyStyle(View control, string jsonFileName, string styleName) {
195     NDalicPINVOKE.StyleManager_ApplyStyle(swigCPtr, View.getCPtr(control), jsonFileName, styleName);
196     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
197   }
198
199   public StyleChangedSignal StyleChangedSignal() {
200     StyleChangedSignal ret = new StyleChangedSignal(NDalicPINVOKE.StyleManager_StyleChangedSignal(swigCPtr), false);
201     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
202     return ret;
203   }
204
205 }
206
207 }