categoricals: Improve comments.
[pspp] / src / ui / gui / psppire-dict.c
index 7923079d173c15393b4e1ced26cd61e050c3b8d9..63ce9d33080c9f1bd255b34315f438edbd2929ac 100644 (file)
@@ -55,6 +55,9 @@ enum  {
   WEIGHT_CHANGED,
   FILTER_CHANGED,
   SPLIT_CHANGED,
+
+  RESIZE_ITEM,
+
   n_SIGNALS
 };
 
@@ -113,7 +116,8 @@ gi (GListModel *list, guint id)
        g_object_unref (G_OBJECT (context));
       
        gtk_widget_set_size_request (button,
-                                    var_get_display_width (v) * rect.width / PANGO_SCALE,
+                                    (0.25 + var_get_display_width (v))
+                                    * rect.width / PANGO_SCALE,
                                     -1);
       }
     }
@@ -196,6 +200,18 @@ psppire_dict_class_init (PsppireDictClass *class)
 
   object_class->dispose = psppire_dict_dispose;
 
+  signals [RESIZE_ITEM] =
+    g_signal_new ("resize-item",
+                 G_TYPE_FROM_CLASS (class),
+                 G_SIGNAL_RUN_LAST,
+                 0,
+                 NULL, NULL,
+                 psppire_marshal_BOOLEAN__INT_INT,
+                 G_TYPE_BOOLEAN,
+                 2,
+                 G_TYPE_INT,
+                 G_TYPE_INT);
+
   signals [VARIABLE_CHANGED] =
     g_signal_new ("variable-changed",
                  G_TYPE_FROM_CLASS (class),
@@ -272,6 +288,7 @@ psppire_dict_dispose (GObject *object)
   PsppireDict *d = PSPPIRE_DICT (object);
 
   dict_set_callbacks (d->dict, NULL, NULL);
+  dict_unref (d->dict);
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
@@ -351,7 +368,7 @@ PsppireDict*
 psppire_dict_new_from_dict (struct dictionary *d)
 {
   PsppireDict *new_dict = g_object_new (PSPPIRE_TYPE_DICT, NULL);
-  new_dict->dict = d;
+  new_dict->dict = dict_ref (d);
 
   dict_set_callbacks (new_dict->dict, &gui_callbacks, new_dict);
 
@@ -364,10 +381,13 @@ psppire_dict_replace_dictionary (PsppireDict *dict, struct dictionary *d)
 {
   struct variable *var =  dict_get_weight (d);
 
+  struct dictionary *old_dict = dict->dict;
+
   guint old_n = dict_get_var_cnt (dict->dict);
   guint new_n = dict_get_var_cnt (d);
 
-  dict->dict = d;
+  dict->dict = dict_ref (d);
+  dict_unref (old_dict);
 
   weight_changed_callback (d, var ? var_get_dict_index (var) : -1, dict);