#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
/* === M A C R O S ========================================================= */
+#ifndef SYNFIG_USER_APP_DIR
+#ifdef __APPLE__
+#define SYNFIG_USER_APP_DIR "Library/Synfig"
+#else
+#define SYNFIG_USER_APP_DIR "Synfig"
+#endif
+#endif
+
#ifndef DPM2DPI
#define DPM2DPI(x) (float(x)/39.3700787402f)
#define DPI2DPM(x) (float(x)*39.3700787402f)
}
};
-static Preferences _preferences;
+static ::Preferences _preferences;
void
init_ui_manager()
menus_action_group->add( Gtk::Action::create("menu-view", "_View") );
menus_action_group->add( Gtk::Action::create("menu-canvas", "_Canvas") );
menus_action_group->add( Gtk::Action::create("menu-layer", "_Layer") );
- menus_action_group->add( Gtk::Action::create("menu-duck-mask", "Mask Ducks") );
+ menus_action_group->add( Gtk::Action::create("menu-duck-mask", "Show/Hide Ducks") );
menus_action_group->add( Gtk::Action::create("menu-preview-quality", "Preview Quality") );
menus_action_group->add( Gtk::Action::create("menu-layer-new", "New Layer") );
menus_action_group->add( Gtk::Action::create("menu-keyframe", "Keyframe") );
DEFINE_ACTION("unselect-all-layers", _("Unselect All Layers"));
DEFINE_ACTION("properties", _("Properties"));
- DEFINE_ACTION("mask-position-ducks", _("Mask Position Ducks"));
- DEFINE_ACTION("mask-vertex-ducks", _("Mask Vertex Ducks"));
- DEFINE_ACTION("mask-tangent-ducks", _("Mask Tangent Ducks"));
- DEFINE_ACTION("mask-radius-ducks", _("Mask Radius Ducks"));
- DEFINE_ACTION("mask-width-ducks", _("Mask Width Ducks"));
- DEFINE_ACTION("mask-angle-ducks", _("Mask Angle Ducks"));
+ DEFINE_ACTION("mask-position-ducks", _("Show Position Ducks"));
+ DEFINE_ACTION("mask-vertex-ducks", _("Show Vertex Ducks"));
+ DEFINE_ACTION("mask-tangent-ducks", _("Show Tangent Ducks"));
+ DEFINE_ACTION("mask-radius-ducks", _("Show Radius Ducks"));
+ DEFINE_ACTION("mask-width-ducks", _("Show Width Ducks"));
+ DEFINE_ACTION("mask-angle-ducks", _("Show Angle Ducks"));
DEFINE_ACTION("quality-00", _("Use Parametric Renderer"));
DEFINE_ACTION("quality-01", _("Use Quality Level 1"));
DEFINE_ACTION("quality-02", _("Use Quality Level 2"));
String
App::get_user_app_directory()
{
-#ifdef __APPLE__
- return Glib::build_filename(Glib::get_home_dir(),"Library/Synfig");
-#else
- return Glib::build_filename(Glib::get_home_dir(),"Synfig");
-#endif
+ return Glib::build_filename(Glib::get_home_dir(),SYNFIG_USER_APP_DIR);
}
synfig::String
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;