예제 #1
0
void framewizard_dialog(Tbfwin *bfwin) {
	GtkWidget *dgtable, *frame, *vbox, *label;
	Thtml_diag *dg;
	gint i;

	dg = html_diag_new(bfwin,_("Frame Wizard"));

	dgtable = gtk_table_new(4, 12, FALSE);
	gtk_table_set_row_spacings(GTK_TABLE(dgtable), 6);
	gtk_table_set_col_spacings(GTK_TABLE(dgtable), 12);
	frame = gtk_aspect_frame_new(NULL, 0, 0.5, 0, TRUE);
	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
	gtk_box_pack_start(GTK_BOX(dg->vbox), frame, FALSE, FALSE, 0);
	gtk_container_add(GTK_CONTAINER(frame), dgtable);
	
	dg->entry[12] = entry_with_text(NULL, 256);
	bf_mnemonic_label_tad_with_alignment(_("_Title:"), dg->entry[12], 0, 0.5, dgtable, 0, 1, 0, 1);
	gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->entry[12], 1, 12, 0, 1);

	dg->check[0] = gtk_check_button_new();
	bf_mnemonic_label_tad_with_alignment(_("Use _DTD:"), dg->check[0], 0, 0.5, dgtable, 0, 1, 1, 2);
	gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[0], 1, 2, 1, 2);

	label = gtk_label_new(_("Orientation:"));
	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
	gtk_table_attach_defaults(GTK_TABLE(dgtable), label, 0, 1, 2, 3);
	dg->radio[1] = radiobut_with_value(_("_Horizontal"), 0, NULL);
	dg->radio[2] = radiobut_with_value(_("_Vertical"), 0, GTK_RADIO_BUTTON(dg->radio[1]));
	gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->radio[1], 1, 2, 2, 3);
	gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->radio[2], 2, 3, 2, 3);

	dg->spin[1] = spinbut_with_value("2", 1, MAX_FRAMES_IN_FRAMEWIZARD, 1.0, 2.0);
	bf_mnemonic_label_tad_with_alignment(_("Number of _Frames:"), dg->spin[1], 0, 0.5, dgtable, 0, 1, 3, 4);
	gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->spin[1], 1, 2, 3, 4);
	g_signal_connect(G_OBJECT(dg->spin[1]), "changed", G_CALLBACK(frame_wizard_num_changed), dg);
	frame = gtk_frame_new(_("Frame's"));
	gtk_container_set_border_width(GTK_CONTAINER(frame), 6);
	gtk_box_pack_start(GTK_BOX(dg->vbox), frame, FALSE, FALSE, 0);
	vbox = gtk_vbox_new(FALSE, 0);
	gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
	gtk_container_add(GTK_CONTAINER(frame), vbox);

	for (i = 0; i < MAX_FRAMES_IN_FRAMEWIZARD ; i++) {
		GtkWidget *file_but;
	/* since there are no clists in this dialog we can use it freely :) */
		dg->clist[i] = gtk_hbox_new(FALSE, 6);
		gtk_box_pack_start(GTK_BOX(vbox), dg->clist[i], FALSE, FALSE, 0);
		gtk_box_pack_start(GTK_BOX(dg->clist[i]), gtk_label_new(_("Name:")), TRUE, TRUE, 0);
		dg->combo[i] = boxed_combo_with_popdown(NULL, bfwin->session->targetlist, 1, dg->clist[i]);
		gtk_box_pack_start(GTK_BOX(dg->clist[i]), gtk_label_new(_("Source:")), TRUE, TRUE, 0);
		dg->combo[i+5] = boxed_combo_with_popdown(NULL, bfwin->session->urllist, 1, dg->clist[i]);
		file_but = file_but_new(GTK_WIDGET(GTK_COMBO(dg->combo[i+5])->entry), 0, bfwin);
		gtk_box_pack_start(GTK_BOX(dg->clist[i]), file_but, FALSE, FALSE, 0);		
		gtk_box_pack_start(GTK_BOX(dg->clist[i]), gtk_label_new(_("Size:")), TRUE, TRUE, 0);
		dg->entry[i] = boxed_entry_with_text(NULL, 100, dg->clist[i]);

	}
	html_diag_finish(dg, G_CALLBACK(frame_wizard_ok_lcb));
	frame_wizard_num_changed(NULL, dg);
}
예제 #2
0
void bmark_add_rename_dialog(Tbfwin * bfwin, gchar * dialogtitle)
{
	GtkWidget *dlg, *name, *desc, *button, *table, *istemp;
	gint result;
/*	GtkTextMark *im;
	gchar *pstr;
	GtkTextIter it, sit, eit;*/
	Tbmark *m = get_current_bmark(bfwin);
	if (!m) return;

	dlg =
		gtk_dialog_new_with_buttons(dialogtitle, GTK_WINDOW(bfwin->main_window), GTK_DIALOG_MODAL,
									GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
	button = gtk_button_new_from_stock(GTK_STOCK_OK);
	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
	gtk_dialog_add_action_widget(GTK_DIALOG(dlg), button, GTK_RESPONSE_OK);
/*	gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);*/
	table = gtk_table_new(2, 3, FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(table), 12);
	gtk_table_set_row_spacings(GTK_TABLE(table), 6);
	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dlg)->vbox), table, FALSE, FALSE, 12);

	name = entry_with_text(m->name, 200);
	gtk_entry_set_activates_default(GTK_ENTRY(name), TRUE);
	bf_mnemonic_label_tad_with_alignment(_("_Name:"), name, 0, 0.5, table, 0, 1, 0, 1);
	gtk_table_attach_defaults(GTK_TABLE(table), name, 1, 2, 0, 1);
