evolution r35842 - trunk/mail
- From: lucilanga svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution r35842 - trunk/mail
- Date: Sun, 27 Jul 2008 19:15:43 +0000 (UTC)
Author: lucilanga
Date: Sun Jul 27 19:15:42 2008
New Revision: 35842
URL: http://svn.gnome.org/viewvc/evolution?rev=35842&view=rev
Log:
2008-07-27 Lucian Langa <lucilanga gnome org>
* mail/em-event.h (struct _EMEventTargetCustomIcon):
* mail/em-event.c (em_event_target_new_custom_icon):
* mail/em-folder-tree.c (render_pixbuf):
** See bug #544969: Added the hook for folder custom icon.
Modified:
trunk/mail/ChangeLog
trunk/mail/em-event.c
trunk/mail/em-event.h
trunk/mail/em-folder-tree.c
Modified: trunk/mail/em-event.c
==============================================================================
--- trunk/mail/em-event.c (original)
+++ trunk/mail/em-event.c Sun Jul 27 19:15:42 2008
@@ -189,6 +189,18 @@
return t;
}
+EMEventTargetCustomIcon *
+em_event_target_new_custom_icon(EMEvent *eme, GtkCellRenderer *renderer, const char *folder_name, guint32 flags)
+{
+ EMEventTargetCustomIcon *t = e_event_target_new(&eme->popup, EM_EVENT_TARGET_CUSTOM_ICON, sizeof(*t));
+
+ t->renderer = renderer;
+ t->folder_name = folder_name;
+ t->target.mask = ~flags;
+
+ return t;
+}
+
/* ********************************************************************** */
static void *emeh_parent_class;
@@ -215,11 +227,16 @@
{ NULL }
};
+static const EEventHookTargetMask emeh_custom_icon_masks[] = {
+ { "customicon", EM_EVENT_CUSTOM_ICON },
+ { NULL }
+};
static const EEventHookTargetMap emeh_targets[] = {
{ "folder", EM_EVENT_TARGET_FOLDER, emeh_folder_masks },
{ "message", EM_EVENT_TARGET_MESSAGE, emeh_message_masks },
{ "composer", EM_EVENT_TARGET_COMPOSER, emeh_composer_masks},
{ "sendreceive", EM_EVENT_TARGET_SEND_RECEIVE, emeh_send_receive_masks},
+ { "customicon", EM_EVENT_TARGET_CUSTOM_ICON, emeh_custom_icon_masks},
{ NULL }
};
Modified: trunk/mail/em-event.h
==============================================================================
--- trunk/mail/em-event.h (original)
+++ trunk/mail/em-event.h Sun Jul 27 19:15:42 2008
@@ -46,6 +46,7 @@
EM_EVENT_TARGET_MESSAGE,
EM_EVENT_TARGET_COMPOSER,
EM_EVENT_TARGET_SEND_RECEIVE,
+ EM_EVENT_TARGET_CUSTOM_ICON,
};
/* Flags that describe TARGET_FOLDER */
@@ -68,6 +69,11 @@
EM_EVENT_SEND_RECEIVE = 1<< 0,
};
+/* Flags that describe TARGET_CUSTOM_ICON*/
+enum {
+ EM_EVENT_CUSTOM_ICON = 1<< 0,
+};
+
typedef struct _EMEventTargetFolder EMEventTargetFolder;
struct _EMEventTargetFolder {
@@ -105,6 +111,14 @@
int row;
};
+typedef struct _EMEventTargetCustomIcon EMEventTargetCustomIcon;
+
+struct _EMEventTargetCustomIcon {
+ EEventTarget target;
+
+ GtkCellRenderer *renderer;
+ char *folder_name;
+};
typedef struct _EEventItem EMEventItem;
@@ -127,6 +141,7 @@
EMEventTargetComposer *em_event_target_new_composer(EMEvent *emp, const struct _EMsgComposer *composer, guint32 flags);
EMEventTargetMessage *em_event_target_new_message(EMEvent *emp, struct _CamelFolder *folder, struct _CamelMimeMessage *message, const char *uid, guint32 flags);
EMEventTargetSendReceive * em_event_target_new_send_receive(EMEvent *eme, struct _GtkWidget *table, gpointer data, int row, guint32 flags);
+EMEventTargetCustomIcon * em_event_target_new_custom_icon(EMEvent *eme, GtkCellRenderer *renderer, const char *uri, guint32 flags);
/* ********************************************************************** */
Modified: trunk/mail/em-folder-tree.c
==============================================================================
--- trunk/mail/em-folder-tree.c (original)
+++ trunk/mail/em-folder-tree.c Sun Jul 27 19:15:42 2008
@@ -72,6 +72,7 @@
#include "em-folder-selector.h"
#include "em-folder-selection.h"
#include "em-folder-properties.h"
+#include "em-event.h"
#define d(x)
@@ -285,6 +286,8 @@
GdkPixbuf *pixbuf = NULL;
gboolean is_store;
guint32 flags;
+ EMEventTargetCustomIcon *target;
+ const char *folder_name;
if (!initialised) {
folder_icons[FOLDER_ICON_NORMAL] = e_icon_factory_get_icon ("folder", E_ICON_SIZE_MENU);
@@ -326,8 +329,14 @@
pixbuf = folder_icons[FOLDER_ICON_SHARED_BY_ME];
else if (flags & CAMEL_FOLDER_VIRTUAL)
pixbuf = folder_icons[FOLDER_ICON_VIRTUAL];
- else
+ else {
pixbuf = folder_icons[FOLDER_ICON_NORMAL];
+ g_object_set (renderer, "pixbuf", pixbuf, "visible", !is_store, NULL);
+ gtk_tree_model_get (model, iter, COL_STRING_FULL_NAME, &folder_name, -1);
+ target = em_event_target_new_custom_icon (em_event_peek(), renderer, folder_name, EM_EVENT_CUSTOM_ICON);
+ e_event_emit ((EEvent *)em_event_peek (), "folder.customicon", (EEventTarget *) target);
+ return;
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]