+
+void
+modest_attachments_view_set_style (ModestAttachmentsView *self,
+ ModestAttachmentsViewStyle style)
+{
+ ModestAttachmentsViewPrivate *priv;
+
+ g_return_if_fail (MODEST_IS_ATTACHMENTS_VIEW (self));
+ priv = MODEST_ATTACHMENTS_VIEW_GET_PRIVATE (self);
+
+ if (priv->style != style) {
+ priv->style = style;
+ gtk_widget_queue_draw (GTK_WIDGET (self));
+ if (priv->style == MODEST_ATTACHMENTS_VIEW_STYLE_SELECTABLE) {
+ GTK_WIDGET_SET_FLAGS (self, GTK_CAN_FOCUS);
+ } else {
+ GTK_WIDGET_UNSET_FLAGS (self, GTK_CAN_FOCUS);
+ }
+
+ }
+}
+
+guint
+modest_attachments_view_get_num_attachments (ModestAttachmentsView *atts_view)
+{
+ ModestAttachmentsViewPrivate *priv;
+ GList *children;
+ gint result;
+
+ g_return_val_if_fail (MODEST_IS_ATTACHMENTS_VIEW (atts_view), 0);
+ priv = MODEST_ATTACHMENTS_VIEW_GET_PRIVATE (atts_view);
+
+ children = gtk_container_get_children (GTK_CONTAINER (priv->box));
+ result = g_list_length (children);
+ g_list_free (children);
+
+ return result;
+}
+
+static void
+on_notify_style (GObject *obj, GParamSpec *spec, gpointer userdata)
+{
+ if (strcmp ("style", spec->name) == 0) {
+ update_style (MODEST_ATTACHMENTS_VIEW (obj));
+ gtk_widget_queue_draw (GTK_WIDGET (obj));
+ }
+}
+
+/* This method updates the color (and other style settings) of widgets using secondary text color,
+ * tracking the gtk style */
+static void
+update_style (ModestAttachmentsView *self)
+{
+#ifdef MODEST_COMPACT_HEADER_BG
+ GdkColor bg_color;
+ GtkStyle *style;
+ GdkColor *current_bg;
+
+ g_return_if_fail (MODEST_IS_ATTACHMENTS_VIEW (self));
+
+ gdk_color_parse (MODEST_COMPACT_HEADER_BG, &bg_color);
+ style = gtk_widget_get_style (GTK_WIDGET (self));
+ current_bg = &(style->bg[GTK_STATE_NORMAL]);
+ if (current_bg->red != bg_color.red || current_bg->blue != bg_color.blue || current_bg->green != bg_color.green)
+ gtk_widget_modify_bg (GTK_WIDGET (self), GTK_STATE_NORMAL, &bg_color);
+#endif
+}
+