/*	g_signal_connect(G_OBJECT(name), "changed", G_CALLBACK(bmark_name_entry_changed), dlg);*/
	desc = entry_with_text(m->description, 200);
	gtk_entry_set_activates_default(GTK_ENTRY(desc), TRUE);
	bf_mnemonic_label_tad_with_alignment(_("_Description:"), desc, 0, 0.5, table, 0, 1, 1, 2);
	gtk_table_attach_defaults(GTK_TABLE(table), desc, 1, 2, 1, 2);
	istemp = checkbut_with_value(_("Temporary"), m->is_temp);
	gtk_table_attach_defaults(GTK_TABLE(table), istemp, 0, 2, 2, 3);
	
	gtk_window_set_default(GTK_WINDOW(dlg), button);

	gtk_widget_show_all(dlg);
	result = gtk_dialog_run(GTK_DIALOG(dlg));

	if (result == GTK_RESPONSE_OK) {
		gchar *tmpstr;
		/* check if name exists */
/*		if (bmark_name_exists
			(DOCUMENT(bfwin->current_document), gtk_entry_get_text(GTK_ENTRY(name)))) {
			pstr =
				g_strdup_printf(_("You already have a bookmark named %s!"),
								gtk_entry_get_text(GTK_ENTRY(name)));
			if (dialogtype == BMARK_ADD_PERM_DIALOG) {
				info_dialog(bfwin->main_window, dialogtitle, pstr);
			} else {
				info_dialog(bfwin->main_window, dialogtitle, pstr);
			}
			g_free(pstr);
			gtk_widget_destroy(dlg);
			bmark_add_rename_dialog(bfwin, dialogtitle, dialogtype);
			return;
		} else */
/*		if (dialogtype == BMARK_ADD_PERM_DIALOG) {
			m = g_new0(Tbmark, 1);
			m->doc = DOCUMENT(bfwin->current_document);
			if (!m->doc)
				return;
			im = gtk_text_buffer_get_insert(m->doc->buffer);
			gtk_text_buffer_get_iter_at_mark(m->doc->buffer, &it, im);
			m->mark =
				gtk_text_buffer_create_mark(m->doc->buffer,
											g_strdup(gtk_entry_get_text(GTK_ENTRY(name))), &it,
											TRUE);
			m->filepath = g_strdup(m->doc->filename);
			m->is_temp = FALSE;
			m->name = g_strdup(gtk_entry_get_text(GTK_ENTRY(name)));
			m->description = g_strdup(gtk_entry_get_text(GTK_ENTRY(desc)));
			sit = eit = it;
			gtk_text_iter_forward_to_line_end(&eit);
			gtk_text_iter_forward_chars(&sit, 10);
			if (!gtk_text_iter_in_range(&sit, &it, &eit))
				sit = eit;
			m->text = g_strdup(gtk_text_iter_get_slice(&it, &sit));

			bmark_get_iter_at_tree_position(bfwin, m);
			gtk_tree_store_set(bfwin->bookmarkstore, &m->iter, NAME_COLUMN,
							   g_strdup_printf("[%s] --> %s", gtk_entry_get_text(GTK_ENTRY(name)),
											   m->text), PTR_COLUMN, m, -1);
			gtk_tree_view_expand_all(bfwin->bmark);
			gtk_widget_grab_focus(bfwin->current_document->view);
			bmark_store(bfwin, m);
		} else {*/
			g_free(m->name);
			m->name = g_strdup(gtk_entry_get_text(GTK_ENTRY(name)));
			g_free(m->description);
			m->description = g_strdup(gtk_entry_get_text(GTK_ENTRY(desc)));
			m->is_temp = GTK_TOGGLE_BUTTON(istemp)->active;
			if (m->name && strlen(m->name) > 0) {
				tmpstr = g_strconcat(m->name, " - ", m->text,NULL);
			} else {
				tmpstr = g_strdup(m->text);
			}
			gtk_tree_store_set(bfwin->bookmarkstore, &m->iter, NAME_COLUMN,
							   tmpstr,-1);
			g_free(tmpstr);
			if (m->is_temp) {
				if (m->strarr) {
					/* hmm previously this was not a temporary bookmark */
					bmark_unstore(bfwin, m);
				}
			} else {
				bmark_store(bfwin, m);
			}
	/*	} */
	}
	gtk_widget_destroy(dlg);
}