1 // Copyright 2016 by Samsung Electronics, Inc.,
3 // This software is the confidential and proprietary information
4 // of Samsung Electronics, Inc. ("Confidential Information"). You
5 // shall not disclose such Confidential Information and shall use
6 // it only in accordance with the terms of the license agreement
7 // you entered into with Samsung.
10 using System.Runtime.InteropServices;
12 using Tizen.Applications;
14 internal static partial class Interop
16 internal static partial class Widget
18 internal enum WidgetAppDestroyType
24 internal enum AppEventType
29 DeviceOrientationChanged,
34 internal enum ErrorCode : int
36 None = Tizen.Internals.Errors.ErrorCode.None,
37 InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
38 OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
39 ResourceBusy = Tizen.Internals.Errors.ErrorCode.ResourceBusy,
40 PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied,
41 Canceled = Tizen.Internals.Errors.ErrorCode.Canceled,
42 IoError = Tizen.Internals.Errors.ErrorCode.IoError,
43 TimedOut = Tizen.Internals.Errors.ErrorCode.TimedOut,
44 NotSupported = Tizen.Internals.Errors.ErrorCode.NotSupported,
45 FileNoSpaceOnDevice = Tizen.Internals.Errors.ErrorCode.FileNoSpaceOnDevice,
46 Fault = -0x02F40000 | 0x0001,
47 AlreadyExist = -0x02F40000 | 0x0002,
48 AlreadyStarted = -0x02F40000 | 0x0004,
49 NotExist = -0x02F40000 | 0x0008,
50 Disabled = -0x02F40000 | 0x0010,
51 MaxExceeded = -0x02F40000 | 0x0011,
54 internal delegate void AppEventCallback(IntPtr handle, IntPtr data);
56 internal delegate IntPtr WidgetAppCreateCallback(IntPtr userData);
58 internal delegate void WidgetAppTerminateCallback(IntPtr userData);
60 internal delegate int WidgetInstanceCreateCallback(IntPtr context, IntPtr content, int w, int h, IntPtr userData);
62 internal delegate int WidgetInstanceDestroyCallback(IntPtr context, WidgetAppDestroyType reason, IntPtr content, IntPtr userData);
64 internal delegate int WidgetInstancePauseCallback(IntPtr context, IntPtr userData);
66 internal delegate int WidgetInstanceResumeCallback(IntPtr context, IntPtr userData);
68 internal delegate int WidgetInstanceResizeCallback(IntPtr context, int w, int h, IntPtr userData);
70 internal delegate int WidgetInstanceUpdateCallback(IntPtr context, IntPtr content, int force, IntPtr userData);
72 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_main")]
73 internal static extern ErrorCode Main(int argc, string[] argv, ref WidgetAppLifecycleCallbacks callback, IntPtr userData);
75 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_exit")]
76 internal static extern void Exit();
78 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_add_event_handler")]
79 internal static extern ErrorCode AddEventHandler(out IntPtr handle, AppEventType eventType, AppEventCallback callback, IntPtr data);
81 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_remove_event_handler")]
82 internal static extern ErrorCode RemoveEventHandler(IntPtr handle);
84 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_class_create")]
85 internal static extern IntPtr CreateClass(WidgetiInstanceLifecycleCallbacks callback, IntPtr userData);
87 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_class_add")]
88 internal static extern IntPtr AddClass(IntPtr handle, string classId, WidgetiInstanceLifecycleCallbacks callback, IntPtr userData);
90 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_terminate_context")]
91 internal static extern ErrorCode TerminateContext(IntPtr handle);
93 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_set_content_info")]
94 internal static extern ErrorCode SetContent(IntPtr handle, SafeBundleHandle content);
96 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_set_title")]
97 internal static extern ErrorCode SetTitle(IntPtr handle, string title);
99 [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_get_elm_win")]
100 internal static extern ErrorCode GetWin(IntPtr handle, out IntPtr win);
102 [DllImport(Libraries.AppCommon, EntryPoint = "app_event_get_low_memory_status")]
103 internal static extern Tizen.Internals.Errors.ErrorCode AppEventGetLowMemoryStatus(IntPtr handle, out LowMemoryStatus status);
105 [DllImport(Libraries.AppCommon, EntryPoint = "app_event_get_low_battery_status")]
106 internal static extern Tizen.Internals.Errors.ErrorCode AppEventGetLowBatteryStatus(IntPtr handle, out LowBatteryStatus status);
108 [DllImport(Libraries.AppCommon, EntryPoint = "app_event_get_language")]
109 internal static extern Tizen.Internals.Errors.ErrorCode AppEventGetLanguage(IntPtr handle, out string lang);
111 [DllImport(Libraries.AppCommon, EntryPoint = "app_event_get_region_format")]
112 internal static extern Tizen.Internals.Errors.ErrorCode AppEventGetRegionFormat(IntPtr handle, out string region);
114 [StructLayoutAttribute(LayoutKind.Sequential)]
115 internal struct WidgetAppLifecycleCallbacks
117 public WidgetAppCreateCallback OnCreate;
118 public WidgetAppTerminateCallback OnTerminate;
121 [StructLayoutAttribute(LayoutKind.Sequential)]
122 internal struct WidgetiInstanceLifecycleCallbacks
124 public WidgetInstanceCreateCallback OnCreate;
125 public WidgetInstanceDestroyCallback OnDestroy;
126 public WidgetInstancePauseCallback OnPause;
127 public WidgetInstanceResumeCallback OnResume;
128 public WidgetInstanceResizeCallback OnResize;
129 public WidgetInstanceUpdateCallback OnUpdate;