Exemplo n.º 1
0
        internal static void ChangeSection(Form1 form, int index, bool active)
        {
            XtraTabControl    pagesTabControl        = form.pagesTabControl;
            CustomRichTextBox pageTextBox            = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
            CustomPanel       sectionsPanel          = ProgramUtil.GetSectionsPanel(pagesTabControl.SelectedTabPage);
            CheckedListBox    sectionsCheckedListBox = (CheckedListBox)sectionsPanel.Controls["sectionsCheckedListBox"];
            String            content = pageTextBox.Text;
            String            section = sectionsCheckedListBox.Items[index].ToString();

            bool          flag    = false;
            StringBuilder builder = new StringBuilder();

            foreach (String str in content.Split(new[] { Convert.ToChar(ConstantUtil.newLine) }))
            {
                if (builder.Length > 0)
                {
                    builder.Append(ConstantUtil.newLine); //builder.AppendLine();
                }
                if (String.IsNullOrEmpty(str))
                {
                    continue;
                }

                if (str.StartsWith("#SECTION ", StringComparison.OrdinalIgnoreCase))
                {
                    //flag = str.EndsWith(" " + section, StringComparison.OrdinalIgnoreCase);
                    flag = (str == ("#SECTION " + section));
                    builder.Append(str);
                }
                else if (flag)
                {
                    if (active)
                    {
                        builder.Append(str.StartsWith(ConstantUtil.hostsComments) ? str.Substring(ConstantUtil.hostsComments.Length) : str);
                    }
                    else if (!str.StartsWith(ConstantUtil.hostsComments))
                    {
                        builder.Append(ConstantUtil.hostsComments).Append(str);
                    }
                    else
                    {
                        builder.Append(str);
                    }
                }
                else
                {
                    builder.Append(str);
                }
            }

            pageTextBox.SelectAll();
            pageTextBox.SelectedText = builder.ToString();
            TextManager.RefreshUndoRedoExternal(form);
            pageTextBox.ScrollToCaret();
        }
Exemplo n.º 2
0
        private static void CloseHostsSectionPanel(Form1 form, bool suppressMessage = false)
        {
            ToolStripMenuItem hostsFileConfiguratorToolStripMenuItem = form.hostsFileConfiguratorToolStripMenuItem;
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            CustomPanel       sectionsPanel   = ProgramUtil.GetSectionsPanel(pagesTabControl.SelectedTabPage);

            if (sectionsPanel != null)
            {
                pagesTabControl.SelectedTabPage.Controls.Remove(sectionsPanel);
            }

            hostsFileConfiguratorToolStripMenuItem.Checked = false;

            if (!suppressMessage)
            {
                WindowManager.ShowInfoBox(form, LanguageUtil.GetCurrentLanguageString("HostsClose", className));
            }
        }
