]> Pileus Git - ~andy/gtk/blobdiff - examples/tictactoe/tictactoe.c
Revert name change
[~andy/gtk] / examples / tictactoe / tictactoe.c
index 040d472ea3c175e784fad2629c96763db2dc47e7..34c7b2f05e910041af83d2cf16be5cd64b08199f 100644 (file)
@@ -1,4 +1,3 @@
-/* example-start tictactoe tictactoe.c */
 
 /* GTK - The GIMP Toolkit
  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
@@ -18,9 +17,9 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-#include "gtk/gtksignal.h"
-#include "gtk/gtktable.h"
-#include "gtk/gtktogglebutton.h"
+#include <gtk/gtksignal.h>
+#include <gtk/gtktable.h>
+#include <gtk/gtktogglebutton.h>
 #include "tictactoe.h"
 
 enum {
@@ -32,72 +31,66 @@ static void tictactoe_class_init          (TictactoeClass *klass);
 static void tictactoe_init                (Tictactoe      *ttt);
 static void tictactoe_toggle              (GtkWidget *widget, Tictactoe *ttt);
 
-static gint tictactoe_signals[LAST_SIGNAL] = { 0 };
+static guint tictactoe_signals[LAST_SIGNAL] = { 0 };
 
-guint
-tictactoe_get_type ()
+GType
+tictactoe_get_type (void)
 {
-  static guint ttt_type = 0;
+  static GType ttt_type = 0;
 
   if (!ttt_type)
     {
-      GtkTypeInfo ttt_info =
+      static const GTypeInfo ttt_info =
       {
-       "Tictactoe",
-       sizeof (Tictactoe),
        sizeof (TictactoeClass),
-       (GtkClassInitFunc) tictactoe_class_init,
-       (GtkObjectInitFunc) tictactoe_init,
-        (GtkArgSetFunc) NULL,
-        (GtkArgGetFunc) NULL
+       NULL, /* base_init */
+        NULL, /* base_finalize */
+       (GClassInitFunc) tictactoe_class_init,
+        NULL, /* class_finalize */
+       NULL, /* class_data */
+        sizeof (Tictactoe),
+       0,
+       (GInstanceInitFunc) tictactoe_init,
       };
 
-      ttt_type = gtk_type_unique (gtk_vbox_get_type (), &ttt_info);
+      ttt_type = g_type_register_static (GTK_TYPE_TABLE, "Tictactoe", &ttt_info, 0);
     }
 
   return ttt_type;
 }
 
 static void
