[Gtk-sharp-list] Can someone explain this in C#, as opposed to python please? its for custom tabs.

Slide slide.o.mix at gmail.com
Tue Nov 1 11:30:52 EDT 2011


On Tue, Nov 1, 2011 at 6:02 AM, LDel001 <junkmail at semperfy.com> wrote:
> Now they all appear at once to me, sorry, terrible firewall in work.
>
> Thanks for the help. :)
>
> --
> View this message in context: http://mono.1490590.n4.nabble.com/Can-someone-explain-this-in-C-as-opposed-to-python-please-its-for-custom-tabs-tp3963321p3963413.html
> Sent from the Mono - Gtk# mailing list archive at Nabble.com.
> _______________________________________________
> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
>


Here is a very poorly ported example of doing something similar to the
Python code.

public class CustomNotebook : Gtk.Notebook
	{
		public CustomNotebook ()
		{
			Homogeneous = true;
			ShowTabs = false;			
		}
		
		public void NewTab() {
			string[] icons = { Gtk.Stock.About, Gtk.Stock.Add, Gtk.Stock.Apply,
Gtk.Stock.Bold };
			Gtk.Image image = new Gtk.Image();
			int nbpages = NPages;
			string icon = icons[nbpages % icons.Length];
			image.SetFromStock(icon, Gtk.IconSize.Dialog);
			
			
			Widget label = CreateTableLabel(icon, image);
			label.ShowAll();
			
			SetTabLabelPacking(image, true, true, Gtk.PackType.Start);
			image.ShowAll();
			
			AppendPage(image, label);
			
			if((nbpages + 1) > 1) {
				ShowTabs = true;
			}
			
			CurrentPage = nbpages;			
		}
		
		private Widget CreateTableLabel(string title, Widget child) {
			Gtk.HBox box = new Gtk.HBox();
			Gtk.Image icon = new Gtk.Image();
			icon.SetFromStock(title, Gtk.IconSize.Menu);
			Label label = new Label(title);
			Button closebtn = new Button();
			// the close button is made of an empty button
			// where we set an image
			Image image = new Image();
			image.SetFromStock(Gtk.Stock.Close, Gtk.IconSize.Menu);
			closebtn.Clicked += (sender, e) => {
				// close the tab here...
			};
			closebtn.Image = image;
			closebtn.Relief = ReliefStyle.None;
			box.PackStart(icon, false, false, 0);
			box.PackStart(label, true, true, 0);
			box.PackEnd(closebtn, false, false, 0);
			return box;
		}
	}


-- 
slide-o-blog
http://slide-o-blog.blogspot.com/


More information about the Gtk-sharp-list mailing list