+
+static gboolean
+indicate_filtered_case (GtkWidget *widget, cairo_t *cr, PsppireDataStore *store)
+{
+ guint row = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "row"));
+
+ if (!psppire_data_store_filtered (store, row))
+ return FALSE;
+
+ /* Draw a diagonal line through the widget */
+ guint width = gtk_widget_get_allocated_width (widget);
+ guint height = gtk_widget_get_allocated_height (widget);
+
+ GtkStyleContext *sc = gtk_widget_get_style_context (widget);
+ gtk_render_line (sc, cr, 0, 0, width, height);
+
+ return FALSE;
+}
+
+static void
+button_post_create (GtkWidget *button, uint i, gpointer user_data)
+{
+ PsppireDataStore *data_store = PSPPIRE_DATA_STORE (user_data);
+
+ g_object_set_data (G_OBJECT (button), "row", GUINT_TO_POINTER (i));
+ g_signal_connect_after (button, "draw", G_CALLBACK (indicate_filtered_case), data_store);
+}
+