Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > by-pkgid > 13aa745fa82315981ff58c83c7af0f46 > files > 17

gob-1.0.12-1mdk.i586.rpm

/*
 * This is an example button widget which counts the number of clicks
 *
 * It is also showing how you can use inline gtk-doc like documentation
 * which will be correctly translated and put into the resulting source
 * file
 */
class Gtk:Button:Count from Gtk:Button {
	public int count;

	argument INT count
	get {
		ARG = self->count;
	}
	set {
		self->count = ARG;
	};

	init(self)
	{
		self->count = 0;
	}

	/**
	 * new:
	 *
	 * Makes a new #GtkButtonCount widget
	 *
	 * Returns: a new widget
	 **/
	public
	GtkWidget *
	new(void)
	{
		/* It's ok to use a normal cast here, as we are sure that we
		 * have gotten the right type */
		return (GtkWidget *)GET_NEW;
	}

	/**
	 * new_with_label:
	 * @label: the label text
	 *
	 * Makes a new #GtkButtonCount widget with a label
	 *
	 * Returns: a new widget
	 **/
	public
	GtkWidget *
	new_with_label(char *label (check null)) onerror NULL
	{
		/* It's ok to use a normal cast here, as we are sure that we
		 * have gotten the right type */
		GtkWidget *widget = (GtkWidget *)GET_NEW;
		GtkWidget *label_widget = gtk_label_new(label);
		gtk_container_add(GTK_CONTAINER(widget), label_widget);
		gtk_widget_show(label_widget);
		return widget;
	}

	override (Gtk:Button)
	void
	clicked(Gtk:Button *self (check null type))
	{
		GtkButtonCount *bc = GTK_BUTTON_COUNT(self);
		bc->count++;
		PARENT_HANDLER(self);
	}
}