10#include <glibmm/i18n.h>
23namespace LivePathEffect {
29 defvalue(default_vector),
31 vector(default_vector)
53 gchar ** strarray = g_strsplit(default_point,
",", 2);
57 g_strfreev (strarray);
66 gchar ** strarray = g_strsplit(strvalue,
",", 4);
72 while (i < 4 && strarray[i]) {
79 g_strfreev (strarray);
107 auto const pointwdg = Gtk::make_managed<UI::Widget::RegisteredVector>(
param_label,
113 pointwdg->setPolarCoords();
115 pointwdg->clearProgrammatically();
116 pointwdg->set_undo_parameters(_(
"Change vector parameter"), INKSCAPE_ICON(
"dialog-path-effects"));
118 auto const hbox = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::HORIZONTAL);
156 VectorParamKnotHolderEntity_Origin(
VectorParam *p) : param(p) { }
157 ~VectorParamKnotHolderEntity_Origin()
override =
default;
162 param->set_and_write_new_values(param->origin, param->vector);
166 return param->origin;
170 param->param_effect->makeUndoDone(_(
"Move handle"));
173 g_message (
"This is the origin handle associated to parameter '%s'", param->param_key.c_str());
182 VectorParamKnotHolderEntity_Vector(VectorParam *p) : param(p) { }
183 ~VectorParamKnotHolderEntity_Vector()
override =
default;
189 param->set_and_write_new_values(param->origin, param->vector);
193 return param->origin + param->vector;
197 param->param_effect->makeUndoDone(_(
"Move handle"));
200 g_message (
"This is the vector handle associated to parameter '%s'", param->param_key.c_str());
213 knotholder->
add(origin_e);
218 knotholder->
add(vector_e);
3x3 matrix representing an affine transformation.
Affine withoutTranslation() const
Two-dimensional point that doubles as a vector.
Inkscape::XML::Node * getRepr()
Inkscape::UI::Widget::Registry * param_wr
Glib::ustring param_tooltip
void param_write_to_repr(const char *svgd)
Glib::ustring param_label
friend class VectorParamKnotHolderEntity_Vector
void param_update_default(Geom::Point default_point)
bool param_readSVGValue(const gchar *strvalue) override
void param_transform_multiply(Geom::Affine const &postmul, bool set) override
void setVector(Geom::Point const &new_vector)
const gchar * handleTip() const
void set_vector_oncanvas_looks(CanvasItemCtrlShape shape, uint32_t color)
void set_oncanvas_color(guint32 color)
void setOrigin(Geom::Point const &new_origin)
void addKnotHolderEntities(KnotHolder *knotholder, SPItem *item) override
void param_set_default() override
Inkscape::CanvasItemCtrlShape ori_knot_shape
Glib::ustring param_getDefaultSVGValue() const override
VectorParam(const Glib::ustring &label, const Glib::ustring &tip, const Glib::ustring &key, Inkscape::UI::Widget::Registry *wr, Effect *effect, Geom::Point default_vector=Geom::Point(1, 0))
void set_and_write_new_values(Geom::Point const &new_origin, Geom::Point const &new_vector)
void set_origin_oncanvas_looks(CanvasItemCtrlShape shape, uint32_t color)
friend class VectorParamKnotHolderEntity_Origin
Gtk::Widget * param_newWidget() override
Inkscape::CanvasItemCtrlShape vec_knot_shape
The looks of the vector and origin knots oncanvas.
void setValues(Geom::Point const &new_origin, Geom::Point const &new_vector)
Glib::ustring param_getSVGValue() const override
KnotHolderEntity definition.
virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, unsigned state)=0
Geom::Point snap_knot_position(Geom::Point const &p, unsigned state)
virtual void knot_ungrabbed(Geom::Point const &p, Geom::Point const &origin, unsigned state)=0
virtual void knot_click(unsigned)
void add(KnotHolderEntity *e)
Base class for visual SVG elements.
Macro for icon names used in Inkscape.
void pack_start(Gtk::Box &box, Gtk::Widget &child, bool const expand, bool const fill, unsigned const padding)
Adds child to box, packed with reference to the start of box.
Helper class to stream background task notifications as a series of messages.
@ CANVAS_ITEM_CTRL_TYPE_LPE
static cairo_user_data_key_t key
Helpers for using Gtk::Boxes, encapsulating large changes between GTK3 & GTK4.
void sp_lpe_item_update_patheffect(SPLPEItem *lpeitem, bool wholetree, bool write, bool with_satellites)
Calls any registered handlers for the update_patheffect action.
Base class for live path effect items.
unsigned int sp_svg_number_read_d(gchar const *str, double *val)
TODO: insert short description here.