gint send_message(const gchar *file, PrefsAccount *ac_prefs, GSList *to_list) { FILE *fp; gint val; cm_return_val_if_fail(file != NULL, -1); cm_return_val_if_fail(ac_prefs != NULL, -1); cm_return_val_if_fail(to_list != NULL, -1); if ((fp = claws_fopen(file, "rb")) == NULL) { FILE_OP_ERROR(file, "claws_fopen"); return -1; } inc_lock(); if (ac_prefs->use_mail_command && ac_prefs->mail_command && (*ac_prefs->mail_command)) { val = send_message_local(ac_prefs->mail_command, fp); claws_fclose(fp); inc_unlock(); return val; } else { val = send_message_smtp(ac_prefs, to_list, fp); claws_fclose(fp); inc_unlock(); return val; } }
static void alertpanel_show(void) { gint x, y, w, h, sx, sy; value = G_ALERTWAIT; inc_lock(); sx = gdk_screen_width(); sy = gdk_screen_height(); gdk_window_get_origin(dialog->window, &x, &y); w = dialog->allocation.width; h = dialog->allocation.height; if (x < 0 || y < 0 || x + w > sx || y + h > sy) { debug_print("sx, sy, x, y, w, h = %d, %d, %d, %d, %d, %d\n", sx, sy, x, y, w, h); debug_print("alert dialog position out of range\n"); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ALWAYS); } while ((value & G_ALERT_VALUE_MASK) == G_ALERTWAIT) gtk_main_iteration(); gtk_widget_destroy(dialog); GTK_EVENTS_FLUSH(); alertpanel_is_open = FALSE; inc_unlock(); }
/*! *\brief Opens the filtering action dialog with a list of actions * *\param matchers List of conditions *\param cb Callback * */ void prefs_filtering_action_open(GSList *action_list, PrefsFilteringActionSignal *cb) { inc_lock(); if (!filtering_action.window) { prefs_filtering_action_create(); } else { #if !GTK_CHECK_VERSION(3, 0, 0) /* update color label menu */ gtk_cmoption_menu_set_menu(GTK_CMOPTION_MENU(filtering_action.color_optmenu), colorlabel_create_color_menu()); #endif } manage_window_set_transient(GTK_WINDOW(filtering_action.window)); gtk_widget_grab_focus(filtering_action.ok_btn); filtering_action_callback = cb; prefs_filtering_action_set_dialog(action_list); gtk_widget_show(filtering_action.window); gtk_window_set_modal(GTK_WINDOW(filtering_action.window), TRUE); }
void prefs_actions_open(MainWindow *mainwin) { inc_lock(); if (!actions.window) prefs_actions_create(mainwin); manage_window_set_transient(GTK_WINDOW(actions.window)); gtk_widget_grab_focus(actions.ok_btn); prefs_actions_set_dialog(); gtk_widget_show(actions.window); gtk_window_set_modal(GTK_WINDOW(actions.window), TRUE); }
static gchar *input_dialog_open(const gchar *title, const gchar *message, const gchar *default_string) { gchar *str; gtkut_box_set_reverse_order(GTK_BOX(confirm_area), !prefs_common.comply_gnome_hig); input_dialog_set(title, message, default_string); gtk_widget_show(dialog); ack = fin = FALSE; inc_lock(); while (fin == FALSE) gtk_main_iteration(); manage_window_focus_out(dialog, NULL, NULL); if (ack) { GtkEditable *editable; if (type == INPUT_DIALOG_COMBO) editable = GTK_EDITABLE(GTK_COMBO(combo)->entry); else editable = GTK_EDITABLE(entry); str = gtk_editable_get_chars(editable, 0, -1); if (str && *str == '\0') { g_free(str); str = NULL; } } else str = NULL; gtk_widget_destroy(dialog); dialog = msg_label = entry = combo = confirm_area = ok_button = NULL; GTK_EVENTS_FLUSH(); inc_unlock(); if (type != INPUT_DIALOG_INVISIBLE) debug_print("return string = %s\n", str ? str : "(none)"); return str; }
static void alertpanel_show(void) { gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); manage_window_set_transient(GTK_WINDOW(dialog)); gtk_widget_show_all(dialog); value = G_ALERTWAIT; if (gdk_pointer_is_grabbed()) gdk_pointer_ungrab(GDK_CURRENT_TIME); inc_lock(); while ((value & G_ALERT_VALUE_MASK) == G_ALERTWAIT) gtk_main_iteration(); gtk_widget_destroy(dialog); GTK_EVENTS_FLUSH(); alertpanel_is_open = FALSE; hooks_invoke(ALERTPANEL_OPENED_HOOKLIST, &alertpanel_is_open); inc_unlock(); }
void prefs_summary_column_open(void) { inc_lock(); if (!summary_col.window) prefs_summary_column_create(); manage_window_set_transient(GTK_WINDOW(summary_col.window)); gtk_widget_grab_focus(summary_col.ok_btn); prefs_summary_column_set_dialog(NULL); gtk_widget_show(summary_col.window); summary_col.finished = FALSE; while (summary_col.finished == FALSE) gtk_main_iteration(); gtk_widget_hide(summary_col.window); inc_unlock(); }
void inc_mail(MainWindow *mainwin, gboolean notify) { gint new_msgs = 0; gint account_new_msgs = 0; if (inc_lock_count) return; if (prefs_common.work_offline && !inc_offline_should_override(TRUE, _("Claws Mail needs network access in order " "to get mails."))) return; inc_lock(); inc_autocheck_timer_remove(); main_window_lock(mainwin); if (prefs_common.use_extinc && prefs_common.extinc_cmd) { /* external incorporating program */ if (execute_command_line(prefs_common.extinc_cmd, FALSE) < 0) { main_window_unlock(mainwin); inc_autocheck_timer_set(); inc_unlock(); return; } } else { account_new_msgs = inc_account_mail_real(mainwin, cur_account); if (account_new_msgs > 0) new_msgs += account_new_msgs; } inc_update_stats(new_msgs); inc_finished(mainwin, new_msgs > 0, FALSE); main_window_unlock(mainwin); inc_notify_cmd(new_msgs, notify); inc_autocheck_timer_set(); inc_unlock(); }
void pluginwindow_create() { PluginWindow *pluginwindow; GtkWidget *window; GtkWidget *vbox1; GtkWidget *hbox2; GtkWidget *scrolledwindow2; GtkWidget *plugin_list_view; GtkWidget *vbox2; GtkWidget *frame2; GtkWidget *label13; GtkWidget *scrolledwindow3; GtkWidget *plugin_desc; GtkWidget *hbuttonbox1; GtkWidget *hbuttonbox2; GtkWidget *help_btn; GtkWidget *load_btn; GtkWidget *unload_btn; GtkWidget *close_btn; gchar *markup, *span; GtkWidget *desc_lbl; GtkWidget *vbox3; GtkWidget *hbox_info; static GdkGeometry geometry; debug_print("Creating plugins window...\n"); pluginwindow = g_new0(PluginWindow, 1); window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "pluginwindow"); gtk_container_set_border_width(GTK_CONTAINER(window), 8); gtk_window_set_title(GTK_WINDOW(window), _("Plugins")); gtk_window_set_modal(GTK_WINDOW(window), TRUE); manage_window_set_transient(GTK_WINDOW(window)); vbox1 = gtk_vbox_new(FALSE, 4); gtk_widget_show(vbox1); gtk_container_add(GTK_CONTAINER(window), vbox1); gtk_box_set_homogeneous(GTK_BOX(vbox1), FALSE); gtk_widget_realize(window); hbox2 = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox2); gtk_box_pack_start(GTK_BOX(vbox1), hbox2, TRUE, TRUE, 0); vbox3 = gtk_vbox_new(FALSE, 4); gtk_widget_show(vbox3); gtk_box_pack_start(GTK_BOX(hbox2), vbox3, FALSE, FALSE, 0); scrolledwindow2 = gtk_scrolled_window_new(NULL, NULL); gtk_widget_show(scrolledwindow2); gtk_box_pack_start(GTK_BOX(vbox3), scrolledwindow2, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwindow2), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); plugin_list_view = pluginwindow_list_view_create(pluginwindow); gtk_widget_show(plugin_list_view); gtk_container_add(GTK_CONTAINER(scrolledwindow2), plugin_list_view); gtk_widget_grab_focus(GTK_WIDGET(plugin_list_view)); gtkut_stock_button_set_create(&hbuttonbox1, &load_btn, _("_Load..."), &unload_btn, _("_Unload"), NULL, NULL); gtk_widget_show(hbuttonbox1); gtk_box_pack_start(GTK_BOX(vbox3), hbuttonbox1, FALSE, FALSE, 0); vbox2 = gtk_vbox_new(FALSE, 0); gtk_widget_show(vbox2); gtk_box_pack_start(GTK_BOX(hbox2), vbox2, TRUE, TRUE, 0); frame2 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame2), GTK_SHADOW_OUT); gtk_widget_show(frame2); gtk_box_pack_start(GTK_BOX(vbox2), frame2, FALSE, TRUE, 0); label13 = gtk_label_new(_("Description")); gtk_widget_show(label13); gtk_container_add(GTK_CONTAINER(frame2), label13); gtk_misc_set_alignment(GTK_MISC(label13), 0, 0.5); gtk_misc_set_padding(GTK_MISC(label13), 2, 2); scrolledwindow3 = gtk_scrolled_window_new(NULL, NULL); gtk_widget_show(scrolledwindow3); gtk_box_pack_start(GTK_BOX(vbox2), scrolledwindow3, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwindow3), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); plugin_desc = gtk_text_view_new(); gtk_widget_show(plugin_desc); gtk_container_add(GTK_CONTAINER(scrolledwindow3), plugin_desc); hbox_info = gtk_hbox_new(FALSE, 5); gtk_widget_show(hbox_info); desc_lbl = gtk_label_new(""); span = g_strdup_printf("<a href=\"%s\"><span underline=\"none\">", PLUGINS_URI); markup = g_strdup_printf(_("For more information about plugins see the " "%sClaws Mail website%s."), span, "</span></a>"); gtk_label_set_markup(GTK_LABEL(desc_lbl), markup); g_free(markup); g_free(span); gtk_misc_set_alignment(GTK_MISC(desc_lbl), 0, 0.5); gtk_widget_show(desc_lbl); gtk_box_pack_start(GTK_BOX(hbox_info), desc_lbl, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox_info), gtk_label_new(""), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox_info, FALSE, FALSE, 0); gtkut_stock_button_set_create_with_help(&hbuttonbox2, &help_btn, &close_btn, GTK_STOCK_CLOSE, NULL, NULL, NULL, NULL); gtk_box_set_spacing(GTK_BOX(hbuttonbox2), 6); gtk_widget_show(hbuttonbox2); gtk_box_pack_end(GTK_BOX(vbox1), hbuttonbox2, FALSE, FALSE, 0); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(plugin_desc), GTK_WRAP_WORD); gtk_widget_set_sensitive(GTK_WIDGET(unload_btn), FALSE); g_signal_connect(G_OBJECT(help_btn), "clicked", G_CALLBACK(manual_open_with_anchor_cb), MANUAL_ANCHOR_PLUGINS); g_signal_connect(G_OBJECT(load_btn), "clicked", G_CALLBACK(load_cb), pluginwindow); g_signal_connect(G_OBJECT(unload_btn), "clicked", G_CALLBACK(unload_cb), pluginwindow); g_signal_connect(G_OBJECT(close_btn), "clicked", G_CALLBACK(close_cb), pluginwindow); g_signal_connect(G_OBJECT(window), "size_allocate", G_CALLBACK(pluginwindow_size_allocate_cb), NULL); g_signal_connect(G_OBJECT(window), "key_press_event", G_CALLBACK(pluginwindow_key_pressed), pluginwindow); g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(pluginwindow_delete_cb), pluginwindow); MANAGE_WINDOW_SIGNALS_CONNECT(window); CLAWS_SET_TIP(load_btn, _("Click here to load one or more plugins")); CLAWS_SET_TIP(unload_btn, _("Unload the selected plugin")); pluginwindow->window = window; pluginwindow->plugin_list_view = plugin_list_view; pluginwindow->plugin_desc = plugin_desc; pluginwindow->unload_btn = unload_btn; pluginwindow->selected_plugin = NULL; set_plugin_list(pluginwindow); inc_lock(); if (!geometry.min_height) { geometry.min_width = -1; geometry.min_height = 300; } gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &geometry, GDK_HINT_MIN_SIZE); gtk_window_set_default_size(GTK_WINDOW(window), prefs_common.pluginswin_width, prefs_common.pluginswin_height); gtk_widget_show(window); }