Prevent compiler warnings about unused parameters.
[synfig.git] / synfig-studio / trunk / src / gtkmm / app.cpp
index e1d1a6e..c45d4c3 100644 (file)
@@ -2,7 +2,7 @@
 /*!    \file app.cpp
 **     \brief writeme
 **
 /*!    \file app.cpp
 **     \brief writeme
 **
-**     $Id: app.cpp,v 1.11 2005/03/24 21:47:28 darco Exp $
+**     $Id$
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
@@ -136,8 +136,10 @@ using namespace studio;
 #ifndef SYNFIG_USER_APP_DIR
 #ifdef __APPLE__
 #define SYNFIG_USER_APP_DIR    "Library/Synfig"
 #ifndef SYNFIG_USER_APP_DIR
 #ifdef __APPLE__
 #define SYNFIG_USER_APP_DIR    "Library/Synfig"
-#else
+#elif defined(_WIN32)
 #define SYNFIG_USER_APP_DIR    "Synfig"
 #define SYNFIG_USER_APP_DIR    "Synfig"
+#else
+#define SYNFIG_USER_APP_DIR    ".synfig"
 #endif
 #endif
 
 #endif
 #endif
 
@@ -277,11 +279,11 @@ public:
                );
                Gtk::Label label(message);
                label.show();
                );
                Gtk::Label label(message);
                label.show();
-               
+
                dialog.get_vbox()->pack_start(label);
                dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES);
                dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO);
                dialog.get_vbox()->pack_start(label);
                dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES);
                dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO);
-               
+
                dialog.set_default_response(dflt);
                dialog.show();
                return (Response)dialog.run();
                dialog.set_default_response(dflt);
                dialog.show();
                return (Response)dialog.run();
@@ -295,12 +297,12 @@ public:
                );
                Gtk::Label label(message);
                label.show();
                );
                Gtk::Label label(message);
                label.show();
-               
+
                dialog.get_vbox()->pack_start(label);
                dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES);
                dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO);
                dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL);
                dialog.get_vbox()->pack_start(label);
                dialog.add_button(Gtk::StockID("gtk-yes"),RESPONSE_YES);
                dialog.add_button(Gtk::StockID("gtk-no"),RESPONSE_NO);
                dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL);
-               
+
                dialog.set_default_response(dflt);
                dialog.show();
                return (Response)dialog.run();
                dialog.set_default_response(dflt);
                dialog.show();
                return (Response)dialog.run();
@@ -314,11 +316,11 @@ public:
                );
                Gtk::Label label(message);
                label.show();
                );
                Gtk::Label label(message);
                label.show();
-               
+
                dialog.get_vbox()->pack_start(label);
                dialog.add_button(Gtk::StockID("gtk-ok"),RESPONSE_OK);
                dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL);
                dialog.get_vbox()->pack_start(label);
                dialog.add_button(Gtk::StockID("gtk-ok"),RESPONSE_OK);
                dialog.add_button(Gtk::StockID("gtk-cancel"),RESPONSE_CANCEL);
-               
+
                dialog.set_default_response(dflt);
                dialog.show();
                return (Response)dialog.run();
                dialog.set_default_response(dflt);
                dialog.show();
                return (Response)dialog.run();
@@ -334,17 +336,8 @@ public:
 
        virtual bool
        error(const std::string &err)
 
        virtual bool
        error(const std::string &err)
-       {               
-               Gtk::Dialog dialog(
-                       "Error",                // Title
-                       true,           // Modal
-                       true            // use_separator
-               );
-               Gtk::Label label(err);
-               label.show();
-               
-               dialog.get_vbox()->pack_start(label);
-               dialog.add_button(Gtk::StockID("gtk-ok"),RESPONSE_OK);
+       {
+               Gtk::MessageDialog dialog(err, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
                dialog.show();
                dialog.run();
                return true;
                dialog.show();
                dialog.run();
                return true;
@@ -359,7 +352,7 @@ public:
        }
 
        virtual bool
        }
 
        virtual bool
-       amount_complete(int current, int total)
+       amount_complete(int /*current*/, int /*total*/)
        {
                while(studio::App::events_pending())studio::App::iteration(false);
                return true;
        {
                while(studio::App::events_pending())studio::App::iteration(false);
                return true;
@@ -400,11 +393,11 @@ int v_unwind_key(V_KeyUnwound* unwound, const char* key)
        int i;
        unwound->element.serial=0;
        unwound->element.checksum=0;
        int i;
        unwound->element.serial=0;
        unwound->element.checksum=0;
-       
+
        for(i=0;i<16;i++)
        {
                U8 data;
        for(i=0;i<16;i++)
        {
                U8 data;
-               
+
                switch(key[i])
                {
                        case '0': data=0; break;
                switch(key[i])
                {
                        case '0': data=0; break;
@@ -437,13 +430,13 @@ int v_key_check(const char* key, U32* serial, U32 appid)
        V_KeyUnwound unwound_key;
        U32 appid_mask_a=hash_U32(appid);
        U32 appid_mask_b=hash_U32(appid_mask_a);
        V_KeyUnwound unwound_key;
        U32 appid_mask_a=hash_U32(appid);
        U32 appid_mask_b=hash_U32(appid_mask_a);
-       
+
        if(!v_unwind_key(&unwound_key, key))
        {
                // Invalid characters in key
                return 0;
        }
        if(!v_unwind_key(&unwound_key, key))
        {
                // Invalid characters in key
                return 0;
        }
-       
+
 
        // Undo obfuscation pass
        {
 
        // Undo obfuscation pass
        {
@@ -455,17 +448,25 @@ int v_key_check(const char* key, U32* serial, U32 appid)
                        unwound_key.raw[endian_fix(i)]^=(next>>24);
                }
        }
                        unwound_key.raw[endian_fix(i)]^=(next>>24);
                }
        }
-       
+
        unwound_key.element.serial^=appid_mask_a;
        unwound_key.element.checksum^=appid_mask_b;
 
        *serial=unwound_key.element.serial;
        unwound_key.element.serial^=appid_mask_a;
        unwound_key.element.checksum^=appid_mask_b;
 
        *serial=unwound_key.element.serial;
-       
+
        return unwound_key.element.checksum==hash_U32(unwound_key.element.serial);
 }
 
 
        return unwound_key.element.checksum==hash_U32(unwound_key.element.serial);
 }
 
 
+#ifdef _WIN32
+# ifdef LICENSE_KEY_REQUIRED
 int check_license(String basedir)
 int check_license(String basedir)
+# else
+int check_license(String /*basedir*/)
+# endif
+#else
+int check_license(String /*basedir*/)
+#endif
 {
 #ifdef LICENSE_KEY_REQUIRED
        String key;
 {
 #ifdef LICENSE_KEY_REQUIRED
        String key;
@@ -475,8 +476,8 @@ int check_license(String basedir)
        license_file="/usr/local/etc/.synfiglicense";
 #else
        license_file=basedir+"\\etc\\.synfiglicense";
        license_file="/usr/local/etc/.synfiglicense";
 #else
        license_file=basedir+"\\etc\\.synfiglicense";
-#endif         
-       
+#endif
+
        try {
                key=Glib::file_get_contents(license_file);
        } catch (Glib::FileError) { }
        try {
                key=Glib::file_get_contents(license_file);
        } catch (Glib::FileError) { }
@@ -486,7 +487,7 @@ int check_license(String basedir)
                while(!v_key_check(key.c_str(),&serial,0xdeadbeef))
                {
                        key.clear();
                while(!v_key_check(key.c_str(),&serial,0xdeadbeef))
                {
                        key.clear();
-                       
+
                        if(!App::dialog_entry(
                                _("Synfig Studio Authentication"),
                                _("Please enter your license key below. You will not\nbe able to use this software without a valid license key."),
                        if(!App::dialog_entry(
                                _("Synfig Studio Authentication"),
                                _("Please enter your license key below. You will not\nbe able to use this software without a valid license key."),
@@ -494,7 +495,7 @@ int check_license(String basedir)
                        ))
                                throw String("No License");
                }
                        ))
                                throw String("No License");
                }
-               
+
                FILE* file=fopen(license_file.c_str(),"w");
                if(file)
                {
                FILE* file=fopen(license_file.c_str(),"w");
                if(file)
                {
@@ -508,7 +509,7 @@ int check_license(String basedir)
        return serial;
 #else
        return 1;
        return serial;
 #else
        return 1;
-#endif 
+#endif
 }
 
 /*
 }
 
 /*
@@ -541,7 +542,7 @@ studio::add_action_group_to_top(Glib::RefPtr<studio::UIManager> ui_manager, Glib
        DEBUGPOINT();
        std::list<Glib::RefPtr<Gtk::ActionGroup> > prev_groups(ui_manager->get_action_groups());
        std::list<Glib::RefPtr<Gtk::ActionGroup> >::reverse_iterator iter;
        DEBUGPOINT();
        std::list<Glib::RefPtr<Gtk::ActionGroup> > prev_groups(ui_manager->get_action_groups());
        std::list<Glib::RefPtr<Gtk::ActionGroup> >::reverse_iterator iter;
-       
+
        DEBUGPOINT();
        for(iter=prev_groups.rbegin();iter!=prev_groups.rend();++iter)
        {
        DEBUGPOINT();
        for(iter=prev_groups.rbegin();iter!=prev_groups.rend();++iter)
        {
@@ -554,7 +555,7 @@ studio::add_action_group_to_top(Glib::RefPtr<studio::UIManager> ui_manager, Glib
        }
        DEBUGPOINT();
        ui_manager->insert_action_group(group,0);
        }
        DEBUGPOINT();
        ui_manager->insert_action_group(group,0);
-       
+
        DEBUGPOINT();
        for(;!prev_groups.empty();prev_groups.pop_front())
        {
        DEBUGPOINT();
        for(;!prev_groups.empty();prev_groups.pop_front())
        {
@@ -604,16 +605,16 @@ public:
                        value=strprintf("%i",App::auto_recover->get_timeout());
                        return true;
                }
                        value=strprintf("%i",App::auto_recover->get_timeout());
                        return true;
                }
-               
+
                return synfigapp::Settings::get_value(key,value);
        }
                return synfigapp::Settings::get_value(key,value);
        }
-       
+
        virtual bool set_value(const synfig::String& key,const synfig::String& value)
        {
                if(key=="gamma")
                {
                        float r,g,b,blk;
        virtual bool set_value(const synfig::String& key,const synfig::String& value)
        {
                if(key=="gamma")
                {
                        float r,g,b,blk;
-                       
+
                        strscanf(value,"%f %f %f %f",
                                &r,
                                &g,
                        strscanf(value,"%f %f %f %f",
                                &r,
                                &g,
@@ -622,7 +623,7 @@ public:
                        );
 
                        App::gamma.set_all(r,g,b,blk);
                        );
 
                        App::gamma.set_all(r,g,b,blk);
-                       
+
                        return true;
                }
                if(key=="time_format")
                        return true;
                }
                if(key=="time_format")
@@ -654,10 +655,10 @@ public:
                        App::distance_system=Distance::ident_system(value);;
                        return true;
                }
                        App::distance_system=Distance::ident_system(value);;
                        return true;
                }
-               
+
                return synfigapp::Settings::set_value(key,value);
        }
                return synfigapp::Settings::set_value(key,value);
        }
-       
+
        virtual KeyList get_key_list()const
        {
                KeyList ret(synfigapp::Settings::get_key_list());
        virtual KeyList get_key_list()const
        {
                KeyList ret(synfigapp::Settings::get_key_list());
@@ -681,7 +682,7 @@ init_ui_manager()
        Glib::RefPtr<Gtk::ActionGroup> toolbox_action_group = Gtk::ActionGroup::create("toolbox");
 
        Glib::RefPtr<Gtk::ActionGroup> actions_action_group = Gtk::ActionGroup::create();
        Glib::RefPtr<Gtk::ActionGroup> toolbox_action_group = Gtk::ActionGroup::create("toolbox");
 
        Glib::RefPtr<Gtk::ActionGroup> actions_action_group = Gtk::ActionGroup::create();
-       
+
        menus_action_group->add( Gtk::Action::create("menu-file", "_File") );
        menus_action_group->add( Gtk::Action::create("menu-edit", "_Edit") );
        menus_action_group->add( Gtk::Action::create("menu-view", "_View") );
        menus_action_group->add( Gtk::Action::create("menu-file", "_File") );
        menus_action_group->add( Gtk::Action::create("menu-edit", "_Edit") );
        menus_action_group->add( Gtk::Action::create("menu-view", "_View") );
@@ -705,7 +706,7 @@ init_ui_manager()
                        iter->second.local_name,iter->second.local_name
                ));
        }
                        iter->second.local_name,iter->second.local_name
                ));
        }
-       
+
 #define DEFINE_ACTION(x,stock) { Glib::RefPtr<Gtk::Action> action( Gtk::Action::create(x, stock) ); /*action->set_sensitive(false);*/ actions_action_group->add(action); }
 #define DEFINE_ACTION2(x,stock,label) { Glib::RefPtr<Gtk::Action> action( Gtk::Action::create(x, stock,label,label) ); /*action->set_sensitive(false);*/ actions_action_group->add(action); }
 #define DEFINE_ACTION_SIG(group,x,stock,sig) { Glib::RefPtr<Gtk::Action> action( Gtk::Action::create(x, stock) ); /*action->set_sensitive(false);*/ group->add(action,sig); }
 #define DEFINE_ACTION(x,stock) { Glib::RefPtr<Gtk::Action> action( Gtk::Action::create(x, stock) ); /*action->set_sensitive(false);*/ actions_action_group->add(action); }
 #define DEFINE_ACTION2(x,stock,label) { Glib::RefPtr<Gtk::Action> action( Gtk::Action::create(x, stock,label,label) ); /*action->set_sensitive(false);*/ actions_action_group->add(action); }
 #define DEFINE_ACTION_SIG(group,x,stock,sig) { Glib::RefPtr<Gtk::Action> action( Gtk::Action::create(x, stock) ); /*action->set_sensitive(false);*/ group->add(action,sig); }
@@ -791,11 +792,11 @@ init_ui_manager()
 // Set up synfigapp actions
        /*{
                synfigapp::Action::Book::iterator iter;
 // Set up synfigapp actions
        /*{
                synfigapp::Action::Book::iterator iter;
-       
+
                for(iter=synfigapp::Action::book().begin();iter!=synfigapp::Action::book().end();++iter)
                {
                        Gtk::StockID stock_id;
                for(iter=synfigapp::Action::book().begin();iter!=synfigapp::Action::book().end();++iter)
                {
                        Gtk::StockID stock_id;
-                       
+
                        if(!(iter->second.category&synfigapp::Action::CATEGORY_HIDDEN))
                        {
                                //Gtk::Image* image(manage(new Gtk::Image()));
                        if(!(iter->second.category&synfigapp::Action::CATEGORY_HIDDEN))
                        {
                                //Gtk::Image* image(manage(new Gtk::Image()));
@@ -809,7 +810,7 @@ init_ui_manager()
                                //else if(iter->second.task=="duplicate")       stock_id=Gtk::Stock::COPY;
                                else if(iter->second.task=="remove")    stock_id=Gtk::Stock::DELETE;
                                else                                                                    stock_id=Gtk::StockID("synfig-"+iter->second.task);
                                //else if(iter->second.task=="duplicate")       stock_id=Gtk::Stock::COPY;
                                else if(iter->second.task=="remove")    stock_id=Gtk::Stock::DELETE;
                                else                                                                    stock_id=Gtk::StockID("synfig-"+iter->second.task);
-       
+
                                actions_action_group->add(Gtk::Action::create(
                                        "action-"+iter->second.name,
                                        stock_id,
                                actions_action_group->add(Gtk::Action::create(
                                        "action-"+iter->second.name,
                                        stock_id,
@@ -913,8 +914,6 @@ init_ui_manager()
 "      </menu>"
 "      <menu action='menu-canvas'>"
 "              <menuitem action='canvas-new'/>"
 "      </menu>"
 "      <menu action='menu-canvas'>"
 "              <menuitem action='canvas-new'/>"
-       "       <menuitem action='amount-inc'/>"
-       "       <menuitem action='amount-dec'/>"
 "      </menu>"
 "      <menu name='menu-state' action='menu-state'>"
 "      </menu>"
 "      </menu>"
 "      <menu name='menu-state' action='menu-state'>"
 "      </menu>"
@@ -927,6 +926,8 @@ init_ui_manager()
 //"            <menuitem action='paste'/>"
 //"            <separator name='bleh06'/>"
 "              <menu action='menu-layer-new'></menu>"
 //"            <menuitem action='paste'/>"
 //"            <separator name='bleh06'/>"
 "              <menu action='menu-layer-new'></menu>"
+"              <menuitem action='amount-inc'/>"
+"              <menuitem action='amount-dec'/>"
 "      </menu>"
 "      <menu action='menu-keyframe'>"
 "              <menuitem action='keyframe-properties'/>"
 "      </menu>"
 "      <menu action='menu-keyframe'>"
 "              <menuitem action='keyframe-properties'/>"
@@ -971,8 +972,18 @@ init_ui_manager()
        }
 
        // Add default keyboard accelerators
        }
 
        // Add default keyboard accelerators
-#define ACCEL(path,accel)      { Gtk::AccelKey accel_key(accel,path); Gtk::AccelMap::add_entry(accel_key.get_path(), accel_key.get_key(),accel_key.get_mod()); }
-#define ACCEL2(accel)  { Gtk::AccelKey accel_key(accel); Gtk::AccelMap::add_entry(accel_key.get_path(), accel_key.get_key(),accel_key.get_mod()); }
+#define ACCEL(path,accel)                                              \
+       {                                                                                       \
+               Gtk::AccelKey accel_key(accel,path);    \
+               Gtk::AccelMap::add_entry(accel_key.get_path(), accel_key.get_key(), accel_key.get_mod());       \
+       }
+
+#define ACCEL2(accel)                                                  \
+       {                                                                                       \
+               Gtk::AccelKey accel_key(accel);                 \
+               Gtk::AccelMap::add_entry(accel_key.get_path(), accel_key.get_key(), accel_key.get_mod());       \
+       }
+
        ACCEL("<Actions>//select-all-ducks","<Control>a");
        ACCEL("<Actions>//unselect-all-layers","<Control>d");
        ACCEL("<Actions>//render","F9");
        ACCEL("<Actions>//select-all-ducks","<Control>a");
        ACCEL("<Actions>//unselect-all-layers","<Control>d");
        ACCEL("<Actions>//render","F9");
@@ -991,7 +1002,6 @@ init_ui_manager()
        ACCEL("<Actions>//mask-width-ducks", "<Mod1>5");
        ACCEL("<Actions>//mask-angle-ducks", "<Mod1>6");
 
        ACCEL("<Actions>//mask-width-ducks", "<Mod1>5");
        ACCEL("<Actions>//mask-angle-ducks", "<Mod1>6");
 
-
        ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,"<Actions>//action-layer_raise"));
        ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,"<Actions>//action-layer_lower"));
 
        ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,"<Actions>//action-layer_raise"));
        ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,"<Actions>//action-layer_lower"));
 
@@ -1032,16 +1042,29 @@ init_ui_manager()
        ACCEL2(Gtk::AccelKey('o',Gdk::CONTROL_MASK,"<Actions>//toggle-onion-skin"));
        ACCEL("<Actions>//seek-begin","Home");
        ACCEL("<Actions>//seek-end","End");
        ACCEL2(Gtk::AccelKey('o',Gdk::CONTROL_MASK,"<Actions>//toggle-onion-skin"));
        ACCEL("<Actions>//seek-begin","Home");
        ACCEL("<Actions>//seek-end","End");
-       ACCEL("<Actions>//state-normal","<Mod1>a");
-       ACCEL("<Actions>//state-rotate","<Mod1>s");
-       ACCEL("<Actions>//state-scale","<Mod1>d");
-       ACCEL("<Actions>//state-bline","<Mod1>b");
-       ACCEL("<Actions>//state-fill","<Mod1>f");
-       ACCEL("<Actions>//state-eyedrop","<Mod1>e");
-       ACCEL("<Actions>//state-gradient","<Mod1>g");
-       ACCEL("<Actions>//state-zoom","<Mod1>z");
+
+       ACCEL("<Actions>//state-normal",      "<Mod1>a");
+       ACCEL("<Actions>//state-smooth_move", "<Mod1>v");
+       ACCEL("<Actions>//state-scale",       "<Mod1>d");
+       ACCEL("<Actions>//state-rotate",      "<Mod1>s");
+
+       ACCEL("<Actions>//state-bline",       "<Mod1>b");
+       ACCEL("<Actions>//state-circle",      "<Mod1>c");
+       ACCEL("<Actions>//state-rectangle",   "<Mod1>r");
+       ACCEL("<Actions>//state-gradient",    "<Mod1>g");
+
+       ACCEL("<Actions>//state-eyedrop",     "<Mod1>e");
+       ACCEL("<Actions>//state-fill",        "<Mod1>f");
+       ACCEL("<Actions>//state-zoom",        "<Mod1>z");
+       ACCEL("<Actions>//state-polygon",     "<Mod1>p");
+
+       ACCEL("<Actions>//state-draw",        "<Mod1>w");
+       ACCEL("<Actions>//state-sketch",      "<Mod1>k");
+       ACCEL("<Actions>//state-width",       "<Mod1>t");
+       ACCEL("<Actions>//state-mirror",      "<Mod1>m");
+
        ACCEL("<Actions>//canvas-zoom-fit","<Control><Shift>z");
        ACCEL("<Actions>//canvas-zoom-fit","<Control><Shift>z");
-       
+
 #undef ACCEL
 }
 
 #undef ACCEL
 }
 
@@ -1056,11 +1079,11 @@ App::App(int *argc, char ***argv):
        IconControler(etl::dirname((*argv)[0]))
 {
        app_base_path_=etl::dirname(etl::dirname((*argv)[0]));
        IconControler(etl::dirname((*argv)[0]))
 {
        app_base_path_=etl::dirname(etl::dirname((*argv)[0]));
-       
+
        int serial_;
        serial_=check_license(app_base_path_);
        int serial_;
        serial_=check_license(app_base_path_);
-       
-       
+
+
        ui_interface_=new GlobalUIInterface();
 
        gdk_rgb_init();
        ui_interface_=new GlobalUIInterface();
 
        gdk_rgb_init();
@@ -1068,7 +1091,7 @@ App::App(int *argc, char ***argv):
        Glib::thread_init();
 
        distance_system=Distance::SYSTEM_UNITS;
        Glib::thread_init();
 
        distance_system=Distance::SYSTEM_UNITS;
-               
+
        if(mkdir(get_user_app_directory().c_str(),ACCESSPERMS)<0)
        {
                if(errno!=EEXIST)
        if(mkdir(get_user_app_directory().c_str(),ACCESSPERMS)<0)
        {
                if(errno!=EEXIST)
@@ -1078,21 +1101,21 @@ App::App(int *argc, char ***argv):
        {
                synfig::info("Created directory \"%s\"",get_user_app_directory().c_str());
        }
        {
                synfig::info("Created directory \"%s\"",get_user_app_directory().c_str());
        }
-       
-       
+
+
        ipc=new IPC();
        ipc=new IPC();
-       
+
        try
        {
                if(!SYNFIG_CHECK_VERSION())
                {
                cerr<<"FATAL: Synfig Version Mismatch"<<endl;
        try
        {
                if(!SYNFIG_CHECK_VERSION())
                {
                cerr<<"FATAL: Synfig Version Mismatch"<<endl;
-               dialog_error_blocking("SYNFIG Studio",
-                       "This copy of SYNFIG Studio was compiled against a\n"
+               dialog_error_blocking("Synfig Studio",
+                       "This copy of Synfig Studio was compiled against a\n"
                        "different version of libsynfig than what is currently\n"
                        "installed. Synfig Studio will now abort. Try downloading\n"
                        "different version of libsynfig than what is currently\n"
                        "installed. Synfig Studio will now abort. Try downloading\n"
-                       "the latest version from the SYNFIG Development Website at\n"
-                       "http://dev.synfig.com/ "
+                       "the latest version from the Synfig website at\n"
+                       "http://www.synfig.com/ "
                );
                throw 40;
                }
                );
                throw 40;
                }
@@ -1100,16 +1123,16 @@ App::App(int *argc, char ***argv):
        catch(synfig::SoftwareExpired)
        {
                cerr<<"FATAL: Software Expired"<<endl;
        catch(synfig::SoftwareExpired)
        {
                cerr<<"FATAL: Software Expired"<<endl;
-               dialog_error_blocking("SYNFIG Studio",
-                       "This copy of SYNFIG Studio has expired.\n"
+               dialog_error_blocking("Synfig Studio",
+                       "This copy of Synfig Studio has expired.\n"
                        "Please erase this copy, or download and\n"
                        "Please erase this copy, or download and\n"
-                       "install the latest copy from the SYNFIG\n"
-                       "Development Website at http://dev.synfig.com/ ."
+                       "install the latest copy from the Synfig\n"
+                       "website at http://www.synfig.com/ ."
                );
                throw 39;
        }
                );
                throw 39;
        }
-       Glib::set_application_name(_("SYNFIG Studio"));
-       
+       Glib::set_application_name(_("Synfig Studio"));
+
        About about_window;
        about_window.set_can_self_destruct(false);
        about_window.show();
        About about_window;
        about_window.set_can_self_destruct(false);
        about_window.show();
@@ -1117,7 +1140,7 @@ App::App(int *argc, char ***argv):
        shutdown_in_progress=false;
        SuperCallback synfig_init_cb(about_window.get_callback(),0,9000,10000);
        SuperCallback studio_init_cb(about_window.get_callback(),9000,10000,10000);
        shutdown_in_progress=false;
        SuperCallback synfig_init_cb(about_window.get_callback(),0,9000,10000);
        SuperCallback studio_init_cb(about_window.get_callback(),9000,10000,10000);
-       
+
        // Initialize the Synfig library
        try { synfigapp_main=etl::smart_ptr<synfigapp::Main>(new synfigapp::Main(etl::dirname((*argv)[0]),&synfig_init_cb)); }
        catch(...)
        // Initialize the Synfig library
        try { synfigapp_main=etl::smart_ptr<synfigapp::Main>(new synfigapp::Main(etl::dirname((*argv)[0]),&synfig_init_cb)); }
        catch(...)
@@ -1128,13 +1151,13 @@ App::App(int *argc, char ***argv):
 
        // add the preferences to the settings
        synfigapp::Main::settings().add_domain(&_preferences,"pref");
 
        // add the preferences to the settings
        synfigapp::Main::settings().add_domain(&_preferences,"pref");
-       
+
        try
        {
                studio_init_cb.task("Init UI Manager...");
                App::ui_manager_=studio::UIManager::create();
                init_ui_manager();
        try
        {
                studio_init_cb.task("Init UI Manager...");
                App::ui_manager_=studio::UIManager::create();
                init_ui_manager();
-               
+
                studio_init_cb.task("Init Dock Manager...");
                dock_manager=new studio::DockManager();
 
                studio_init_cb.task("Init Dock Manager...");
                dock_manager=new studio::DockManager();
 
@@ -1175,11 +1198,11 @@ App::App(int *argc, char ***argv):
                studio_init_cb.task("Init Children...");
                dock_children=new studio::Dock_Children();
                dock_manager->register_dockable(*dock_children);
                studio_init_cb.task("Init Children...");
                dock_children=new studio::Dock_Children();
                dock_manager->register_dockable(*dock_children);
-               
+
                studio_init_cb.task("Init Info...");
                dock_info = new studio::Dock_Info();
                dock_manager->register_dockable(*dock_info);
                studio_init_cb.task("Init Info...");
                dock_info = new studio::Dock_Info();
                dock_manager->register_dockable(*dock_info);
-               
+
                studio_init_cb.task("Init Navigator...");
                dock_navigator = new studio::Dock_Navigator();
                dock_manager->register_dockable(*dock_navigator);
                studio_init_cb.task("Init Navigator...");
                dock_navigator = new studio::Dock_Navigator();
                dock_manager->register_dockable(*dock_navigator);
@@ -1195,8 +1218,8 @@ App::App(int *argc, char ***argv):
                studio_init_cb.task("Init Layer Groups...");
                dock_layer_groups = new studio::Dock_LayerGroups();
                dock_manager->register_dockable(*dock_layer_groups);
                studio_init_cb.task("Init Layer Groups...");
                dock_layer_groups = new studio::Dock_LayerGroups();
                dock_manager->register_dockable(*dock_layer_groups);
-               
-               
+
+
                studio_init_cb.task("Init Color Dialog...");
                dialog_color=new studio::Dialog_Color();
 
                studio_init_cb.task("Init Color Dialog...");
                dialog_color=new studio::Dialog_Color();
 
@@ -1213,26 +1236,27 @@ App::App(int *argc, char ***argv):
                state_manager->add_state(&state_rotate);
 
                state_manager->add_state(&state_bline);
                state_manager->add_state(&state_rotate);
 
                state_manager->add_state(&state_bline);
-               
-               
+
+
                state_manager->add_state(&state_circle);
                state_manager->add_state(&state_rectangle);
 
                state_manager->add_state(&state_gradient);
                state_manager->add_state(&state_eyedrop);
                state_manager->add_state(&state_fill);
                state_manager->add_state(&state_circle);
                state_manager->add_state(&state_rectangle);
 
                state_manager->add_state(&state_gradient);
                state_manager->add_state(&state_eyedrop);
                state_manager->add_state(&state_fill);
-               
+
                state_manager->add_state(&state_zoom);
 
                state_manager->add_state(&state_zoom);
 
-               // Disabled this tool because it should be
-               // considered deprecated. Use the bline tool instead.
-               if(getenv("SYNFIG_ENABLE_POLYGON")) state_manager->add_state(&state_polygon);
-       
-               // These tools are disabled by default for now,
-               // because they tend to confuse users.
-               if(getenv("SYNFIG_ENABLE_DRAW"  )) state_manager->add_state(&state_draw);
-               if(getenv("SYNFIG_ENABLE_SKETCH")) state_manager->add_state(&state_sketch);
-               if(getenv("SYNFIG_ENABLE_WIDTH" )) state_manager->add_state(&state_width);
+               // Enabled - it's useful to be able to work with polygons without tangent ducks getting in the way.
+               // I know we can switch tangent ducks off, but why not allow this kind of layer as well?
+               if(!getenv("SYNFIG_DISABLE_POLYGON")) state_manager->add_state(&state_polygon);
+
+               // Enabled for now.  Let's see whether they're good enough yet.
+               if(!getenv("SYNFIG_DISABLE_DRAW"   )) state_manager->add_state(&state_draw);
+               if(!getenv("SYNFIG_DISABLE_SKETCH" )) state_manager->add_state(&state_sketch);
+
+               // Disabled by default - it doesn't work properly?
+               if(getenv("SYNFIG_ENABLE_WIDTH"    )) state_manager->add_state(&state_width);
 
                studio_init_cb.task("Init ModPalette...");
                module_list_.push_back(new ModPalette()); module_list_.back()->start();
 
                studio_init_cb.task("Init ModPalette...");
                module_list_.push_back(new ModPalette()); module_list_.back()->start();
@@ -1243,9 +1267,11 @@ App::App(int *argc, char ***argv):
 
                studio_init_cb.task("Init Setup Dialog...");
                dialog_setup=new studio::Dialog_Setup();
 
                studio_init_cb.task("Init Setup Dialog...");
                dialog_setup=new studio::Dialog_Setup();
-               
+
                studio_init_cb.task("Init Input Dialog...");
                dialog_input=new Gtk::InputDialog();
                studio_init_cb.task("Init Input Dialog...");
                dialog_input=new Gtk::InputDialog();
+               dialog_input->get_close_button()->signal_clicked().connect( sigc::mem_fun( *dialog_input, &Gtk::InputDialog::hide ) );
+               dialog_input->get_save_button()->signal_clicked().connect( sigc::ptr_fun(studio::App::dialog_not_implemented) );
 
                studio_init_cb.task("Init auto recovery...");
                auto_recover=new AutoRecover();
 
                studio_init_cb.task("Init auto recovery...");
                auto_recover=new AutoRecover();
@@ -1254,16 +1280,16 @@ App::App(int *argc, char ***argv):
                studio_init_cb.task("Loading Settings...");
                load_settings();
                studio_init_cb.task("Checking auto-recover...");
                studio_init_cb.task("Loading Settings...");
                load_settings();
                studio_init_cb.task("Checking auto-recover...");
-       
+
                studio_init_cb.amount_complete(9900,10000);
                studio_init_cb.amount_complete(9900,10000);
-       
+
                if(auto_recover->recovery_needed())
                {
                        about_window.hide();
                        if(
                                get_ui_interface()->yes_no(
                                        "Auto Recovery",
                if(auto_recover->recovery_needed())
                {
                        about_window.hide();
                        if(
                                get_ui_interface()->yes_no(
                                        "Auto Recovery",
-                                       "SYNFIG Studio seems to have crashed\n"
+                                       "Synfig Studio seems to have crashed\n"
                                        "before you could save all your files.\n"
                                        "Would you like to re-open those files\n"
                                        "and recover your unsaved changes?"
                                        "before you could save all your files.\n"
                                        "Would you like to re-open those files\n"
                                        "and recover your unsaved changes?"
@@ -1276,7 +1302,7 @@ App::App(int *argc, char ***argv):
                                }
                                else
                                get_ui_interface()->error(
                                }
                                else
                                get_ui_interface()->error(
-                                       _("SYNFIG Studio has attempted to recover\n"
+                                       _("Synfig Studio has attempted to recover\n"
                                        "from a previous crash. The files that it has\n"
                                        "recovered are NOT YET SAVED. It would be a good\n"
                                        "idea to review them and save them now.")
                                        "from a previous crash. The files that it has\n"
                                        "recovered are NOT YET SAVED. It would be a good\n"
                                        "idea to review them and save them now.")
@@ -1284,7 +1310,7 @@ App::App(int *argc, char ***argv):
                        }
                        about_window.show();
                }
                        }
                        about_window.show();
                }
-               
+
                // Look for any files given on the command line,
                // and load them if found.
                for(;*argc>=1;(*argc)--)
                // Look for any files given on the command line,
                // and load them if found.
                for(;*argc>=1;(*argc)--)
@@ -1295,10 +1321,10 @@ App::App(int *argc, char ***argv):
                                open((*argv)[*argc]);
                                about_window.show();
                        }
                                open((*argv)[*argc]);
                                about_window.show();
                        }
-               
+
                studio_init_cb.task("Done.");
                studio_init_cb.amount_complete(10000,10000);
                studio_init_cb.task("Done.");
                studio_init_cb.amount_complete(10000,10000);
-       
+
                toolbox->present();
        }
        catch(...)
                toolbox->present();
        }
        catch(...)
@@ -1316,27 +1342,27 @@ App::~App()
        save_settings();
 
        synfigapp::Main::settings().remove_domain("pref");
        save_settings();
 
        synfigapp::Main::settings().remove_domain("pref");
-       
+
        selected_instance=0;
 
        // Unload all of the modules
        for(;!module_list_.empty();module_list_.pop_back());
        selected_instance=0;
 
        // Unload all of the modules
        for(;!module_list_.empty();module_list_.pop_back());
-       
+
        delete state_manager;
 
        delete ipc;
        delete state_manager;
 
        delete ipc;
-       
+
        delete auto_recover;
 
        toolbox->hide();
 
        delete auto_recover;
 
        toolbox->hide();
 
-//     studio::App::iteration(false); 
-       
+//     studio::App::iteration(false);
+
        delete toolbox;
        delete toolbox;
-       
-//     studio::App::iteration(false); 
 
 
-//     studio::App::iteration(false); 
+//     studio::App::iteration(false);
+
+//     studio::App::iteration(false);
 
        delete dialog_setup;
 
 
        delete dialog_setup;
 
@@ -1371,18 +1397,18 @@ App::add_recent_file(const std::string &file_name)
        std::string filename(file_name);
 
        assert(!filename.empty());
        std::string filename(file_name);
 
        assert(!filename.empty());
-       
+
        if(filename.empty())
                return;
        if(filename.empty())
                return;
-       
+
        // Toss out any "hidden" files
        if(basename(filename)[0]=='.')
                return;
        // Toss out any "hidden" files
        if(basename(filename)[0]=='.')
                return;
-               
+
        // If we aren't an absolute path, turn outselves into one
        if(!is_absolute_path(filename))
                filename=absolute_path(filename);
        // If we aren't an absolute path, turn outselves into one
        if(!is_absolute_path(filename))
                filename=absolute_path(filename);
-       
+
        list<string>::iterator iter;
        // Check to see if the file is already on the list.
        // If it is, then remove it from the list
        list<string>::iterator iter;
        // Check to see if the file is already on the list.
        // If it is, then remove it from the list
@@ -1393,16 +1419,16 @@ App::add_recent_file(const std::string &file_name)
                        break;
                }
 
                        break;
                }
 
-       
+
        // Push the filename to the front of the list
        recent_files.push_front(filename);
        // Push the filename to the front of the list
        recent_files.push_front(filename);
-               
+
        // Clean out the files at the end of the list.
        while(recent_files.size()>(unsigned)get_max_recent_files())
                recent_files.pop_back();
        // Clean out the files at the end of the list.
        while(recent_files.size()>(unsigned)get_max_recent_files())
                recent_files.pop_back();
-       
+
        signal_recent_files_changed_();
        signal_recent_files_changed_();
-       
+
        return;
 }
 
        return;
 }
 
@@ -1437,22 +1463,22 @@ App::save_settings()
                        std::string filename=get_config_file("recentfiles");
 
                        std::ofstream file(filename.c_str());
                        std::string filename=get_config_file("recentfiles");
 
                        std::ofstream file(filename.c_str());
-               
+
                        if(!file)
                        {
                                synfig::warning("Unable to save %s",filename.c_str());
                                break;
                        }
                        if(!file)
                        {
                                synfig::warning("Unable to save %s",filename.c_str());
                                break;
                        }
-               
+
                        list<string>::reverse_iterator iter;
                        list<string>::reverse_iterator iter;
-       
+
                        for(iter=recent_files.rbegin();iter!=recent_files.rend();iter++)
                                file<<*iter<<endl;
                }while(0);
 
                std::string filename=get_config_file("settings");
                synfigapp::Main::settings().save_to_file(filename);
                        for(iter=recent_files.rbegin();iter!=recent_files.rend();iter++)
                                file<<*iter<<endl;
                }while(0);
 
                std::string filename=get_config_file("settings");
                synfigapp::Main::settings().save_to_file(filename);
-       setlocale(LC_NUMERIC,old_locale);       
+       setlocale(LC_NUMERIC,old_locale);
        }
        catch(...)
        {
        }
        catch(...)
        {
@@ -1476,7 +1502,7 @@ App::load_settings()
                        std::string filename=get_config_file("recentfiles");
 
                        std::ifstream file(filename.c_str());
                        std::string filename=get_config_file("recentfiles");
 
                        std::ifstream file(filename.c_str());
-       
+
                        while(file)
                        {
                                std::string recent_file;
                        while(file)
                        {
                                std::string recent_file;
@@ -1507,7 +1533,7 @@ App::load_settings()
                                synfigapp::Main::settings().set_value("window.toolbox.pos","4 4");
                        }
                }
                                synfigapp::Main::settings().set_value("window.toolbox.pos","4 4");
                        }
                }
-       setlocale(LC_NUMERIC,old_locale);       
+       setlocale(LC_NUMERIC,old_locale);
        }
        catch(...)
        {
        }
        catch(...)
        {
@@ -1527,8 +1553,8 @@ void
 App::quit()
 {
        if(shutdown_in_progress)return;
 App::quit()
 {
        if(shutdown_in_progress)return;
-               
-       
+
+
        get_ui_interface()->task("Quit Request");
        if(Busy::count)
        {
        get_ui_interface()->task("Quit Request");
        if(Busy::count)
        {
@@ -1585,18 +1611,18 @@ App::quit()
                                        return;
                        }
                }
                                        return;
                        }
                }
-*/             
-               
+*/
+
                // This next line causes things to crash for some reason
                // This next line causes things to crash for some reason
-               //(*iter)->close(); 
+               //(*iter)->close();
        }
        }
-       
+
        shutdown_in_progress=true;
 
        instance_list.clear();
 
        while(studio::App::events_pending())studio::App::iteration(false);
        shutdown_in_progress=true;
 
        instance_list.clear();
 
        while(studio::App::events_pending())studio::App::iteration(false);
-               
+
        Gtk::Main::quit();
        auto_recover->normal_shutdown();
 
        Gtk::Main::quit();
        auto_recover->normal_shutdown();
 
@@ -1610,8 +1636,8 @@ App::show_setup()
        dialog_setup->show();
 }
 
        dialog_setup->show();
 }
 