-tictactoe_class_init (TictactoeClass *class)
+tictactoe_class_init (TictactoeClass *klass)
 {
-  GtkObjectClass *object_class;
-
-  object_class = (GtkObjectClass*) class;
   
-  tictactoe_signals[TICTACTOE_SIGNAL] = gtk_signal_new ("tictactoe",
-                                        GTK_RUN_FIRST,
-                                        object_class->type,
-                                        GTK_SIGNAL_OFFSET (TictactoeClass,
-                                                            tictactoe),
-                                        gtk_signal_default_marshaller,
-                                         GTK_TYPE_NONE, 0);
-
+  tictactoe_signals[TICTACTOE_SIGNAL] = g_signal_new ("tictactoe",
+                                        G_TYPE_FROM_CLASS (klass),
+                                        G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+                                        G_STRUCT_OFFSET (TictactoeClass, tictactoe),
+                                         NULL, 
+                                         NULL,                
+                                        g_cclosure_marshal_VOID__VOID,
+                                         G_TYPE_NONE, 0);
 
-  gtk_object_class_add_signals (object_class, tictactoe_signals, LAST_SIGNAL);
 
-  class->tictactoe = NULL;
 }
 
 static void
 tictactoe_init (Tictactoe *ttt)
 {
-  GtkWidget *table;
   gint i,j;
   
-  table = gtk_table_new (3, 3, TRUE);
-  gtk_container_add (GTK_CONTAINER(ttt), table);
-  gtk_widget_show (table);
+  gtk_table_resize (GTK_TABLE (ttt), 3, 3);
+  gtk_table_set_homogeneous (GTK_TABLE (ttt), TRUE);
 
   for (i=0;i<3; i++)
-    for (j=0;j<3; j++)
-      {
+    for (j=0;j<3; j++)      {
        ttt->buttons[i][j] = gtk_toggle_button_new ();
-       gtk_table_attach_defaults (GTK_TABLE(table), ttt->buttons[i][j], 
+       gtk_table_attach_defaults (GTK_TABLE (ttt), ttt->buttons[i][j], 
                                   i, i+1, j, j+1);
-       gtk_signal_connect (GTK_OBJECT (ttt->buttons[i][j]), "toggled",
-                           GTK_SIGNAL_FUNC (tictactoe_toggle), ttt);
-       gtk_widget_set_usize (ttt->buttons[i][j], 20, 20);
+       g_signal_connect (G_OBJECT (ttt->buttons[i][j]), "toggled",
+                         G_CALLBACK (tictactoe_toggle), (gpointer) ttt);
+       gtk_widget_set_size_request (ttt->buttons[i][j], 20, 20);
        gtk_widget_show (ttt->buttons[i][j]);
       }
 }
@@ -105,7 +98,7 @@ tictactoe_init (Tictactoe *ttt)
 GtkWidget*
 tictactoe_new ()
 {
-  return GTK_WIDGET ( gtk_type_new (tictactoe_get_type ()));
+  return GTK_WIDGET (g_object_new (tictactoe_get_type (), NULL));
 }
 
 void          
@@ -113,13 +106,17 @@ tictactoe_clear (Tictactoe *ttt)
 {
   int i,j;
 
-  for (i=0;i<3;i++)
-    for (j=0;j<3;j++)
+  for (i = 0; i<3; i++)
+    for (j = 0; j<3; j++)
       {
-       gtk_signal_handler_block_by_data (GTK_OBJECT(ttt->buttons[i][j]), ttt);
+       g_signal_handlers_block_matched (G_OBJECT (ttt->buttons[i][j]), 
+                                         G_SIGNAL_MATCH_DATA,
+                                         0, 0, NULL, NULL, ttt);
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ttt->buttons[i][j]),
-                                    FALSE);
-       gtk_signal_handler_unblock_by_data (GTK_OBJECT(ttt->buttons[i][j]), ttt);
+                                     FALSE);
+       g_signal_handlers_unblock_matched (G_OBJECT (ttt->buttons[i][j]),
+                                           G_SIGNAL_MATCH_DATA,
+                                           0, 0, NULL, NULL, ttt);
       }
 }
 
@@ -137,26 +134,25 @@ tictactoe_toggle (GtkWidget *widget, Tictactoe *ttt)
 
   int success, found;
 
-  for (k=0; k<8; k++)
+  for (k = 0; k<8; k++)
     {
       success = TRUE;
       found = FALSE;
 
-      for (i=0;i<3;i++)
+      for (i = 0; i<3; i++)
        {
          success = success && 
-           GTK_TOGGLE_BUTTON(ttt->buttons[rwins[k][i]][cwins[k][i]])->active;
+           GTK_TOGGLE_BUTTON (ttt->buttons[rwins[k][i]][cwins[k][i]])->active;
          found = found ||
            ttt->buttons[rwins[k][i]][cwins[k][i]] == widget;
        }
       
       if (success && found)
        {
-         gtk_signal_emit (GTK_OBJECT (ttt), 
-                          tictactoe_signals[TICTACTOE_SIGNAL]);
+         g_signal_emit (G_OBJECT (ttt), 
+                        tictactoe_signals[TICTACTOE_SIGNAL], 0);
          break;
        }
     }
 }
 
-/* example-end */