diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp
index 6575609022ba557f48479756250e90ed29b299af..d832a34b4b81491a31d3c9ea234cf1cbc3868090 100644 (file)
--- a/src/conn-avoid-ref.cpp
+++ b/src/conn-avoid-ref.cpp
#include "libnr/nr-rect-ops.h"
#include "libavoid/polyutil.h"
#include "libavoid/incremental.h"
+#include "libavoid/connector.h"
#include "xml/simple-node.cpp"
#include "document.h"
#include "prefs-utils.h"
}
+GSList *SPAvoidRef::getAttachedShapes(const unsigned int type)
+{
+ GSList *list = NULL;
+
+ Avoid::IntList shapes;
+ GQuark shapeId = g_quark_from_string(item->id);
+ Avoid::attachedShapes(shapes, shapeId, type);
+
+ Avoid::IntList::iterator finish = shapes.end();
+ for (Avoid::IntList::iterator i = shapes.begin(); i != finish; ++i) {
+ const gchar *connId = g_quark_to_string(*i);
+ SPObject *obj = item->document->getObjectById(connId);
+ if (obj == NULL) {
+ g_warning("getAttachedShapes: Object with id=\"%s\" is not "
+ "found. Skipping.", connId);
+ continue;
+ }
+ SPItem *shapeItem = SP_ITEM(obj);
+ list = g_slist_prepend(list, shapeItem);
+ }
+ return list;
+}
+
+
+GSList *SPAvoidRef::getAttachedConnectors(const unsigned int type)
+{
+ GSList *list = NULL;
+
+ Avoid::IntList conns;
+ GQuark shapeId = g_quark_from_string(item->id);
+ Avoid::attachedConns(conns, shapeId, type);
+
+ Avoid::IntList::iterator finish = conns.end();
+ for (Avoid::IntList::iterator i = conns.begin(); i != finish; ++i) {
+ const gchar *connId = g_quark_to_string(*i);
+ SPObject *obj = item->document->getObjectById(connId);
+ if (obj == NULL) {
+ g_warning("getAttachedConnectors: Object with id=\"%s\" is not "
+ "found. Skipping.", connId);
+ continue;
+ }
+ SPItem *connItem = SP_ITEM(obj);
+ list = g_slist_prepend(list, connItem);
+ }
+ return list;
+}
+
+
static Avoid::Polygn avoid_item_poly(SPItem const *item)
{
SPDesktop *desktop = inkscape_active_desktop();