--- /dev/null
+
+/*
+ * CINELERRA
+ * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include "asset.h"
+#include "confirmsave.h"
+#include "language.h"
+#include "mwindow.h"
+#include "mwindowgui.h"
+
+
+
+
+ConfirmSave::ConfirmSave()
+{
+}
+
+ConfirmSave::~ConfirmSave()
+{
+}
+
+int ConfirmSave::test_file(MWindow *mwindow, char *path)
+{
+ ArrayList<char*> paths;
+ paths.append(path);
+ int result = test_files(mwindow, &paths);
+ paths.remove_all();
+ return result;
+}
+
+int ConfirmSave::test_files(MWindow *mwindow, ArrayList<char*> *paths)
+{
+ FILE *file;
+ ArrayList<BC_ListBoxItem*> list;
+ int result = 0;
+
+ for(int i = 0; i < paths->size(); i++) {
+ char *path = paths->values[i];
+ if( (file=fopen(path, "r")) != 0 ) {
+ fclose(file);
+ list.append(new BC_ListBoxItem(path));
+ }
+ }
+
+ if(list.total) {
+ if(mwindow) {
+ ConfirmSaveWindow window(mwindow, &list);
+ window.create_objects();
+ window.raise_window();
+ result = window.run_window();
+ }
+ else {
+ printf(_("The following files exist:\n"));
+ for(int i = 0; i < list.total; i++) {
+ printf(" %s\n", list.values[i]->get_text());
+ }
+ printf(_("Won't overwrite existing files.\n"));
+ result = 1;
+ }
+ list.remove_all_objects();
+ return result;
+ }
+ else {
+ list.remove_all_objects();
+ return 0;
+ }
+
+ return result;
+}
+
+
+
+
+
+
+
+
+
+ConfirmSaveWindow::ConfirmSaveWindow(MWindow *mwindow,
+ ArrayList<BC_ListBoxItem*> *list)
+ : BC_Window(_(PROGRAM_NAME ": File Exists"),
+ mwindow->gui->get_abs_cursor_x(1) - 160,
+ mwindow->gui->get_abs_cursor_y(1) - 120,
+ 320,
+ 320)
+{
+ this->list = list;
+}
+
+ConfirmSaveWindow::~ConfirmSaveWindow()
+{
+}
+
+
+void ConfirmSaveWindow::create_objects()
+{
+ int x = 10, y = 10;
+ lock_window("ConfirmSaveWindow::create_objects");
+ add_subwindow(new BC_OKButton(this));
+ add_subwindow(new BC_CancelButton(this));
+
+ add_subwindow(title = new BC_Title(x,
+ y,
+ _("The following files exist. Overwrite them?")));
+ y += 30;
+ add_subwindow(listbox = new BC_ListBox(x,
+ y,
+ get_w() - x - 10,
+ get_h() - y - BC_OKButton::calculate_h() - 10,
+ LISTBOX_TEXT,
+ list));
+ y = get_h() - 40;
+ add_subwindow(new BC_OKButton(this));
+ x = get_w() - 100;
+ add_subwindow(new BC_CancelButton(this));
+ show_window(1);
+ unlock_window();
+}
+
+int ConfirmSaveWindow::resize_event(int w, int h)
+{
+ int x = 10, y = 10;
+ title->reposition_window(x, y);
+ y += 30;
+ listbox->reposition_window(x,
+ y,
+ w - x - 10,
+ h - y - 50);
+ return 1;
+}
+
+
+
+
+
+