/// <summary> /// The reflexive header_ mouse down. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The e.</param> /// <remarks></remarks> private void ReflexiveHeader_MouseDown(object sender, MouseEventArgs e) { Label x = (Label)sender; SplitterPanel s = (SplitterPanel)x.Parent; SplitContainer sc = (SplitContainer)s.Parent; if (sc.Panel2Collapsed == false) { SetMaxSize(0, 25); SetMinSize(0, 25); sc.MaximumSize = this.MaxSize; sc.MinimumSize = this.MinSize; sc.Height = 25; sc.BorderStyle = BorderStyle.None; sc.Panel2Collapsed = true; sc.SplitterDistance = 25; sc.Update(); x.BackColor = Color.Silver; } else { SetMaxSize(0, height + 50); SetMinSize(0, 25); sc.MaximumSize = this.MaxSize; sc.MinimumSize = this.MinSize; sc.Height = height + 50; sc.BorderStyle = BorderStyle.FixedSingle; sc.Panel2Collapsed = false; sc.SplitterDistance = 25; sc.Update(); x.BackColor = Color.CornflowerBlue; } }
void DrawUI() { // UI Constants const int Max = 10000000; const int GroupBoxHeight = 50; SuspendLayout(); // Menu MainMenu = UI.Menu( UI.SubMenu("&File", UI.Command("&Open...", Open), UI.Command("&Save...", Save), UI.Command("E&xit", Exit)), UI.SubMenu("&Help", UI.Command("&About", About)) ); /** Left Panel **/ /* Search Options */ var sources = Directory.GetFiles("../../../Elise/Resources/Sources", "*.src").Select(p => Path.GetFileNameWithoutExtension(p)).ToArray(); SourceList = UI.List(sources); var SourceListPanel = UI.ListPanel("&Source", SourceList); SourceListPanel.Height = 30; // Range Options const int StartMin = 0; const int StartMax = Max; const int DefaultStop = 1000; const int SkipMin = 2; const int SkipMax = Max; const int DefaultToSkip = 20; StartSpinner = UI.Spinner(StartMin, StartMax); StartSpinner.Value = StartMin; var StartSpinPanel = UI.SpinPanel("&Start", StartSpinner); StopSpinner = UI.Spinner(StartMin, StartMax); StopSpinner.Value = DefaultStop; var StopSpinPanel = UI.SpinPanel("&Stop", StopSpinner); var RangeOptions = UI.Container <GroupBox>(DockStyle.Top, StartSpinPanel, StopSpinPanel); RangeOptions.Text = "Range &Options"; RangeOptions.Height = GroupBoxHeight; // Skip Options FromSkipSpinner = UI.Spinner(SkipMin, SkipMax); FromSkipSpinner.Value = SkipMin; var FromSkipPanel = UI.SpinPanel("&From", FromSkipSpinner); ToSkipSpinner = UI.Spinner(SkipMin, SkipMax); ToSkipSpinner.Value = DefaultToSkip; var ToSkipPanel = UI.SpinPanel("&To", ToSkipSpinner); var SkipOptions = UI.Container <GroupBox>(DockStyle.Top, FromSkipPanel, ToSkipPanel); SkipOptions.Text = "Skip &Interval"; SkipOptions.Height = GroupBoxHeight; // Term Options var TermLabel = UI.Label("&Term"); TermTextBox = new TextBox { Dock = DockStyle.Top, AutoSize = false, Width = 80 }; AddTermButton = new Button { Dock = DockStyle.Left, Text = "Add" }; RemoveTermButton = new Button { Dock = DockStyle.Left, Text = "Remove" }; var TermButtons = UI.Container <Panel>(DockStyle.Top, AddTermButton, RemoveTermButton); TermButtons.Height = 20; var TermPanel = UI.Container <Panel>(DockStyle.Top, TermLabel, TermTextBox, TermButtons); TermPanel.AutoSize = true; SearchButton = new Button { Dock = DockStyle.Top, Text = "&Search" }; TermListBox = new ListBox { Dock = DockStyle.Top }; var TermOptions = UI.Container <GroupBox>(DockStyle.Top, TermPanel, TermListBox, SearchButton); TermOptions.Text = "Search &Terms"; TermOptions.AutoSize = true; var SearchOptions = UI.Container <GroupBox>(DockStyle.Fill, UI.DockAll(DockStyle.Top, SourceListPanel, RangeOptions, SkipOptions, TermOptions) ); SearchOptions.Text = "&Search Options"; var LeftPanel = UI.Container <Panel>(DockStyle.Fill, SearchOptions); /** Rich Text Grid **/ Grid = UI.RTFGrid(); /** Bottom Panel **/ ProgressBar = new ProgressBar { Dock = DockStyle.Right, Style = ProgressBarStyle.Continuous, }; StatusBar = UI.Container <StatusBar>(DockStyle.Bottom, ProgressBar); // Passage selection BookList = UI.List(Bible.Books); var BookListPanel = UI.ListPanel("&Book", BookList); ChapterSpinner = UI.Spinner(1, 1); var ChapterSpinPanel = UI.SpinPanel("&Chapter", ChapterSpinner); VerseSpinner = UI.Spinner(1, 1); var VerseSpinPanel = UI.SpinPanel("&Verse", VerseSpinner); ToBookList = UI.List(Bible.Books); var ToBookListPanel = UI.ListPanel("- &Book", ToBookList); ToChapterSpinner = UI.Spinner(1, 1); var ToChapterSpinPanel = UI.SpinPanel("&Chapter", ToChapterSpinner); ToVerseSpinner = UI.Spinner(1, 1); var ToVerseSpinPanel = UI.SpinPanel("&Verse", ToVerseSpinner); var PassagePanel = UI.Container <GroupBox>(DockStyle.Top, BookListPanel, ChapterSpinPanel, VerseSpinPanel, ToBookListPanel, ToChapterSpinPanel, ToVerseSpinPanel ); PassagePanel.Height = 48; var GridPanel = UI.Container <Panel>(DockStyle.Fill, PassagePanel, Grid); /*** VSplitter ***/ VSplitter = UI.Splitter(LeftPanel, GridPanel); /** Hits Panel **/ var HitsLabel = UI.Label("Search &Hits"); HitsLabel.Dock = DockStyle.Top; HitsLabel.AutoSize = false; HitsLabel.Font = new Font("MS Sans Serif", 8); HitsLabel.BackColor = SystemColors.ControlLight; /* Hits List */ HitsListView = new ListView { Dock = DockStyle.Fill, View = View.Details, GridLines = true, MultiSelect = false, FullRowSelect = true, ShowGroups = true, HideSelection = false }; HitsListView.Columns.AddRange(new ColumnHeader[] { new ColumnHeader { Text = "Search Term" }, new ColumnHeader { Text = "Search Position" }, new ColumnHeader { Text = "Skip Interval" } }); HitsPanel = UI.Container <Panel>(DockStyle.Fill, HitsLabel, HitsListView); HSplitter = UI.Splitter(VSplitter, HitsPanel, Orientation.Horizontal); Controls.Add(UI.Container <Panel>(DockStyle.Fill, MainMenu, StatusBar, HSplitter)); ResumeLayout(); const int SplitterDistance = 200; VSplitter.FixedPanel = FixedPanel.Panel1; VSplitter.Panel1MinSize = SplitterDistance; VSplitter.SplitterDistance = SplitterDistance; VSplitter.Update(); HSplitter.FixedPanel = FixedPanel.Panel2; HSplitter.Panel2MinSize = 100; HSplitter.SplitterDistance = 400; HSplitter.Panel2Collapsed = true; HSplitter.Update(); HitsListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }