void ags_menu_bar_save_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar) { AgsWindow *window; AgsFile *file; window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) menu_bar); //TODO:JK: revise me file = (AgsFile *) g_object_new(AGS_TYPE_FILE, "application-context\0", window->application_context, "filename\0", g_strdup(window->name), NULL); ags_file_write(file); g_object_unref(G_OBJECT(file)); }
void ags_menu_action_save_callback(GtkWidget *menu_item, gpointer data) { AgsApplicationContext *application_context; AgsWindow *window; GError *error; application_context = ags_application_context_get_instance(); window = (AgsWindow *) ags_ui_provider_get_window(AGS_UI_PROVIDER(application_context)); if(g_strcmp0(ags_config_get_value(AGS_APPLICATION_CONTEXT(application_context)->config, AGS_CONFIG_GENERIC, "simple-file"), "false")){ AgsSimpleFile *simple_file; simple_file = (AgsSimpleFile *) g_object_new(AGS_TYPE_SIMPLE_FILE, "application-context", application_context, "filename", window->name, NULL); error = NULL; ags_simple_file_rw_open(simple_file, TRUE, &error); ags_simple_file_write(simple_file); ags_simple_file_close(simple_file); g_object_unref(G_OBJECT(simple_file)); }else{ AgsFile *file; file = (AgsFile *) g_object_new(AGS_TYPE_FILE, "application-context", application_context, "filename", window->name, NULL); error = NULL; ags_file_rw_open(file, TRUE, &error); ags_file_write(file); ags_file_close(file); g_object_unref(G_OBJECT(file)); } }
void ags_menu_bar_quit_callback(GtkWidget *menu_item, AgsMenuBar *menu_bar) { AgsWindow *window; GtkDialog *dialog; GtkWidget *cancel_button; AgsApplicationContext *application_context; gint response; window = (AgsWindow *) gtk_widget_get_toplevel((GtkWidget *) menu_bar); application_context = window->application_context; /* ask the user if he wants save to a file */ dialog = (GtkDialog *) gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "Do you want to save '%s'?\0", window->name); cancel_button = gtk_dialog_add_button(dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); gtk_widget_grab_focus(cancel_button); response = gtk_dialog_run(dialog); if(response == GTK_RESPONSE_YES){ AgsFile *file; //TODO:JK: revise me file = (AgsFile *) g_object_new(AGS_TYPE_FILE, "main\0", application_context, "filename\0", g_strdup(window->name), NULL); ags_file_write(file); g_object_unref(G_OBJECT(file)); } if(response != GTK_RESPONSE_CANCEL){ ags_main_quit(application_context); }else{ gtk_widget_destroy(GTK_WIDGET(dialog)); } }
void ags_menu_action_quit_callback(GtkWidget *menu_item, gpointer data) { AgsApplicationContext *application_context; AgsWindow *window; GtkDialog *dialog; GtkWidget *cancel_button; gint response; application_context = ags_application_context_get_instance(); window = (AgsWindow *) ags_ui_provider_get_window(AGS_UI_PROVIDER(application_context)); /* ask the user if he wants save to a file */ dialog = (GtkDialog *) gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "Do you want to save '%s'?", window->name); cancel_button = gtk_dialog_add_button(dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); gtk_widget_grab_focus(cancel_button); response = gtk_dialog_run(dialog); if(response == GTK_RESPONSE_YES){ AgsFile *file; //TODO:JK: revise me file = (AgsFile *) g_object_new(AGS_TYPE_FILE, "application-context", application_context, "filename", window->name, NULL); ags_file_write(file); g_object_unref(G_OBJECT(file)); } if(response != GTK_RESPONSE_CANCEL){ ags_application_context_quit(AGS_APPLICATION_CONTEXT(application_context)); }else{ gtk_widget_destroy(GTK_WIDGET(dialog)); } }
void ags_menu_action_save_as_callback(GtkWidget *menu_item, gpointer data) { AgsApplicationContext *application_context; AgsWindow *window; GtkFileChooserDialog *file_chooser; gint response; application_context = ags_application_context_get_instance(); window = (AgsWindow *) ags_ui_provider_get_window(AGS_UI_PROVIDER(application_context)); file_chooser = (GtkFileChooserDialog *) gtk_file_chooser_dialog_new("save file as", (GtkWindow *) window, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(file_chooser), FALSE); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(file_chooser), TRUE); gtk_widget_show_all((GtkWidget *) file_chooser); response = gtk_dialog_run(GTK_DIALOG(file_chooser)); if(response == GTK_RESPONSE_ACCEPT){ gchar *filename; gchar *str; GError *error; filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser)); if(g_strcmp0(ags_config_get_value(AGS_APPLICATION_CONTEXT(application_context)->config, AGS_CONFIG_GENERIC, "simple-file"), "false")){ AgsSimpleFile *simple_file; simple_file = (AgsSimpleFile *) g_object_new(AGS_TYPE_SIMPLE_FILE, "application-context", application_context, "filename", filename, NULL); error = NULL; ags_simple_file_rw_open(simple_file, TRUE, &error); ags_simple_file_write(simple_file); ags_simple_file_close(simple_file); g_object_unref(G_OBJECT(simple_file)); }else{ AgsFile *file; file = (AgsFile *) g_object_new(AGS_TYPE_FILE, "application-context", application_context, "filename", filename, NULL); error = NULL; ags_file_rw_open(file, TRUE, &error); ags_file_write(file); ags_file_close(file); g_object_unref(G_OBJECT(file)); } if(window->name != NULL){ g_free(window->name); } window->name = g_strdup(filename); str = g_strconcat("GSequencer - ", window->name, NULL); gtk_window_set_title((GtkWindow *) window, str); g_free(str); } gtk_widget_destroy((GtkWidget *) file_chooser); }