コード例 #1
0
ファイル: flow.c プロジェクト: brunetton/dia
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;
}
コード例 #2
0
ファイル: message.c プロジェクト: TVilaboa/Proyecto-Parser-C
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;
}
コード例 #3
0
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;
}
コード例 #4
0
ファイル: arc.c プロジェクト: TVilaboa/Proyecto-Parser-C
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;
}
コード例 #5
0
ファイル: bus.c プロジェクト: krattai/monoflow
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;
}
コード例 #6
0
ファイル: line.c プロジェクト: mpuels/dia
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;
}
コード例 #7
0
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;
}
コード例 #8
0
ファイル: line.c プロジェクト: TVilaboa/Proyecto-Parser-C
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;
}
コード例 #9
0
ファイル: wanlink.c プロジェクト: jbohren-forks/dia
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;
}
コード例 #10
0
ファイル: arc.c プロジェクト: jbohren-forks/dia
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;
}