protected void HideMagicArrow() { Hurricane.Views.Test.TestWindow.AddMessage("Hide Magic Arrow"); MagicArrowIsShown = false; IsInZone = false; if (MagicWindow != null && MagicWindow.Visibility == Visibility.Visible) { MagicWindow.MouseLeave -= MagicWindow_MouseLeave; MagicWindow.Close(); MagicWindow = null; } }
private void HideMagicArrow() { Trace.WriteLine("MagicArrow: Hide"); IsMagicArrowVisible = false; _isInZone = false; _magicArrowCheckTimer.Stop(); if (_magicArrow != null && _magicArrow.IsLoaded) { _magicArrow.MouseLeave -= MagicArrowOnMouseLeave; _magicArrow.Close(); _magicArrow = null; } }
protected void ShowMagicArrow(double top, Side side) { Hurricane.Views.Test.TestWindow.AddMessage("Show Magic Arrow"); MagicArrowIsShown = true; if (!HurricaneSettings.Instance.Config.ShowMagicArrowBelowCursor) { if (top + 40 > GetScreenFromSide(_movedoutside).WorkingArea.Height - 10) { top -= 40; } else { top += 40; } } MagicWindow = new MagicArrowWindow(top, side == Side.Left ? WpfScreen.MostLeftX - 10 : WpfScreen.MostRightX, side == Side.Left ? WpfScreen.MostLeftX : WpfScreen.MostRightX - 10, side); MagicWindow.MoveVisible += (s, e) => { MoveWindowBackInScreen(); IsInZone = false; HideMagicArrow(); }; MagicWindow.MouseLeave += MagicWindow_MouseLeave; MagicWindow.Show(); MagicWindow.Topmost = true; MagicWindow.FilesDropped += (s, e) => { if (this.FilesDropped != null) { this.FilesDropped(this, e); } }; Task.Run(async() => { while (MagicArrowIsShown) { await Task.Delay(1000); Hurricane.Views.Test.TestWindow.AddMessage("Check Magic Arrow"); int cursorX = Cursor.Position.X; if (((_movedoutside == Side.Left && cursorX > 4 - WpfScreen.MostLeftX) || (_movedoutside == Side.Right && cursorX < WpfScreen.MostRightX - 4)) && !MagicWindow.IsMouseOver) { Application.Current.Dispatcher.Invoke(HideMagicArrow); } else { Hurricane.Views.Test.TestWindow.AddMessage(string.Format("-> MAP: {0}; _movedoutside: {1}; cursorX: {2}; MLX: {3}", "", _movedoutside, cursorX, WpfScreen.MostLeftX)); } } }); }
private void ShowMagicArrow(double top, Side side) { Trace.WriteLine("MagicArrow: Show"); IsMagicArrowVisible = true; _magicArrow = new MagicArrowWindow(top, side == Side.Left ? WpfScreen.MostLeftX : WpfScreen.MostRightX - 10, side); _magicArrow.Click += (s, e) => { MoveWindowBackInScreen(); _isInZone = false; HideMagicArrow(); }; _magicArrow.MouseLeave += MagicArrowOnMouseLeave; _magicArrow.Show(); _magicArrowCheckTimer.Start(); }
protected void HideMagicArrow() { Views.Test.TestWindow.AddMessage("Hide Magic Arrow"); MagicArrowIsShown = false; IsInZone = false; if (MagicWindow != null && MagicWindow.Visibility == Visibility.Visible) { MagicWindow.MouseLeave -= MagicWindow_MouseLeave; MagicWindow.Close(); MagicWindow = null; } }
protected void ShowMagicArrow(double top, Side side) { Views.Test.TestWindow.AddMessage("Show Magic Arrow"); MagicArrowIsShown = true; if (!HurricaneSettings.Instance.Config.ShowMagicArrowBelowCursor) { if (top + 40 > GetScreenFromSide(_movedoutside).WorkingArea.Height - 10) { top -= 40; } else { top += 40; } } MagicWindow = new MagicArrowWindow(top, side == Side.Left ? WpfScreen.MostLeftX - 10 : WpfScreen.MostRightX, side == Side.Left ? WpfScreen.MostLeftX : WpfScreen.MostRightX - 10, side); MagicWindow.MoveVisible += (s, e) => { MoveWindowBackInScreen(); IsInZone = false; HideMagicArrow(); }; MagicWindow.MouseLeave += MagicWindow_MouseLeave; MagicWindow.Show(); MagicWindow.Topmost = true; MagicWindow.FilesDropped += (s, e) => { if (FilesDropped != null) FilesDropped(this, e); }; Task.Run(async () => { while (MagicArrowIsShown) { await Task.Delay(1000); Views.Test.TestWindow.AddMessage("Check Magic Arrow"); int cursorX = Cursor.Position.X; if (((_movedoutside == Side.Left && cursorX > 4 - WpfScreen.MostLeftX) || (_movedoutside == Side.Right && cursorX < WpfScreen.MostRightX - 4)) && !MagicWindow.IsMouseOver) { Application.Current.Dispatcher.Invoke(HideMagicArrow); } else { Views.Test.TestWindow.AddMessage(string.Format("-> MAP: {0}; _movedoutside: {1}; cursorX: {2}; MLX: {3}", "", _movedoutside, cursorX, WpfScreen.MostLeftX)); } } }); }