Change the tile size from 128 to 120 and allow all the factors of 120 to be used...
[synfig.git] / synfig-studio / trunk / src / gtkmm / canvasview.cpp
index 226848f..eb9795b 100644 (file)
@@ -1290,6 +1290,32 @@ CanvasView::init_menus()
                }
        }
 
+       // prime factors of 120 are 2, 2, 2, 3, 5
+       int pixel_size_array[] = {2,3,4,5,6,8,10,12,15,20,24,30,40,60,120};
+       list<int> pixel_sizes(pixel_size_array, pixel_size_array + sizeof(pixel_size_array) / sizeof(int));
+
+       // Low-Res Quality Menu
+       {
+               int i;
+               for(list<int>::iterator iter = pixel_sizes.begin(); iter != pixel_sizes.end(); iter++)
+               {
+                       i = *iter;
+                       Glib::RefPtr<Gtk::RadioAction> action(Gtk::RadioAction::create(low_res_pixel_size_group,strprintf("lowres-pixel-%d",i),
+                                                                                                                                                  strprintf(_("Set Low-Res pixel size to %d"),i)));
+                       if(i==2)                        // default pixel size
+                       {
+                               action->set_active();
+                               work_area->set_low_res_pixel_size(i);
+                       }
+                       action_group->add( action,
+                               sigc::bind(
+                                       sigc::mem_fun(*work_area, &studio::WorkArea::set_low_res_pixel_size),
+                                       i
+                               )
+                       );
+               }
+       }
+
        action_group->add( Gtk::Action::create("play", Gtk::Stock::MEDIA_PLAY),
                sigc::mem_fun(*this, &studio::CanvasView::play)
        );
@@ -1298,22 +1324,29 @@ CanvasView::init_menus()
                sigc::mem_fun0(*preview_dialog, &studio::Dialog_Preview::present)
        );
 
-       action_group->add( Gtk::Action::create("toggle-grid-show", _("Toggle Grid Show")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid)
-       );
-       action_group->add( Gtk::Action::create("toggle-grid-snap", _("Toggle Grid Snap")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap)
-       );
-       action_group->add( Gtk::Action::create("toggle-guide-show", _("Toggle Guide Show")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap)
-       );
-       action_group->add( Gtk::Action::create("toggle-low-res", _("Toggle Low-Res")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag)
-       );
-       action_group->add( Gtk::Action::create("toggle-onion-skin", _("Toggle Onion Skin")),
-               sigc::mem_fun(*work_area, &studio::WorkArea::toggle_onion_skin)
-       );
+       {
+               Glib::RefPtr<Gtk::ToggleAction> action;
+
+               action = Gtk::ToggleAction::create("toggle-grid-show", _("Show Grid"));
+               action->set_active(work_area->grid_status());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid));
+
+               action = Gtk::ToggleAction::create("toggle-grid-snap", _("Snap to Grid"));
+               action->set_active(work_area->get_grid_snap());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap));
 
+               action = Gtk::ToggleAction::create("toggle-guide-show", _("Show Guides"));
+               action->set_active(work_area->get_show_guides());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap));
+
+               action = Gtk::ToggleAction::create("toggle-low-res", _("Use Low-Res"));
+               action->set_active(work_area->get_low_resolution_flag());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag));
+
+               action = Gtk::ToggleAction::create("toggle-onion-skin", _("Show Onion Skin"));
+               action->set_active(work_area->get_onion_skin());
+               action_group->add(action, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_onion_skin));
+       }
 
        action_group->add( Gtk::Action::create("canvas-zoom-fit", Gtk::StockID("gtk-zoom-fit")),
                sigc::mem_fun(*work_area, &studio::WorkArea::zoom_fit)
@@ -1322,7 +1355,6 @@ CanvasView::init_menus()
                sigc::mem_fun(*work_area, &studio::WorkArea::zoom_norm)
        );
 
-
        {
                Glib::RefPtr<Gtk::Action> action;
 
@@ -2523,22 +2555,18 @@ CanvasView::on_keyframe_button_pressed()
 {
        synfigapp::CanvasInterface::Mode mode(get_mode());
 
+       //   future && past   -->             past
        if((mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST))
-       {
                set_mode(get_mode()-synfigapp::MODE_ANIMATE_FUTURE);
-       }
+       //             past   -->   future
        else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && (mode&synfigapp::MODE_ANIMATE_PAST))
-       {
-               set_mode(get_mode()-synfigapp::MODE_ANIMATE_PAST|synfigapp::MODE_ANIMATE_FUTURE);
-       }
+               set_mode((get_mode()-synfigapp::MODE_ANIMATE_PAST)|synfigapp::MODE_ANIMATE_FUTURE);
+       //   future           -->       (nothing)
        else if((mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST))
-       {
                set_mode(get_mode()-synfigapp::MODE_ANIMATE_FUTURE);
-       }
+       //      (nothing)     -->   future && past
        else if(!(mode&synfigapp::MODE_ANIMATE_FUTURE) && !(mode&synfigapp::MODE_ANIMATE_PAST))
-       {
                set_mode(get_mode()|synfigapp::MODE_ANIMATE_FUTURE|synfigapp::MODE_ANIMATE_PAST);
-       }
 }
 
 bool
@@ -3578,7 +3606,7 @@ CanvasView::set_ext_widget(const synfig::String& x, Gtk::Widget* y)
 }
 
 bool
-CanvasView::on_delete_event(GdkEventAny* event)
+CanvasView::on_delete_event(GdkEventAny* event __attribute__ ((unused)))
 {
        close_view();