X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Ftoggleducksdial.cpp;h=00ea236ca2d2d67c80af27d06401f38d0f4cd03d;hb=714ab44cd605f122ef1cf311eb301f74f246f71a;hp=b23acdef9ff514d1df5c1acf779548c762312a31;hpb=c09ee2ffb936c48edffbce2f86813a72592f724b;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp index b23acde..00ea236 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -50,16 +50,14 @@ using namespace studio; /* === M E T H O D S ======================================================= */ -ToggleDucksDial::ToggleDucksDial(): Gtk::Table(1, 6, false) +ToggleDucksDial::ToggleDucksDial(Gtk::IconSize & size): Gtk::Table(1, 6, false) { - 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(size, "synfig-toggle_duck_position", _("Toggle position ducks")); + ducks_vertex = create_label_button(size, "synfig-toggle_duck_vertex", _("Toggle vertex ducks")); + ducks_tangent = create_label_button(size, "synfig-toggle_duck_tangent", _("Toggle tangent ducks")); + ducks_radius = create_label_button(size, "synfig-toggle_duck_radius", _("Toggle radius ducks")); + ducks_width = create_label_button(size, "synfig-toggle_duck_width", _("Toggle width ducks")); + ducks_angle = create_label_button(size, "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); @@ -69,15 +67,29 @@ ToggleDucksDial::ToggleDucksDial(): Gtk::Table(1, 6, false) 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 tbutton; +} - return button; +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)); }