equal
deleted
inserted
replaced
304 } |
304 } |
305 } |
305 } |
306 |
306 |
307 |
307 |
308 def "func:is_descendant_path" { |
308 def "func:is_descendant_path" { |
|
309 param "descend"; |
309 param "ancest"; |
310 param "ancest"; |
310 param "descend"; |
311 result "string-length($ancest) > 0 and starts-with($descend,$ancest)"; |
311 result "starts-with($descend,$ancest)"; |
|
312 } |
312 } |
313 |
313 |
314 //////////////// Inline SVG |
314 //////////////// Inline SVG |
315 |
315 |
316 // Identity template : |
316 // Identity template : |
601 const "page_all_elements", "func:all_related_elements($page)"; |
601 const "page_all_elements", "func:all_related_elements($page)"; |
602 |
602 |
603 const "all_page_widgets","$hmi_elements[@id = $page_all_elements/@id and @id != $page/@id]"; |
603 const "all_page_widgets","$hmi_elements[@id = $page_all_elements/@id and @id != $page/@id]"; |
604 |
604 |
605 const "page_relative_widgets", |
605 const "page_relative_widgets", |
606 "$all_page_widgets[func:is_descendant_path($desc/path/@value, path/@value)]"; |
606 "$all_page_widgets[func:is_descendant_path(func:parselabel(@inkscape:label)/widget/path/@value, $desc/path/@value)]"; |
607 |
607 |
608 // Take closest ancestor in detachable_elements |
608 // Take closest ancestor in detachable_elements |
609 // since nested detachable elements are filtered out |
609 // since nested detachable elements are filtered out |
610 const "required_detachables", |
610 const "required_detachables", |
611 """func:sumarized_elements($page_all_elements)/ |
611 """func:sumarized_elements($page_all_elements)/ |