19715d9462f14c8543082f8df232e3c99a8453caJabiertxof * From the code of Liam P.White from his Power Stroke Knot dialog
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof * Released under GNU GPL. Read the file 'COPYING' for more information
fe4492cc1077f798b64277b51f1a4bf9291b1a81Ben Scholzen 'DASPRiD'#include "live_effects/parameter/parameter.h"
19715d9462f14c8543082f8df232e3c99a8453caJabiertxofFilletChamferPropertiesDialog::FilletChamferPropertiesDialog()
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof : _desktop(NULL), _knotpoint(NULL), _position_visible(false)
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof // Layer name widgets
af4ffc13725d197d363363e3396de870410a8556Jabiertxof _fillet_chamfer_position_numeric.set_increments(1,1);
af4ffc13725d197d363363e3396de870410a8556Jabiertxof //todo: get tha max aloable infinity freeze the widget
fe4492cc1077f798b64277b51f1a4bf9291b1a81Ben Scholzen 'DASPRiD' _fillet_chamfer_position_numeric.set_range(0., SCALARPARAM_G_MAXDOUBLE);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_position_label.set_label(_("Radius (pixels):"));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_position_label.set_alignment(1.0, 0.5);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _layout_table.attach(_fillet_chamfer_position_label, 0, 1, 0, 1, Gtk::FILL,
af4ffc13725d197d363363e3396de870410a8556Jabiertxof _layout_table.attach(_fillet_chamfer_position_numeric, 1, 2, 0, 1,
3c024caadbaea502bc219bc7aed8fe925017096dJabiertxof _fillet_chamfer_chamfer_subdivisions.set_digits(0);
3c024caadbaea502bc219bc7aed8fe925017096dJabiertxof _fillet_chamfer_chamfer_subdivisions.set_increments(1,1);
3c024caadbaea502bc219bc7aed8fe925017096dJabiertxof //todo: get tha max aloable infinity freeze the widget
fe4492cc1077f798b64277b51f1a4bf9291b1a81Ben Scholzen 'DASPRiD' _fillet_chamfer_chamfer_subdivisions.set_range(0, SCALARPARAM_G_MAXDOUBLE);
3c024caadbaea502bc219bc7aed8fe925017096dJabiertxof _fillet_chamfer_chamfer_subdivisions_label.set_label(_("Chamfer subdivisions:"));
3c024caadbaea502bc219bc7aed8fe925017096dJabiertxof _fillet_chamfer_chamfer_subdivisions_label.set_alignment(1.0, 0.5);
3c024caadbaea502bc219bc7aed8fe925017096dJabiertxof _layout_table.attach(_fillet_chamfer_chamfer_subdivisions_label, 0, 1, 1, 2, Gtk::FILL,
3c024caadbaea502bc219bc7aed8fe925017096dJabiertxof _layout_table.attach(_fillet_chamfer_chamfer_subdivisions, 1, 2, 1, 2,
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_type_fillet.set_label(_("Fillet"));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_type_fillet.set_group(_fillet_chamfer_type_group);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_type_inverse_fillet.set_label(_("Inverse fillet"));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_type_inverse_fillet.set_group(_fillet_chamfer_type_group);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_type_chamfer.set_label(_("Chamfer"));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_type_chamfer.set_group(_fillet_chamfer_type_group);
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof _fillet_chamfer_type_inverse_chamfer.set_label(_("Inverse chamfer"));
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof _fillet_chamfer_type_inverse_chamfer.set_group(_fillet_chamfer_type_group);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof mainVBox->pack_start(_layout_table, true, true, 4);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof mainVBox->pack_start(_fillet_chamfer_type_fillet, true, true, 4);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof mainVBox->pack_start(_fillet_chamfer_type_inverse_fillet, true, true, 4);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof mainVBox->pack_start(_fillet_chamfer_type_chamfer, true, true, 4);
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof mainVBox->pack_start(_fillet_chamfer_type_inverse_chamfer, true, true, 4);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof .connect(sigc::mem_fun(*this, &FilletChamferPropertiesDialog::_close));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof .connect(sigc::mem_fun(*this, &FilletChamferPropertiesDialog::_apply));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof sigc::hide(sigc::mem_fun(*this, &FilletChamferPropertiesDialog::_close)),
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof add_action_widget(_close_button, Gtk::RESPONSE_CLOSE);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof add_action_widget(_apply_button, Gtk::RESPONSE_APPLY);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxofFilletChamferPropertiesDialog::~FilletChamferPropertiesDialog()
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof FilletChamferPointArrayParamKnotHolderEntity *pt,
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof FilletChamferPropertiesDialog *dialog = new FilletChamferPropertiesDialog();
af4ffc13725d197d363363e3396de870410a8556Jabiertxof double d_pos = _fillet_chamfer_position_numeric.get_value();
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof if (_fillet_chamfer_type_fillet.get_active() == true) {
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof } else if (_fillet_chamfer_type_inverse_fillet.get_active() == true) {
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof } else if (_fillet_chamfer_type_inverse_chamfer.get_active() == true) {
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof d_width = _fillet_chamfer_chamfer_subdivisions.get_value() + 4000;
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof d_width = _fillet_chamfer_chamfer_subdivisions.get_value() + 3000;
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _knotpoint->knot_set_offset(Geom::Point(d_pos, d_width));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof sigc::bind(sigc::ptr_fun(&::operator delete), this),
93cce75c515069567a34a17f5f75a9742881695dJon A. Cruzbool FilletChamferPropertiesDialog::_handleKeyEvent(GdkEventKey * /*event*/)
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof return false;
19715d9462f14c8543082f8df232e3c99a8453caJabiertxofvoid FilletChamferPropertiesDialog::_handleButtonEvent(GdkEventButton *event)
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof if ((event->type == GDK_2BUTTON_PRESS) && (event->button == 1)) {
d70e4df5c93140d7a0a9979ad6baec179a91212aJabiertxofvoid FilletChamferPropertiesDialog::_set_knot_point(Geom::Point knotpoint)
40503cc12fca62b22ba6f8efbe86b32173c50857JazzyNico std::string distance_or_radius = std::string(_("Radius"));
40503cc12fca62b22ba6f8efbe86b32173c50857JazzyNico distance_or_radius = std::string(_("Radius approximated"));
40503cc12fca62b22ba6f8efbe86b32173c50857JazzyNico distance_or_radius = std::string(_("Knot distance"));
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof if (knotpoint.x() > 0) {
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof position = modf(knotpoint[Geom::X], &intpart) * 100;
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_position_label.set_label(_("Position (%):"));
0b159142b0b5738b20883b411fe8233657cf8b4fJabiertxof std::string posConcat = Glib::ustring::compose (_("%1:"), distance_or_radius);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_position_label.set_label(_(posConcat.c_str()));
af4ffc13725d197d363363e3396de870410a8556Jabiertxof _fillet_chamfer_position_numeric.set_value(position);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _fillet_chamfer_type_inverse_fillet.set_active(true);
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof } else if (knotpoint.y() >= 3000 && knotpoint.y() < 4000) {
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof _fillet_chamfer_chamfer_subdivisions.set_value(knotpoint.y() - 3000);
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof } else if (knotpoint.y() >= 4000 && knotpoint.y() < 5000) {
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof _fillet_chamfer_chamfer_subdivisions.set_value(knotpoint.y() - 4000);
afe3b94c9da473ea1e7632e7853dd7dee528d194Jabiertxof _fillet_chamfer_type_inverse_chamfer.set_active(true);
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof FilletChamferPointArrayParamKnotHolderEntity *pt)
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof _knotpoint = const_cast<
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof Inkscape::LivePathEffect::FilletChamferPointArrayParamKnotHolderEntity *>(
af4ffc13725d197d363363e3396de870410a8556Jabiertxofvoid FilletChamferPropertiesDialog::_set_use_distance(bool use_knot_distance)
af4ffc13725d197d363363e3396de870410a8556Jabiertxofvoid FilletChamferPropertiesDialog::_set_aprox(bool aprox_radius)
d70e4df5c93140d7a0a9979ad6baec179a91212aJabiertxofvoid FilletChamferPropertiesDialog::_set_desktop(SPDesktop *desktop)
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof} // namespace
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof} // namespace
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof} // namespace
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof Local Variables:
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof c-file-style:"stroustrup"
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof indent-tabs-mode:nil
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof fill-column:99
19715d9462f14c8543082f8df232e3c99a8453caJabiertxof// filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99