Merge branch 'master' into genete_setup_dialog
authorCarlos Lopez <carlos@pcnuevo.(none)>
Sat, 20 Jun 2009 12:15:37 +0000 (14:15 +0200)
committerCarlos Lopez <carlos@pcnuevo.(none)>
Sat, 20 Jun 2009 12:15:37 +0000 (14:15 +0200)
synfig-studio/trunk/src/gtkmm/app.cpp
synfig-studio/trunk/src/gtkmm/app.h
synfig-studio/trunk/src/gtkmm/dialog_setup.cpp
synfig-studio/trunk/src/gtkmm/dialog_setup.h

index ffca6fd..ee4cfde 100644 (file)
@@ -280,6 +280,8 @@ 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);
+String studio::App::predefined_fps(DEFAULT_PREDEFINED_FPS);
+float studio::App::preferred_fps=24.0;
 #ifdef USE_OPEN_FOR_URLS
 String studio::App::browser_command("open"); // MacOS only
 #else
@@ -542,6 +544,16 @@ public:
                        value=strprintf("%s",App::predefined_size.c_str());
                        return true;
                }
+               if(key=="preferred_fps")
+               {
+                       value=strprintf("%f",App::preferred_fps);
+                       return true;
+               }
+               if(key=="predefined_fps")
+               {
+                       value=strprintf("%s",App::predefined_fps.c_str());
+                       return true;
+               }
 
                return synfigapp::Settings::get_value(key,value);
        }
@@ -639,6 +651,18 @@ public:
                        App::predefined_size=value;
                        return true;
                }
+               if(key=="preferred_fps")
+               {
+                       float i(atof(value.c_str()));
+                       App::preferred_fps=i;
+                       return true;
+               }
+               if(key=="predefined_fps")
+               {
+                       App::predefined_fps=value;
+                       return true;
+               }
+
                return synfigapp::Settings::set_value(key,value);
        }
 
@@ -661,6 +685,8 @@ public:
                ret.push_back("preferred_x_size");
                ret.push_back("preferred_y_size");
                ret.push_back("predefined_size");
+               ret.push_back("preferred_fps");
+               ret.push_back("predefined_fps");
                return ret;
        }
 };
@@ -1739,6 +1765,8 @@ App::reset_initial_window_configuration()
        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("pref.preferred_fps","24.0");
+       synfigapp::Main::settings().set_value("pref.predefined_fps",DEFAULT_PREDEFINED_FPS);
        synfigapp::Main::settings().set_value("window.toolbox.pos","4 4");
 }
 
@@ -2409,7 +2437,7 @@ App::new_instance()
        canvas->set_name(file_name);
        file_name += ".sifz";
 
-       canvas->rend_desc().set_frame_rate(24.0);
+       canvas->rend_desc().set_frame_rate(preferred_fps);
        canvas->rend_desc().set_time_start(0.0);
        canvas->rend_desc().set_time_end(5.0);
        canvas->rend_desc().set_x_res(DPI2DPM(72.0f));
index 507bc75..89cd528 100644 (file)
@@ -204,6 +204,8 @@ public:
        static int preferred_x_size;
        static int preferred_y_size;
        static synfig::String predefined_size;
+       static synfig::String predefined_fps;
+       static float preferred_fps;
        /*
  -- ** -- S I G N A L S -------------------------------------------------------
        */
index 9f849b0..7f6d835 100644 (file)
@@ -7,7 +7,7 @@
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
 **     Copyright (c) 2007, 2008 Chris Moore
-**  Copyright (c) 2008 Carlos López
+**     Copyright (c) 2008, 2009 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
@@ -37,7 +37,6 @@
 #include <gtkmm/table.h>
 #include <gtkmm/frame.h>
 #include <gtkmm/notebook.h>
-#include <gtkmm/spinbutton.h>
 #include "widget_enum.h"
 #include "autorecover.h"
 
