#include "imap.h"
#include "socket.h"
#include "printing.h"
+#ifdef G_OS_WIN32
+#include "w32lib.h"
+#endif
#define AC_LABEL_WIDTH 240
static void show_all_header_cb (GtkAction *action,
gpointer data);
+static void toggle_fullscreen_cb (GtkAction *action,
+ gpointer data);
static void hide_quotes_cb(GtkAction *action,
gpointer data);
static void prefs_filtering_open_cb (GtkAction *action,
gpointer data);
-#if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
+#ifdef USE_GNUTLS
static void ssl_manager_open_cb (GtkAction *action,
gpointer data);
#endif
static void legend_open_cb (GtkAction *action,
gpointer data);
+#ifdef G_OS_WIN32
+static void set_default_client_cb (GtkAction *action,
+ gpointer data);
+#endif
+
static void scan_tree_func (Folder *folder,
FolderItem *item,
gpointer data);
/* {"Tools/---", NULL, "---", NULL, NULL, NULL }, */
{"Tools/Execute", NULL, N_("E_xecute"), "X", NULL, G_CALLBACK(execute_summary_cb) },
-#if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
+#ifdef USE_GNUTLS
/* {"Tools/---", NULL, "---", NULL, NULL, NULL }, */
{"Tools/SSLCertificates", NULL, N_("SSL cer_tificates"), NULL, NULL, G_CALLBACK(ssl_manager_open_cb) },
#endif
/* {"Tools/---", NULL, "---", NULL, NULL, NULL }, */
+#ifndef G_OS_WIN32
{"Tools/FilteringLog", NULL, N_("Filtering Lo_g"), NULL, NULL, G_CALLBACK(filtering_debug_window_show_cb) },
+#endif
{"Tools/NetworkLog", NULL, N_("Network _Log"), "<shift><control>L", NULL, G_CALLBACK(log_window_show_cb) },
/* {"Tools/---", NULL, "---", NULL, NULL, NULL }, */
{"Tools/ForgetSessionPasswords", NULL, N_("_Forget all session passwords"), NULL, NULL, G_CALLBACK(forget_session_passwords_cb) },
{"Help/Manual", NULL, N_("_Manual"), NULL, NULL, G_CALLBACK(manual_open_cb) },
{"Help/FAQ", NULL, N_("_Online User-contributed FAQ"), NULL, NULL, G_CALLBACK(manual_faq_open_cb) },
{"Help/IconLegend", NULL, N_("Icon _Legend"), NULL, NULL, G_CALLBACK(legend_open_cb) },
+#ifdef G_OS_WIN32
+ {"Help/SetDefault", NULL, N_("Set as default client"), NULL, NULL, G_CALLBACK(set_default_client_cb) },
+#endif
{"Help/---", NULL, "---" },
{"Help/About", NULL, N_("_About"), NULL, NULL, G_CALLBACK(about_cb) },
};
{"View/ShowHide/ColumnHeaders", NULL, N_("Column headers"), NULL, NULL, G_CALLBACK(toggle_col_headers_cb) }, /* toggle */
{"View/ThreadView", NULL, N_("Th_read view"), "<control>T", NULL, G_CALLBACK(thread_cb) }, /* toggle */
{"View/HideReadMessages", NULL, N_("_Hide read messages"), NULL, NULL, G_CALLBACK(hide_read_messages) }, /* toggle */
+#ifndef MAEMO
+ {"View/FullScreen", NULL, N_("_Fullscreen"), "F11", NULL, G_CALLBACK(toggle_fullscreen_cb) }, /* toggle */
+#endif
{"View/AllHeaders", NULL, N_("Show all _headers"), "<control>H", NULL, G_CALLBACK(show_all_header_cb) }, /* toggle */
{"View/Quotes/FoldAll", NULL, N_("_Fold all"), "<control><shift>Q", NULL, G_CALLBACK(hide_quotes_cb) }, /* 1 toggle */
{"View/Quotes/Fold2", NULL, N_("Fold from level _2"), NULL, NULL, G_CALLBACK(hide_quotes_cb) }, /* 2 toggle */
static GtkRadioActionEntry mainwin_radio_enc_entries[] =
{
- ENC_ACTION(CS_AUTO, C_AUTO, "_Automatic"), /* RADIO set_charset_cb */
- ENC_ACTION(CS_US_ASCII, C_US_ASCII, "7bit ASCII (US-ASC_II)"), /* RADIO set_charset_cb */
- ENC_ACTION(CS_UTF_8, C_UTF_8, "Unicode (_UTF-8)"), /* RADIO set_charset_cb */
+ ENC_ACTION(CS_AUTO, C_AUTO, N_("_Automatic")), /* RADIO set_charset_cb */
+ ENC_ACTION(CS_US_ASCII, C_US_ASCII, N_("7bit ASCII (US-ASC_II)")), /* RADIO set_charset_cb */
+ ENC_ACTION(CS_UTF_8, C_UTF_8, N_("Unicode (_UTF-8)")), /* RADIO set_charset_cb */
ENC_ACTION("Western/"CS_ISO_8859_1, C_ISO_8859_1, "ISO-8859-_1"), /* RADIO set_charset_cb */
ENC_ACTION("Western/"CS_ISO_8859_15, C_ISO_8859_15, "ISO-8859-15"), /* RADIO set_charset_cb */
ENC_ACTION("Western/"CS_WINDOWS_1252, C_WINDOWS_1252, "Windows-1252"), /* RADIO set_charset_cb */
- ENC_ACTION(CS_ISO_8859_2, C_ISO_8859_2, "Central European (ISO-8859-_2)"), /* RADIO set_charset_cb */
+ ENC_ACTION(CS_ISO_8859_2, C_ISO_8859_2, N_("Central European (ISO-8859-_2)")), /* RADIO set_charset_cb */
ENC_ACTION("Baltic/"CS_ISO_8859_13, C_ISO_8859_13, "ISO-8859-13"), /* RADIO set_charset_cb */
ENC_ACTION("Baltic/"CS_ISO_8859_4, C_ISO_8859_14, "ISO-8859-_4"), /* RADIO set_charset_cb */
- ENC_ACTION(CS_ISO_8859_7, C_ISO_8859_7, "Greek (ISO-8859-_7)"), /* RADIO set_charset_cb */
+ ENC_ACTION(CS_ISO_8859_7, C_ISO_8859_7, N_("Greek (ISO-8859-_7)")), /* RADIO set_charset_cb */
ENC_ACTION("Hebrew/"CS_ISO_8859_8, C_ISO_8859_8, "ISO-8859-_8"), /* RADIO set_charset_cb */
ENC_ACTION("Hebrew/"CS_WINDOWS_1255, C_WINDOWS_1255, "Windows-1255"), /* RADIO set_charset_cb */
ENC_ACTION("Arabic/"CS_ISO_8859_6, C_ISO_8859_6, "ISO-8859-_6"), /* RADIO set_charset_cb */
ENC_ACTION("Arabic/"CS_WINDOWS_1256, C_WINDOWS_1256, "Windows-1256"), /* RADIO set_charset_cb */
- ENC_ACTION(CS_ISO_8859_9, C_ISO_8859_9, "Turkish (ISO-8859-_9)"), /* RADIO set_charset_cb */
+ ENC_ACTION(CS_ISO_8859_9, C_ISO_8859_9, N_("Turkish (ISO-8859-_9)")), /* RADIO set_charset_cb */
ENC_ACTION("Cyrillic/"CS_ISO_8859_5, C_ISO_8859_5, "ISO-8859-_5"), /* RADIO set_charset_cb */
ENC_ACTION("Cyrillic/"CS_KOI8_R, C_KOI8_R, "KOI8-_R"), /* RADIO set_charset_cb */
ENC_ACTION("Cyrillic/"CS_KOI8_U, C_KOI8_U, "KOI8-_U"), /* RADIO set_charset_cb */
static GtkRadioActionEntry mainwin_radio_dec_entries[] =
{
- DEC_ACTION("AutoDetect", 0, "_Auto detect"), /* set_decode_cb */
+ DEC_ACTION("AutoDetect", 0, N_("_Auto detect")), /* set_decode_cb */
/* --- */
DEC_ACTION("8bit", ENC_8BIT, "_8bit"),
DEC_ACTION("QP", ENC_QUOTED_PRINTABLE, "_Quoted printable"),
summary_set_tag(mainwin->summaryview, id, NULL);
}
+void mainwin_accel_changed_cb (GtkAccelGroup *accelgroup, guint keyval, GdkModifierType modifier,
+ GClosure *closure, GtkMenuItem *item)
+{
+ GList *closures = gtk_widget_list_accel_closures(GTK_WIDGET(item));
+ GList *cur;
+ for (cur = closures; cur; cur = cur->next) {
+ if (closure == cur->data) {
+ GtkLabel *label = g_object_get_data(G_OBJECT(item), "accel_label");
+ gchar *new_accel;
+
+ if (keyval == GDK_BackSpace) {
+ const gchar *accel_path;
+#if GTK_CHECK_VERSION(2,14,0)
+ accel_path = gtk_menu_item_get_accel_path(item);
+#else
+ accel_path = GTK_MENU_ITEM(item)->accel_path;
+#endif
+ keyval = 0; modifier = 0;
+ gtk_accel_map_change_entry (accel_path, keyval, modifier, TRUE);
+ }
+ new_accel = gtk_accelerator_get_label(keyval, modifier);
+ gtk_label_set_text(label, new_accel);
+ g_free(new_accel);
+ }
+ }
+}
+
static void mainwindow_colorlabel_menu_create(MainWindow *mainwin, gboolean refresh)
{
GtkWidget *label_menuitem;
g_object_set_data(G_OBJECT(item), "mainwin",
mainwin);
gtk_widget_show(item);
- accel_path = g_strdup_printf("<ClawsColorLabels>/%d", i);
+ accel_path = g_strdup_printf("<ClawsColorLabels>/%d", i+1);
gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path);
if (i < 9)
gtk_accel_map_add_entry(accel_path, GDK_1+i, GDK_CONTROL_MASK);
g_free(accel_path);
+ g_signal_connect (gtk_ui_manager_get_accel_group(mainwin->ui_manager),
+ "accel-changed", G_CALLBACK (mainwin_accel_changed_cb), item);
+
+
}
gtk_widget_show(menu);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(label_menuitem), menu);
}
}
break;
+
#ifdef MAEMO
case GDK_F6:
if (maemo_mainwindow_is_fullscreen(widget)) {
#ifndef MAEMO
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/", "Menu", NULL, GTK_UI_MANAGER_MENUBAR)
#else
- MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/", "Menu", NULL, GTK_UI_MANAGER_MENU)
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/", "Menu", NULL, GTK_UI_MANAGER_POPUP)
#endif
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu", "File", "File", GTK_UI_MANAGER_MENU)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu", "Edit", "Edit", GTK_UI_MANAGER_MENU)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/SetColumns", "Messagelist", "View/SetColumns/Messagelist", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Separator1", "View/---", GTK_UI_MANAGER_SEPARATOR)
+#ifndef MAEMO
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "FullScreen", "View/FullScreen", GTK_UI_MANAGER_MENUITEM)
+#endif
#ifndef GENERIC_UMPC
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "Layout", "View/Layout", GTK_UI_MANAGER_MENU)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Layout", "Standard", "View/Layout/Standard", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "Separator5", "Tools/---", GTK_UI_MANAGER_SEPARATOR)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "Execute", "Tools/Execute", GTK_UI_MANAGER_MENUITEM)
-#if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
+#ifdef USE_GNUTLS
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "Separator6", "Tools/---", GTK_UI_MANAGER_SEPARATOR)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "SSLCertificates", "Tools/SSLCertificates", GTK_UI_MANAGER_MENUITEM)
#endif
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "Separator7", "Tools/---", GTK_UI_MANAGER_SEPARATOR)
+#ifndef G_OS_WIN32
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "FilteringLog", "Tools/FilteringLog", GTK_UI_MANAGER_MENUITEM)
+#endif
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "NetworkLog", "Tools/NetworkLog", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "Separator8", "Tools/---", GTK_UI_MANAGER_SEPARATOR)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Tools", "ForgetSessionPasswords", "Tools/ForgetSessionPasswords", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Help", "Manual", "Help/Manual", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Help", "FAQ", "Help/FAQ", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Help", "IconLegend", "Help/IconLegend", GTK_UI_MANAGER_MENUITEM)
+#ifdef G_OS_WIN32
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Help", "Separator1", "Help/---", GTK_UI_MANAGER_SEPARATOR)
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Help", "SetDefault", "Help/SetDefault", GTK_UI_MANAGER_MENUITEM)
+#endif
+ MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Help", "Separator2", "Help/---", GTK_UI_MANAGER_SEPARATOR)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Help", "About", "Help/About", GTK_UI_MANAGER_MENUITEM)
hildon_window_set_menu(HILDON_WINDOW(window), GTK_MENU(menubar));
#endif
-
if (prefs_common.toolbar_detachable) {
handlebox = gtk_handle_box_new();
gtk_widget_show(handlebox);
#endif
/* create views */
mainwin->folderview = folderview = folderview_create();
- mainwin->summaryview = summaryview = summary_create();
+ mainwin->summaryview = summaryview = summary_create(mainwin);
mainwin->messageview = messageview = messageview_create(mainwin);
/* init log instances data before creating log views */
}
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
+ toolbar_set_style(mainwin->toolbar->toolbar,
+ mainwin->handlebox,
+ prefs_common.toolbar_style);
#ifndef GENERIC_UMPC
gtk_widget_hide(mainwin->hbox_stat);
menuitem = gtk_ui_manager_get_widget(mainwin->ui_manager, "/Menu/View/ShowHide/StatusBar");
ADD_MENU_ACCEL_GROUP_TO_WINDOW(summaryview->popupmenu, mainwin->window);
-/* FIXME menu_connect_identical_items(); */
-
#ifndef GENERIC_UMPC
gtk_window_iconify(GTK_WINDOW(mainwin->window));
#endif
folderview_init(folderview);
summary_init(summaryview);
messageview_init(messageview);
-#if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
+#ifdef USE_GNUTLS
sslcertwindow_register_hook();
#endif
mainwin->lock_count = 0;
#ifdef MAEMO
main_window_install_maemo_hooks(mainwin);
+#endif
+#ifndef MAEMO
+ if (prefs_common.mainwin_fullscreen) {
+ cm_toggle_menu_set_active_full(mainwin->ui_manager,
+ "Menu/View/FullScreen",
+ TRUE);
+ }
#endif
return mainwin;
}
/* clear items. get item pointers. */
for (cur = menu->children; cur != NULL && cur->data != NULL; cur = cur->next) {
+ g_signal_handlers_disconnect_matched
+ (gtk_ui_manager_get_accel_group(mainwin->ui_manager),
+ G_SIGNAL_MATCH_DATA|G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL, mainwin_accel_changed_cb, cur->data);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(cur->data), NULL);
}
mainwindow_colorlabel_menu_create(mainwin, TRUE);
}
allocation = &(GTK_WIDGET_PTR(mainwin->summaryview)->allocation);
-
- if (allocation->width > 1 && allocation->height > 1) {
+
+ if (prefs_common.mainwin_fullscreen) {
+ debug_print("mainwin in full screen state. "
+ "Keeping original settings\n");
+ }
+ if (allocation->width > 1 && allocation->height > 1 && !prefs_common.mainwin_fullscreen) {
prefs_common.summaryview_width = allocation->width;
if (messageview_is_visible(mainwin->messageview))
allocation = &mainwin->window->allocation;
if (allocation->width > 1 && allocation->height > 1 &&
- !prefs_common.mainwin_maximised) {
+ !prefs_common.mainwin_maximised && !prefs_common.mainwin_fullscreen) {
prefs_common.mainview_height = allocation->height;
prefs_common.mainwin_width = allocation->width;
prefs_common.mainwin_height = allocation->height;
}
allocation = &(GTK_WIDGET_PTR(mainwin->folderview)->allocation);
- if (allocation->width > 1 && allocation->height > 1) {
+ if (allocation->width > 1 && allocation->height > 1 &&
+ !prefs_common.mainwin_fullscreen) {
prefs_common.folderview_width = allocation->width;
prefs_common.folderview_height = allocation->height;
}
allocation = &(GTK_WIDGET_PTR(mainwin->messageview)->allocation);
- if (allocation->width > 1 && allocation->height > 1) {
+ if (allocation->width > 1 && allocation->height > 1 &&
+ !prefs_common.mainwin_fullscreen) {
prefs_common.msgview_width = allocation->width;
prefs_common.msgview_height = allocation->height;
}
{
gint x, y;
- if (prefs_common.mainwin_maximised)
+ if (prefs_common.mainwin_maximised || prefs_common.mainwin_fullscreen)
return;
gtkut_widget_get_uposition(mainwin->window, &x, &y);
static void mailing_list_compose (GtkWidget *w, gpointer *data)
{
const gchar *mailto;
+ PrefsAccount *account = NULL;
+ FolderItem *folder_item = NULL;
mailto = gtk_label_get_text(GTK_LABEL (gtk_bin_get_child(GTK_BIN((w)))));
+ if (mainwindow_get_mainwindow()) {
+ folder_item = mainwindow_get_mainwindow()->summaryview->folder_item;
+ if (folder_item && folder_item->prefs && folder_item->prefs->enable_default_account)
+ account = account_find_from_id(folder_item->prefs->default_account);
+ if (folder_item && !account)
+ account = account_find_from_item(folder_item);
+ }
if (mailto)
- compose_new(NULL, mailto+7, NULL);
+ compose_new_with_folderitem(account, folder_item, mailto+7);
}
static void mailing_list_open_uri (GtkWidget *w, gpointer *data)
MainWindow *mainwin;
gboolean have_connectivity;
-#ifdef HAVE_NETWORKMANAGER
+#ifdef HAVE_NETWORKMANAGER_SUPPORT
have_connectivity = networkmanager_is_online(NULL);
#else
have_connectivity = TRUE;
if(have_connectivity)
mainwindow_check_synchronise(mainwin, TRUE);
prefs_common.work_offline = TRUE;
- imap_disconnect_all();
+ if(have_connectivity)
+ imap_disconnect_all();
hooks_invoke(OFFLINE_SWITCH_HOOKLIST, NULL);
} else {
/*go online */
gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)));
}
+static void toggle_fullscreen_cb(GtkAction *action, gpointer data)
+{
+ MainWindow *mainwin = (MainWindow *)data;
+ if (mainwin->menu_lock_count) return;
+ if (!gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+ gtk_window_unfullscreen(GTK_WINDOW(mainwin->window));
+ prefs_common.mainwin_fullscreen = FALSE;
+ }
+ else {
+ prefs_common.mainwin_fullscreen = TRUE;
+ gtk_window_fullscreen(GTK_WINDOW(mainwin->window));
+ }
+}
+
static void hide_quotes_cb(GtkAction *action, gpointer data)
{
MainWindow *mainwin = (MainWindow *)data;
GSList * list = summary_get_selected_msg_list(mainwin->summaryview);
tag_apply_open(list);
}
-#if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
+#ifdef USE_GNUTLS
static void ssl_manager_open_cb(GtkAction *action, gpointer data)
{
MainWindow *mainwin = (MainWindow *)data;
legend_show();
}
+#ifdef G_OS_WIN32
+static void set_default_client_cb(GtkAction *action, gpointer data)
+{
+ char exename[MAX_PATH];
+ gchar *binary_icon = NULL;
+ gchar *binary_compose = NULL;
+ gchar *binary_run = NULL;
+ int r = 0;
+ if ( !GetModuleFileNameA (0, exename, sizeof (exename)) ) {
+ alertpanel_error(_("Can not register as default client: impossible to get executable path."));
+ return;
+ }
+ binary_icon = g_strconcat(exename, ",0", NULL);
+ binary_compose = g_strconcat(exename, " --compose %1", NULL);
+ binary_run = g_strconcat(exename, NULL);
+
+ /* Try to set the Mail Start menu item to Claws. It may fail if we're not root; we don't care */
+ r = write_w32_registry_string("HKLM", "Software\\Clients\\Mail",
+ "", "Claws Mail");
+
+ r = write_w32_registry_string("HKCU", "Software\\Clients\\Mail\\Claws Mail",
+ "", "Claws Mail");
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Clients\\Mail\\Claws Mail",
+ "DLLPath", "");
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Clients\\Mail\\Claws Mail\\Protocols\\mailto",
+ "", "URL:MailTo-Protocol");
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Clients\\Mail\\Claws Mail\\Protocols\\mailto",
+ "URL Protocol", "");
+ if (!r)
+ r = write_w32_registry_dword ("HKCU", "Software\\Clients\\Mail\\Claws Mail\\Protocols\\mailto",
+ "EditFlags", 2);
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Clients\\Mail\\Claws Mail\\Protocols\\mailto\\DefaultIcon",
+ "", binary_icon);
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Clients\\Mail\\Claws Mail\\Protocols\\mailto\\shell\\open\\command",
+ "", binary_compose);
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Clients\\Mail\\Claws Mail\\shell\\open\\command",
+ "", binary_run);
+
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Classes\\mailto",
+ "", "URL:MailTo-Protocol");
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Classes\\mailto",
+ "URL Protocol", "");
+ if (!r)
+ r = write_w32_registry_dword ("HKCU", "Software\\Classes\\mailto",
+ "EditFlags", 2);
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Classes\\mailto\\DefaultIcon",
+ "", binary_icon);
+ if (!r)
+ r = write_w32_registry_string("HKCU", "Software\\Classes\\mailto\\shell\\open\\command",
+ "", binary_compose);
+
+ if (!r) {
+ SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Software\\Clients\\Mail");
+ alertpanel_notice(_("Claws Mail has been registered as default client."));
+ } else {
+ alertpanel_error(_("Can not register as default client: impossible to write to the registry."));
+ }
+ g_free(binary_icon);
+ g_free(binary_compose);
+ g_free(binary_run);
+}
+#endif
+
static void scan_tree_func(Folder *folder, FolderItem *item, gpointer data)
{
MainWindow *mainwin = (MainWindow *)data;