using System;
using System.Diagnostics;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Internal.Reactors;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Windows;
[assembly: CommandClass(typeof(MainWindowEvents.Utils))]
namespace MainWindowEvents
{
public class Utils
{
static Window.State winState = Application.MainWindow.WindowState;
static bool wasSet = false;
static public void appEventMgr_ApplicationMainWindowSized(object sender, EventArgs e)
{
Window.State curWinState = Application.MainWindow.WindowState;
if (curWinState != winState)
{
// Изменилось состояние окна
Debug.WriteLine("\nWindowState = {0}", curWinState);
winState = curWinState;
}
}
//////////////////////////////////////////////////////////////////////////
// Включаем/отключаем обработку событий изменения размеров главного окна
//////////////////////////////////////////////////////////////////////////
[CommandMethod("MWReactors")]
public void MWReactors()
{
ApplicationEventManager appEventMgr = ApplicationEventManager.Instance();
if (!wasSet) {
appEventMgr.ApplicationMainWindowSized += appEventMgr_ApplicationMainWindowSized;
} else {
appEventMgr.ApplicationMainWindowSized -= appEventMgr_ApplicationMainWindowSized;
}
wasSet = !wasSet;
}
}
}