Beispiel #1
0
void quotefmt_create_forward_fmt_widgets(GtkWindow *parent_window,
						GtkWidget *parent_box,
						GtkWidget **checkbtn_forward_with_format,
						GtkWidget **override_from_format,
						GtkWidget **edit_fw_quotemark,
						GtkWidget **edit_fw_format,
						gboolean add_info_button,
						void(*set_defaults_func)(void))
{
	GtkWidget *checkbtn_use_format = NULL;
	GtkWidget *vbox_quote;
	GtkWidget *hbox1;
	GtkWidget *hbox2;
	GtkWidget *hbox3;
	GtkWidget *label_quotemark;
	GtkWidget *entry_fw_quotemark;
	GtkWidget *label_from = NULL;
	GtkWidget *entry_from = NULL;
	GtkWidget *scrolledwin_quotefmt;
	GtkWidget *text_fw_quotefmt;
	GtkSizeGroup *size_group;

	if (add_info_button)
		cm_return_if_fail(parent_window != NULL);
	cm_return_if_fail(parent_box != NULL);
	if (checkbtn_forward_with_format) {
		cm_return_if_fail(checkbtn_forward_with_format != NULL);
	}
	cm_return_if_fail(edit_fw_quotemark != NULL);
	cm_return_if_fail(edit_fw_format != NULL);

	size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);

	if (checkbtn_forward_with_format)
		PACK_CHECK_BUTTON (parent_box, checkbtn_use_format,
				   _("Use template when forwarding messages"));

	vbox_quote = gtk_vbox_new (FALSE, 4);
	gtk_widget_show(vbox_quote);
	gtk_container_add(GTK_CONTAINER (parent_box), vbox_quote);
	gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8);

	if (override_from_format) {
		hbox3 = gtk_hbox_new (FALSE, 8);
		gtk_widget_show (hbox3);
		gtk_box_pack_start (GTK_BOX (vbox_quote), hbox3, FALSE, FALSE, 0);

		label_from = gtk_label_new (prefs_common_translated_header_name("From"));
		gtk_misc_set_alignment(GTK_MISC(label_from), 1, 0.5);
		gtk_widget_show (label_from);
		gtk_box_pack_start (GTK_BOX (hbox3), label_from, FALSE, FALSE, 0);
		gtk_size_group_add_widget(size_group, label_from);

		entry_from = gtk_entry_new ();
		gtk_widget_show (entry_from);
		gtk_box_pack_start (GTK_BOX (hbox3), entry_from, TRUE, TRUE, 0);
		gtk_widget_set_size_request (entry_from, 100, -1);

		CLAWS_SET_TIP(entry_from,
				_("Override From header. This doesn't change the account used to forward."));
	}

	hbox1 = gtk_hbox_new (FALSE, 32);
	gtk_widget_show (hbox1);
	gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0);

	hbox2 = gtk_hbox_new (FALSE, 8);
	gtk_widget_show (hbox2);
	gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0);

	label_quotemark = gtk_label_new (_("Quotation mark"));
	gtk_misc_set_alignment(GTK_MISC(label_quotemark), 1, 0.5);
	gtk_widget_show (label_quotemark);
	gtk_box_pack_start (GTK_BOX (hbox2), label_quotemark, FALSE, FALSE, 0);
	gtk_size_group_add_widget(size_group, label_quotemark);

	entry_fw_quotemark = gtk_entry_new ();
	gtk_widget_show (entry_fw_quotemark);
	gtk_box_pack_start (GTK_BOX (hbox2), entry_fw_quotemark,
			    FALSE, FALSE, 0);
	gtk_widget_set_size_request (entry_fw_quotemark, 64, -1);

	scrolledwin_quotefmt = gtk_scrolled_window_new (NULL, NULL);
	gtk_widget_show (scrolledwin_quotefmt);
	gtk_box_pack_start (GTK_BOX (vbox_quote), scrolledwin_quotefmt,
			    TRUE, TRUE, 0);
	gtk_scrolled_window_set_policy
		(GTK_SCROLLED_WINDOW (scrolledwin_quotefmt),
		 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
	gtk_scrolled_window_set_shadow_type
		(GTK_SCROLLED_WINDOW (scrolledwin_quotefmt), GTK_SHADOW_IN);

	text_fw_quotefmt = gtk_text_view_new ();
	if (prefs_common.textfont) {
		PangoFontDescription *font_desc;

		font_desc = pango_font_description_from_string
						(prefs_common.textfont);
		if (font_desc) {
			gtk_widget_modify_font(text_fw_quotefmt, font_desc);
			pango_font_description_free(font_desc);
		}
	}
	gtk_widget_show(text_fw_quotefmt);
	gtk_container_add(GTK_CONTAINER(scrolledwin_quotefmt),
			  text_fw_quotefmt);
	gtk_text_view_set_editable (GTK_TEXT_VIEW (text_fw_quotefmt), TRUE);
	gtk_widget_set_size_request (text_fw_quotefmt, -1, 100);

	if (checkbtn_forward_with_format) {
		SET_TOGGLE_SENSITIVITY(checkbtn_use_format, label_quotemark);
		SET_TOGGLE_SENSITIVITY(checkbtn_use_format, entry_fw_quotemark);
		if (override_from_format) {
			SET_TOGGLE_SENSITIVITY(checkbtn_use_format, entry_from);
			SET_TOGGLE_SENSITIVITY(checkbtn_use_format, label_from);
		}
		SET_TOGGLE_SENSITIVITY(checkbtn_use_format, text_fw_quotefmt);
	}

	quote_fmt_add_buttons(parent_window, vbox_quote,
				add_info_button, set_defaults_func);

	if (checkbtn_forward_with_format)
		*checkbtn_forward_with_format = checkbtn_use_format;
	*edit_fw_quotemark = entry_fw_quotemark;
	if (override_from_format)
		*override_from_format = entry_from;
	*edit_fw_format = text_fw_quotefmt;
}
Beispiel #2
0
HeaderView *headerview_create(void)
{
	HeaderView *headerview;
	GtkWidget *hbox;
	GtkWidget *vbox;
	GtkWidget *hbox1;
	GtkWidget *hbox2;
	GtkWidget *hbox3;
	GtkWidget *from_header_label;
	GtkWidget *from_body_label;
	GtkWidget *to_header_label;
	GtkWidget *to_body_label;
	GtkWidget *ng_header_label;
	GtkWidget *ng_body_label;
	GtkWidget *subject_header_label;
	GtkWidget *subject_body_label;
	GtkWidget *tags_header_label;
	GtkWidget *tags_body_label;

	debug_print("Creating header view...\n");
	headerview = g_new0(HeaderView, 1);

	hbox = gtk_hbox_new(FALSE, 0);
	gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
	vbox = gtk_vbox_new(FALSE, 2);
	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);

	hbox1 = gtk_hbox_new(FALSE, 4);
	gtk_box_pack_start(GTK_BOX(vbox), hbox1, FALSE, FALSE, 0);
	hbox2 = gtk_hbox_new(FALSE, 4);
	gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0);
	hbox3 = gtk_hbox_new(FALSE, 4);
	gtk_box_pack_start(GTK_BOX(vbox), hbox3, FALSE, FALSE, 0);

	from_header_label    = gtk_label_new(prefs_common_translated_header_name("From:"));
	from_body_label      = gtk_label_new("");
	to_header_label      = gtk_label_new(prefs_common_translated_header_name("To:"));
	to_body_label        = gtk_label_new("");
	ng_header_label      = gtk_label_new(prefs_common_translated_header_name("Newsgroups:"));
	ng_body_label        = gtk_label_new("");
	subject_header_label = gtk_label_new(prefs_common_translated_header_name("Subject:"));
	subject_body_label   = gtk_label_new("");
	tags_header_label = gtk_label_new(_("Tags:"));
	tags_body_label   = gtk_label_new("");

	gtk_label_set_selectable(GTK_LABEL(from_body_label), TRUE);
	gtk_label_set_selectable(GTK_LABEL(to_body_label), TRUE);
	gtk_label_set_selectable(GTK_LABEL(ng_body_label), TRUE);
	gtk_label_set_selectable(GTK_LABEL(subject_body_label), TRUE);
	gtk_label_set_selectable(GTK_LABEL(tags_body_label), TRUE);

	gtkut_widget_set_can_focus(from_body_label, FALSE);
	gtkut_widget_set_can_focus(to_body_label, FALSE);
	gtkut_widget_set_can_focus(ng_body_label, FALSE);
	gtkut_widget_set_can_focus(subject_body_label, FALSE);
	gtkut_widget_set_can_focus(tags_body_label, FALSE);

	gtk_box_pack_start(GTK_BOX(hbox1), from_header_label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(hbox1), from_body_label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(hbox1), to_header_label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(hbox1), to_body_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX(hbox1), ng_header_label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(hbox1), ng_body_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), subject_header_label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), subject_body_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX(hbox3), tags_header_label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(hbox3), tags_body_label, TRUE, TRUE, 0);

	gtk_misc_set_alignment(GTK_MISC(to_body_label), 0, 0.5);
	gtk_misc_set_alignment(GTK_MISC(ng_body_label), 0, 0.5);
	gtk_misc_set_alignment(GTK_MISC(subject_body_label), 0, 0.5);
	gtk_misc_set_alignment(GTK_MISC(tags_body_label), 0, 0.5);
	gtk_label_set_ellipsize(GTK_LABEL(to_body_label), PANGO_ELLIPSIZE_END);
	gtk_label_set_ellipsize(GTK_LABEL(ng_body_label), PANGO_ELLIPSIZE_END);
	gtk_label_set_ellipsize(GTK_LABEL(subject_body_label), PANGO_ELLIPSIZE_END);
	gtk_label_set_ellipsize(GTK_LABEL(tags_body_label), PANGO_ELLIPSIZE_END);

	headerview->hbox = hbox;
	headerview->from_header_label    = from_header_label;
	headerview->from_body_label      = from_body_label;
	headerview->to_header_label      = to_header_label;
	headerview->to_body_label        = to_body_label;
	headerview->ng_header_label      = ng_header_label;
	headerview->ng_body_label        = ng_body_label;
	headerview->subject_header_label = subject_header_label;
	headerview->subject_body_label   = subject_body_label;
	headerview->tags_header_label = tags_header_label;
	headerview->tags_body_label   = tags_body_label;
	headerview->image = NULL;

	gtk_widget_show_all(hbox);

	return headerview;
}