From 50d0b62603feefbf8fad77549d879a50ae4c7fa4 Mon Sep 17 00:00:00 2001 From: Stefan Wouters-Yaowanasap Date: Tue, 17 May 2016 10:12:54 +0200 Subject: [PATCH] #10 Removed SystemWindows.Forms.MouseEventArgs usage. --- src/Win32/Window.cs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Win32/Window.cs b/src/Win32/Window.cs index d5177715..07af61a9 100644 --- a/src/Win32/Window.cs +++ b/src/Win32/Window.cs @@ -17,6 +17,7 @@ using System.Threading; using System.Windows.Forms; using CivOne.Enums; +using CivOne.Events; using CivOne.GFX; using CivOne.Interfaces; using CivOne.Screens; @@ -165,10 +166,13 @@ private void ToggleFullScreen() LoadCursors(); } - private void ScaleMouseEventArgs(ref MouseEventArgs args) + private ScreenEventArgs ScaleMouseEventArgs(MouseEventArgs args) { int xx = args.X - CanvasX, yy = args.Y - CanvasY; - args = new MouseEventArgs(args.Button, args.Clicks, (int)Math.Floor((float)xx / ScaleX), (int)Math.Floor((float)yy / ScaleY), args.Delta); + MouseButton buttons = MouseButton.None; + if (args.Button == MouseButtons.Left) buttons = MouseButton.Left; + else if (args.Button == MouseButtons.Right) buttons = MouseButton.Right; + return new ScreenEventArgs((int)Math.Floor((float)xx / ScaleX), (int)Math.Floor((float)yy / ScaleY), buttons); } private void OnFormClosing(object sender, FormClosingEventArgs args) @@ -240,20 +244,20 @@ private void OnKeyDown(object sender, KeyEventArgs args) private void OnMouseDown(object sender, MouseEventArgs args) { - ScaleMouseEventArgs(ref args); - if (TopScreen != null && TopScreen.MouseDown(args)) ScreenUpdate(); + ScreenEventArgs screenArgs = ScaleMouseEventArgs(args); + if (TopScreen != null && TopScreen.MouseDown(screenArgs)) ScreenUpdate(); } private void OnMouseUp(object sender, MouseEventArgs args) { - ScaleMouseEventArgs(ref args); - if (TopScreen != null && TopScreen.MouseUp(args)) ScreenUpdate(); + ScreenEventArgs screenArgs = ScaleMouseEventArgs(args); + if (TopScreen != null && TopScreen.MouseUp(screenArgs)) ScreenUpdate(); } private void MouseDrag(MouseEventArgs args) { - ScaleMouseEventArgs(ref args); - if (TopScreen != null && TopScreen.MouseDrag(args)) ScreenUpdate(); + ScreenEventArgs screenArgs = ScaleMouseEventArgs(args); + if (TopScreen != null && TopScreen.MouseDrag(screenArgs)) ScreenUpdate(); } private void OnMouseMove(object sender, MouseEventArgs args)