/// <summary>
        /// Occurs when one of the page's button is being clicked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnPageButtonClicked(object sender, EventArgs e)
        {
            LuaEditPageButton button = sender as LuaEditPageButton;

            if (button != null && !button.Checked)
            {
                foreach (Control ctrl in pageButtonsPanel.Controls)
                {
                    LuaEditPageButton pageButton = ctrl as LuaEditPageButton;

                    if (pageButton != null && pageButton.Checked)
                    {
                        pageButton.Checked = false;
                        break;
                    }
                }

                pageContentPanel.Controls.Clear();
                pageContentPanel.Controls.Add(button.Page.PageContent.Content);
                pageContentPanel.Controls[0].Left = 1;
                pageContentPanel.Controls[0].Top  = 1;
                pageContentPanel.InvalidationLines.Clear();
                pageContentPanel.AddInvalidationLine(button.PointToScreen(new Point(button.Right - 2, 1)),
                                                     button.PointToScreen(new Point(button.Right - 2, button.Height - 2)));
                _currentPage   = button.Page;
                button.Checked = true;
            }
        }
        /// <summary>
        /// Add a page to the page control
        /// </summary>
        /// <param name="pageContent">The page's content</param>
        /// <returns>The create LuaEditPage</returns>
        public LuaEditPageControlPage AddPage(ILuaEditPageControlPageContent pageContent)
        {
            LuaEditPageControlPage page = null;

            if (FindPageByTitle(pageContent.Title) == null)
            {
                page = new LuaEditPageControlPage(pageContent);
                _pages.Add(page);
                page.Parent = this;

                LuaEditPageButton button = new LuaEditPageButton(page);
                button.Text   = pageContent.Title;
                button.Click += OnPageButtonClicked;
                pageButtonsPanel.Controls.Add(button);
                ComputePageButtonsPanel();

                if (_currentPage == null)
                {
                    OnPageButtonClicked(button, new EventArgs());
                }
            }

            return(page);
        }