Mercurial > repos > IBBoard.GtkSharp
view NotebookUtil.cs @ 5:51b4bbca7c19
Re #23: Add easy creation of "tab with close"
* Rename project output to IBBoard.GtkSharp.dll
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Thu, 25 Jun 2009 20:04:21 +0000 |
parents | 10df433db2ac |
children | 49307b998555 |
line wrap: on
line source
// This file (NotebookUtil.cs) is a part of the IBBoard.Gtk project and is copyright 2009 IBBoard // // The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license. // using System; using Gtk; namespace IBBoard.GtkSharp { public class NotebookUtil { /// <summary> /// Adds a page to a notebook, but also includes a close button in the tab. Returns the page number added /// </summary> /// <param name="notebook"> /// The <see cref="Notebook"/> to add a page to /// </param> /// <param name="page"> /// The <see cref="Widget"/> to use as the content of the page /// </param> /// <param name="title"> /// The title of the tab /// </param> /// <returns> /// The page number created /// </returns> public static int AddPageToNotebookWithCloseButton(Notebook notebook, Widget page, string title) { HBox hbox = new HBox(); hbox.PackStart(new Label(title)); Button close = new Button(); close.Image = Image.NewFromIconName("gtk-close", IconSize.Menu); close.Relief = ReliefStyle.None; close.FocusOnClick = false; close.Clicked += delegate { hbox.Destroy(); page.Destroy(); }; hbox.PackStart(close); hbox.ShowAll(); return notebook.AppendPage(page, hbox); } } }