示例#1
0
 private void FillFieldsFunction()
 {
     BtFields.Visibility = LoadPluginsHelper.HasStampsPlugin(1, out _) ? Visibility.Visible : Visibility.Collapsed;
 }
示例#2
0
        private static void LoadFunctions(Editor ed)
        {
            try
            {
                var functionsKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("ModPlus\\Functions");
                if (functionsKey == null)
                {
                    return;
                }
                using (functionsKey)
                {
                    foreach (var functionKeyName in functionsKey.GetSubKeyNames())
                    {
                        var functionKey = functionsKey.OpenSubKey(functionKeyName);
                        if (functionKey == null)
                        {
                            continue;
                        }
                        foreach (var availPrVersKeyName in functionKey.GetSubKeyNames())
                        {
                            // Если версия продукта не совпадает, то пропускаю
                            if (!availPrVersKeyName.Equals(VersionData.CurrentCadVersion))
                            {
                                continue;
                            }
                            var availProductVersionKey = functionKey.OpenSubKey(availPrVersKeyName);
                            if (availProductVersionKey == null)
                            {
                                continue;
                            }

                            // беру свойства функции из реестра
                            var file       = availProductVersionKey.GetValue("File") as string;
                            var onOff      = availProductVersionKey.GetValue("OnOff") as string;
                            var productFor = availProductVersionKey.GetValue("ProductFor") as string;
                            if (string.IsNullOrEmpty(onOff) || string.IsNullOrEmpty(productFor))
                            {
                                continue;
                            }
                            if (!productFor.Equals("AutoCAD"))
                            {
                                continue;
                            }
                            var isOn = !bool.TryParse(onOff, out var b) || b; // default - true

                            // Если "Продукт для" подходит, файл существует и функция включена - гружу
                            if (isOn)
                            {
                                if (!string.IsNullOrEmpty(file) && File.Exists(file))
                                {
                                    // load
                                    if (!_quiteLoad)
                                    {
                                        ed.WriteMessage($"\n* {Language.GetItem(LangItem, "p15")} {functionKeyName}");
                                    }
                                    var localFuncAssembly = Assembly.LoadFrom(file);
                                    LoadPluginsHelper.GetDataFromFunctionInterface(localFuncAssembly);
                                }
                                else
                                {
                                    var foundedFile = LoadPluginsHelper.FindFile(functionKeyName);
                                    if (!string.IsNullOrEmpty(foundedFile) && File.Exists(foundedFile))
                                    {
                                        if (!_quiteLoad)
                                        {
                                            ed.WriteMessage($"\n* {Language.GetItem(LangItem, "p15")} {functionKeyName}");
                                        }
                                        var localFuncAssembly = Assembly.LoadFrom(foundedFile);
                                        LoadPluginsHelper.GetDataFromFunctionInterface(localFuncAssembly);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (System.Exception exception)
            {
                ExceptionBox.Show(exception);
            }
        }
        private static void AddHelpPanel(RibbonTab ribTab)
        {
            var ribSourcePanel = new RibbonPanelSource
            {
                Title = "ModPlus"
            };

            var ribPanel = new RibbonPanel
            {
                Source = ribSourcePanel
            };

            ribTab.Panels.Add(ribPanel);

            var ribRowPanel = new RibbonRowPanel();

            ribRowPanel.Items.Add(
                RibbonHelpers.AddBigButton(
                    "mpUserInfo",
                    Language.GetItem(LangItem, "h56"),
                    _colorTheme == 1
                        ? $"pack://application:,,,/Modplus_{VersionData.CurrentCadVersion};component/Resources/UserInfo_32x32.png"
                        : $"pack://application:,,,/Modplus_{VersionData.CurrentCadVersion};component/Resources/UserInfo_32x32_dark.png",
                    Language.GetItem(LangItem, "h56"),
                    Orientation.Vertical,
                    string.Empty,
                    string.Empty,
                    "help/userinfo"));

            ribSourcePanel.Items.Add(ribRowPanel);

            ribRowPanel = new RibbonRowPanel();

            ribRowPanel.Items.Add(
                RibbonHelpers.AddSmallButton(
                    "mpSettings",
                    Language.GetItem(LangItem, "h12"),
                    GetSmallIcon("mpSettings"),
                    Language.GetItem(LangItem, "h41"),
                    Language.GetItem(LangItem, "h42"),
                    string.Empty,
                    "help/mpsettings"));

            ribRowPanel.Items.Add(
                RibbonHelpers.AddSmallButton(
                    "mpFeedback",
                    Language.GetItem("ModPlusAPI", "f1"),
                    GetSmallIcon("mpFeedback"),
                    Language.GetItem("ModPlusAPI", "f20"),
                    Language.GetItem("ModPlusAPI", "f21"),
                    string.Empty,
                    "help/feedback"));

            ribRowPanel.Items.Add(new RibbonRowBreak());

            if (LoadPluginsHelper.HasStampsPlugin(_colorTheme, out var fieldsIcon, out var signaturesIcon))
            {
                ribRowPanel.Items.Add(
                    RibbonHelpers.AddSmallButton(
                        "mpStampFields",
                        Language.GetItem(LangItem, "h43"),
                        fieldsIcon,
                        Language.GetItem(LangItem, "h44"),
                        Language.GetItem(LangItem, "h45"),
                        string.Empty,
                        "autocadplugins/mpstamps"));

                ribRowPanel.Items.Add(
                    RibbonHelpers.AddSmallButton(
                        "mpSignatures",
                        Language.GetItem(LangItem, "h60"),
                        signaturesIcon,
                        Language.GetItem(LangItem, "h61"),
                        Language.GetItem(LangItem, "h62"),
                        string.Empty,
                        "autocadplugins/mpstamps"));

                ribRowPanel.Items.Add(new RibbonRowBreak());
            }

            ribRowPanel.Items.Add(
                RibbonHelpers.AddSmallButton(
                    "mpShowProductIcons",
                    Language.GetItem(LangItem, "h46"),
                    GetSmallIcon("mpShowProductIcons"),
                    Language.GetItem(LangItem, "h37"),
                    Language.GetItem(LangItem, "h38"),
                    $"pack://application:,,,/Modplus_{VersionData.CurrentCadVersion};component/Resources/mpShowProductIcon.png",
                    "help/mpsettings"));

            ribRowPanel.Items.Add(
                RibbonHelpers.AddSmallButton(
                    "mpHideProductIcons",
                    Language.GetItem(LangItem, "h47"),
                    GetSmallIcon("mpHideProductIcons"),
                    Language.GetItem(LangItem, "h39"),
                    string.Empty,
                    string.Empty,
                    "help/mpsettings"));

            ribSourcePanel.Items.Add(ribRowPanel);
        }
 private void FillFieldsFunction()
 {
     _hasFieldsFunction  = LoadPluginsHelper.HasStampsPlugin();
     BtFields.Visibility = _hasFieldsFunction ? Visibility.Visible : Visibility.Collapsed;
 }