Warnings: missing initializer for value_tables and function type cast (GObject)
[pspp] / src / ui / gui / psppire-checkbox-treeview.c
index 9cf50302193ada11b1c149909286500957d09b46..5c543f22bbb5f755942b96b5ffa615e725e83e3a 100644 (file)
@@ -15,7 +15,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 
-/* 
+/*
    This module provides a subclass of GtkTreeView, designed for dialogs
    which need lists of annotated checkbox items.
    The object contains the necessary model and renderers, which means that
 #define _(msgid) gettext (msgid)
 #define N_(msgid) msgid
 
-static void psppire_checkbox_treeview_init          (PsppireCheckboxTreeview      *cbtv);
-
-GType
-psppire_checkbox_treeview_get_type (void)
-{
-  static GType psppire_checkbox_treeview_type = 0;
-
-  if (!psppire_checkbox_treeview_type)
-    {
-      static const GTypeInfo psppire_checkbox_treeview_info =
-      {
-       sizeof (PsppireCheckboxTreeviewClass),
-       (GBaseInitFunc) NULL,
-        (GBaseFinalizeFunc) NULL,
-       (GClassInitFunc) NULL,
-       (GClassFinalizeFunc) NULL,
-       NULL,
-        sizeof (PsppireCheckboxTreeview),
-       0,
-       (GInstanceInitFunc) psppire_checkbox_treeview_init,
-      };
-
-      psppire_checkbox_treeview_type =
-       g_type_register_static (GTK_TYPE_TREE_VIEW, "PsppireCheckboxTreeview",
-                               &psppire_checkbox_treeview_info, 0);
-    }
-
-  return psppire_checkbox_treeview_type;
-}
-
-
+G_DEFINE_TYPE (PsppireCheckboxTreeview, psppire_checkbox_treeview, GTK_TYPE_TREE_VIEW)
 
 /* Callback for checkbox cells in the statistics tree view.
    Toggles the checkbox. */
@@ -118,8 +88,9 @@ static void
 psppire_checkbox_treeview_init (PsppireCheckboxTreeview *cbtv)
 {
   cbtv->list = GTK_TREE_MODEL (gtk_list_store_new (N_CHECKBOX_COLUMNS,
-                                                 G_TYPE_STRING, 
-                                                 G_TYPE_BOOLEAN));
+                                                  G_TYPE_STRING,
+                                                  G_TYPE_BOOLEAN,
+                                                  G_TYPE_STRING));
 
   gtk_tree_view_set_model (GTK_TREE_VIEW (cbtv), cbtv->list);
   g_object_unref (cbtv->list);
@@ -147,9 +118,15 @@ psppire_checkbox_treeview_populate (PsppireCheckboxTreeview *cbtv,
       gtk_list_store_append (GTK_LIST_STORE (cbtv->list), &iter);
       gtk_list_store_set (GTK_LIST_STORE (cbtv->list), &iter,
                           CHECKBOX_COLUMN_LABEL, gettext (items[i].label),
-                          CHECKBOX_COLUMN_SELECTED,
-                         (default_items & (1u << i)) != 0,
+                          CHECKBOX_COLUMN_SELECTED,  (default_items & (1u << i)) != 0,
+                         CHECKBOX_COLUMN_TOOLTIP, gettext (items[i].tooltip),
                           -1);
     }
 
+  gtk_tree_view_set_tooltip_column (GTK_TREE_VIEW (cbtv), CHECKBOX_COLUMN_TOOLTIP);
+}
+
+static void
+psppire_checkbox_treeview_class_init (PsppireCheckboxTreeviewClass *class)
+{
 }