Module: synfig Branch: genete_canvasview Commit: 26d2a02c0537c6ddc33f58ad848060e3f6e3409e URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=26d2a02c0537c6ddc33f58ad848060e3f6e3409e
Author: Carlos Lopez <car...@pcnuevo.(none)> Date: Mon Jun 29 01:41:12 2009 +0200 Initial version of show grid check button. Needs a proper icon. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 32 ++++++++++++++++++++++++- synfig-studio/trunk/src/gtkmm/canvasview.h | 3 ++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 3fe39e7..ab500e4 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -709,6 +709,7 @@ CanvasView::CanvasView(etl::loose_handle<Instance> instance,etl::handle<synfigap toggling_ducks_=false; changing_resolution_=false; updating_quality_=false; + toggling_show_grid=false; smach_.set_default_state(&state_normal); @@ -1102,7 +1103,7 @@ CanvasView::create_status_bar() Gtk::Widget* CanvasView::create_display_bar() { - displaybar = manage(new class Gtk::Table(1, 5, false)); + displaybar = manage(new class Gtk::Table(1, 6, false)); // Setup the ToggleDuckDial widget toggleducksdial = Gtk::manage(new class ToggleDucksDial()); @@ -1155,11 +1156,24 @@ CanvasView::create_display_bar() tooltips.set_tip(*quality_spin, _("Quality (lower is better)")); quality_spin->show(); + // Set up the show grid check button + show_grid = Gtk::manage(new class Gtk::CheckButton()); + show_grid->set_active(work_area->grid_status()); + Gtk::Image *icon = manage(new Gtk::Image(Gtk::Stock::REMOVE, Gtk::IconSize::from_name("synfig-small_icon"))); + icon->set_padding(0, 0); + icon->show(); + show_grid->add(*icon); + show_grid->signal_toggled().connect( + sigc::mem_fun(*this, &studio::CanvasView::toggle_show_grid)); + tooltips.set_tip(*show_grid, _("Show grid when enabled")); + show_grid->show(); + displaybar->attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar->attach(*separator1, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); displaybar->attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar->attach(*separator2, 3, 4, 0, 1, Gtk::FILL, Gtk::FILL); displaybar->attach(*quality_spin, 4, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar->attach(*show_grid, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar->show(); @@ -1475,7 +1489,7 @@ CanvasView::init_menus() grid_show_toggle = Gtk::ToggleAction::create("toggle-grid-show", _("Show Grid")); grid_show_toggle->set_active(work_area->grid_status()); - action_group->add(grid_show_toggle, sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid)); + action_group->add(grid_show_toggle, sigc::mem_fun(*this, &studio::CanvasView::toggle_show_grid)); grid_snap_toggle = Gtk::ToggleAction::create("toggle-grid-snap", _("Snap to Grid")); grid_snap_toggle->set_active(work_area->get_grid_snap()); @@ -3213,6 +3227,20 @@ CanvasView::set_quality(int x) quality_spin->set_value(x); } +void +CanvasView::toggle_show_grid() +{ + if(toggling_show_grid) + return; + toggling_show_grid=true; + work_area->toggle_grid(); + // Update the toggle grid show action + set_grid_show_toggle(work_area->grid_status()); + // Update the toggle grid show check button + show_grid->set_active(work_area->grid_status()); + toggling_show_grid=false; +} + void CanvasView::on_dirty_preview() diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 2f26d7b..27cc89f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -276,6 +276,8 @@ private: Gtk::Adjustment quality_adjustment_; Gtk::SpinButton *quality_spin; bool updating_quality_; + Gtk::CheckButton *show_grid; + bool toggling_show_grid; //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); @@ -438,6 +440,7 @@ private: void increase_low_res_pixel_size(); void toggle_low_res_pixel_flag(); void set_quality(int x); + void toggle_show_grid(); /* -- ** -- P U B L I C M E T H O D S ----------------------------------------- ------------------------------------------------------------------------------ _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl