using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.Windows;
using System;
using AppCore = Autodesk.AutoCAD.ApplicationServices.Core.Application;
using AppSystemVariableChangedEventArgs
= Autodesk.AutoCAD.ApplicationServices.SystemVariableChangedEventArgs;
namespace Networks
{
internal static class ApplicationSettings
{
private static bool
_initialized,
_needUpdRibbonDetected;
/// <summary>
/// Инициализация
/// </summary>
public static void Initialize()
{
if (!_initialized)
{
_initialized = true;
AppCore.Idle += Application_Idle_RibbonUpdate;
AppCore.SystemVariableChanged += App_SysVarChanged_RibbonUpdate;
}
}
private static void App_SysVarChanged_RibbonUpdate
(object sender, AppSystemVariableChangedEventArgs e)
{
if (!_needUpdRibbonDetected
&& e.Name.Equals("WSCURRENT",
StringComparison.OrdinalIgnoreCase)
|| e.Name.Equals("RIBBONSTATE",
StringComparison.OrdinalIgnoreCase))
{
_needUpdRibbonDetected = true;
AppCore.Idle += Application_Idle_RibbonUpdate;
}
}
private static void Application_Idle_RibbonUpdate(object sender, EventArgs e)
{
RibbonControl ribbon = ComponentManager.Ribbon;
if (ribbon != null)
{
AppCore.Idle -= Application_Idle_RibbonUpdate;
_needUpdRibbonDetected = false;
RibbonSettings.UpdateTabs();
}
}
}
}