void PathEffect::processPathEffects (SPDocument * doc, Inkscape::XML::Node * path) { gchar const * patheffectlist = path->attribute("inkscape:path-effects"); if (patheffectlist == NULL) return; gchar ** patheffects = g_strsplit(patheffectlist, ";", 128); Inkscape::XML::Node * defs = SP_OBJECT_REPR(SP_DOCUMENT_DEFS(doc)); for (int i = 0; patheffects[i] != NULL && i < 128; i++) { gchar * patheffect = patheffects[i]; // This is weird, they should all be references... but anyway if (patheffect[0] != '#') continue; Inkscape::XML::Node * prefs = sp_repr_lookup_child(defs, "id", &(patheffect[1])); if (prefs == NULL) { continue; } gchar const * ext_id = prefs->attribute("extension"); if (ext_id == NULL) { continue; } Inkscape::Extension::PathEffect * peffect; peffect = dynamic_cast<Inkscape::Extension::PathEffect *>(Inkscape::Extension::db.get(ext_id)); if (peffect != NULL) { continue; } peffect->processPath(doc, path, prefs); } g_strfreev(patheffects); return; }
Inkscape::XML::Node * Parameter::find_child (Inkscape::XML::Node * adult) { return sp_repr_lookup_child(adult, "name", _name); }