Revision: 2376 http://synfig.svn.sourceforge.net/synfig/?rev=2376&view=rev Author: gballintijn Date: 2009-05-11 16:31:34 +0000 (Mon, 11 May 2009)
Log Message: ----------- Refactored the canvas zoom button "minibar": * Moved the constructor code to zoomdial.cpp. * Made fields private that can be private. * Removed the use of a CPP macro to reuse C++ code. * Some minor layout changes. Modified Paths: -------------- synfig-studio/trunk/src/gtkmm/zoomdial.cpp synfig-studio/trunk/src/gtkmm/zoomdial.h Modified: synfig-studio/trunk/src/gtkmm/zoomdial.cpp =================================================================== --- synfig-studio/trunk/src/gtkmm/zoomdial.cpp 2009-05-07 20:51:55 UTC (rev 2375) +++ synfig-studio/trunk/src/gtkmm/zoomdial.cpp 2009-05-11 16:31:34 UTC (rev 2376) @@ -29,7 +29,8 @@ # include <config.h> #endif -//#include "zoomdial.h" +#include "zoomdial.h" +#include <gtkmm/image.h> #include "general.h" @@ -38,6 +39,7 @@ /* === U S I N G =========================================================== */ using namespace std; +using namespace studio; /* === M A C R O S ========================================================= */ @@ -47,4 +49,33 @@ /* === M E T H O D S ======================================================= */ +ZoomDial::ZoomDial(Gtk::IconSize & size): Table(3, 1, false) +{ + zoom_in = create_icon(size, "gtk-add", _("Zoom In")); + zoom_out = create_icon(size, "gtk-remove", _("Zoom Out")); + zoom_fit = create_icon(size, "gtk-zoom-fit", _("Zoom to Fit")); + zoom_norm = create_icon(size, "gtk-zoom-100", _("Zoom to 100%")); + attach(*zoom_out, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + attach(*zoom_norm, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + attach(*zoom_fit, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); + attach(*zoom_in, 3, 4, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); +} + +Gtk::Button * +ZoomDial::create_icon(Gtk::IconSize size, const char * stockid, + const char * tooltip) +{ + Gtk::Button *button = manage(new class Gtk::Button()); + Gtk::Image *icon = manage(new Gtk::Image(Gtk::StockID(stockid), size)); + button->add(*icon); + tooltips.set_tip(*button, tooltip); + icon->set_padding(0, 0); + icon->show(); + button->set_relief(Gtk::RELIEF_NONE); + button->show(); + + return button; +} + + Modified: synfig-studio/trunk/src/gtkmm/zoomdial.h =================================================================== --- synfig-studio/trunk/src/gtkmm/zoomdial.h 2009-05-07 20:51:55 UTC (rev 2375) +++ synfig-studio/trunk/src/gtkmm/zoomdial.h 2009-05-11 16:31:34 UTC (rev 2376) @@ -6,7 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2008 Chris Moore +** Copyright (c) 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -29,22 +29,11 @@ /* === H E A D E R S ======================================================= */ #include <gtkmm/tooltips.h> +#include <gtkmm/table.h> #include <gtkmm/button.h> -#include "general.h" - /* === M A C R O S ========================================================= */ -#define SMALL_BUTTON(button,stockid,tooltip) \ - button = manage(new class Gtk::Button()); \ - icon=manage(new Gtk::Image(Gtk::StockID(stockid),iconsize)); \ - button->add(*icon); \ - tooltips.set_tip(*button,tooltip); \ - icon->set_padding(0,0);\ - icon->show(); \ - button->set_relief(Gtk::RELIEF_NONE); \ - button->show() - /* === T Y P E D E F S ===================================================== */ /* === C L A S S E S & S T R U C T S ======================================= */ @@ -54,41 +43,24 @@ class ZoomDial : public Gtk::Table { - Gtk::Tooltips tooltips; - Gtk::IconSize iconsize; - -public: Gtk::Button *zoom_in; Gtk::Button *zoom_out; Gtk::Button *zoom_fit; Gtk::Button *zoom_norm; - ZoomDial(Gtk::IconSize &size):Table(3, 1, false),iconsize(size) - { - Gtk::Image *icon; + Gtk::Button *create_icon(Gtk::IconSize size, const char * stockid, + const char * tooltip); - SMALL_BUTTON(zoom_in,"gtk-add",_("Zoom In")); - SMALL_BUTTON(zoom_out,"gtk-remove",_("Zoom Out")); - SMALL_BUTTON(zoom_fit,"gtk-zoom-fit",_("Zoom to Fit")); - SMALL_BUTTON(zoom_norm,"gtk-zoom-100",_("Zoom to 100%")); +public: + ZoomDial(Gtk::IconSize &size); - attach(*zoom_out, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); - attach(*zoom_norm, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); - attach(*zoom_fit, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); - attach(*zoom_in, 3, 4, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); - } + Glib::SignalProxy0<void> signal_zoom_in() { return zoom_in->signal_clicked(); } + Glib::SignalProxy0<void> signal_zoom_out() { return zoom_out->signal_clicked(); } + Glib::SignalProxy0<void> signal_zoom_fit() { return zoom_fit->signal_clicked(); } + Glib::SignalProxy0<void> signal_zoom_norm() { return zoom_norm->signal_clicked(); } - Glib::SignalProxy0<void> signal_zoom_in() - { return zoom_in->signal_clicked(); } - Glib::SignalProxy0<void> signal_zoom_out() - { return zoom_out->signal_clicked(); } - Glib::SignalProxy0<void> signal_zoom_fit() - { return zoom_fit->signal_clicked(); } - Glib::SignalProxy0<void> signal_zoom_norm() - { return zoom_norm->signal_clicked(); } - }; // END of class ZoomDial }; // END of namespace studio This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your production scanning environment may not be a perfect world - but thanks to Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 Series Scanner you'll get full speed at 300 dpi even with all image processing features enabled. http://p.sf.net/sfu/kodak-com _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl