-class Gtk:Button:Count from Gtk:Button {
- public int count;
+/*
+ * 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
+ */
+requires 2.0.0
- argument INT count
- get {
- ARG = self->count;
- }
- set {
- self->count = ARG;
- };
+class Gtk:Button:Count from Gtk:Button {
+ public int count = 0;
+ property INT count
+ (nick = _("Count of clicks"),
+ blurb = _("How many times was the button clicked"),
+ minimum = 0,
+ maximum = INT_MAX,
+ /* initially set to 0, even though we have already
+ * set the default above */
+ default_value = 0,
+ /* links the count property to the count data member */
+ link);
- init(button)
+ init (self)
{
- button->count = 0;
+ /* Although we have specified the default in two places
+ * already, this is an example of where else you can put
+ * initialization */
+ self->count = 0;
}
+ /**
+ * new:
+ *
+ * Makes a new #GtkButtonCount widget
+ *
+ * Returns: a new widget
+ **/
public
GtkWidget *
- new(void)
+ new (void)
{
- return GTK_WIDGET(GET_NEW);
+ /* 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 button but with a label inside it already, the 'label'
- argument must not be NULL or we will return NULL */
+ /**
+ * 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
+ new_with_label (char *label (check null)) onerror NULL
{
- return GTK_WIDGET(GET_NEW);
+ /* 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))
+ clicked (Gtk:Button *self (check null type))
{
- GtkButtonCount *bc = GTK_BUTTON_COUNT(self);
+ GtkButtonCount *bc = GTK_BUTTON_COUNT (self);
+ /* increase count */
bc->count++;
- PARENT_HANDLER(self);
+ /* runt he parent class handler for clicked */
+ PARENT_HANDLER (self);
}
}