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(); }
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)); } }
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); }
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; }
internal static bool IsHostsSectionPanelOpen(Form1 form) { return(ProgramUtil.GetSectionsPanel(form.pagesTabControl.SelectedTabPage) != null); }
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(); }