{
Gtk::IconSize iconsize = Gtk::IconSize::from_name("synfig-small_icon");
- ducks_position = create_label_button(iconsize, "1", _("Toogle position ducks"));
- ducks_vertex = create_label_button(iconsize, "2", _("Toogle vertex ducks"));
- ducks_tangent = create_label_button(iconsize, "3", _("Toogle tangent ducks"));
- ducks_radius = create_label_button(iconsize, "4", _("Toogle radius ducks"));
- ducks_width = create_label_button(iconsize, "5", _("Toogle width ducks"));
- ducks_angle = create_label_button(iconsize, "6", _("Toogle angle ducks"));
+ ducks_position = create_label_button(iconsize, "synfig-toggle_duck_position", _("Toggle position ducks"));
+ ducks_vertex = create_label_button(iconsize, "synfig-toggle_duck_vertex", _("Toggle vertex ducks"));
+ ducks_tangent = create_label_button(iconsize, "synfig-toggle_duck_tangent", _("Toggle tangent ducks"));
+ ducks_radius = create_label_button(iconsize, "synfig-toggle_duck_radius", _("Toggle radius ducks"));
+ ducks_width = create_label_button(iconsize, "synfig-toggle_duck_width", _("Toggle width ducks"));
+ ducks_angle = create_label_button(iconsize, "synfig-toggle_duck_angle", _("Toggle angle ducks"));
attach(*ducks_position, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0);
attach(*ducks_vertex, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0);
attach(*ducks_angle, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0);
}
-Gtk::Button *
-ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, const char *label,
+Gtk::ToggleButton *
+ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, const char *stockid,
const char * tooltip)
{
- Gtk::Button *button = manage(new class Gtk::Button());
- button->set_label(label);
- tooltips.set_tip(*button, tooltip);
- button->set_relief(Gtk::RELIEF_NONE);
- button->show();
+ Gtk::ToggleButton *tbutton = manage(new class Gtk::ToggleButton());
+ Gtk::Image *icon = manage(new Gtk::Image(Gtk::StockID(stockid), iconsize));
+ tooltips.set_tip(*tbutton, tooltip);
+ tbutton->add(*icon);
+ icon->set_padding(0, 0);
+ icon->show();
+ tbutton->set_relief(Gtk::RELIEF_NONE);
+ tbutton->show();
- return button;
+ return tbutton;
+}
+
+void
+ToggleDucksDial::update_toggles(Duck::Type mask)
+{
+ ducks_position-> set_active((mask & Duck::TYPE_POSITION));
+ ducks_vertex -> set_active((mask & Duck::TYPE_VERTEX));
+ ducks_tangent -> set_active((mask & Duck::TYPE_TANGENT));
+ ducks_radius -> set_active((mask & Duck::TYPE_RADIUS));
+ ducks_width -> set_active((mask & Duck::TYPE_WIDTH));
+ ducks_angle -> set_active((mask & Duck::TYPE_ANGLE));
}