aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog18
-rw-r--r--mail/evolution-mail.schemas28
-rw-r--r--mail/folder-browser-ui.c7
-rw-r--r--mail/folder-browser.c18
-rw-r--r--mail/folder-browser.h6
-rw-r--r--mail/mail-config.c6
6 files changed, 83 insertions, 0 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 4965ba5544..e6b5e1478b 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,21 @@
+2003-07-10 Yuedong Du <yuedong.du@sun.com>
+
+ * evolution-mail.schemas: add a gconf key corresponding to newly
+ introduced caret mode of gtkhtml widget.
+
+ * folder-browser-ui.c: new verb handling, corresponding the new menu
+ entry for the caret mode flag.
+
+ * folder-browser.h: declaration of new verb handler to the menu entry
+ that turn caret mode on/off. The function just set the new introduced
+ gconf key.
+
+ * folder-browser.c: ditto
+
+ * mail-config.c: lstione to the new gconf key, and when caret mode
+ flag is set/unset,change the style of gtkhtml widget. see bug
+ #44607.
+
2003-07-09 Jeffrey Stedfast <fejj@ximian.com>
* mail-crypto.h: Removed camel-pgp-mime.h, it no longer exists.
diff --git a/mail/evolution-mail.schemas b/mail/evolution-mail.schemas
index 9dcec79ee9..35ec615733 100644
--- a/mail/evolution-mail.schemas
+++ b/mail/evolution-mail.schemas
@@ -174,6 +174,34 @@
</schema>
<schema>
+ <key>/schemas/apps/evolution/mail/display/caret_mode</key>
+ <applyto>/apps/evolution/mail/display/caret_mode</applyto>
+ <owner>evolution-mail</owner>
+ <type>boolean</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Enable/disable caret mode</short>
+ <long>
+ Enable caret mode, so that you can see a cursor when reading mail.
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/mail/display/caret_mode</key>
+ <applyto>/apps/evolution/mail/display/caret_mode</applyto>
+ <owner>evolution-mail</owner>
+ <type>boolean</type>
+ <default>false</default>
+ <locale name="C">
+ <short>Enable/disable caret mode</short>
+ <long>
+ Enable caret mode, so that you can see a cursor when reading mail.
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/evolution/mail/display/load_http_images</key>
<applyto>/apps/evolution/mail/display/load_http_images</applyto>
<owner>evolution-mail</owner>
diff --git a/mail/folder-browser-ui.c b/mail/folder-browser-ui.c
index 0f47ca66a2..4028f14e41 100644
--- a/mail/folder-browser-ui.c
+++ b/mail/folder-browser-ui.c
@@ -104,6 +104,7 @@ static BonoboUIVerb message_verbs [] = {
BONOBO_UI_UNSAFE_VERB ("ToolsVFolderSubject", vfolder_subject),
BONOBO_UI_UNSAFE_VERB ("ViewLoadImages", load_images),
/* ViewHeaders stuff is a radio */
+ /* CaretMode is a toggle */
BONOBO_UI_VERB_END
};
@@ -238,6 +239,7 @@ struct _UINode default_ui_nodes[] = {
{ "ViewFullHeaders", IS_0MESSAGE },
{ "ViewNormal", IS_0MESSAGE },
{ "ViewSource", IS_0MESSAGE },
+ { "CaretMode", IS_0MESSAGE },
{ "AddSenderToAddressbook", IS_INCOMING_FOLDER | SELECTION_SINGLE | ANY_THREADED | HAS_FLAGS },
@@ -517,6 +519,7 @@ folder_browser_ui_add_message (FolderBrowser *fb)
FolderBrowserSelectionState prev_state;
GConfClient *gconf;
int style;
+ gboolean caret_mode;
gconf = mail_config_get_gconf_client ();
@@ -527,6 +530,10 @@ folder_browser_ui_add_message (FolderBrowser *fb)
ui_add (fb, "message", message_verbs, message_pixcache);
+ caret_mode = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/caret_mode", NULL);
+ bonobo_ui_component_set_prop(uic, "/commands/CaretMode", "state", caret_mode?"1":"0", NULL);
+ bonobo_ui_component_add_listener (uic, "CaretMode", folder_browser_toggle_caret_mode, fb);
+
/* Display Style */
style = gconf_client_get_int (gconf, "/apps/evolution/mail/display/message_style", NULL);
style = style >= 0 && style < MAIL_CONFIG_DISPLAY_MAX ? style : 0;
diff --git a/mail/folder-browser.c b/mail/folder-browser.c
index 6ff8c386fd..b48f3f4b61 100644
--- a/mail/folder-browser.c
+++ b/mail/folder-browser.c
@@ -1379,6 +1379,24 @@ folder_browser_toggle_hide_deleted (BonoboUIComponent *component,
}
void
+folder_browser_toggle_caret_mode(BonoboUIComponent *component,
+ const char * path,
+ Bonobo_UIComponent_EventType type,
+ const char * state,
+ gpointer user_data)
+{
+ FolderBrowser *fb = user_data;
+ GConfClient *gconf;
+
+ if (type != Bonobo_UIComponent_STATE_CHANGED)
+ return;
+
+ gconf = mail_config_get_gconf_client ();
+ gconf_client_set_bool (gconf, "/apps/evolution/mail/display/caret_mode",
+ atoi(state), NULL);
+}
+
+void
folder_browser_set_message_display_style (BonoboUIComponent *component,
const char *path,
Bonobo_UIComponent_EventType type,
diff --git a/mail/folder-browser.h b/mail/folder-browser.h
index d4665c91b8..12d21cd526 100644
--- a/mail/folder-browser.h
+++ b/mail/folder-browser.h
@@ -169,6 +169,12 @@ void folder_browser_toggle_hide_deleted (BonoboUIComponent *component,
const char *state,
gpointer user_data);
+void folder_browser_toggle_caret_mode (BonoboUIComponent *component,
+ const char *path,
+ Bonobo_UIComponent_EventType type,
+ const char *state,
+ gpointer user_data);
+
void folder_browser_set_message_display_style (BonoboUIComponent *component,
const char *path,
Bonobo_UIComponent_EventType type,
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 2881d7603e..9fce11013d 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -85,6 +85,7 @@ typedef struct {
guint font_notify_id;
guint spell_notify_id;
+ guint caret_mode_notify_id;
GPtrArray *mime_types;
guint mime_types_notify_id;
@@ -441,6 +442,7 @@ config_write_style (void)
char *fix_font;
char *var_font;
gint red = 0xffff, green = 0, blue = 0;
+ gboolean caret_mode;
/*
* This is the wrong way to get the path but it needs to
@@ -463,12 +465,14 @@ config_write_style (void)
custom = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/fonts/use_custom", NULL);
var_font = gconf_client_get_string (config->gconf, "/apps/evolution/mail/display/fonts/variable", NULL);
fix_font = gconf_client_get_string (config->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL);
+ caret_mode = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/caret_mode", NULL);
CONFIG_GET_SPELL_VALUE (int, "/spell_error_color_red", red, (void)0, (int));
CONFIG_GET_SPELL_VALUE (int, "/spell_error_color_green", green, (void)0, (int));
CONFIG_GET_SPELL_VALUE (int, "/spell_error_color_blue", blue, (void)0, (int));
fprintf (rc, "style \"evolution-mail-custom-fonts\" {\n");
+ fprintf (rc, " GtkHTML::caret_mode = %d\n", caret_mode ? 1 :0);
fprintf (rc, " GtkHTML::spell_error_color = \"#%02x%02x%02x\"\n",
0xff & (red >> 8), 0xff & (green >> 8), 0xff & (blue >> 8));
@@ -542,6 +546,8 @@ mail_config_init (void)
gconf_style_changed, NULL, NULL, NULL);
config->spell_notify_id = gconf_client_notify_add (config->gconf, "/GNOME/Spell",
gconf_style_changed, NULL, NULL, NULL);
+ config->caret_mode_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/caret_mode",
+ gconf_style_changed, NULL, NULL, NULL);
gconf_client_add_dir (config->gconf, "/apps/evolution/mail/labels",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);