예제 #1
0
        public void SearchAgain(ITailForm activeTailForm, bool searchForward, bool keywordHighlights)
        {
            if (activeTailForm != null)
            {
                ActiveTailForm = activeTailForm;

                bool found = false;
                using (new HourGlass(this))
                {
                    using (new HourGlass(activeTailForm.TailWindow))
                    {
                        found = ActiveTailForm.SearchForText(_searchTextBox.Text, _matchCaseCheckBox.Checked, searchForward, keywordHighlights, keywordHighlights ? false : _wrapArroundcheckBox.Checked);
                    }
                }
                if (!found)
                {
                    if (keywordHighlights)
                    {
                        MessageBox.Show("Cannot find any highlighted lines", "Search Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Cannot find \"" + _searchTextBox.Text + "\"", "Search Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }
예제 #2
0
 public void StartSearch(ITailForm activeTailForm)
 {
     if (!Visible)
     {
         Show(MainForm.Instance);
     }
     ActiveTailForm = activeTailForm;
     BringToFront();
     _searchTextBox.SelectAll();
     _searchTextBox.Focus();
 }
예제 #3
0
 void _activeForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (_activeTailForm != null && _activeTailForm.TailWindow != null)
     {
         _activeTailForm.TailWindow.FormClosing -= _activeForm_FormClosing;
         _activeTailForm = null;
     }
     if (MainForm.Instance != null)
     {
         MainForm.Instance.Focus();
     }
 }
예제 #4
0
 public void StartSearch(ITailForm activeTailForm)
 {
     if (!Visible)
     {
         if (activeTailForm != null && activeTailForm.TailWindow != null && activeTailForm.TailWindow.MdiParent == null)
         {
             Show(activeTailForm.TailWindow);
         }
         else
         {
             Show(MainForm.Instance);
         }
     }
     ActiveTailForm = activeTailForm;
     BringToFront();
     _searchTextBox.SelectAll();
     _searchTextBox.Focus();
 }
예제 #5
0
        private void closeAllToolStripMenuItem_Click(object sender, EventArgs e)
        {
            _MDITabControl.Visible = false;
            FormCollection forms = Application.OpenForms;

            for (int i = forms.Count - 1; i >= 0; i--)
            {
                ITailForm tailForm = forms[i] as ITailForm;
                if (tailForm != null)
                {
                    tailForm.TailWindow.Close();
                }
            }
            if (SearchForm.Instance.Visible)
            {
                SearchForm.Instance.Close();
            }
            _currenTailConfig = null;
            UpdateTitle();
        }
예제 #6
0
 void _activeForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (_activeTailForm != null)
     {
         _activeTailForm.TailWindow.FormClosing -= _activeForm_FormClosing;
     }
     _activeTailForm = null;
     MainForm.Instance.Focus();
 }
예제 #7
0
 public void StartSearch(ITailForm activeTailForm)
 {
     if (!Visible)
         Show(MainForm.Instance);
     ActiveTailForm = activeTailForm;
     BringToFront();
     _searchTextBox.SelectAll();
     _searchTextBox.Focus();
 }
예제 #8
0
        public void SearchAgain(ITailForm activeTailForm, bool searchForward, bool keywordHighlights)
        {
            if (activeTailForm != null)
            {
                ActiveTailForm = activeTailForm;

                bool found = false;
                using (new HourGlass(this))
                {
                    using (new HourGlass(activeTailForm.TailWindow))
                    {
                        found = ActiveTailForm.SearchForText(_searchTextBox.Text, _matchCaseCheckBox.Checked, searchForward, keywordHighlights, keywordHighlights ? false : _wrapArroundcheckBox.Checked);
                    }
                }
                if (!found)
                {
                    if (keywordHighlights)
                        MessageBox.Show("Cannot find any highlighted lines", "Search Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    else
                        MessageBox.Show("Cannot find \"" + _searchTextBox.Text + "\"", "Search Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
예제 #9
0
        private bool LoadSession(string filepath)
        {
            TailConfig tailConfig = LoadSessionFile(filepath);

            if (tailConfig == null)
            {
                return(false);
            }

            _mruMenu.AddFile(filepath);

            if (!tailConfig.MinimizedToTray)
            {
                Size            = tailConfig.WindowSize;
                DesktopLocation = tailConfig.WindowPosition;
            }

            UpdateTitle();

            List <string> eventLogFiles = EventLogForm.GetEventLogFiles();

            Application.DoEvents();

            foreach (TailFileConfig tailFile in tailConfig.TailFiles)
            {
                Form mdiForm = null;

                int index = eventLogFiles.FindIndex(delegate(string arrItem) { return(arrItem.Equals(tailFile.FilePath)); });
                if (index >= 0)
                {
                    mdiForm = new EventLogForm();
                }
                else
                {
                    mdiForm = new TailForm();
                }

                if (mdiForm != null)
                {
                    ITailForm tailForm       = mdiForm as ITailForm;
                    string    tailConfigPath = Path.GetDirectoryName(filepath);

                    mdiForm.Text = tailFile.Title;
                    if (!tailFile.Modeless)
                    {
                        mdiForm.MdiParent     = this;
                        mdiForm.ShowInTaskbar = false;
                        AddMdiChildTab(mdiForm);
                        if (tailForm != null)
                        {
                            tailForm.LoadConfig(tailFile, tailConfigPath);
                        }
                        if (mdiForm.IsDisposed)
                        {
                            _MDITabControl.TabPages.Remove(mdiForm.Tag as TabPage);
                            continue;
                        }
                    }
                    mdiForm.Show();

                    if (tailConfig.SelectedTab == -1 || tailFile.Modeless)
                    {
                        if (tailFile.WindowState != FormWindowState.Maximized)
                        {
                            mdiForm.DesktopLocation = tailFile.WindowPosition;
                            mdiForm.Size            = tailFile.WindowSize;
                        }
                        if (mdiForm.WindowState != tailFile.WindowState)
                        {
                            mdiForm.WindowState = tailFile.WindowState;
                        }
                    }

                    if (tailFile.Modeless)
                    {
                        if (tailForm != null)
                        {
                            tailForm.LoadConfig(tailFile, tailConfigPath);
                        }
                    }
                }
                Application.DoEvents();
            }

            if (tailConfig.SelectedTab != -1 && _MDITabControl.TabPages.Count > 0)
            {
                foreach (Form childForm in MdiChildren)
                {
                    childForm.WindowState = FormWindowState.Minimized;
                }

                _MDITabControl.SelectedIndex = tailConfig.SelectedTab;
                _MDITabControl.Visible       = true;
                (_MDITabControl.SelectedTab.Tag as Form).WindowState = FormWindowState.Maximized;
            }

            if (tailConfig.MinimizedToTray)
            {
                _trayIcon.Visible = true;
                WindowState       = FormWindowState.Minimized;
                Visible           = false;
            }
            else if (tailConfig.AlwaysOnTop)
            {
                alwaysOnTopToolStripMenuItem.Checked = true;
                TopMost = true;
            }

            return(true);
        }
예제 #10
0
        private void SaveSession(string filepath)
        {
            TailConfig tailConfig = new TailConfig();

            if (_MDITabControl.Visible)
            {
                tailConfig.SelectedTab = _MDITabControl.SelectedIndex;
            }
            else
            {
                tailConfig.SelectedTab = -1;
            }
            tailConfig.WindowSize      = Size;
            tailConfig.WindowPosition  = DesktopLocation;
            tailConfig.MinimizedToTray = _trayIcon.Visible;
            tailConfig.AlwaysOnTop     = TopMost;

            List <Form> childForms = new List <Form>();

            // We first loop through the tabpages to store in proper TabPage order
            foreach (TabPage tagPage in _MDITabControl.TabPages)
            {
                Form tailForm = tagPage.Tag as Form;
                if (tailForm != null)
                {
                    childForms.Add(tailForm);
                }
            }

            // Then we loop through all forms (includes free floating)
            foreach (Form childForm in Application.OpenForms)
            {
                if (childForms.IndexOf(childForm) == -1)
                {
                    childForms.Add(childForm);
                }
            }

            // Save all forms and store in proper order
            foreach (Form childForm in childForms)
            {
                ITailForm tailForm = childForm as ITailForm;
                if (tailForm != null)
                {
                    TailFileConfig tailFile = new TailFileConfig();
                    tailForm.SaveConfig(tailFile);
                    tailConfig.TailFiles.Add(tailFile);
                }
            }

            SaveConfig(tailConfig, filepath);

            if (String.IsNullOrEmpty(_currenTailConfig))
            {
                _mruMenu.AddFile(filepath);
            }
            else if (_currenTailConfig != filepath)
            {
                _mruMenu.RenameFile(_currenTailConfig, filepath);
            }

            _currenTailConfig = filepath;

            UpdateTitle();
        }