From: sukhyungkang <35091460+sukhyungkang@users.noreply.github.com> Date: Mon, 17 Apr 2023 08:07:01 +0000 (+0900) Subject: [Applications.UI] Add Get window position api (#5085) X-Git-Tag: submit/tizen/20230417.151056~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0c5018038f7b10b44809a8d0c348db6f0ca02fba;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [Applications.UI] Add Get window position api (#5085) Signed-off-by: SukhyungKang Co-authored-by: hjhun <36876573+hjhun@users.noreply.github.com> --- diff --git a/src/Tizen.Applications.UI/Interop/Interop.Application.cs b/src/Tizen.Applications.UI/Interop/Interop.Application.cs index 342315136..6b1a61954 100755 --- a/src/Tizen.Applications.UI/Interop/Interop.Application.cs +++ b/src/Tizen.Applications.UI/Interop/Interop.Application.cs @@ -53,6 +53,8 @@ internal static partial class Interop [DllImport(Libraries.Application, EntryPoint = "ui_app_remove_event_handler")] internal static extern ErrorCode RemoveEventHandler(IntPtr handle); + [DllImport(Libraries.Application, EntryPoint = "ui_app_get_window_position")] + internal static extern ErrorCode GetWindowPosition(out int x, out int y, out int w, out int h); [NativeStruct("ui_app_lifecycle_callback_s", Include="app.h", PkgConfig="capi-appfw-application")] [StructLayout(LayoutKind.Sequential)] diff --git a/src/Tizen.Applications.UI/Tizen.Applications/CoreUIApplication.cs b/src/Tizen.Applications.UI/Tizen.Applications/CoreUIApplication.cs index d27f2cb50..6002da26a 100755 --- a/src/Tizen.Applications.UI/Tizen.Applications/CoreUIApplication.cs +++ b/src/Tizen.Applications.UI/Tizen.Applications/CoreUIApplication.cs @@ -15,8 +15,10 @@ */ using System; +using System.ComponentModel; using Tizen.Applications.CoreBackend; +using Tizen.Internals.Errors; namespace Tizen.Applications { @@ -113,5 +115,22 @@ namespace Tizen.Applications { Paused?.Invoke(this, EventArgs.Empty); } + + /// + /// Gets the window position of the application. + /// + /// The window position. + /// Thrown when there is no window position. + /// 11 + public WindowPosition GetWindowPosition() + { + ErrorCode err = Interop.Application.GetWindowPosition(out int x, out int y, out int w, out int h); + if (err != ErrorCode.None) + { + throw new InvalidOperationException("Failed to get window position"); + } + + return new WindowPosition(x, y, w, h); + } } }