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.Runtime.InteropServices;
19 using Tizen.Applications;
24 /// Widget object should be created by WidgetApplication.
26 public class Widget : BaseHandle
28 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
30 internal Widget(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicManualPINVOKE.Widget_SWIGUpcast(cPtr), cMemoryOwn)
32 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
35 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Widget obj)
37 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
41 /// To make Widget instance be disposed.
43 protected override void Dispose(DisposeTypes type)
50 if(type == DisposeTypes.Explicit)
53 //Release your own managed resources here.
54 //You should release all of your own disposable objects here.
57 //Release your own unmanaged resources here.
58 //You should not access any managed member here except static instance.
59 //because the execution order of Finalizes is non-deterministic.
61 if (swigCPtr.Handle != global::System.IntPtr.Zero)
66 NDalicManualPINVOKE.delete_Widget(swigCPtr);
68 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
75 /// This is the constructor for Widget.
77 /// <param name="id">for widget instance</param>
78 /// <since_tizen> 4 </since_tizen>
79 public Widget(string id) : this(NDalicManualPINVOKE.Widget_New(id), true)
81 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
84 internal Widget(Widget widget) : this(NDalicManualPINVOKE.new_Widget__SWIG_1(Widget.getCPtr(widget)), true)
86 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
89 internal Widget Assign(Widget widget)
91 Widget ret = new Widget(NDalicManualPINVOKE.Widget_Assign(swigCPtr, Widget.getCPtr(widget)), false);
92 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
97 /// Event arguments that passed via KeyEvent signal.
99 public class CreateEventArgs : EventArgs
104 /// <since_tizen> 4 </since_tizen>
114 /// <since_tizen> 4 </since_tizen>
115 public SWIGTYPE_p_bundle Bundle
124 /// <since_tizen> 4 </since_tizen>
132 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
133 private delegate void CreateCallbackType(string id, IntPtr bundle, IntPtr window);
134 private CreateCallbackType _createCallback;
135 private EventHandler<CreateEventArgs> _createEventHandler;
140 /// <since_tizen> 4 </since_tizen>
141 public event EventHandler<CreateEventArgs> Create
145 if (_createEventHandler == null)
147 _createCallback = OnCreate;
148 CreateSignal().Connect(_createCallback);
151 _createEventHandler += value;
156 _createEventHandler -= value;
158 if (_createEventHandler == null && CreateSignal().Empty() == false)
160 CreateSignal().Disconnect(_createCallback);
165 private void OnCreate(string id, IntPtr bundle, IntPtr window)
167 CreateEventArgs e = new CreateEventArgs();
173 e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
177 e.Window = new Window(window, false);
180 _createEventHandler?.Invoke(this, e);
183 internal WidgetCreateSignalType CreateSignal()
185 WidgetCreateSignalType ret = new WidgetCreateSignalType(NDalicManualPINVOKE.Widget_CreateSignal(swigCPtr), false);
186 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
191 /// Event arguments that passed via terminate event signal.
193 public class TerminateEventArgs : EventArgs
198 /// <since_tizen> 4 </since_tizen>
208 /// <since_tizen> 4 </since_tizen>
209 public SWIGTYPE_p_bundle Bundle
216 /// widget terminate type.
218 /// <since_tizen> 4 </since_tizen>
219 public WidgetTerminateType WidgetTerminateType
226 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
227 private delegate void TerminateCallbackType(string id, IntPtr bundle, WidgetTerminateType widgetTerminateType);
228 private TerminateCallbackType _terminateCallback;
229 private EventHandler<TerminateEventArgs> _terminateEventHandler;
234 /// <since_tizen> 4 </since_tizen>
235 public event EventHandler<TerminateEventArgs> Terminate
239 if (_terminateEventHandler == null)
241 _terminateCallback = OnTerminate;
242 TerminateSignal().Connect(_terminateCallback);
245 _terminateEventHandler += value;
250 _terminateEventHandler -= value;
252 if (_terminateEventHandler == null && TerminateSignal().Empty() == false)
254 TerminateSignal().Disconnect(_terminateCallback);
259 private void OnTerminate(string id, IntPtr bundle, WidgetTerminateType widgetTerminateType)
261 TerminateEventArgs e = new TerminateEventArgs();
266 e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
269 e.WidgetTerminateType = widgetTerminateType;
270 _terminateEventHandler?.Invoke(this, e);
273 internal WidgetTerminateSignalType TerminateSignal()
275 WidgetTerminateSignalType ret = new WidgetTerminateSignalType(NDalicManualPINVOKE.Widget_TerminateSignal(swigCPtr), false);
276 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
281 /// Event arguments that passed via pause event signal.
283 public class PauseEventArgs : EventArgs
288 /// <since_tizen> 4 </since_tizen>
296 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
297 private delegate void PauseCallbackType(string id);
298 private PauseCallbackType _pauseCallback;
299 private EventHandler<PauseEventArgs> _pauseEventHandler;
304 /// <since_tizen> 4 </since_tizen>
305 public event EventHandler<PauseEventArgs> Pause
309 if (_pauseEventHandler == null)
311 _pauseCallback = OnPause;
312 PauseSignal().Connect(_pauseCallback);
315 _pauseEventHandler += value;
320 _pauseEventHandler -= value;
322 if (_pauseEventHandler == null && PauseSignal().Empty() == false)
324 PauseSignal().Disconnect(_pauseCallback);
329 private void OnPause(string id)
331 PauseEventArgs e = new PauseEventArgs();
334 _pauseEventHandler?.Invoke(this, e);
337 internal WidgetPauseSignalType PauseSignal()
339 WidgetPauseSignalType ret = new WidgetPauseSignalType(NDalicManualPINVOKE.Widget_PauseSignal(swigCPtr), false);
340 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
345 /// Event arguments that passed via pause event signal.
347 public class ResumeEventArgs : EventArgs
352 /// <since_tizen> 4 </since_tizen>
360 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
361 private delegate void ResumeCallbackType(string id);
362 private ResumeCallbackType _resumeCallback;
363 private EventHandler<ResumeEventArgs> _resumeEventHandler;
368 /// <since_tizen> 4 </since_tizen>
369 public event EventHandler<ResumeEventArgs> Resume
373 if (_resumeEventHandler == null)
375 _resumeCallback = OnResume;
376 ResumeSignal().Connect(_resumeCallback);
379 _resumeEventHandler += value;
384 _resumeEventHandler -= value;
386 if (_resumeEventHandler == null && ResumeSignal().Empty() == false)
388 ResumeSignal().Disconnect(_resumeCallback);
393 private void OnResume(string id)
395 ResumeEventArgs e = new ResumeEventArgs();
398 _resumeEventHandler?.Invoke(this, e);
401 internal WidgetResumeSignalType ResumeSignal()
403 WidgetResumeSignalType ret = new WidgetResumeSignalType(NDalicManualPINVOKE.Widget_ResumeSignal(swigCPtr), false);
404 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
409 /// Event arguments that passed via resize signal.
411 public class ResizeEventArgs : EventArgs
416 /// <since_tizen> 4 </since_tizen>
426 /// <since_tizen> 4 </since_tizen>
434 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
435 private delegate void ResizeCallbackType(string id, IntPtr window);
436 private ResizeCallbackType _resizeCallback;
437 private EventHandler<ResizeEventArgs> _resizeEventHandler;
442 /// <since_tizen> 4 </since_tizen>
443 public event EventHandler<ResizeEventArgs> Resize
447 if (_resizeEventHandler == null)
449 _resizeCallback = OnResize;
450 ResizeSignal().Connect(_resizeCallback);
453 _resizeEventHandler += value;
458 _resizeEventHandler -= value;
460 if (_resizeEventHandler == null && ResizeSignal().Empty() == false)
462 ResizeSignal().Disconnect(_resizeCallback);
467 private void OnResize(string id, IntPtr window)
469 ResizeEventArgs e = new ResizeEventArgs();
473 e.Window = new Window(window, false);
476 _resizeEventHandler?.Invoke(this, e);
479 internal WidgetResizeSignalType ResizeSignal()
481 WidgetResizeSignalType ret = new WidgetResizeSignalType(NDalicManualPINVOKE.Widget_ResizeSignal(swigCPtr), false);
482 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
487 /// Event arguments that passed via update event signal.
489 public class UpdateEventArgs : EventArgs
494 /// <since_tizen> 4 </since_tizen>
504 /// <since_tizen> 4 </since_tizen>
505 public SWIGTYPE_p_bundle Bundle
512 /// It means several steps.
516 /// 1 -> force but do something
519 /// <since_tizen> 4 </since_tizen>
527 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
528 private delegate void UpdateCallbackType(string id, IntPtr bundle, int force);
529 private UpdateCallbackType _updateCallback;
530 private EventHandler<UpdateEventArgs> _updateEventHandler;
535 /// <since_tizen> 4 </since_tizen>
536 public event EventHandler<UpdateEventArgs> Update
540 if (_updateEventHandler == null)
542 _updateCallback = OnUpdate;
543 UpdateSignal().Connect(_updateCallback);
546 _updateEventHandler += value;
551 _updateEventHandler -= value;
553 if (_updateEventHandler == null && UpdateSignal().Empty() == false)
555 UpdateSignal().Disconnect(_updateCallback);
560 private void OnUpdate(string id, IntPtr bundle, int force)
562 UpdateEventArgs e = new UpdateEventArgs();
566 e.Bundle = new SWIGTYPE_p_bundle(bundle, false);
570 _updateEventHandler?.Invoke(this, e);
573 internal WidgetUpdateSignalType UpdateSignal()
575 WidgetUpdateSignalType ret = new WidgetUpdateSignalType(NDalicManualPINVOKE.Widget_UpdateSignal(swigCPtr), false);
576 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
581 /// Enumeration for terminate type of widget instance.
583 /// <since_tizen> 4 </since_tizen>
584 public enum WidgetTerminateType
587 /// User deleted this widget from the viewer
591 /// Widget is deleted because of other reasons (e.g. widget process is terminated temporarily by the system)
597 /// Enumeration for lifecycle event type of widget instance.
599 /// <since_tizen> 4 </since_tizen>
600 public enum WidgetLifecycleEventType
603 /// The widget is dead.
607 /// The widget is dead.
611 /// The widget is destroyed.
615 /// The widget is paused.
619 /// The widget is resumed.