static DiaObject * flow_copy(Flow *flow) { Flow *newflow; Connection *conn, *newconn; DiaObject *newobj; conn = &flow->connection; newflow = g_malloc0(sizeof(Flow)); newconn = &newflow->connection; newobj = &newconn->object; connection_copy(conn, newconn); newflow->text_handle = flow->text_handle; newflow->text_handle.connected_to = NULL; newobj->handles[2] = &newflow->text_handle; newflow->textpos = flow->textpos; newflow->text = text_copy(flow->text); newflow->type = flow->type; flow_update_data(newflow); return &newflow->connection.object; }
static Object * message_copy(Message *message) { Message *newmessage; Connection *conn, *newconn; Object *newobj; conn = &message->connection; newmessage = g_malloc(sizeof(Message)); newconn = &newmessage->connection; newobj = (Object *) newmessage; connection_copy(conn, newconn); newmessage->text_handle = message->text_handle; newobj->handles[2] = &newmessage->text_handle; newmessage->text = (message->text) ? strdup(message->text): NULL; newmessage->text_pos = message->text_pos; newmessage->text_width = message->text_width; newmessage->type = message->type; return (Object *)newmessage; }
static Object * implements_copy(Implements *implements) { Implements *newimplements; Connection *conn, *newconn; Object *newobj; conn = &implements->connection; newimplements = g_malloc(sizeof(Implements)); newconn = &newimplements->connection; newobj = (Object *) newimplements; connection_copy(conn, newconn); newimplements->text_handle = implements->text_handle; newobj->handles[2] = &newimplements->text_handle; newimplements->circle_handle = implements->circle_handle; newobj->handles[3] = &newimplements->circle_handle; newimplements->circle_diameter = implements->circle_diameter; newimplements->circle_center = implements->circle_center; newimplements->text = strdup(implements->text); newimplements->text_pos = implements->text_pos; newimplements->text_width = implements->text_width; newimplements->properties_dialog = NULL; return (Object *)newimplements; }
static Object * arc_copy(Arc *arc) { Arc *newarc; Connection *conn, *newconn; Object *newobj; conn = &arc->connection; newarc = g_malloc(sizeof(Arc)); newconn = &newarc->connection; newobj = (Object *) newarc; connection_copy(conn, newconn); newarc->arc_color = arc->arc_color; newarc->curve_distance = arc->curve_distance; newarc->line_width = arc->line_width; newarc->line_style = arc->line_style; newarc->dashlength = arc->dashlength; newarc->start_arrow = arc->start_arrow; newarc->end_arrow = arc->end_arrow; newarc->radius = arc->radius; newarc->center = arc->center; newarc->angle1 = arc->angle1; newarc->angle2 = arc->angle2; newobj->handles[2] = &newarc->middle_handle; newarc->middle_handle = arc->middle_handle; return (Object *)newarc; }
static DiaObject * bus_copy(Bus *bus) { Bus *newbus; Connection *conn, *newconn; DiaObject *newobj; int i; conn = &bus->connection; newbus = g_malloc0(sizeof(Bus)); newconn = &newbus->connection; newobj = &newconn->object; connection_copy(conn, newconn); newbus->num_handles = bus->num_handles; newbus->line_color = bus->line_color; newbus->handles = g_malloc(sizeof(Handle *)*newbus->num_handles); newbus->parallel_points = g_malloc(sizeof(Point)*newbus->num_handles); for (i=0;i<newbus->num_handles;i++) { newbus->handles[i] = g_new0(Handle,1); *newbus->handles[i] = *bus->handles[i]; newbus->handles[i]->connected_to = NULL; newobj->handles[2+i] = newbus->handles[i]; newbus->parallel_points[i] = bus->parallel_points[i]; } newbus->real_ends[0] = bus->real_ends[0]; newbus->real_ends[1] = bus->real_ends[1]; return &newbus->connection.object; }
static DiaObject * line_copy(Line *line) { Line *newline; Connection *conn, *newconn; DiaObject *newobj; int rcc = 0; conn = &line->connection; newline = g_malloc0(sizeof(Line)); newconn = &newline->connection; newobj = &newconn->object; connection_copy(conn, newconn); newline->cpl = connpointline_copy(newobj,line->cpl,&rcc); newline->line_color = line->line_color; newline->line_width = line->line_width; newline->line_style = line->line_style; newline->line_caps = line->line_caps; newline->dashlength = line->dashlength; newline->start_arrow = line->start_arrow; newline->end_arrow = line->end_arrow; newline->absolute_start_gap = line->absolute_start_gap; newline->absolute_end_gap = line->absolute_end_gap; line_update_data(line); return &newline->connection.object; }
static Object * constraint_copy(Constraint *constraint) { Constraint *newconstraint; Connection *conn, *newconn; Object *newobj; conn = &constraint->connection; newconstraint = g_malloc(sizeof(Constraint)); newconn = &newconstraint->connection; newobj = (Object *) newconstraint; connection_copy(conn, newconn); newconstraint->text_handle = constraint->text_handle; newobj->handles[2] = &newconstraint->text_handle; newconstraint->text = strdup(constraint->text); newconstraint->text_pos = constraint->text_pos; newconstraint->text_width = constraint->text_width; newconstraint->properties_dialog = NULL; return (Object *)newconstraint; }
static Object * line_copy(Line *line) { Line *newline; Connection *conn, *newconn; Object *newobj; conn = &line->connection; newline = g_malloc(sizeof(Line)); newconn = &newline->connection; newobj = (Object *) newline; connection_copy(conn, newconn); newobj->connections[0] = &newline->middle_point; newline->middle_point.object = newobj; newline->middle_point.connected = NULL; newline->middle_point.pos = line->middle_point.pos; newline->middle_point.last_pos = line->middle_point.last_pos; newline->line_color = line->line_color; newline->line_width = line->line_width; newline->line_style = line->line_style; newline->dashlength = line->dashlength; newline->start_arrow = line->start_arrow; newline->end_arrow = line->end_arrow; return (Object *)newline; }
static DiaObject * wanlink_copy(WanLink *wanlink) { WanLink *newwanlink; Connection *conn, *newconn; conn = &wanlink->connection; newwanlink = g_malloc0(sizeof(WanLink)); newconn = &newwanlink->connection; connection_copy(conn, newconn); newwanlink->width = wanlink->width; newwanlink->line_color = wanlink->line_color; newwanlink->fill_color = wanlink->fill_color; return (DiaObject *)newwanlink; }
static DiaObject * arc_copy(Arc *arc) { Arc *newarc; Connection *conn, *newconn; DiaObject *newobj; conn = &arc->connection; newarc = g_malloc0(sizeof(Arc)); newconn = &newarc->connection; newobj = &newconn->object; connection_copy(conn, newconn); newarc->arc_color = arc->arc_color; newarc->curve_distance = arc->curve_distance; newarc->line_width = arc->line_width; newarc->line_style = arc->line_style; newarc->line_caps = arc->line_caps; newarc->dashlength = arc->dashlength; newarc->start_arrow = arc->start_arrow; newarc->end_arrow = arc->end_arrow; newarc->radius = arc->radius; newarc->center = arc->center; newarc->angle1 = arc->angle1; newarc->angle2 = arc->angle2; newobj->handles[2] = &newarc->middle_handle; newarc->middle_handle = arc->middle_handle; newobj->handles[3] = &newarc->center_handle; newarc->center_handle = arc->center_handle; arc_update_data(arc); return &newarc->connection.object; }