void on_cancel (GtkAssistant *gtkassistant, hierarchy_data *data) { gnc_suspend_gui_refresh (); if (data->new_book) gtk_dialog_response(GTK_DIALOG(gnc_options_dialog_widget (data->optionwin)), GTK_RESPONSE_CANCEL); delete_hierarchy_dialog (data); delete_our_account_tree (data); g_free(data); gnc_resume_gui_refresh (); }
void on_finish (GtkAssistant *gtkassistant, hierarchy_data *data) { GncHierarchyAssistantFinishedCallback when_completed; gnc_commodity *com; Account * root; ENTER (" "); com = gnc_currency_edit_get_currency (GNC_CURRENCY_EDIT(data->currency_selector)); if (data->our_account_tree) { gnc_account_foreach_descendant (data->our_account_tree, (AccountCb)starting_balance_helper, data); } /* Set book options based on the user's choices */ if (data->new_book) finish_book_options_helper(data->optionwin, data->options); // delete before we suspend GUI events, and then muck with the model, // because the model doesn't seem to handle this correctly. if (data->initial_category) gtk_tree_row_reference_free(data->initial_category); delete_hierarchy_dialog (data); gnc_suspend_gui_refresh (); if (data->new_book) gtk_dialog_response(GTK_DIALOG(gnc_options_dialog_widget (data->optionwin)), GTK_RESPONSE_CANCEL); account_trees_merge(gnc_get_current_root_account(), data->our_account_tree); delete_our_account_tree (data); when_completed = data->when_completed; g_free(data); root = gnc_get_current_root_account(); xaccAccountSetCommodity(root, com); gnc_resume_gui_refresh (); if (when_completed) { (*when_completed)(); } LEAVE (" "); }
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); } }