** $Id: app.cpp,v 1.11 2005/03/24 21:47:28 darco Exp $
**
** \legal
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
-** This software and associated documentation
-** are CONFIDENTIAL and PROPRIETARY property of
-** the above-mentioned copyright holder.
+** This package 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.
**
-** You may not copy, print, publish, or in any
-** other way distribute this software without
-** a prior written agreement with
-** the copyright holder.
+** This package 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.
** \endlegal
*/
/* ========================================================================= */
#include <fstream>
#include <iostream>
+#ifdef HAVE_SYS_ERRNO_H
+#include <sys/errno.h>
+#endif
#include <gtkmm/fileselection.h>
#include <gtkmm/dialog.h>
#include <gtkmm/label.h>
#endif
#ifdef WIN32
+#define _WIN32_WINNT 0x0500
#include <windows.h>
#endif
#include <gtkmm/accelmap.h>
+#include <gtkmm/filechooser.h>
+#include <gtkmm/filechooserdialog.h>
#endif
}
};
-static Preferences _preferences;
+static ::Preferences _preferences;
void
init_ui_manager()
if(!_preferences.get_value("curr_path",prev_path))
prev_path=".";
+ Gtk::FileChooserDialog *dialog=new Gtk::FileChooserDialog(title,Gtk::FILE_CHOOSER_ACTION_OPEN);
+ dialog->set_current_folder(prev_path);
+ dialog->add_button(Gtk::StockID("gtk-ok"),GTK_RESPONSE_ACCEPT);
+ dialog->add_button(Gtk::StockID("gtk-cancel"),GTK_RESPONSE_CANCEL);
+ if(!filename.empty())
+ dialog->set_filename(filename);
+ if(dialog->run()==GTK_RESPONSE_ACCEPT) {
+ filename=dialog->get_filename();
+ delete dialog;
+ return true;
+ }
+ delete dialog;
+ return false;
+ /*
+
GtkWidget *ok;
GtkWidget *cancel;
int val=0;
}
gtk_widget_destroy(fileselection);
return true;
+ */
#endif
}
}
return false;
#else
- return dialog_open_file(title, filename);
+ synfig::String prev_path;
+ if(!_preferences.get_value("curr_path",prev_path))
+ prev_path=".";
+
+ Gtk::FileChooserDialog *dialog=new Gtk::FileChooserDialog(title,Gtk::FILE_CHOOSER_ACTION_SAVE);
+ dialog->set_current_folder(prev_path);
+ dialog->add_button(Gtk::StockID("gtk-ok"),GTK_RESPONSE_ACCEPT);
+ dialog->add_button(Gtk::StockID("gtk-cancel"),GTK_RESPONSE_CANCEL);
+ if(!filename.empty())
+ dialog->set_filename(filename);
+ if(dialog->run()==GTK_RESPONSE_ACCEPT) {
+ filename=dialog->get_filename();
+ delete dialog;
+ return true;
+ }
+ delete dialog;
+ return false;
+// return dialog_open_file(title, filename);
#endif
}
}
return false;
#else
- return dialog_open_file(title, filename);
+ synfig::String prev_path;
+ if(!_preferences.get_value("curr_path",prev_path))
+ prev_path=".";
+
+ Gtk::FileChooserDialog *dialog=new Gtk::FileChooserDialog(title,Gtk::FILE_CHOOSER_ACTION_SAVE);
+ dialog->set_current_folder(prev_path);
+ dialog->add_button(Gtk::StockID("gtk-ok"),GTK_RESPONSE_ACCEPT);
+ dialog->add_button(Gtk::StockID("gtk-cancel"),GTK_RESPONSE_CANCEL);
+ if(!filename.empty())
+ dialog->set_filename(filename);
+ if(dialog->run()==GTK_RESPONSE_ACCEPT) {
+ filename=dialog->get_filename();
+ delete dialog;
+ return true;
+ }
+ delete dialog;
+ return false;
+// return dialog_open_file(title, filename);
#endif
}
bool
App::open_as(std::string filename,std::string as)
{
+#ifdef WIN32
+ char long_name[1024];
+ if(GetLongPathName(as.c_str(),long_name,sizeof(long_name)));
+ as=long_name;
+#endif
+
try
{
OneMoment one_moment;