diff options
Diffstat (limited to 'src/conn-avoid-ref.cpp')
| -rw-r--r-- | src/conn-avoid-ref.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp index 657560902..8fbdfb673 100644 --- a/src/conn-avoid-ref.cpp +++ b/src/conn-avoid-ref.cpp @@ -16,6 +16,7 @@ #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" @@ -108,6 +109,25 @@ void SPAvoidRef::handleSettingChange(void) } +GSList *SPAvoidRef::getAttachedConnectors(const unsigned int type) +{ + GSList *list = NULL; + + Avoid::IntList conns; + GQuark shapeId = g_quark_from_string(item->id); + Avoid::attachedToShape(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); + SPItem *item = SP_ITEM(item->document->getObjectById(connId)); + g_assert(item != NULL); + list = g_slist_prepend(list, item); + } + return list; +} + + static Avoid::Polygn avoid_item_poly(SPItem const *item) { SPDesktop *desktop = inkscape_active_desktop(); |
