internal bool Apply()
        {
            bool restart = false;

            for (int i = 0; CurrentPlugins.Count > i; i++)
            {
                if (CurrentPlugins[i].Enabled != PluginEnabled[i])
                {
                    restart = true;
                }

                CurrentPlugins[i].Enabled = PluginEnabled[i];
            }

            if (FunctionList.Items.Count >= CurrentFunctions.Count)
            {
                for (int i = 0; CurrentFunctions.Count > i; i++)
                {
                    if (FunctionList.Items[i] != CleanUpItem)
                    {
                        ClearUC.ListViewItems.ListToggleItem lti = (ClearUC.ListViewItems.ListToggleItem)FunctionList.Items[i];
                        if (lti.ToggleButton.State != CurrentFunctions[i].Enabled)
                        {
                            restart = true;
                        }

                        CurrentFunctions[i].Enabled = lti.ToggleButton.State;
                    }
                }
            }

            return(restart);
        }
        private void PluginT_ActiveItemChanged(object sender, EventArgs e)
        {
            EnableB.ToggleStateChanged -= EnableB_ToggleStateChanged;

            if (PluginT.ActiveItem == FunctionItem)
            {
                InfoGrid.Visibility     = Visibility.Hidden;
                FunctionGrid.Visibility = Visibility.Visible;

                FunctionList.Items.Clear();

                FunctionList.Items.Add(CleanUpItem);

                System.Collections.ObjectModel.Collection <Utils.PluginManager.PluginFunction> funcs
                    = Utils.PluginManager.GetFunctions();

                for (int i = 0; funcs.Count > i; i++)
                {
                    ClearUC.ListViewItems.ListToggleItem lti = new ClearUC.ListViewItems.ListToggleItem();
                    lti.ListItem.MainLabelText = funcs[i].Title;
                    lti.ToggleButton.State     = funcs[i].Enabled;

                    FunctionList.Items.Add(lti);
                }
            }
            else
            {
                FunctionGrid.Visibility = Visibility.Hidden;

                Utils.PluginManager.Plugin plg = GetActiveItem();
                if (plg == null)
                {
                    InfoGrid.Visibility = Visibility.Hidden;
                    return;
                }

                EnableB.State   = plg.Enabled;
                TitleL.Content  = plg.Instance.Title;
                DescL.Content   = plg.Instance.Description;
                AuthorL.Content = plg.Instance.Author + " - " + plg.Instance.Version.ToString();

                EnableB.ToggleStateChanged += EnableB_ToggleStateChanged;

                if (string.IsNullOrEmpty(plg.Instance.URL))
                {
                    URLB.Visibility = Visibility.Hidden;
                }
                else
                {
                    URLB.Visibility = Visibility.Visible;
                    URLB.Content    = plg.Instance.URL;
                }

                InfoGrid.Visibility = Visibility.Visible;
            }
        }