Follow formatting NUI
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / WidgetImpl.cs
1 /*
2  * Copyright(c) 2017 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17 using System;
18 using System.ComponentModel;
19 using System.Runtime.InteropServices;
20
21 namespace Tizen.NUI
22 {
23     internal class WidgetImpl : BaseObject
24     {
25
26         internal WidgetImpl() : this(Interop.WidgetImpl.WidgetImpl_New(), true)
27         {
28             SwigDirectorConnect();
29         }
30
31         internal WidgetImpl(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.WidgetImpl.WidgetImpl_SWIGUpcast(cPtr), cMemoryOwn)
32         {
33         }
34
35         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WidgetImpl obj)
36         {
37             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
38         }
39
40         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
41         {
42             //throw new global::System.MethodAccessException("C++ destructor does not have public access");
43         }
44
45         public class WIdgetInstanceOnCreateArgs : EventArgs
46         {
47             private string _contentInfo;
48             private Window _window;
49
50             public string ContentInfo
51             {
52                 get
53                 {
54                     return _contentInfo;
55                 }
56                 set
57                 {
58                     _contentInfo = value;
59                 }
60             }
61
62             public Window Window
63             {
64                 get
65                 {
66                     return _window;
67                 }
68                 set
69                 {
70                     _window = value;
71                 }
72             }
73         }
74
75         private EventHandler<WIdgetInstanceOnCreateArgs> _widgetInstanceOnCreateEventHandler;
76         public event EventHandler<WIdgetInstanceOnCreateArgs> WidgetInstanceCreated
77         {
78             add
79             {
80                 _widgetInstanceOnCreateEventHandler += value;
81             }
82             remove
83             {
84                 _widgetInstanceOnCreateEventHandler -= value;
85             }
86         }
87
88         public class WIdgetInstanceOnDestroyArgs : EventArgs
89         {
90             private string _contentInfo;
91             private Widget.TerminationType _terminateType;
92
93             public string ContentInfo
94             {
95                 get
96                 {
97                     return _contentInfo;
98                 }
99                 set
100                 {
101                     _contentInfo = value;
102                 }
103             }
104
105             public Widget.TerminationType TerminateType
106             {
107                 get
108                 {
109                     return _terminateType;
110                 }
111                 set
112                 {
113                     _terminateType = value;
114                 }
115             }
116         }
117
118         private EventHandler<WIdgetInstanceOnDestroyArgs> _widgetInstanceOnDestroyEventHandler;
119         public event EventHandler<WIdgetInstanceOnDestroyArgs> WidgetInstanceDestroyed
120         {
121             add
122             {
123                 _widgetInstanceOnDestroyEventHandler += value;
124             }
125             remove
126             {
127                 _widgetInstanceOnDestroyEventHandler -= value;
128             }
129         }
130
131         public class WidgetInstanceOnResizeArgs : EventArgs
132         {
133             private Window _window;
134
135             public Window Window
136             {
137                 get
138                 {
139                     return _window;
140                 }
141                 set
142                 {
143                     _window = value;
144                 }
145             }
146         }
147
148         private EventHandler<WidgetInstanceOnResizeArgs> _widgetInstanceOnResizeEventHandler;
149         public event EventHandler<WidgetInstanceOnResizeArgs> WidgetInstanceResized
150         {
151             add
152             {
153                 _widgetInstanceOnResizeEventHandler += value;
154             }
155             remove
156             {
157                 _widgetInstanceOnResizeEventHandler -= value;
158             }
159         }
160
161         private EventHandler _widgetInstanceOnPauseEventHandler;
162         public event EventHandler WidgetInstancePaused
163         {
164             add
165             {
166                 _widgetInstanceOnPauseEventHandler += value;
167             }
168             remove
169             {
170                 _widgetInstanceOnPauseEventHandler -= value;
171             }
172         }
173
174         private EventHandler _widgetInstanceOnResumeEventHandler;
175         public event EventHandler WidgetInstanceResumed
176         {
177             add
178             {
179                 _widgetInstanceOnResumeEventHandler += value;
180             }
181             remove
182             {
183                 _widgetInstanceOnResumeEventHandler -= value;
184             }
185         }
186
187         public class WidgetInstanceOnUpdateArgs : EventArgs
188         {
189             private string _contentInfo;
190             private int _force;
191
192             public string ContentInfo
193             {
194                 get
195                 {
196                     return _contentInfo;
197                 }
198                 set
199                 {
200                     _contentInfo = value;
201                 }
202             }
203
204             public int Force
205             {
206                 get
207                 {
208                     return _force;
209                 }
210                 set
211                 {
212                     _force = value;
213                 }
214             }
215         }
216
217         private EventHandler<WidgetInstanceOnUpdateArgs> _widgetInstanceOnUpdateEventHandler;
218         public event EventHandler<WidgetInstanceOnUpdateArgs> WidgetInstanceUpdated
219         {
220             add
221             {
222                 _widgetInstanceOnUpdateEventHandler += value;
223             }
224             remove
225             {
226                 _widgetInstanceOnUpdateEventHandler -= value;
227             }
228         }
229
230         public virtual void OnCreate(string contentInfo, Window window)
231         {
232             WIdgetInstanceOnCreateArgs args = new WIdgetInstanceOnCreateArgs();
233             args.ContentInfo = contentInfo;
234             args.Window = window;
235             _widgetInstanceOnCreateEventHandler?.Invoke(this, args);
236         }
237
238         public virtual void OnTerminate(string contentInfo, Widget.TerminationType type)
239         {
240             WIdgetInstanceOnDestroyArgs args = new WIdgetInstanceOnDestroyArgs();
241             args.ContentInfo = contentInfo;
242             args.TerminateType = type;
243             _widgetInstanceOnDestroyEventHandler?.Invoke(this, args);
244         }
245
246         public virtual void OnPause()
247         {
248             _widgetInstanceOnPauseEventHandler?.Invoke(this, new EventArgs());
249         }
250
251         public virtual void OnResume()
252         {
253             _widgetInstanceOnResumeEventHandler?.Invoke(this, new EventArgs());
254         }
255
256         public virtual void OnResize(Window window)
257         {
258             WidgetInstanceOnResizeArgs args = new WidgetInstanceOnResizeArgs();
259             args.Window = window;
260             _widgetInstanceOnResizeEventHandler?.Invoke(this, args);
261         }
262
263         public virtual void OnUpdate(string contentInfo, int force)
264         {
265             WidgetInstanceOnUpdateArgs args = new WidgetInstanceOnUpdateArgs();
266             args.ContentInfo = contentInfo;
267             args.Force = force;
268             _widgetInstanceOnUpdateEventHandler?.Invoke(this, args);
269         }
270
271         internal virtual void SignalConnected(SlotObserver slotObserver, SWIGTYPE_p_Dali__CallbackBase callback)
272         {
273         }
274
275         internal virtual void SignalDisconnected(SlotObserver slotObserver, SWIGTYPE_p_Dali__CallbackBase callback)
276         {
277         }
278
279         public void SetContentInfo(string contentInfo)
280         {
281             Interop.WidgetImpl.WidgetImpl_SetContentInfo(swigCPtr, contentInfo);
282             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
283         }
284
285         internal void SetImpl(SWIGTYPE_p_Dali__Widget__Impl impl)
286         {
287             Interop.WidgetImpl.WidgetImpl_SetImpl(swigCPtr, SWIGTYPE_p_Dali__Widget__Impl.getCPtr(impl));
288             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
289         }
290
291         private void SwigDirectorConnect()
292         {
293             swigDelegate0 = new SwigDelegateWidgetImpl_0(SwigDirectorOnCreate);
294             swigDelegate1 = new SwigDelegateWidgetImpl_1(SwigDirectorOnTerminate);
295             swigDelegate2 = new SwigDelegateWidgetImpl_2(SwigDirectorOnPause);
296             swigDelegate3 = new SwigDelegateWidgetImpl_3(SwigDirectorOnResume);
297             swigDelegate4 = new SwigDelegateWidgetImpl_4(SwigDirectorOnResize);
298             swigDelegate5 = new SwigDelegateWidgetImpl_5(SwigDirectorOnUpdate);
299             swigDelegate6 = new SwigDelegateWidgetImpl_6(SwigDirectorSignalConnected);
300             swigDelegate7 = new SwigDelegateWidgetImpl_7(SwigDirectorSignalDisconnected);
301             Interop.WidgetImpl.WidgetImpl_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3, swigDelegate4, swigDelegate5, swigDelegate6, swigDelegate7);
302         }
303
304         private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes)
305         {
306             global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
307             bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WidgetImpl));
308             return hasDerivedMethod;
309         }
310
311         private void SwigDirectorOnCreate(string contentInfo, global::System.IntPtr window)
312         {
313             Window ret = Registry.GetManagedBaseHandleFromNativePtr(window) as Window;
314             if (ret == null)
315             {
316                 ret = new Window(window, true);
317             }
318             OnCreate(contentInfo, ret);
319         }
320
321         private void SwigDirectorOnTerminate(string contentInfo, int type)
322         {
323             OnTerminate(contentInfo, (Widget.TerminationType)type);
324         }
325
326         private void SwigDirectorOnPause()
327         {
328             OnPause();
329         }
330
331         private void SwigDirectorOnResume()
332         {
333             OnResume();
334         }
335
336         private void SwigDirectorOnResize(global::System.IntPtr window)
337         {
338             Window ret = Registry.GetManagedBaseHandleFromNativePtr(window) as Window;
339             if (ret == null)
340             {
341                 ret = new Window(window, true);
342             }
343             OnResize(ret);
344         }
345
346         private void SwigDirectorOnUpdate(string contentInfo, int force)
347         {
348             OnUpdate(contentInfo, force);
349         }
350
351         private void SwigDirectorSignalConnected(global::System.IntPtr slotObserver, global::System.IntPtr callback)
352         {
353             SignalConnected((slotObserver == global::System.IntPtr.Zero) ? null : new SlotObserver(slotObserver, false), (callback == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_Dali__CallbackBase(callback, false));
354         }
355
356         private void SwigDirectorSignalDisconnected(global::System.IntPtr slotObserver, global::System.IntPtr callback)
357         {
358             SignalDisconnected((slotObserver == global::System.IntPtr.Zero) ? null : new SlotObserver(slotObserver, false), (callback == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_Dali__CallbackBase(callback, false));
359         }
360
361         public delegate void SwigDelegateWidgetImpl_0(string contentInfo, global::System.IntPtr window);
362         public delegate void SwigDelegateWidgetImpl_1(string contentInfo, int type);
363         public delegate void SwigDelegateWidgetImpl_2();
364         public delegate void SwigDelegateWidgetImpl_3();
365         public delegate void SwigDelegateWidgetImpl_4(global::System.IntPtr window);
366         public delegate void SwigDelegateWidgetImpl_5(string contentInfo, int force);
367         public delegate void SwigDelegateWidgetImpl_6(global::System.IntPtr slotObserver, global::System.IntPtr callback);
368         public delegate void SwigDelegateWidgetImpl_7(global::System.IntPtr slotObserver, global::System.IntPtr callback);
369
370         private SwigDelegateWidgetImpl_0 swigDelegate0;
371         private SwigDelegateWidgetImpl_1 swigDelegate1;
372         private SwigDelegateWidgetImpl_2 swigDelegate2;
373         private SwigDelegateWidgetImpl_3 swigDelegate3;
374         private SwigDelegateWidgetImpl_4 swigDelegate4;
375         private SwigDelegateWidgetImpl_5 swigDelegate5;
376         private SwigDelegateWidgetImpl_6 swigDelegate6;
377         private SwigDelegateWidgetImpl_7 swigDelegate7;
378
379         private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(string), typeof(Window) };
380         private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(string), typeof(Widget.TerminationType) };
381         private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { };
382         private static global::System.Type[] swigMethodTypes3 = new global::System.Type[] { };
383         private static global::System.Type[] swigMethodTypes4 = new global::System.Type[] { typeof(Window) };
384         private static global::System.Type[] swigMethodTypes5 = new global::System.Type[] { typeof(string), typeof(int) };
385         private static global::System.Type[] swigMethodTypes6 = new global::System.Type[] { typeof(SlotObserver), typeof(SWIGTYPE_p_Dali__CallbackBase) };
386         private static global::System.Type[] swigMethodTypes7 = new global::System.Type[] { typeof(SlotObserver), typeof(SWIGTYPE_p_Dali__CallbackBase) };
387     }
388 }