Logistical Regression Dialog: Automatically mark appropriate variables as categorical
[pspp] / src / ui / gui / psppire-button-editable.c
index cefc7a594d92e2fe0f52c41324fab2281b192fca..05cc0057dd736459eb73d04c4e37b4d6be279237 100644 (file)
@@ -40,7 +40,8 @@ G_DEFINE_TYPE_EXTENDED (PsppireButtonEditable,
 enum
   {
     PROP_0,
-    PROP_PATH
+    PROP_PATH,
+    PROP_EDITING_CANCELED
   };
 
 static void
@@ -58,6 +59,9 @@ psppire_button_editable_set_property (GObject      *object,
       obj->path = g_value_dup_string (value);
       break;
 
+    case PROP_EDITING_CANCELED:
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -78,6 +82,10 @@ psppire_button_editable_get_property (GObject      *object,
       g_value_set_string (value, obj->path);
       break;
 
+    case PROP_EDITING_CANCELED:
+      g_value_set_boolean (value, FALSE);
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -85,26 +93,22 @@ psppire_button_editable_get_property (GObject      *object,
 }
 
 static void
-psppire_button_editable_dispose (GObject *gobject)
+psppire_button_editable_finalize (GObject *gobject)
 {
   PsppireButtonEditable *obj = PSPPIRE_BUTTON_EDITABLE (gobject);
 
   g_free (obj->path);
-  obj->path = NULL;
 
-  G_OBJECT_CLASS (psppire_button_editable_parent_class)->dispose (gobject);
+  G_OBJECT_CLASS (psppire_button_editable_parent_class)->finalize (gobject);
 }
 
 static gboolean
 psppire_button_editable_button_release (GtkWidget      *widget,
                                         GdkEventButton *event)
 {
-  GtkButton *button;
-
   if (event->button == 1)
     {
-      button = GTK_BUTTON (widget);
-      gtk_button_released (button);
+      g_signal_emit_by_name (widget, "released", event, NULL);
     }
 
   return TRUE;
@@ -121,17 +125,21 @@ psppire_button_editable_class_init (PsppireButtonEditableClass *class)
 
   gobject_class->set_property = psppire_button_editable_set_property;
   gobject_class->get_property = psppire_button_editable_get_property;
-  gobject_class->dispose = psppire_button_editable_dispose;
+  gobject_class->finalize = psppire_button_editable_finalize;
 
   widget_class->button_release_event = psppire_button_editable_button_release;
 
-  g_object_class_install_property (G_OBJECT_CLASS (class),
+  g_object_class_install_property (gobject_class,
                                    PROP_PATH,
                                    g_param_spec_string ("path",
                                                        _("TreeView path"),
                                                        _("The path to the row in the GtkTreeView, as a string"),
                                                        "",
                                                        G_PARAM_READWRITE));
+
+  g_object_class_override_property (gobject_class,
+                                   PROP_EDITING_CANCELED,
+                                    "editing-canceled");
 }
 
 static void
@@ -145,6 +153,7 @@ psppire_button_editable_new (void)
 {
   return PSPPIRE_BUTTON_EDITABLE (g_object_new (PSPPIRE_TYPE_BUTTON_EDITABLE, NULL));
 }
+
 \f
 /* GtkCellEditable interface. */
 
@@ -161,15 +170,11 @@ gtk_cell_editable_interface_init (GtkCellEditableIface *iface)
 static void
 button_editable_editing_done (GtkCellEditable *cell_editable)
 {
-
-
 }
 
 static void
 button_editable_remove_widget (GtkCellEditable *cell_editable)
 {
-
-
 }
 
 static void