diff --git a/src/sp-shape.h b/src/sp-shape.h
index 5479284365f3d03131b2e3ad1ed84d249f62d573..7563e2c7d760e29cda4fe0bdf494fda5bb623935 100644 (file)
--- a/src/sp-shape.h
+++ b/src/sp-shape.h
#include "sp-item.h"
#include "sp-marker-loc.h"
-
+#include <sigc++/connection.h>
#define SP_TYPE_SHAPE (sp_shape_get_type ())
#define SP_SHAPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_SHAPE, SPShape))
#define SP_SHAPE_WRITE_PATH (1 << 2)
+struct LivePathEffectObject;
+namespace Inkscape{
+namespace LivePathEffect{
+ class LPEObjectReference;
+};
+};
+
+
struct SPShape : public SPItem {
- SPCurve *curve;
+ SPCurve *curve;
SPObject *marker[SP_MARKER_LOC_QTY];
- gulong release_connect [SP_MARKER_LOC_QTY];
- gulong modified_connect [SP_MARKER_LOC_QTY];
+ sigc::connection release_connect [SP_MARKER_LOC_QTY];
+ sigc::connection modified_connect [SP_MARKER_LOC_QTY];
+
+ gchar *path_effect_href;
+ Inkscape::LivePathEffect::LPEObjectReference *path_effect_ref;
+ sigc::connection lpe_modified_connection;
};
struct SPShapeClass {
/* Build bpath from extra shape attributes */
void (* set_shape) (SPShape *shape);
+
+ void (* update_patheffect) (SPShape *shape, bool write);
};
GType sp_shape_get_type (void);
/* Return duplicate of curve or NULL */
SPCurve *sp_shape_get_curve (SPShape *shape);
+// sets a curve, updates display
void sp_shape_set_curve (SPShape *shape, SPCurve *curve, unsigned int owner);
-/* NOT FOR GENERAL PUBLIC UNTIL SORTED OUT (Lauris) */
+// same as sp_shape_set_curve, but without updating display
void sp_shape_set_curve_insync (SPShape *shape, SPCurve *curve, unsigned int owner);
-/* PROTECTED */
+// markers API
void sp_shape_set_marker (SPObject *object, unsigned int key, const gchar *value);
-
-
+int sp_shape_has_markers (SPShape const *shape);
+int sp_shape_number_of_markers (SPShape* Shape, int type);
+NR::Matrix sp_shape_marker_get_transform(SPShape const *shape, NArtBpath const *bp);
+bool sp_shape_marker_required(SPShape const *shape, int const m, NArtBpath *bp);
+
+LivePathEffectObject * sp_shape_get_livepatheffectobject(SPShape *shape);
+void sp_shape_update_patheffect (SPShape *shape, bool write);
+void sp_shape_perform_path_effect(SPCurve *curve, SPShape *shape);
+
+void sp_shape_set_path_effect(SPShape *shape, gchar *value);
+void sp_shape_remove_path_effect(SPShape *shape);
+bool sp_shape_has_path_effect(SPShape *shape);
#endif