Update/add copyrights for people who modified the code.
[synfig.git] / synfig-studio / trunk / src / gtkmm / app.cpp
index 8cd64ff..091d75a 100644 (file)
@@ -8,6 +8,7 @@
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
 **     Copyright (c) 2007, 2008 Chris Moore
 **     Copyright (c) 2008 Gerald Young
+**  Copyright (c) 2008 Carlos López
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -277,6 +278,7 @@ bool studio::App::restrict_radius_ducks=false;
 String studio::App::custom_filename_prefix(DEFAULT_FILENAME_PREFIX);
 int studio::App::preferred_x_size=480;
 int studio::App::preferred_y_size=270;
+String studio::App::predefined_size(DEFAULT_PREDEFINED_SIZE);
 #ifdef USE_OPEN_FOR_URLS
 String studio::App::browser_command("open"); // MacOS only
 #else
@@ -529,6 +531,12 @@ public:
                        value=strprintf("%i",App::preferred_y_size);
                        return true;
                }
+               if(key=="predefined_size")
+               {
+                       value=strprintf("%s",App::predefined_size.c_str());
+                       return true;
+               }
+               
                return synfigapp::Settings::get_value(key,value);
        }
 
@@ -614,6 +622,11 @@ public:
                        App::preferred_y_size=i;
                        return true;
                }
+               if(key=="predefined_size")
+               {
+                       App::predefined_size=value;
+                       return true;
+               }
                return synfigapp::Settings::set_value(key,value);
        }
 
@@ -634,6 +647,7 @@ public:
                ret.push_back("custom_filename_prefix");
                ret.push_back("preferred_x_size");
                ret.push_back("preferred_y_size");
+               ret.push_back("predefined_size");               
                return ret;
        }
 };
@@ -1243,9 +1257,7 @@ App::App(int *argc, char ***argv):
 
                if(!getenv("SYNFIG_DISABLE_DRAW"   )) state_manager->add_state(&state_draw); // Enabled for now.  Let's see whether they're good enough yet.
                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);
+               if(!getenv("SYNFIG_DISABLE_WIDTH"  )) state_manager->add_state(&state_width); // Enabled since 0.61.09
 
                studio_init_cb.task(_("Init ModPalette..."));
                module_list_.push_back(new ModPalette()); module_list_.back()->start();
@@ -1718,6 +1730,7 @@ App::reset_initial_window_configuration()
        synfigapp::Main::settings().set_value("pref.custom_filename_prefix",DEFAULT_FILENAME_PREFIX);
        synfigapp::Main::settings().set_value("pref.preferred_x_size","480");
        synfigapp::Main::settings().set_value("pref.preferred_y_size","270");
+       synfigapp::Main::settings().set_value("pref.predefined_size",DEFAULT_PREDEFINED_SIZE);
        synfigapp::Main::settings().set_value("window.toolbox.pos","4 4");
 }
 
@@ -2384,8 +2397,10 @@ App::new_instance()
        canvas->rend_desc().set_time_end(5.0);
        canvas->rend_desc().set_x_res(DPI2DPM(72.0f));
        canvas->rend_desc().set_y_res(DPI2DPM(72.0f));
-       canvas->rend_desc().set_tl(Vector(-4,2.25));
-       canvas->rend_desc().set_br(Vector(4,-2.25));
+       // The top left and botton right positions are expressed in units
+       // Original convention is that 1 unit = 60 pixels
+       canvas->rend_desc().set_tl(Vector(-(preferred_x_size/60.0)/2.0,(preferred_y_size/60.0)/2.0));
+       canvas->rend_desc().set_br(Vector((preferred_x_size/60.0)/2.0,-(preferred_y_size/60.0)/2.0));
        canvas->rend_desc().set_w(preferred_x_size);
        canvas->rend_desc().set_h(preferred_y_size);
        canvas->rend_desc().set_antialias(1);