2 * Copyright(c) 2017 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.
18 using System.ComponentModel;
19 using System.Runtime.InteropServices;
24 /// Widget object should be created by WidgetApplication.
26 /// This is an experimental feature. We do recommend not to use it.
27 /// <since_tizen> 4 </since_tizen>
28 [Obsolete("Please do not use! This will be deprecated!")]
29 [EditorBrowsable(EditorBrowsableState.Never)]
30 public class Widget : BaseHandle
32 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
34 internal Widget(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicManualPINVOKE.Widget_SWIGUpcast(cPtr), cMemoryOwn)
36 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
39 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Widget obj)
41 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
45 /// To make Widget instance be disposed.
47 /// <since_tizen> 4 </since_tizen>
48 protected override void Dispose(DisposeTypes type)
55 if(type == DisposeTypes.Explicit)
58 //Release your own managed resources here.
59 //You should release all of your own disposable objects here.
62 //Release your own unmanaged resources here.
63 //You should not access any managed member here except static instance.
64 //because the execution order of Finalizes is non-deterministic.
65 if (_createCallback != null)
67 this.CreateSignal().Disconnect(_createCallback);
70 if (_pauseCallback != null)
72 this.PauseSignal().Disconnect(_pauseCallback);
75 if (_resizeCallback != null)
77 this.ResizeSignal().Disconnect(_resizeCallback);
80 if (_resumeCallback != null)
82 this.ResumeSignal().Disconnect(_resumeCallback);
85 if (_terminateCallback != null)
87 this.TerminateSignal().Disconnect(_terminateCallback);
90 if (_updateCallback != null)
92 this.UpdateSignal().Disconnect(_updateCallback);
95 if (swigCPtr.Handle != global::System.IntPtr.Zero)
100 NDalicManualPINVOKE.delete_Widget(swigCPtr);
102 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
109 /// This is the constructor for Widget.
111 /// <param name="id">for widget instance</param>
112 /// <since_tizen> 4 </since_tizen>
113 public Widget(string id) : this(NDalicManualPINVOKE.Widget_New(id), true)
115 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
118 internal Widget(Widget widget) : this(NDalicManualPINVOKE.new_Widget__SWIG_1(Widget.getCPtr(widget)), true)
120 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
123 internal Widget Assign(Widget widget)
125 Widget ret = new Widget(NDalicManualPINVOKE.Widget_Assign(swigCPtr, Widget.getCPtr(widget)), false);
126 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
131 /// Event arguments that passed via KeyEvent signal.
133 /// <since_tizen> 4 </since_tizen>
134 public class CreateEventArgs : EventArgs
139 /// <since_tizen> 4 </since_tizen>
149 /// <since_tizen> 4 </since_tizen>
150 public SWIGTYPE_p_bundle Bundle
159 /// <since_tizen> 4 </since_tizen>
167 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
168 private delegate void CreateCallbackType(string id, IntPtr bundle, IntPtr window);
169 private CreateCallbackType _createCallback;
170 private EventHandler<CreateEventArgs> _createEventHandler;
175 /// <since_tizen> 4 </since_tizen>
176 public event EventHandler<CreateEventArgs> Create
180 if (_createEventHandler == null)
182 _createCallback = OnCreate;
183 CreateSignal().Connect(_createCallback);
186 _createEventHandler += value;
191 _createEventHandler -= value;
193 if (_createEventHandler == null && CreateSignal().Empty() == false)
195 CreateSignal().Disconnect(_createCallback);
200 private void OnCreate(string id, IntPtr bundle, IntPtr window)
202 CreateEventArgs e = new CreateEventArgs();
208 e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
212 e.Window = new Window(window, false);
215 _createEventHandler?.Invoke(this, e);
218 internal WidgetCreateSignalType CreateSignal()
220 WidgetCreateSignalType ret = new WidgetCreateSignalType(NDalicManualPINVOKE.Widget_CreateSignal(swigCPtr), false);
221 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
226 /// Event arguments that passed via terminate event signal.
228 /// <since_tizen> 4 </since_tizen>
229 public class TerminateEventArgs : EventArgs
234 /// <since_tizen> 4 </since_tizen>
244 /// <since_tizen> 4 </since_tizen>
245 public SWIGTYPE_p_bundle Bundle
252 /// widget terminate type.
254 /// <since_tizen> 4 </since_tizen>
255 public WidgetTerminateType WidgetTerminateType
262 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
263 private delegate void TerminateCallbackType(string id, IntPtr bundle, WidgetTerminateType widgetTerminateType);
264 private TerminateCallbackType _terminateCallback;
265 private EventHandler<TerminateEventArgs> _terminateEventHandler;
270 /// <since_tizen> 4 </since_tizen>
271 public event EventHandler<TerminateEventArgs> Terminate
275 if (_terminateEventHandler == null)
277 _terminateCallback = OnTerminate;
278 TerminateSignal().Connect(_terminateCallback);
281 _terminateEventHandler += value;
286 _terminateEventHandler -= value;
288 if (_terminateEventHandler == null && TerminateSignal().Empty() == false)
290 TerminateSignal().Disconnect(_terminateCallback);
295 private void OnTerminate(string id, IntPtr bundle, WidgetTerminateType widgetTerminateType)
297 TerminateEventArgs e = new TerminateEventArgs();
302 e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
305 e.WidgetTerminateType = widgetTerminateType;
306 _terminateEventHandler?.Invoke(this, e);
309 internal WidgetTerminateSignalType TerminateSignal()
311 WidgetTerminateSignalType ret = new WidgetTerminateSignalType(NDalicManualPINVOKE.Widget_TerminateSignal(swigCPtr), false);
312 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
317 /// Event arguments that passed via pause event signal.
319 /// <since_tizen> 4 </since_tizen>
320 public class PauseEventArgs : EventArgs
325 /// <since_tizen> 4 </since_tizen>
333 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
334 private delegate void PauseCallbackType(string id);
335 private PauseCallbackType _pauseCallback;
336 private EventHandler<PauseEventArgs> _pauseEventHandler;
341 /// <since_tizen> 4 </since_tizen>
342 public event EventHandler<PauseEventArgs> Pause
346 if (_pauseEventHandler == null)
348 _pauseCallback = OnPause;
349 PauseSignal().Connect(_pauseCallback);
352 _pauseEventHandler += value;
357 _pauseEventHandler -= value;
359 if (_pauseEventHandler == null && PauseSignal().Empty() == false)
361 PauseSignal().Disconnect(_pauseCallback);
366 private void OnPause(string id)
368 PauseEventArgs e = new PauseEventArgs();
371 _pauseEventHandler?.Invoke(this, e);
374 internal WidgetPauseSignalType PauseSignal()
376 WidgetPauseSignalType ret = new WidgetPauseSignalType(NDalicManualPINVOKE.Widget_PauseSignal(swigCPtr), false);
377 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
382 /// Event arguments that passed via pause event signal.
384 /// <since_tizen> 4 </since_tizen>
385 public class ResumeEventArgs : EventArgs
390 /// <since_tizen> 4 </since_tizen>
398 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
399 private delegate void ResumeCallbackType(string id);
400 private ResumeCallbackType _resumeCallback;
401 private EventHandler<ResumeEventArgs> _resumeEventHandler;
406 /// <since_tizen> 4 </since_tizen>
407 public event EventHandler<ResumeEventArgs> Resume
411 if (_resumeEventHandler == null)
413 _resumeCallback = OnResume;
414 ResumeSignal().Connect(_resumeCallback);
417 _resumeEventHandler += value;
422 _resumeEventHandler -= value;
424 if (_resumeEventHandler == null && ResumeSignal().Empty() == false)
426 ResumeSignal().Disconnect(_resumeCallback);
431 private void OnResume(string id)
433 ResumeEventArgs e = new ResumeEventArgs();
436 _resumeEventHandler?.Invoke(this, e);
439 internal WidgetResumeSignalType ResumeSignal()
441 WidgetResumeSignalType ret = new WidgetResumeSignalType(NDalicManualPINVOKE.Widget_ResumeSignal(swigCPtr), false);
442 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
447 /// Event arguments that passed via resize signal.
449 /// <since_tizen> 4 </since_tizen>
450 public class ResizeEventArgs : EventArgs
455 /// <since_tizen> 4 </since_tizen>
465 /// <since_tizen> 4 </since_tizen>
473 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
474 private delegate void ResizeCallbackType(string id, IntPtr window);
475 private ResizeCallbackType _resizeCallback;
476 private EventHandler<ResizeEventArgs> _resizeEventHandler;
481 /// <since_tizen> 4 </since_tizen>
482 public event EventHandler<ResizeEventArgs> Resize
486 if (_resizeEventHandler == null)
488 _resizeCallback = OnResize;
489 ResizeSignal().Connect(_resizeCallback);
492 _resizeEventHandler += value;
497 _resizeEventHandler -= value;
499 if (_resizeEventHandler == null && ResizeSignal().Empty() == false)
501 ResizeSignal().Disconnect(_resizeCallback);
506 private void OnResize(string id, IntPtr window)
508 ResizeEventArgs e = new ResizeEventArgs();
512 e.Window = new Window(window, false);
515 _resizeEventHandler?.Invoke(this, e);
518 internal WidgetResizeSignalType ResizeSignal()
520 WidgetResizeSignalType ret = new WidgetResizeSignalType(NDalicManualPINVOKE.Widget_ResizeSignal(swigCPtr), false);
521 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
526 /// Event arguments that passed via update event signal.
528 /// <since_tizen> 4 </since_tizen>
529 public class UpdateEventArgs : EventArgs
534 /// <since_tizen> 4 </since_tizen>
544 /// <since_tizen> 4 </since_tizen>
545 public SWIGTYPE_p_bundle Bundle
552 /// It means several steps.
556 /// 1 -> force but do something
559 /// <since_tizen> 4 </since_tizen>
567 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
568 private delegate void UpdateCallbackType(string id, IntPtr bundle, int force);
569 private UpdateCallbackType _updateCallback;
570 private EventHandler<UpdateEventArgs> _updateEventHandler;
575 /// <since_tizen> 4 </since_tizen>
576 public event EventHandler<UpdateEventArgs> Update
580 if (_updateEventHandler == null)
582 _updateCallback = OnUpdate;
583 UpdateSignal().Connect(_updateCallback);
586 _updateEventHandler += value;
591 _updateEventHandler -= value;
593 if (_updateEventHandler == null && UpdateSignal().Empty() == false)
595 UpdateSignal().Disconnect(_updateCallback);
600 private void OnUpdate(string id, IntPtr bundle, int force)
602 UpdateEventArgs e = new UpdateEventArgs();
606 e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
610 _updateEventHandler?.Invoke(this, e);
613 internal WidgetUpdateSignalType UpdateSignal()
615 WidgetUpdateSignalType ret = new WidgetUpdateSignalType(NDalicManualPINVOKE.Widget_UpdateSignal(swigCPtr), false);
616 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
621 /// Enumeration for terminate type of widget instance.
623 /// <since_tizen> 4 </since_tizen>
624 public enum WidgetTerminateType
627 /// User deleted this widget from the viewer
629 /// <since_tizen> 4 </since_tizen>
632 /// Widget is deleted because of other reasons (e.g. widget process is terminated temporarily by the system)
634 /// <since_tizen> 4 </since_tizen>
639 /// Enumeration for lifecycle event type of widget instance.
641 /// <since_tizen> 4 </since_tizen>
642 public enum WidgetLifecycleEventType
645 /// The widget is dead.
647 /// <since_tizen> 4 </since_tizen>
650 /// The widget is dead.
652 /// <since_tizen> 4 </since_tizen>
655 /// The widget is destroyed.
657 /// <since_tizen> 4 </since_tizen>
660 /// The widget is paused.
662 /// <since_tizen> 4 </since_tizen>
665 /// The widget is resumed.
667 /// <since_tizen> 4 </since_tizen>