Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominique Louis <dominique@DIPRAJ1.northamerica.corp.microsoft.com>2019-05-08 21:39:55 +0300
committerDominique Louis <dominique@DIPRAJ1.northamerica.corp.microsoft.com>2019-05-09 20:41:55 +0300
commitcebb745116a3a6507e4b5cbc4e64773814381bc2 (patch)
tree7ada31fbb4b9860bc3d078c5bcc40f983b1efeaf /Xamarin.PropertyEditing.Mac
parentf74e027bd387a82be39e9458ddea1d9edfefaa0a (diff)
[Mac] Setting the Formatter by default breaks the RatioEditor rendering.
Diffstat (limited to 'Xamarin.PropertyEditing.Mac')
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/RatioEditorControl.cs9
-rw-r--r--Xamarin.PropertyEditing.Mac/Extensions.cs24
2 files changed, 26 insertions, 7 deletions
diff --git a/Xamarin.PropertyEditing.Mac/Controls/RatioEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/RatioEditorControl.cs
index 2fd4404..7591c2b 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/RatioEditorControl.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/RatioEditorControl.cs
@@ -15,13 +15,8 @@ namespace Xamarin.PropertyEditing.Mac
{
base.TranslatesAutoresizingMaskIntoConstraints = false;
- this.ratioEditor = new RatioEditor<T> (hostResources) {
- AllowNegativeValues = false,
- AllowRatios = true,
- BackgroundColor = NSColor.Clear,
- StringValue = string.Empty,
- TranslatesAutoresizingMaskIntoConstraints = false,
- };
+ this.ratioEditor = new RatioEditor<T> (hostResources);
+ this.ratioEditor.SetFormatter (null);
// update the value on keypress
this.ratioEditor.ValueChanged += (sender, e) => {
diff --git a/Xamarin.PropertyEditing.Mac/Extensions.cs b/Xamarin.PropertyEditing.Mac/Extensions.cs
new file mode 100644
index 0000000..de9fdce
--- /dev/null
+++ b/Xamarin.PropertyEditing.Mac/Extensions.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Runtime.InteropServices;
+using AppKit;
+using Foundation;
+
+namespace Xamarin.PropertyEditing.Mac
+{
+ internal static class Extensions
+ {
+ internal const string LIBOBJC_DYLIB = "/usr/lib/libobjc.dylib";
+
+ [DllImport (LIBOBJC_DYLIB, EntryPoint = "objc_msgSend")]
+ public extern static void void_objc_msgSend_intptr (IntPtr receiver, IntPtr selector, IntPtr arg1);
+
+ const string selSetFormatter = "setFormatter:";
+ static readonly IntPtr selSetFormatter_Handle = ObjCRuntime.Selector.GetHandle (selSetFormatter);
+
+ internal static void SetFormatter (this NumericSpinEditor control, NSFormatter formatter)
+ {
+ IntPtr pointer = formatter != null ? formatter.Handle : IntPtr.Zero;
+ void_objc_msgSend_intptr (control.NumericEditor.Handle, selSetFormatter_Handle, pointer);
+ }
+ }
+}