X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fzoomdial.h;h=1d9d63af533372ff7f781c8cea5d5d25b083e6b5;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=72bce139c4ae660814928f3f62f691df740c7314;hpb=7c3682a6d1bb940fd74e9e327bbc2dd3a8fdb504;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/zoomdial.h b/synfig-studio/trunk/src/gtkmm/zoomdial.h index 72bce13..1d9d63a 100644 --- a/synfig-studio/trunk/src/gtkmm/zoomdial.h +++ b/synfig-studio/trunk/src/gtkmm/zoomdial.h @@ -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 +#include #include -#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,40 +43,23 @@ namespace studio 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; - - 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%")); - - 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 signal_zoom_in() - { return zoom_in->signal_clicked(); } - Glib::SignalProxy0 signal_zoom_out() - { return zoom_out->signal_clicked(); } - Glib::SignalProxy0 signal_zoom_fit() - { return zoom_fit->signal_clicked(); } - Glib::SignalProxy0 signal_zoom_norm() - { return zoom_norm->signal_clicked(); } + Gtk::Button *create_icon(Gtk::IconSize size, const Gtk::BuiltinStockID & stockid, + const char * tooltip); + +public: + ZoomDial(Gtk::IconSize &size); + + Glib::SignalProxy0 signal_zoom_in() { return zoom_in->signal_clicked(); } + Glib::SignalProxy0 signal_zoom_out() { return zoom_out->signal_clicked(); } + Glib::SignalProxy0 signal_zoom_fit() { return zoom_fit->signal_clicked(); } + Glib::SignalProxy0 signal_zoom_norm() { return zoom_norm->signal_clicked(); } }; // END of class ZoomDial