@@ -84,7 +83,8 @@ Dialog_Setup::Dialog_Setup():
        toggle_restrict_radius_ducks(_("Restrict Real-Valued Ducks to Top Right Quadrant")),
        toggle_resize_imported_images(_("Scale New Imported Images to Fit Canvas")),
        adj_pref_x_size(480,1,10000,1,10,0),
-       adj_pref_y_size(270,1,10000,1,10,0)
+       adj_pref_y_size(270,1,10000,1,10,0),
+       adj_pref_fps(24.0,1.0,100,0.1,1,0)
 
        {
        // Setup the buttons
@@ -228,13 +228,13 @@ Dialog_Setup::Dialog_Setup():
        tooltips_.set_tip(textbox_custom_filename_prefix,_("File name prefix for the new created document"));
 
        // Document - New Document X size
-       Gtk::SpinButton* pref_x_size_spinbutton(manage(new Gtk::SpinButton(adj_pref_x_size,1,0)));
+       pref_x_size_spinbutton=Gtk::manage(new Gtk::SpinButton(adj_pref_x_size,1,0));
        attach_label(document_table,_("New Document X size"),1, xpadding, ypadding);
        document_table->attach(*pref_x_size_spinbutton, 1, 2, 1, 2,Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, xpadding, ypadding);
        tooltips_.set_tip(*pref_x_size_spinbutton,_("Width in pixels of the new created document"));
 
        // Document - New Document Y size
-       Gtk::SpinButton* pref_y_size_spinbutton(manage(new Gtk::SpinButton(adj_pref_y_size,1,0)));
+       pref_y_size_spinbutton=Gtk::manage(new Gtk::SpinButton(adj_pref_y_size,1,0));
        attach_label(document_table,_("New Document Y size"),2, xpadding, ypadding);
        document_table->attach(*pref_y_size_spinbutton, 1, 2, 2, 3,Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, xpadding, ypadding);
        tooltips_.set_tip(*pref_y_size_spinbutton,_("High in pixels of the new created document"));
@@ -262,6 +262,29 @@ Dialog_Setup::Dialog_Setup():
        size_template_combo->prepend_text(_("360x203   Web 360x HD"));
        size_template_combo->prepend_text(DEFAULT_PREDEFINED_SIZE);
 
+       //Document - Template for predefined fps
+       fps_template_combo=Gtk::manage(new Gtk::ComboBoxText());
+       Gtk::Label* label1(manage(new Gtk::Label(_("Predefined FPS:"))));
+       label1->set_alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
+       document_table->attach(*label1, 2, 3, 3, 4, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, xpadding, ypadding);
+       document_table->attach(*fps_template_combo,2, 3, 4, 5, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, xpadding, ypadding);
+       fps_template_combo->signal_changed().connect(sigc::mem_fun(*this,&studio::Dialog_Setup::on_fps_template_combo_change));
+       fps_template_combo->prepend_text("60,0"); // It seems that the period is a ',' instead of a '.' for GTK.
+       fps_template_combo->prepend_text("50,0");
+       fps_template_combo->prepend_text("30,0");
+       fps_template_combo->prepend_text("25,0");
+       fps_template_combo->prepend_text("24,976");
+       fps_template_combo->prepend_text("24,0");
+       fps_template_combo->prepend_text("15,0");
+       fps_template_combo->prepend_text("12,0");
+       fps_template_combo->prepend_text(DEFAULT_PREDEFINED_FPS);
+
+       // Document - New Document FPS
+       pref_fps_spinbutton=Gtk::manage(new Gtk::SpinButton(adj_pref_fps,1,3));
+       attach_label(document_table,_("New Document FPS"),4, xpadding, ypadding);
+       document_table->attach(*pref_fps_spinbutton, 1, 2, 4, 5,Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, xpadding, ypadding);
+       tooltips_.set_tip(*pref_fps_spinbutton,_("Frames per second of the new created document"));
+
        show_all_children();
 }
 
@@ -320,6 +343,12 @@ Dialog_Setup::on_apply_pressed()
        // Set the preferred Predefined size
        App::predefined_size=size_template_combo->get_active_text();
 
