void create_canvas_line(Geom::Point const &p1, Geom::Point const &p2, guint32 rgba) { SPDesktop *desktop = inkscape_active_desktop(); SPCtrlLine *line = ControlManager::getManager().createControlLine(sp_desktop_controls(desktop), p1, p2); line->setRgba32(rgba); sp_canvas_item_show(line); }
SPCtrlLine *ControlManager::createControlLine(SPCanvasGroup *parent, Geom::Point const &p1, Geom::Point const &p2, CtrlLineType type) { SPCtrlLine *line = createControlLine(parent, type); if (line) { line->setCoords(p1, p2); } return line; }
SPCtrlLine *ControlManager::createControlLine(SPCanvasGroup *parent, CtrlLineType type) { SPCtrlLine *line = SP_CTRLLINE(sp_canvas_item_new(parent, SP_TYPE_CTRLLINE, NULL)); if (line) { line->ctrlType = CTRL_TYPE_LINE; line->setRgba32((type == CTLINE_PRIMARY) ? LINE_COLOR_PRIMARY : (type == CTLINE_SECONDARY) ? LINE_COLOR_SECONDARY : LINE_COLOR_TERTIARY); } return line; }