-gint Signal_Open_Ok(GtkWidget *widget, int *val){*val=1;return 0;}
-gint Signal_Open_Cancel(GtkWidget *widget, int *val){*val=2;return 0;}
+gint Signal_Open_Ok(GtkWidget */*widget*/, int *val){*val=1;return 0;}
+gint Signal_Open_Cancel(GtkWidget */*widget*/, int *val){*val=2;return 0;}
 
 //#ifdef WIN32
 //#define USE_WIN32_FILE_DIALOGS 1
 
 //#ifdef WIN32
 //#define USE_WIN32_FILE_DIALOGS 1
@@ -1624,7 +1650,7 @@ static OPENFILENAME ofn={};
 #ifdef WIN32
 #include <gdk/gdkwin32.h>
 #endif
 #ifdef WIN32
 #include <gdk/gdkwin32.h>
 #endif
-       
+
 bool
 App::dialog_open_file(const std::string &title, std::string &filename)
 {
 bool
 App::dialog_open_file(const std::string &title, std::string &filename)
 {
@@ -1634,7 +1660,7 @@ App::dialog_open_file(const std::string &title, std::string &filename)
        GdkWindow *gdkWinPtr=toolbox->get_window()->gobj();
        HINSTANCE hInstance=static_cast<HINSTANCE>(GetModuleHandle(NULL));
        HWND hWnd=static_cast<HWND>(GDK_WINDOW_HWND(gdkWinPtr));
        GdkWindow *gdkWinPtr=toolbox->get_window()->gobj();
        HINSTANCE hInstance=static_cast<HINSTANCE>(GetModuleHandle(NULL));
        HWND hWnd=static_cast<HWND>(GDK_WINDOW_HWND(gdkWinPtr));
-       
+
        ofn.lStructSize=sizeof(OPENFILENAME);
        ofn.hwndOwner = hWnd;
        ofn.hInstance = hInstance;
        ofn.lStructSize=sizeof(OPENFILENAME);
        ofn.hwndOwner = hWnd;
        ofn.hInstance = hInstance;
@@ -1654,31 +1680,31 @@ App::dialog_open_file(const std::string &title, std::string &filename)
 //     ofn.lCustData = 0l;
        ofn.lpfnHook=NULL;
 //     ofn.lpTemplateName=NULL;
 //     ofn.lCustData = 0l;
        ofn.lpfnHook=NULL;
 //     ofn.lpTemplateName=NULL;
-       
+
        CHAR szFilename[MAX_PATH];
        CHAR szTitle[500];
        strcpy(szFilename,filename.c_str());
        strcpy(szTitle,title.c_str());
        CHAR szFilename[MAX_PATH];
        CHAR szTitle[500];
        strcpy(szFilename,filename.c_str());
        strcpy(szTitle,title.c_str());
-       
+
        ofn.lpstrFile=szFilename;
        ofn.lpstrFileTitle=szTitle;
        ofn.lpstrFile=szFilename;
        ofn.lpstrFileTitle=szTitle;
-       
+
        if(GetOpenFileName(&ofn))
        {
                filename=szFilename;
                return true;
        }
        return false;
        if(GetOpenFileName(&ofn))
        {
                filename=szFilename;
                return true;
        }
        return false;
-       
+
 #else
        synfig::String prev_path;
        if(!_preferences.get_value("curr_path",prev_path))
                prev_path=".";
 #else
        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_OPEN);
     dialog->set_current_folder(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);
+    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+    dialog->add_button(Gtk::Stock::OPEN,   Gtk::RESPONSE_ACCEPT);
     if(!filename.empty())
         dialog->set_filename(filename);
     if(dialog->run()==GTK_RESPONSE_ACCEPT) {
     if(!filename.empty())
         dialog->set_filename(filename);
     if(dialog->run()==GTK_RESPONSE_ACCEPT) {
@@ -1689,18 +1715,18 @@ App::dialog_open_file(const std::string &title, std::string &filename)
     delete dialog;
     return false;
     /*
     delete dialog;
     return false;
     /*
-    
+
        GtkWidget *ok;
        GtkWidget *cancel;
        int val=0;
        GtkWidget *ok;
        GtkWidget *cancel;
        int val=0;
-       
+
        GtkWidget *fileselection;
        fileselection = gtk_file_selection_new(title.c_str());
 
        GtkWidget *fileselection;
        fileselection = gtk_file_selection_new(title.c_str());
 
-       
+
        if(basename(filename)==filename)
        {
        if(basename(filename)==filename)
        {
-               gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection),(prev_path+ETL_DIRECTORY_SEPERATOR).c_str());         
+               gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection),(prev_path+ETL_DIRECTORY_SEPERATOR).c_str());
        }
        else
                gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection),dirname(filename).c_str());
        }
        else
                gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection),dirname(filename).c_str());
@@ -1710,15 +1736,15 @@ App::dialog_open_file(const std::string &title, std::string &filename)
        ok=GTK_FILE_SELECTION(fileselection)->ok_button;
        cancel=GTK_FILE_SELECTION(fileselection)->cancel_button;
 
        ok=GTK_FILE_SELECTION(fileselection)->ok_button;
        cancel=GTK_FILE_SELECTION(fileselection)->cancel_button;
 
-       gtk_signal_connect(GTK_OBJECT(ok),"clicked",GTK_SIGNAL_FUNC(Signal_Open_Ok),&val);              
-       gtk_signal_connect(GTK_OBJECT(cancel),"clicked",GTK_SIGNAL_FUNC(Signal_Open_Cancel),&val);              
+       gtk_signal_connect(GTK_OBJECT(ok),"clicked",GTK_SIGNAL_FUNC(Signal_Open_Ok),&val);
+       gtk_signal_connect(GTK_OBJECT(cancel),"clicked",GTK_SIGNAL_FUNC(Signal_Open_Cancel),&val);
 
        gtk_widget_show(fileselection);
 
        while(!val)
 
        gtk_widget_show(fileselection);
 
        while(!val)
-               iteration();            
-       
-       
+               iteration();
+
+
        if(val==1)
        {
                filename=gtk_file_selection_get_filename(GTK_FILE_SELECTION(fileselection));
        if(val==1)
        {
                filename=gtk_file_selection_get_filename(GTK_FILE_SELECTION(fileselection));
@@ -1740,11 +1766,11 @@ App::dialog_save_file(const std::string &title, std::string &filename)
 {
 #ifdef USE_WIN32_FILE_DIALOGS
        static TCHAR szFilter[] = TEXT ("All Files (*.*)\0*.*\0\0") ;
 {
 #ifdef USE_WIN32_FILE_DIALOGS
        static TCHAR szFilter[] = TEXT ("All Files (*.*)\0*.*\0\0") ;
-       
+
        GdkWindow *gdkWinPtr=toolbox->get_window()->gobj();
        HINSTANCE hInstance=static_cast<HINSTANCE>(GetModuleHandle(NULL));
        HWND hWnd=static_cast<HWND>(GDK_WINDOW_HWND(gdkWinPtr));
        GdkWindow *gdkWinPtr=toolbox->get_window()->gobj();
        HINSTANCE hInstance=static_cast<HINSTANCE>(GetModuleHandle(NULL));
        HWND hWnd=static_cast<HWND>(GDK_WINDOW_HWND(gdkWinPtr));
-       
+
        ofn.lStructSize=sizeof(OPENFILENAME);
        ofn.hwndOwner = hWnd;
        ofn.hInstance = hInstance;
        ofn.lStructSize=sizeof(OPENFILENAME);
        ofn.hwndOwner = hWnd;
        ofn.hInstance = hInstance;
@@ -1764,15 +1790,15 @@ App::dialog_save_file(const std::string &title, std::string &filename)
 //     ofn.lCustData = 0l;
        ofn.lpfnHook=NULL;
 //     ofn.lpTemplateName=NULL;
 //     ofn.lCustData = 0l;
        ofn.lpfnHook=NULL;
 //     ofn.lpTemplateName=NULL;
-       
+
        CHAR szFilename[MAX_PATH];
        CHAR szTitle[500];
        strcpy(szFilename,filename.c_str());
        strcpy(szTitle,title.c_str());
        CHAR szFilename[MAX_PATH];
        CHAR szTitle[500];
        strcpy(szFilename,filename.c_str());
        strcpy(szTitle,title.c_str());
-       
+
        ofn.lpstrFile=szFilename;
        ofn.lpstrFileTitle=szTitle;
        ofn.lpstrFile=szFilename;
        ofn.lpstrFileTitle=szTitle;
-       
+
        if(GetSaveFileName(&ofn))
        {
                filename=szFilename;
        if(GetSaveFileName(&ofn))
        {
                filename=szFilename;
@@ -1783,11 +1809,11 @@ App::dialog_save_file(const std::string &title, std::string &filename)
        synfig::String prev_path;
        if(!_preferences.get_value("curr_path",prev_path))
                prev_path=".";
        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);
     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);
+    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+    dialog->add_button(Gtk::Stock::SAVE,   Gtk::RESPONSE_ACCEPT);
     if(!filename.empty())
         dialog->set_filename(filename);
     if(dialog->run()==GTK_RESPONSE_ACCEPT) {
     if(!filename.empty())
         dialog->set_filename(filename);
     if(dialog->run()==GTK_RESPONSE_ACCEPT) {
@@ -1806,11 +1832,11 @@ App::dialog_saveas_file(const std::string &title, std::string &filename)
 {
 #if USE_WIN32_FILE_DIALOGS
        static TCHAR szFilter[] = TEXT ("All Files (*.*)\0*.*\0\0") ;
 {
 #if USE_WIN32_FILE_DIALOGS
        static TCHAR szFilter[] = TEXT ("All Files (*.*)\0*.*\0\0") ;
-       
+
        GdkWindow *gdkWinPtr=toolbox->get_window()->gobj();
        HINSTANCE hInstance=static_cast<HINSTANCE>(GetModuleHandle(NULL));
        HWND hWnd=static_cast<HWND>(GDK_WINDOW_HWND(gdkWinPtr));
        GdkWindow *gdkWinPtr=toolbox->get_window()->gobj();
        HINSTANCE hInstance=static_cast<HINSTANCE>(GetModuleHandle(NULL));
        HWND hWnd=static_cast<HWND>(GDK_WINDOW_HWND(gdkWinPtr));
-       
+
        ofn.lStructSize=sizeof(OPENFILENAME);
        ofn.hwndOwner = hWnd;
        ofn.hInstance = hInstance;
        ofn.lStructSize=sizeof(OPENFILENAME);
        ofn.hwndOwner = hWnd;
        ofn.hInstance = hInstance;
@@ -1830,15 +1856,15 @@ App::dialog_saveas_file(const std::string &title, std::string &filename)
 //     ofn.lCustData = 0l;
        ofn.lpfnHook=NULL;
 //     ofn.lpTemplateName=NULL;
 //     ofn.lCustData = 0l;
        ofn.lpfnHook=NULL;
 //     ofn.lpTemplateName=NULL;
-       
+
        CHAR szFilename[MAX_PATH];
        CHAR szTitle[500];
        strcpy(szFilename,filename.c_str());
        strcpy(szTitle,title.c_str());
        CHAR szFilename[MAX_PATH];
        CHAR szTitle[500];
        strcpy(szFilename,filename.c_str());
        strcpy(szTitle,title.c_str());
-       
+
        ofn.lpstrFile=szFilename;
        ofn.lpstrFileTitle=szTitle;
        ofn.lpstrFile=szFilename;
        ofn.lpstrFileTitle=szTitle;
-       
+
        if(GetSaveFileName(&ofn))
        {
                filename=szFilename;
        if(GetSaveFileName(&ofn))
        {
                filename=szFilename;
@@ -1849,11 +1875,11 @@ App::dialog_saveas_file(const std::string &title, std::string &filename)
        synfig::String prev_path;
        if(!_preferences.get_value("curr_path",prev_path))
                prev_path=".";
        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);
     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);
+    dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+    dialog->add_button(Gtk::Stock::SAVE,   Gtk::RESPONSE_ACCEPT);
     if(!filename.empty())
         dialog->set_filename(filename);
     if(dialog->run()==GTK_RESPONSE_ACCEPT) {
     if(!filename.empty())
         dialog->set_filename(filename);
     if(dialog->run()==GTK_RESPONSE_ACCEPT) {
@@ -1870,16 +1896,8 @@ App::dialog_saveas_file(const std::string &title, std::string &filename)
 void
 App::dialog_error_blocking(const std::string &title, const std::string &message)
 {
 void
 App::dialog_error_blocking(const std::string &title, const std::string &message)
 {
-       Gtk::Dialog dialog(
-               title,          // Title
-               true,           // Modal
-               true            // use_separator
-       );
-       Gtk::Label label(message);
-       label.show();
-       
-       dialog.get_vbox()->pack_start(label);
-       dialog.add_button(Gtk::StockID("gtk-ok"),1);
+       Gtk::MessageDialog dialog(message, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
+       dialog.set_title(title);
        dialog.show();
        dialog.run();
 }
        dialog.show();
        dialog.run();
 }
@@ -1887,16 +1905,8 @@ App::dialog_error_blocking(const std::string &title, const std::string &message)
 void
 App::dialog_warning_blocking(const std::string &title, const std::string &message)
 {
 void
 App::dialog_warning_blocking(const std::string &title, const std::string &message)
 {
-       Gtk::Dialog dialog(
-               title,          // Title
-               true,           // Modal
-               true            // use_separator
-       );
-       Gtk::Label label(message);
-       label.show();
-
-       dialog.get_vbox()->pack_start(label);
-       dialog.add_button(Gtk::StockID("gtk-ok"),1);
+       Gtk::MessageDialog dialog(message, false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_CLOSE, true);
+       dialog.set_title(title);
        dialog.show();
        dialog.run();
 }
        dialog.show();
        dialog.run();
 }
@@ -1911,7 +1921,7 @@ App::dialog_yes_no(const std::string &title, const std::string &message)
        );
        Gtk::Label label(message);
        label.show();
        );
        Gtk::Label label(message);
        label.show();
-       
+
        dialog.get_vbox()->pack_start(label);
        dialog.add_button(Gtk::StockID("gtk-yes"),1);
        dialog.add_button(Gtk::StockID("gtk-no"),0);
        dialog.get_vbox()->pack_start(label);
        dialog.add_button(Gtk::StockID("gtk-yes"),1);
        dialog.add_button(Gtk::StockID("gtk-no"),0);
@@ -1943,7 +1953,7 @@ App::dialog_not_implemented()
 {
        Gtk::MessageDialog dialog("Feature not available", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
        dialog.set_secondary_text("Sorry, this feature has not yet been implemented.");
 {
        Gtk::MessageDialog dialog("Feature not available", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
        dialog.set_secondary_text("Sorry, this feature has not yet been implemented.");
-       dialog.run(); 
+       dialog.run();
 }
 
 bool
 }
 
 bool
@@ -1999,25 +2009,25 @@ App::open_as(std::string filename,std::string as)
        try
        {
                OneMoment one_moment;
        try
        {
                OneMoment one_moment;
-       
+
                etl::handle<synfig::Canvas> canvas(open_canvas_as(filename,as));
                if(canvas && get_instance(canvas))
                {
                        get_instance(canvas)->find_canvas_view(canvas)->present();
                etl::handle<synfig::Canvas> canvas(open_canvas_as(filename,as));
                if(canvas && get_instance(canvas))
                {
                        get_instance(canvas)->find_canvas_view(canvas)->present();
-                       throw (String)strprintf(_("\"%s\" appears to already be open!"),filename.c_str());              
+                       throw (String)strprintf(_("\"%s\" appears to already be open!"),filename.c_str());
                }
                if(!canvas)
                        throw (String)strprintf(_("Unable to open file \"%s\""),filename.c_str());
 
                add_recent_file(as);
                }
                if(!canvas)
                        throw (String)strprintf(_("Unable to open file \"%s\""),filename.c_str());
 
                add_recent_file(as);
-               
+
                handle<Instance> instance(Instance::create(canvas));
 
                if(!instance)
                        throw (String)strprintf(_("Unable to create instance for \"%s\""),filename.c_str());
                handle<Instance> instance(Instance::create(canvas));
 
                if(!instance)
                        throw (String)strprintf(_("Unable to create instance for \"%s\""),filename.c_str());
-               
+
                one_moment.hide();
                one_moment.hide();
-               
+
                if(instance->is_updated() && App::dialog_yes_no(_("CVS Update"), _("There appears to be a newer version of this file available on the CVS repository.\nWould you like to update now? (It would probably be a good idea)")))
                        instance->dialog_cvs_update();
        }
                if(instance->is_updated() && App::dialog_yes_no(_("CVS Update"), _("There appears to be a newer version of this file available on the CVS repository.\nWould you like to update now? (It would probably be a good idea)")))
                        instance->dialog_cvs_update();
        }
@@ -2033,7 +2043,7 @@ App::open_as(std::string filename,std::string as)
        }
 
        _preferences.set_value("curr_path",dirname(as));
        }
 
        _preferences.set_value("curr_path",dirname(as));
-       
+
        return true;
 }
 
        return true;
 }
 
@@ -2045,7 +2055,7 @@ App::new_instance()
        canvas->set_name(strprintf("Untitled%d",Instance::get_count()));
 
        String file_name(strprintf("untitled%d.sif",Instance::get_count()));
        canvas->set_name(strprintf("Untitled%d",Instance::get_count()));
 
        String file_name(strprintf("untitled%d.sif",Instance::get_count()));
-       
+
        canvas->rend_desc().set_frame_rate(24.0);
        canvas->rend_desc().set_time_start(0.0);
        canvas->rend_desc().set_time_end(00.0);
        canvas->rend_desc().set_frame_rate(24.0);
        canvas->rend_desc().set_time_start(0.0);
        canvas->rend_desc().set_time_end(00.0);
@@ -2058,7 +2068,7 @@ App::new_instance()
        canvas->rend_desc().set_antialias(1);
        canvas->rend_desc().set_flags(RendDesc::PX_ASPECT|RendDesc::IM_SPAN);
        canvas->set_file_name(file_name);
        canvas->rend_desc().set_antialias(1);
        canvas->rend_desc().set_flags(RendDesc::PX_ASPECT|RendDesc::IM_SPAN);
        canvas->set_file_name(file_name);
-       
+
        Instance::create(canvas)->find_canvas_view(canvas)->canvas_properties.present();
 }
 
        Instance::create(canvas)->find_canvas_view(canvas)->canvas_properties.present();
 }