using Autodesk.AutoCAD.Internal;
using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Input;
namespace AcadTest
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
[DllImport("User32.dll")]
private static extern bool SetCursorPos(int X, int Y);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GetCursorPos(ref Win32Point pt);
[StructLayout(LayoutKind.Sequential)]
internal struct Win32Point
{
public Int32 X;
public Int32 Y;
};
public static Point GetMousePosition()
{
Win32Point w32Mouse = new Win32Point();
GetCursorPos(ref w32Mouse);
return new Point(w32Mouse.X, w32Mouse.Y);
}
private readonly JigView jig;
private bool _value;
public Window1(JigView jig)
{
this.jig = jig;
InitializeComponent();
}
bool _isTmpHidden;
public bool Value
{
get => _value;
set
{
_value = value;
Point pt = GetMousePosition();
SetCursorPos((int)pt.X + 1, (int)pt.Y + 1);
this.Visibility = Visibility.Hidden;
_isTmpHidden = true;
}
}
public void Restore()
{
if (_isTmpHidden)
{
this.Visibility = Visibility.Visible;
_isTmpHidden = false;
}
}
private void Window1_OnMouseLeave(object sender, MouseEventArgs e)
{
Utils.SetFocusToDwgView();
}
}
}