59
#include <unique/unique.h>
61
gboolean windowed = FALSE;
62
gboolean anjal_icon_decoration = FALSE;
63
gboolean default_app = FALSE;
64
61
guint32 socket_id = 0;
65
62
GtkWidget *main_window;
66
63
static gchar **remaining_args;
67
extern gchar *shell_moduledir;
69
#define GCONF_KEY_MAILTO_ENABLED "/desktop/gnome/url-handlers/mailto/enabled"
70
#define GCONF_KEY_MAILTO_COMMAND "/desktop/gnome/url-handlers/mailto/command"
71
#define ANJAL_MAILTO_COMMAND "anjal %s"
74
mail_message_received_cb (UniqueApp *app G_GNUC_UNUSED,
76
UniqueMessageData *message_data,
77
guint time_ G_GNUC_UNUSED,
80
GtkWindow *window = (GtkWindow *) user_data;
83
case UNIQUE_ACTIVATE :
84
gtk_window_deiconify (window);
85
gtk_window_present (window);
86
return UNIQUE_RESPONSE_OK;
89
return UNIQUE_RESPONSE_OK;
92
gdk_window_raise (gtk_widget_get_window (GTK_WIDGET (window)));
93
gtk_window_deiconify (window);
94
gtk_window_present (window);
96
return UNIQUE_RESPONSE_OK;
99
return UNIQUE_RESPONSE_PASSTHROUGH;
103
66
categories_icon_theme_hack (void)
133
check_and_set_default_mail (void)
135
GConfClient *client = gconf_client_get_default ();
138
mailer = gconf_client_get_string (client, GCONF_KEY_MAILTO_COMMAND, NULL);
139
if (mailer && *mailer && (strcmp (mailer, ANJAL_MAILTO_COMMAND) == 0)) {
140
g_object_unref (client);
141
return; /* Anjal is the default mailer */
144
gconf_client_set_bool (client, GCONF_KEY_MAILTO_ENABLED, TRUE, NULL);
145
gconf_client_set_string (client, GCONF_KEY_MAILTO_COMMAND, ANJAL_MAILTO_COMMAND, NULL);
146
g_object_unref (client);
150
idle_cb (MailCappletShell *mshell G_GNUC_UNUSED)
154
check_and_set_default_mail ();
161
96
create_default_shell (void)
163
98
main_window = mail_capplet_shell_new (socket_id, FALSE, TRUE);
165
100
gtk_widget_show (main_window);
166
g_idle_add ((GSourceFunc) idle_cb, remaining_args);
170
104
main (gint argc, gchar *argv[])
172
106
GError *error = NULL;
177
108
#ifdef G_OS_WIN32
178
109
/* Reduce risks */
215
146
static GOptionEntry entries[] = {
216
{ "windowed", 'w', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_NONE, &windowed,N_("Run Anjal in a window"), NULL },
217
{ "default-mailer", 'd', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_NONE, &default_app,N_("Make Anjal the default email client"), NULL },
220
149
G_OPTION_FLAG_IN_MAIN,
236
165
setlocale (LC_ALL, NULL);
238
if (!gtk_init_with_args (&argc, &argv, _("Anjal email client"), entries, NULL, &error)) {
239
g_error ("Unable to start Anjal: %s\n", error->message);
240
g_error_free (error);
167
if (!gtk_init_with_args (&argc, &argv, NULL, entries, NULL, &error))
168
g_error ("%s", error->message);
243
170
if (!g_thread_get_initialized ())
244
171
g_thread_init (NULL);
246
client = gconf_client_get_default ();
248
173
e_passwords_init ();
249
gtk_icon_theme_append_search_path (gtk_icon_theme_get_default(), PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "anjal" G_DIR_SEPARATOR_S "icons");
250
174
categories_icon_theme_hack ();
252
gconf_client_set_bool (client, "/apps/evolution/mail/display/enable_vfolders", FALSE, NULL);
253
g_object_unref (client);
255
app = unique_app_new ("org.gnome.AnjalSettings", NULL);
256
if (unique_app_is_running (app) && !socket_id) {
257
gboolean cmd_line = (remaining_args && remaining_args[0] != NULL);
260
unique_app_send_message (app, UNIQUE_ACTIVATE, NULL);
262
UniqueMessageData *data = unique_message_data_new ();
263
unique_message_data_set_text (data, remaining_args[0], -1);
264
unique_app_send_message (app, UNIQUE_OPEN, data);
265
unique_message_data_free (data);
271
176
create_default_shell ();
274
UNIQUE_APP(app), "message-received",
275
G_CALLBACK (mail_message_received_cb), main_window);
278
anjal_icon_decoration = TRUE;