Exemplo n.º 1
0
            /// <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;
                }
            }
Exemplo n.º 2
0
    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);
    }