コード例 #1
0
ファイル: MagicArrow.cs プロジェクト: xiaohszx/Hurricane
 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;
     }
 }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
ファイル: MagicArrow.cs プロジェクト: xiaohszx/Hurricane
 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));
             }
         }
     });
 }
コード例 #4
0
 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();
 }
コード例 #5
0
ファイル: MagicArrow.cs プロジェクト: WELL-E/Hurricane
 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;
     }
 }
コード例 #6
0
ファイル: MagicArrow.cs プロジェクト: WELL-E/Hurricane
        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));
                    }
                }
            });
        }