Browse Source

Merge pull request #10 from AvaloniaUI/features/scaling-changed-event

implement scaling changed callback.
danwalmsley 7 years ago
parent
commit
48909c19d2

+ 5 - 0
src/Avalonia.Native.OSX/window.mm

@@ -418,6 +418,11 @@ protected:
     
     return (AvnInputModifiers)rv;
 }
+
+- (void)viewDidChangeBackingProperties
+{
+    _parent->BaseEvents->ScalingChanged();
+}
 @end
 
 

+ 10 - 3
src/Avalonia.Native/WindowImplBase.cs

@@ -99,10 +99,15 @@ namespace Avalonia.Native
 
             void IAvnWindowBaseEvents.Resized(AvnSize size) => _parent.Resized?.Invoke(new Size(size.Width, size.Height));
 
-            public void RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta)
+            void IAvnWindowBaseEvents.RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta)
             {
                 _parent.RawMouseEvent(type, timeStamp, modifiers, point, delta);
             }
+
+            void IAvnWindowBaseEvents.ScalingChanged()
+            {
+                _parent.ScalingChanged?.Invoke(_parent.Scaling);
+            }
         }
 
 
@@ -199,11 +204,13 @@ namespace Avalonia.Native
 
         public double Scaling => _native.GetScaling();
 
+        public Action Deactivated { get; set; }
+        public Action Activated { get; set; }
+
         #region Stubs
 
         public Action<Point> PositionChanged { get; set; }
-        public Action Deactivated { get; set; }
-        public Action Activated { get; set; }
+
         public Action<RawInputEventArgs> Input { get; set; }
 
         Action<double> ScalingChanged { get; set; }

+ 2 - 0
src/headers/avalonia-native.h

@@ -109,6 +109,8 @@ AVNCOM(IAvnWindowBaseEvents, 05) : IUnknown
                                 AvnInputModifiers modifiers,
                                 AvnPoint point,
                                 AvnVector delta) = 0;
+    
+    virtual void ScalingChanged () = 0;
 };