+       // Set the preferred Predefined fps
+       App::predefined_fps=fps_template_combo->get_active_text();
+
+       // Set the preferred FPS
+       App::preferred_fps=Real(adj_pref_fps.get_value());
+
        App::save_settings();
 }
 
@@ -369,6 +398,8 @@ Dialog_Setup::on_size_template_combo_change()
        String selection(size_template_combo->get_active_text());
        if(selection==DEFAULT_PREDEFINED_SIZE)
        {
+               pref_y_size_spinbutton->set_sensitive(true);
+               pref_x_size_spinbutton->set_sensitive(true);
                return;
        }
        String::size_type locx=selection.find_first_of("x"); // here should be some comparison with string::npos
@@ -379,6 +410,23 @@ Dialog_Setup::on_size_template_combo_change()
        int y=atoi(y_size.c_str());
        adj_pref_x_size.set_value(x);
        adj_pref_y_size.set_value(y);
+       pref_y_size_spinbutton->set_sensitive(false);
+       pref_x_size_spinbutton->set_sensitive(false);
+
+       return;
+}
+
+void
+Dialog_Setup::on_fps_template_combo_change()
+{
+       String selection(fps_template_combo->get_active_text());
+       if(selection==DEFAULT_PREDEFINED_FPS)
+       {
+               pref_fps_spinbutton->set_sensitive(true);
+               return;
+       }
+       adj_pref_fps.set_value(atof(selection.c_str()));
+       pref_fps_spinbutton->set_sensitive(false);
        return;
 }
 
@@ -439,6 +487,12 @@ Dialog_Setup::refresh()
 
        // Refresh the preferred Predefined size
        size_template_combo->set_active_text(App::predefined_size);
+
+       //Refresh the preferred FPS
+       adj_pref_fps.set_value(App::preferred_fps);
+
+       //Refresh the predefined FPS
+       fps_template_combo->set_active_text(App::predefined_fps);
 }
 
 GammaPattern::GammaPattern():
index e0d8fcd..530e4fa 100644 (file)
@@ -7,7 +7,7 @@
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
 **     Copyright (c) 2007, 2008 Chris Moore
-**  Copyright (c) 2008 Carlos López
+**     Copyright (c) 2008, 2009 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
@@ -40,6 +40,7 @@
 #include <gtkmm/widget_time.h>
 #include <gtkmm/tooltips.h>
 #include <gtkmm/comboboxtext.h>
+#include <gtkmm/spinbutton.h>
 
 #include <synfig/gamma.h>
 #include <synfig/time.h>
 #ifndef DEFAULT_PREDEFINED_SIZE
 #define DEFAULT_PREDEFINED_SIZE _("Custom Size")
 #endif
+#ifndef DEFAULT_PREDEFINED_FPS
+#define DEFAULT_PREDEFINED_FPS _("Custom fps")
+#endif
+
 /* === T Y P E D E F S ===================================================== */
 
 /* === C L A S S E S & S T R U C T S ======================================= */
@@ -156,6 +161,7 @@ class Dialog_Setup : public Gtk::Dialog
        void on_black_level_change();
        void on_red_blue_level_change();
        void on_size_template_combo_change();
+       void on_fps_template_combo_change();
 
        GammaPattern gamma_pattern;
        BlackLevelSelector black_level_selector;
@@ -187,9 +193,14 @@ class Dialog_Setup : public Gtk::Dialog
        Gtk::Entry textbox_browser_command;
 
        Gtk::ComboBoxText* size_template_combo;
+       Gtk::ComboBoxText* fps_template_combo;
        Gtk::Entry textbox_custom_filename_prefix;
        Gtk::Adjustment adj_pref_x_size;
        Gtk::Adjustment adj_pref_y_size;
+       Gtk::Adjustment adj_pref_fps;
+       Gtk::SpinButton* pref_fps_spinbutton;
+       Gtk::SpinButton* pref_y_size_spinbutton;
+       Gtk::SpinButton* pref_x_size_spinbutton;
        Gtk::Tooltips tooltips_;
 public: