Initial update
[platform/core/csapi/tizenfx.git] / src / Tizen.Applications.WidgetApplication / Interop / Interop.Widget.cs
1 // Copyright 2016 by Samsung Electronics, Inc.,
2 //
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.
8
9 using System;
10 using System.Runtime.InteropServices;
11
12 using Tizen.Applications;
13
14 internal static partial class Interop
15 {
16     internal static partial class Widget
17     {
18         internal enum WidgetAppDestroyType
19         {
20             Permanent = 0,
21             Temporary
22         }
23
24         internal enum AppEventType
25         {
26             LowMemory = 0,
27             LowBattery,
28             LanguageChanged,
29             DeviceOrientationChanged,
30             RegionFormatChanged,
31             SuspendedStateChanged
32         }
33
34         internal enum ErrorCode : int
35         {
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,
52         }
53
54         internal delegate void AppEventCallback(IntPtr handle, IntPtr data);
55
56         internal delegate IntPtr WidgetAppCreateCallback(IntPtr userData);
57
58         internal delegate void WidgetAppTerminateCallback(IntPtr userData);
59
60         internal delegate int WidgetInstanceCreateCallback(IntPtr context, IntPtr content, int w, int h, IntPtr userData);
61
62         internal delegate int WidgetInstanceDestroyCallback(IntPtr context, WidgetAppDestroyType reason, IntPtr content, IntPtr userData);
63
64         internal delegate int WidgetInstancePauseCallback(IntPtr context, IntPtr userData);
65
66         internal delegate int WidgetInstanceResumeCallback(IntPtr context, IntPtr userData);
67
68         internal delegate int WidgetInstanceResizeCallback(IntPtr context, int w, int h, IntPtr userData);
69
70         internal delegate int WidgetInstanceUpdateCallback(IntPtr context, IntPtr content, int force, IntPtr userData);
71
72         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_main")]
73         internal static extern ErrorCode Main(int argc, string[] argv, ref WidgetAppLifecycleCallbacks callback, IntPtr userData);
74
75         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_exit")]
76         internal static extern void Exit();
77
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);
80
81         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_remove_event_handler")]
82         internal static extern ErrorCode RemoveEventHandler(IntPtr handle);
83
84         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_class_create")]
85         internal static extern IntPtr CreateClass(WidgetiInstanceLifecycleCallbacks callback, IntPtr userData);
86
87         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_class_add")]
88         internal static extern IntPtr AddClass(IntPtr handle, string classId, WidgetiInstanceLifecycleCallbacks callback, IntPtr userData);
89
90         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_terminate_context")]
91         internal static extern ErrorCode TerminateContext(IntPtr handle);
92
93         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_set_content_info")]
94         internal static extern ErrorCode SetContent(IntPtr handle, SafeBundleHandle content);
95
96         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_set_title")]
97         internal static extern ErrorCode SetTitle(IntPtr handle, string title);
98
99         [DllImport(Libraries.AppcoreWidget, EntryPoint = "widget_app_get_elm_win")]
100         internal static extern ErrorCode GetWin(IntPtr handle, out IntPtr win);
101
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);
104
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);
107
108         [DllImport(Libraries.AppCommon, EntryPoint = "app_event_get_language")]
109         internal static extern Tizen.Internals.Errors.ErrorCode AppEventGetLanguage(IntPtr handle, out string lang);
110
111         [DllImport(Libraries.AppCommon, EntryPoint = "app_event_get_region_format")]
112         internal static extern Tizen.Internals.Errors.ErrorCode AppEventGetRegionFormat(IntPtr handle, out string region);
113
114         [StructLayoutAttribute(LayoutKind.Sequential)]
115         internal struct WidgetAppLifecycleCallbacks
116         {
117             public WidgetAppCreateCallback OnCreate;
118             public WidgetAppTerminateCallback OnTerminate;
119         }
120
121         [StructLayoutAttribute(LayoutKind.Sequential)]
122         internal struct WidgetiInstanceLifecycleCallbacks
123         {
124             public WidgetInstanceCreateCallback OnCreate;
125             public WidgetInstanceDestroyCallback OnDestroy;
126             public WidgetInstancePauseCallback OnPause;
127             public WidgetInstanceResumeCallback OnResume;
128             public WidgetInstanceResizeCallback OnResize;
129             public WidgetInstanceUpdateCallback OnUpdate;
130         }
131     }
132 }