From: Jean-Philippe Bruyère Date: Fri, 17 Nov 2017 16:21:19 +0000 (+0100) Subject: mono_cairo_* ICalls for string handling where possible X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=a3137833df6ddd1439aee0d517389f500eb2fabd;p=jp%2Fcrow.git mono_cairo_* ICalls for string handling where possible --- diff --git a/src/Interface.cs b/src/Interface.cs index b2155847..c1c96d48 100644 --- a/src/Interface.cs +++ b/src/Interface.cs @@ -799,6 +799,7 @@ namespace Crow return true; } public bool ProcessKeyDown(int Key){ + Console.WriteLine("keydown: {0}=>{1}", Key,(Crow.Key)Key); Keyboard.SetKeyState((Crow.Key)Key,true); if (_focusedWidget == null) return false; @@ -806,9 +807,9 @@ namespace Crow lastKeyDownEvt.IsRepeat = true; _focusedWidget.onKeyDown (this, e); - keyboardRepeatThread = new Thread (keyboardRepeatThreadFunc); - keyboardRepeatThread.IsBackground = true; - keyboardRepeatThread.Start (); +// keyboardRepeatThread = new Thread (keyboardRepeatThreadFunc); +// keyboardRepeatThread.IsBackground = true; +// keyboardRepeatThread.Start (); return true; } @@ -820,14 +821,14 @@ namespace Crow _focusedWidget.onKeyUp (this, e); - if (keyboardRepeatThread != null) { - keyboardRepeatOn = false; - keyboardRepeatThread.Abort(); - keyboardRepeatThread.Join (); - } +// if (keyboardRepeatThread != null) { +// keyboardRepeatOn = false; +// keyboardRepeatThread.Abort(); +// keyboardRepeatThread.Join (); +// } return true; } - public bool ProcessKeyPress(char Key){ + public bool ProcessKeyPress(char Key){ if (_focusedWidget == null) return false; KeyPressEventArgs e = new KeyPressEventArgs(Key); diff --git a/src/Mono.Cairo/Context.cs b/src/Mono.Cairo/Context.cs index 3b731a98..f19103f6 100644 --- a/src/Mono.Cairo/Context.cs +++ b/src/Mono.Cairo/Context.cs @@ -870,14 +870,9 @@ namespace Cairo { public void ShowText(string str) { - NativeMethods.cairo_show_text (handle, TerminateUtf8(str)); + NativeMethods.cairo_show_text (handle, str); } - - public void ShowText(byte[] utf8) - { - NativeMethods.cairo_show_text (handle, TerminateUtf8(utf8)); - } - + public void TextPath(string str) { NativeMethods.cairo_text_path (handle, TerminateUtf8(str)); @@ -891,14 +886,7 @@ namespace Cairo { public TextExtents TextExtents(string s) { TextExtents extents; - NativeMethods.cairo_text_extents (handle, TerminateUtf8(s), out extents); - return extents; - } - - public TextExtents TextExtents(byte[] utf8) - { - TextExtents extents; - NativeMethods.cairo_text_extents (handle, TerminateUtf8(utf8), out extents); + NativeMethods.cairo_text_extents (handle, s, out extents); return extents; } diff --git a/src/Mono.Cairo/NativeMethods.cs b/src/Mono.Cairo/NativeMethods.cs index 309d4ae1..a31743cb 100644 --- a/src/Mono.Cairo/NativeMethods.cs +++ b/src/Mono.Cairo/NativeMethods.cs @@ -213,7 +213,7 @@ namespace Cairo [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] internal static extern IntPtr cairo_get_font_face (IntPtr cr); - [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] internal static extern void cairo_get_font_matrix (IntPtr cr, out Matrix matrix); [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] @@ -637,7 +637,7 @@ namespace Cairo internal static extern void cairo_scaled_font_text_extents (IntPtr scaled_font, byte[] utf8, out TextExtents extents); #endregion - [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] internal static extern void cairo_select_font_face (IntPtr cr, string family, FontSlant slant, FontWeight weight); [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] @@ -706,8 +706,8 @@ namespace Cairo [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] internal static extern void cairo_show_page (IntPtr cr); - [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)] - internal static extern void cairo_show_text (IntPtr cr, byte[] utf8); + [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] + internal static extern void cairo_show_text (IntPtr cr, string str); [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] internal static extern Status cairo_status (IntPtr cr); @@ -794,8 +794,8 @@ namespace Cairo internal static extern IntPtr cairo_svg_surface_restrict_to_version (IntPtr surface, SvgVersion version); #endregion - [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)] - internal static extern void cairo_text_extents (IntPtr cr, byte[] utf8, out TextExtents extents); + [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute] + internal static extern void cairo_text_extents (IntPtr cr, string txt, out TextExtents extents); [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)] internal static extern void cairo_text_path (IntPtr ct, byte[] utf8);