Exemplo n.º 3
0
        private static bool ClosePage(Form1 form, bool showMessages, bool moreTabs, out bool closeAll)
        {
            XtraTabControl pagesTabControl = form.pagesTabControl;

            closeAll = false;

            if (showMessages && TabUtil.IsTabPageModified(pagesTabControl.SelectedTabPage))
            {
                if (moreTabs)
                {
                    DialogResult dialogResult = WindowManager.ShowQuestionCancelNoAllBox(form, LanguageUtil.GetCurrentLanguageString("SaveUntitled", className));

                    if ((dialogResult == DialogResult.Cancel) || (dialogResult == DialogResult.Yes && !FileManager.SaveFile(form, false)))
                    {
                        return(false);
                    }
                    if (dialogResult == DialogResult.Retry)
                    {
                        closeAll = true;
                    }
                }
                else
                {
                    DialogResult dialogResult = WindowManager.ShowQuestionCancelBox(form, LanguageUtil.GetCurrentLanguageString("SaveUntitled", className));

                    if ((dialogResult == DialogResult.Cancel) || (dialogResult == DialogResult.Yes && !FileManager.SaveFile(form, false)))
                    {
                        return(false);
                    }
                }
            }
            else if (!showMessages)
            {
                closeAll = true;
            }

            CustomPanel sectionsPanel   = ProgramUtil.GetSectionsPanel(pagesTabControl.SelectedTabPage);
            CustomPanel annotationPanel = ProgramUtil.GetAnnotationPanel(pagesTabControl.SelectedTabPage);

            if (sectionsPanel != null)
            {
                pagesTabControl.SelectedTabPage.Controls.Remove(sectionsPanel);
            }
            if (annotationPanel != null)
            {
                pagesTabControl.SelectedTabPage.Controls.Remove(annotationPanel);
            }

            if (pagesTabControl.TabPages.Count > 1)
            {
                String selectedTabName  = pagesTabControl.SelectedTabPage.Name;
                int    selectedTabIndex = pagesTabControl.SelectedTabPageIndex;

                pagesTabControl.TabPages.Remove(pagesTabControl.SelectedTabPage);
                ExplorerManager.RemoveNodeToTabExplorer(form, selectedTabName);

                pagesTabControl.SelectedTabPage = selectedTabIndex < pagesTabControl.TabPages.Count ? pagesTabControl.TabPages[selectedTabIndex] : pagesTabControl.TabPages[pagesTabControl.TabPages.Count - 1];

                if (String.IsNullOrEmpty(ProgramUtil.GetFilenameTabPage(pagesTabControl.SelectedTabPage)))
                {
                    ToggleTabFileTools(form, false);
                }
                OtherManager.FocusOnEditor(form);
            }
            else
            {
                ResetTab(form);
            }

            return(true);
        }
Exemplo n.º 4
0
        internal static void OpenHostsSectionPanel(Form1 form)
        {
            ToolStripMenuItem hostsFileConfiguratorToolStripMenuItem = form.hostsFileConfiguratorToolStripMenuItem;
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            XtraTabPage       selectedTabPage = pagesTabControl.SelectedTabPage;
            CustomRichTextBox pageTextBox     = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

            if (ProgramUtil.GetSectionsPanel(selectedTabPage) != null)
            {
                selectedTabPage.Controls.Remove(ProgramUtil.GetSectionsPanel(pagesTabControl.SelectedTabPage));
            }

            //ContextMenuStrip
            ToolStripMenuItem closeToolStripMenuItem = new ToolStripMenuItem
            {
                Image            = ToolbarResource.minus,
                Name             = "closeToolStripMenuItem",
                ShowShortcutKeys = false,
                Text             = LanguageUtil.GetCurrentLanguageString("ClosePanel", className)
            };
            ToolStripMenuItem helpToolStripMenuItem = new ToolStripMenuItem
            {
                Image            = ToolbarResource.question_blue,
                Name             = "helpToolStripMenuItem",
                ShowShortcutKeys = false,
                Text             = LanguageUtil.GetCurrentLanguageString("HelpPanel", className)
            };

            closeToolStripMenuItem.Click += form.hostsFileConfiguratorToolStripMenuItem_Click;
            helpToolStripMenuItem.Click  += form.helpHostsFileConfiguratorToolStripMenuItem_Click;

            ToolStripRenderMode rendererMode             = ConfigUtil.GetIntParameter("LookAndFeel") == 0 ? ToolStripRenderMode.ManagerRenderMode : ToolStripRenderMode.System;
            ContextMenuStrip    sectionsContextMenuStrip = new ContextMenuStrip
            {
                RenderMode = rendererMode
            };

            sectionsContextMenuStrip.Items.AddRange(new ToolStripItem[] { closeToolStripMenuItem, helpToolStripMenuItem });

            //Panel
            CustomPanel sectionsPanel = new CustomPanel
            {
                Dock   = DockStyle.Right,
                Height = selectedTabPage.Height,
                Name   = "sectionsPanel",
                Width  = ConstantUtil.hostsPanelWidth
            };
            CheckedListBox sectionsCheckedListBox = new CheckedListBox
            {
                BackColor           = pageTextBox.BackColor,
                BorderStyle         = BorderStyle.None,
                CheckOnClick        = true,
                ContextMenuStrip    = sectionsContextMenuStrip,
                Dock                = DockStyle.Right,
                ForeColor           = pageTextBox.ForeColor,
                Height              = selectedTabPage.Height,
                HorizontalScrollbar = true,
                Name                = "sectionsCheckedListBox",
                Tag   = pageTextBox.Text.GetHashCode().ToString(),
                Width = 174
            };

            sectionsPanel.Controls.Add(sectionsCheckedListBox);
            selectedTabPage.Controls.Add(sectionsPanel);

            hostsFileConfiguratorToolStripMenuItem.Checked = true;

            GetSections(form, true);

            sectionsCheckedListBox.ItemCheck += CustomEvents.sectionsCheckedListBox_ItemCheck;
            sectionsCheckedListBox.Enter     += CustomEvents.sectionsCheckedListBox_Refresh;
        }
