private void MpMainSettings_OnClosed(object sender, EventArgs e) { try { var isDifferentLanguage = IsDifferentLanguage(); // Если отключили плавающее меню if (!ChkMpFloatMenu.IsChecked.Value) { // Закрываем плавающее меню if (MpMenuFunction.MpMainMenuWin != null) { MpMenuFunction.MpMainMenuWin.Close(); } } else // Если включили плавающее меню { // Если плавающее меню было включено if (MpMenuFunction.MpMainMenuWin != null) { // Перегружаем плавающее меню, если изменилась тема, вкл/выкл открытые чертежи, сворачивать в if (!Regestry.GetValue("PluginStyle").Equals(_curTheme) || !Regestry.GetValue("FloatMenuCollapseTo").Equals(_curFloatMenuCollapseTo.ToString()) || !ChkMpChkDrwsOnMnu.IsChecked.Value.Equals(_curDrawingsOnMenu) || isDifferentLanguage) { MpMenuFunction.MpMainMenuWin.Close(); MpMenuFunction.LoadMainMenu(); } } else { MpMenuFunction.LoadMainMenu(); } } // если отключили палитру if (!ChkMpPalette.IsChecked.Value) { if (MpPalette.MpPaletteSet != null) { MpPalette.MpPaletteSet.Visible = false; } } else // если включили палитру { MpPalette.CreatePalette(); } // Если отключили плавающее меню Чертежи if (!ChkMpDrawingsAlone.IsChecked.Value) { if (MpDrawingsFunction.MpDrawingsWin != null) { MpDrawingsFunction.MpDrawingsWin.Close(); } } else { if (MpDrawingsFunction.MpDrawingsWin != null) { // Перегружаем плавающее меню, если изменилась тема, вкл/выкл открытые чертежи, границы, сворачивать в if (!Regestry.GetValue("PluginStyle").Equals(_curTheme) || !Regestry.GetValue("DrawingsCollapseTo").Equals(_curDrawingsCollapseTo.ToString()) || !ChkMpDrawingsAlone.IsChecked.Value.Equals(_curDrawingsAlone) || isDifferentLanguage) { MpDrawingsFunction.MpDrawingsWin.Close(); MpDrawingsFunction.LoadMainMenu(); } } else { MpDrawingsFunction.LoadMainMenu(); } } // Ribbon // Если включили и была выключена if (ChkMpRibbon.IsChecked.Value && !_curRibbon) { RibbonBuilder.BuildRibbon(); } // Если включили и была включена, но сменился язык if (ChkMpRibbon.IsChecked.Value && _curRibbon && isDifferentLanguage) { RibbonBuilder.RemoveRibbon(); RibbonBuilder.BuildRibbon(true); } // Если выключили и была включена if (!ChkMpRibbon.IsChecked.Value && _curRibbon) { RibbonBuilder.RemoveRibbon(); } // context menu // если сменился язык, то все выгружаю if (isDifferentLanguage) { MiniFunctions.UnloadAll(); } MiniFunctions.LoadUnloadContextMenu(); // License server UserConfigFile.SetValue(UserConfigFile.ConfigFileZone.Settings, "DisableConnectionWithLicenseServerInAutoCAD", ChkDisableConnectionWithLicenseServer.IsChecked.Value.ToString(), true); Regestry.SetValue("LocalLicenseServerIpAddress", TbLocalLicenseServerIpAddress.Text); Regestry.SetValue("LocalLicenseServerPort", TbLocalLicenseServerPort.Value.ToString()); if (_restartClientOnClose) { // reload server ClientStarter.StopConnection(); ClientStarter.StartConnection(ProductLicenseType.AutoCAD); } // перевод фокуса на автокад Utils.SetFocusToDwgView(); } catch (Exception ex) { ExceptionBox.Show(ex); } }
// Инициализация плагина public void Initialize() { try { var sw = new Stopwatch(); sw.Start(); // inint lang if (!Language.Initialize()) { return; } // Получим значение переменной "Тихая загрузка" в первую очередь _quiteLoad = ModPlusAPI.Variables.QuietLoading; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Файла конфигурации может не существовать при загрузке плагина! // Поэтому все, что связанно с работой с файлом конфигурации должно это учитывать! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! var ed = AcApp.DocumentManager.MdiActiveDocument.Editor; if (!CheckCadVersion()) { ed.WriteMessage("\n***************************"); ed.WriteMessage("\n" + Language.GetItem(LangItem, "p1")); ed.WriteMessage("\n" + Language.GetItem(LangItem, "p2")); ed.WriteMessage("\n" + Language.GetItem(LangItem, "p3")); ed.WriteMessage("\n***************************"); return; } Statistic.SendPluginStarting("AutoCAD", VersionData.CurrentCadVersion); ed.WriteMessage("\n***************************"); ed.WriteMessage("\n" + Language.GetItem(LangItem, "p4")); if (!_quiteLoad) { ed.WriteMessage("\n" + Language.GetItem(LangItem, "p5")); } // Принудительная загрузка сборок LoadAssemblies(ed); if (!_quiteLoad) { ed.WriteMessage("\n" + Language.GetItem(LangItem, "p6")); } LoadBaseAssemblies(ed); if (!_quiteLoad) { ed.WriteMessage("\n" + Language.GetItem(LangItem, "p7")); } UserConfigFile.InitConfigFile(); if (!_quiteLoad) { ed.WriteMessage("\n" + Language.GetItem(LangItem, "p8")); } LoadFunctions(ed); // check adaptation CheckAdaptation(); // Строим: ленту, меню, плавающее меню // Загрузка ленты Autodesk.Windows.ComponentManager.ItemInitialized += ComponentManager_ItemInitialized; if (ModPlusAPI.Variables.Palette) { MpPalette.CreatePalette(); } // Загрузка основного меню (с проверкой значения из файла настроек) MpMenuFunction.LoadMainMenu(); // Загрузка окна Чертежи MpDrawingsFunction.LoadMainMenu(); // Загрузка контекстных меню для мини-функций MiniFunctions.LoadUnloadContextMenu(); // проверка загруженности модуля автообновления CheckAutoUpdaterLoaded(); // Включение иконок для продуктов var showProductsIcon = bool.TryParse( UserConfigFile.GetValue( UserConfigFile.ConfigFileZone.Settings, "mpProductInsert", "ShowIcon"), out var b) && b; // false if (showProductsIcon) { MpProductIconFunctions.ShowIcon(); } var disableConnectionWithLicenseServer = bool.TryParse( UserConfigFile.GetValue( UserConfigFile.ConfigFileZone.Settings, "DisableConnectionWithLicenseServerInAutoCAD"), out b) && b; // false // start license server client if (!disableConnectionWithLicenseServer) { ClientStarter.StartConnection(ProductLicenseType.AutoCAD); } // user info AuthorizationOnStartup(); // tooltip hook AcApp.PreTranslateMessage += AutoCadMessageHandler; Autodesk.Windows.ComponentManager.ToolTipOpened += ComponentManager_ToolTipOpened; Autodesk.Windows.ComponentManager.ToolTipClosed += ComponentManager_ToolTipClosed; sw.Stop(); ed.WriteMessage("\n" + Language.GetItem(LangItem, "p9") + " " + sw.ElapsedMilliseconds); ed.WriteMessage("\n" + Language.GetItem(LangItem, "p10")); ed.WriteMessage("\n***************************"); } catch (System.Exception exception) { ExceptionBox.Show(exception); } }