Current screen extents API calculated by 'Current' properties.
That mean, the result of calculation late 1 render-frame.
So, we cannot use it during Relayout events.
Now, make internal API so we can get screen position/extents
calculated by event-side properties.
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Actor_SetNeedGesturePropagation")]
public static extern float SetNeedGesturePropagation(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Actor_CalculateScreenPosition")]
+ public static extern global::System.IntPtr CalculateScreenPosition(global::System.Runtime.InteropServices.HandleRef jarg1);
+
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Actor_CalculateScreenExtents")]
public static extern global::System.IntPtr CalculateScreenExtents(global::System.Runtime.InteropServices.HandleRef jarg1);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Actor_CurrentScreenExtents")]
+ public static extern global::System.IntPtr CurrentScreenExtents(global::System.Runtime.InteropServices.HandleRef jarg1);
+
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Actor_InternalRetrievingPropertyVector2")]
public static extern int InternalRetrievingPropertyVector2(HandleRef actor, int propertyType, HandleRef retrievingVector2);
internal Vector4 GetCurrentScreenPositionSize()
{
- Vector4 ret = new Vector4(Interop.Actor.CalculateScreenExtents(SwigCPtr), true);
+ Vector4 ret = new Vector4(Interop.Actor.CurrentScreenExtents(SwigCPtr), true);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
return ret;
}
hitTestResultDataCallback = null;
}
}
+
+ /// <summary>
+ /// Calculate the screen position of the view.<br />
+ /// </summary>
+ /// <remarks>
+ /// This is a hidden API(inhouse API) only for internal purpose.
+ /// </remarks>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Vector2 CalculateScreenPosition()
+ {
+ Vector2 ret = new Vector2(Interop.Actor.CalculateScreenPosition(SwigCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
+ /// <summary>
+ /// Calculate the screen position and size of the view.<br />
+ /// </summary>
+ /// <remarks>
+ /// The float type Rectangle class is not ready yet.
+ /// Therefore, it transmits data in Vector4 class.
+ /// This type should later be changed to the appropriate data type.
+ /// </remarks>
+ /// <remarks>
+ /// This is a hidden API(inhouse API) only for internal purpose.
+ /// </remarks>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public Vector4 CalculateScreenPositionSize()
+ {
+ Vector4 ret = new Vector4(Interop.Actor.CalculateScreenExtents(SwigCPtr), true);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
}
}