-/* Copyright (c) 2007, Nokia Corporation
+/* Copyright (c) 2007, 2009, Nokia Corporation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
GtkWidget *box;
GList *selected;
GtkWidget *rubber_start;
+ ModestAttachmentsViewStyle style;
};
#define MODEST_ATTACHMENTS_VIEW_GET_PRIVATE(o) \
priv->box = gtk_vbox_new (FALSE, 0);
priv->rubber_start = NULL;
priv->selected = NULL;
+ priv->style = MODEST_ATTACHMENTS_VIEW_STYLE_SELECTABLE;
gtk_container_add (GTK_CONTAINER (instance), priv->box);
gtk_event_box_set_above_child (GTK_EVENT_BOX (instance), TRUE);
ModestAttachmentsView *atts_view)
{
ModestAttachmentsViewPrivate *priv = MODEST_ATTACHMENTS_VIEW_GET_PRIVATE (atts_view);
- if (!GTK_WIDGET_HAS_FOCUS (widget))
+ if (priv->style == MODEST_ATTACHMENTS_VIEW_STYLE_SELECTABLE &&
+ !GTK_WIDGET_HAS_FOCUS (widget))
gtk_widget_grab_focus (widget);
if (event->button == 1 && event->type == GDK_BUTTON_PRESS) {
(gint) event->x_root, (gint) event->y_root);
if (att_view != NULL) {
- if (GTK_WIDGET_STATE (att_view) == GTK_STATE_SELECTED && (g_list_length (priv->selected) < 2)) {
+ if ((priv->style == MODEST_ATTACHMENTS_VIEW_STYLE_LINKS) ||
+ (GTK_WIDGET_STATE (att_view) == GTK_STATE_SELECTED && (g_list_length (priv->selected) < 2))) {
TnyMimePart *mime_part = tny_mime_part_view_get_part (TNY_MIME_PART_VIEW (att_view));
if (TNY_IS_MIME_PART (mime_part)) {
g_signal_emit (G_OBJECT (widget), signals[ACTIVATE_SIGNAL], 0, mime_part);
unselect_all (atts_view);
+ if (priv->style == MODEST_ATTACHMENTS_VIEW_STYLE_LINKS)
+ return;
+
children = gtk_container_get_children (GTK_CONTAINER (priv->box));
g_list_free (priv->selected);
priv->selected = NULL;
return FALSE;
}
+
+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_LINKS) {
+ GTK_WIDGET_UNSET_FLAGS (self, GTK_CAN_FOCUS);
+ } else {
+ GTK_WIDGET_SET_FLAGS (self, GTK_CAN_FOCUS);
+ }
+
+ }
+}