Exemplo n.º 5
0
 internal static bool IsHostsSectionPanelOpen(Form1 form)
 {
     return(ProgramUtil.GetSectionsPanel(form.pagesTabControl.SelectedTabPage) != null);
 }
Exemplo n.º 6
0
        internal static void GetSections(Form1 form, bool forceRefresh)
        {
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            CustomRichTextBox pageTextBox     = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
            CustomPanel       sectionsPanel   = ProgramUtil.GetSectionsPanel(pagesTabControl.SelectedTabPage);

            if (sectionsPanel == null)
            {
                return; //User changes tab page
            }

            CheckedListBox sectionsCheckedListBox = (CheckedListBox)sectionsPanel.Controls["sectionsCheckedListBox"];
            String         content = pageTextBox.Text;

            if (!forceRefresh && pageTextBox.Text.GetHashCode().ToString() == sectionsCheckedListBox.Tag.ToString())
            {
                return;
            }

            sectionsCheckedListBox.Items.Clear();
            int index = -1;
            int num   = 0;
            int num2  = 0;

            foreach (String str in content.Split(new[] { Convert.ToChar(ConstantUtil.newLine) }))
            {
                if (str.StartsWith("#SECTION ", StringComparison.OrdinalIgnoreCase))
                {
                    if (index >= 0)
                    {
                        if ((num > 0) & (num2 > 0))
                        {
                            sectionsCheckedListBox.SetItemCheckState(index, CheckState.Indeterminate);
                        }
                        if ((num == 0) & (num2 > 0))
                        {
                            sectionsCheckedListBox.SetItemCheckState(index, CheckState.Unchecked);
                        }
                        if ((num > 0) & (num2 == 0))
                        {
                            sectionsCheckedListBox.SetItemCheckState(index, CheckState.Checked);
                        }
                    }

                    String item = str.Substring("#SECTION ".Length);
                    index = sectionsCheckedListBox.Items.Add(item, CheckState.Indeterminate);
                    num   = 0;
                    num2  = 0;
                }
                else if (!String.IsNullOrEmpty(str))
                {
                    if (str.StartsWith(ConstantUtil.hostsComments))
                    {
                        num2++;
                    }
                    else
                    {
                        num++;
                    }
                }
            }

            if (index < 0)
            {
                return;
            }

            if ((num > 0) & (num2 > 0))
            {
                sectionsCheckedListBox.SetItemCheckState(index, CheckState.Indeterminate);
            }
            if ((num == 0) & (num2 > 0))
            {
                sectionsCheckedListBox.SetItemCheckState(index, CheckState.Unchecked);
            }
            if ((num > 0) & (num2 == 0))
            {
                sectionsCheckedListBox.SetItemCheckState(index, CheckState.Checked);
            }

            sectionsCheckedListBox.Tag = pageTextBox.Text.GetHashCode().ToString();
        }