+ZoomDial::ZoomDial(Gtk::IconSize & size): Table(3, 1, false)
+{
+ zoom_in = create_icon(size, Gtk::Stock::ZOOM_IN, _("Zoom In"));
+ zoom_out = create_icon(size, Gtk::Stock::ZOOM_OUT, _("Zoom Out"));
+ zoom_fit = create_icon(size, Gtk::Stock::ZOOM_FIT, _("Zoom to Fit"));
+ zoom_norm = create_icon(size, Gtk::Stock::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 Gtk::BuiltinStockID & stockid,
+ const char * tooltip)
+{
+ Gtk::Button *button = manage(new class Gtk::Button());
+ Gtk::Image *icon = manage(new Gtk::Image(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;
+}