static void assistant_instert_book_options_page (hierarchy_data *data) { kvp_frame *slots = qof_book_get_slots (gnc_get_current_book ()); GtkWidget *vbox = gtk_vbox_new (FALSE, 0); data->options = gnc_option_db_new_for_type (QOF_ID_BOOK); gnc_option_db_load_from_kvp (data->options, slots); gnc_option_db_clean (data->options); data->optionwin = gnc_options_dialog_new_modal (TRUE, _("New Book Options")); gnc_options_dialog_build_contents_full (data->optionwin, data->options, FALSE); gnc_options_dialog_set_close_cb (data->optionwin, book_options_dialog_close_cb, (gpointer)data->options); gnc_options_dialog_set_new_book_option_values (data->options); gtk_widget_reparent (gnc_options_dialog_notebook (data->optionwin), vbox); gtk_widget_show_all (vbox); gtk_assistant_insert_page (GTK_ASSISTANT(data->dialog), vbox, 2); gtk_assistant_set_page_title (GTK_ASSISTANT(data->dialog), vbox, _("New Book Options")); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->dialog), vbox, TRUE); }
static ss_info * gnc_style_sheet_dialog_create(StyleSheetDialog * ss, gchar *name, SCM sheet_info, GtkTreeRowReference *row_ref) { SCM get_options = scm_c_eval_string("gnc:html-style-sheet-options"); SCM scm_options = scm_call_1(get_options, sheet_info); ss_info * ssinfo = g_new0(ss_info, 1); GtkWidget * window; gchar * title; title = g_strdup_printf(_("HTML Style Sheet Properties: %s"), name); ssinfo->odialog = gnc_options_dialog_new(title); ssinfo->odb = gnc_option_db_new(scm_options); ssinfo->stylesheet = sheet_info; ssinfo->row_ref = row_ref; g_free(title); scm_gc_protect_object(ssinfo->stylesheet); g_object_ref(gnc_options_dialog_widget(ssinfo->odialog)); gnc_options_dialog_build_contents(ssinfo->odialog, ssinfo->odb); gnc_options_dialog_set_apply_cb(ssinfo->odialog, gnc_style_sheet_options_apply_cb, ssinfo); gnc_options_dialog_set_close_cb(ssinfo->odialog, gnc_style_sheet_options_close_cb, ssinfo); window = gnc_options_dialog_widget(ssinfo->odialog); gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(gnc_style_sheet_dialog->toplevel)); gtk_window_set_destroy_with_parent(GTK_WINDOW(window), TRUE); gtk_window_present(GTK_WINDOW(window)); return(ssinfo); }
GtkWidget * gnc_column_view_edit_options(SCM options, SCM view) { SCM get_editor = scm_c_eval_string("gnc:report-editor-widget"); SCM ptr; GtkWidget * editor; GtkListStore *store; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeSelection *selection; ptr = scm_call_1(get_editor, view); if (ptr != SCM_BOOL_F) { #define FUNC_NAME "gtk_window_present" GtkWindow * w = SWIG_MustGetPtr(ptr, SWIG_TypeQuery("_p_GtkWidget"), 1, 0); gtk_window_present(w); #undef FUNC_NAME return NULL; } else { gnc_column_view_edit * r = g_new0(gnc_column_view_edit, 1); GladeXML *xml; r->optwin = gnc_options_dialog_new(NULL); /* Hide the generic dialog page list. */ { GtkWidget *dialog, *page_list; dialog = gnc_options_dialog_widget(r->optwin); page_list = gnc_glade_lookup_widget (dialog, "page_list"); gtk_widget_hide(page_list); } xml = gnc_glade_xml_new ("report.glade", "view_contents_table"); glade_xml_signal_connect_data (xml, "gnc_column_view_edit_add_cb", G_CALLBACK (gnc_column_view_edit_add_cb), r); glade_xml_signal_connect_data (xml, "gnc_column_view_edit_remove_cb", G_CALLBACK (gnc_column_view_edit_remove_cb), r); glade_xml_signal_connect_data (xml, "gnc_edit_column_view_move_up_cb", G_CALLBACK (gnc_edit_column_view_move_up_cb), r); glade_xml_signal_connect_data (xml, "gnc_edit_column_view_move_down_cb", G_CALLBACK (gnc_edit_column_view_move_down_cb), r); glade_xml_signal_connect_data (xml, "gnc_column_view_edit_size_cb", G_CALLBACK (gnc_column_view_edit_size_cb), r); editor = glade_xml_get_widget (xml, "view_contents_table"); r->available = GTK_TREE_VIEW (glade_xml_get_widget (xml, "available_view")); r->contents = GTK_TREE_VIEW (glade_xml_get_widget (xml, "contents_view")); r->options = options; r->view = view; r->available_selected = 0; r->available_list = SCM_EOL; r->contents_selected = 0; r->contents_list = SCM_EOL; r->odb = gnc_option_db_new(r->options); gnc_options_dialog_build_contents(r->optwin, r->odb); gtk_notebook_append_page(GTK_NOTEBOOK(gnc_options_dialog_notebook (r->optwin)), editor, gtk_label_new(_("Contents"))); scm_gc_protect_object(r->options); scm_gc_protect_object(r->view); scm_gc_protect_object(r->available_list); scm_gc_protect_object(r->contents_list); /* Build the 'available' view */ store = gtk_list_store_new (NUM_AVAILABLE_COLS, G_TYPE_STRING, G_TYPE_INT); gtk_tree_view_set_model(r->available, GTK_TREE_MODEL(store)); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), AVAILABLE_COL_NAME, GTK_SORT_ASCENDING); g_object_unref(store); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("", renderer, "text", AVAILABLE_COL_NAME, NULL); gtk_tree_view_append_column(r->available, column); selection = gtk_tree_view_get_selection(r->available); g_signal_connect(selection, "changed", G_CALLBACK(gnc_column_view_select_avail_cb), r); /* Build the 'contents' view */ store = gtk_list_store_new (NUM_CONTENTS_COLS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT); gtk_tree_view_set_model(r->contents, GTK_TREE_MODEL(store)); g_object_unref(store); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Report"), renderer, "text", CONTENTS_COL_NAME, NULL); gtk_tree_view_append_column(r->contents, column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Rows"), renderer, "text", CONTENTS_COL_REPORT_ROWS, NULL); gtk_tree_view_append_column(r->contents, column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Cols"), renderer, "text", CONTENTS_COL_REPORT_COLS, NULL); gtk_tree_view_append_column(r->contents, column); selection = gtk_tree_view_get_selection(r->contents); g_signal_connect(selection, "changed", G_CALLBACK(gnc_column_view_select_contents_cb), r); update_display_lists(r); gnc_options_dialog_set_apply_cb(r->optwin, gnc_column_view_edit_apply_cb, r); gnc_options_dialog_set_close_cb(r->optwin, gnc_column_view_edit_close_cb, r); gtk_widget_show(gnc_options_dialog_widget(r->optwin)); return gnc_options_dialog_widget(r->optwin); } }