]> git.draconx.ca Git - gob-dx.git/blobdiff - examples/gtk-button-count.gob
Release 2.0.0
[gob-dx.git] / examples / gtk-button-count.gob
index 9061c5cd63fdaddc9e1f6170db169e65da82b566..2eee5f2cf452db052a322247c91fd08dc90f9f51 100644 (file)
@@ -5,19 +5,26 @@
  * which will be correctly translated and put into the resulting source
  * file
  */
-class Gtk:Button:Count from Gtk:Button {
-       public int count;
+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(self)
+       init (self)
        {
+               /* Although we have specified the default in two places
+                * already, this is an example of where else you can put
+                * initialization */
                self->count = 0;
        }
 
@@ -30,7 +37,7 @@ class Gtk:Button:Count from Gtk:Button {
         **/
        public
        GtkWidget *
-       new(void)
+       new (void)
        {
                /* It's ok to use a normal cast here, as we are sure that we
                 * have gotten the right type */
@@ -47,23 +54,25 @@ class Gtk:Button:Count from Gtk:Button {
         **/
        public
        GtkWidget *
-       new_with_label(char *label (check null)) onerror NULL
+       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);
+               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);
        }
 }