diff options
Diffstat (limited to 'src/gtkext/graph/edge.c')
-rw-r--r-- | src/gtkext/graph/edge.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/gtkext/graph/edge.c b/src/gtkext/graph/edge.c index 9a2f848..20f1988 100644 --- a/src/gtkext/graph/edge.c +++ b/src/gtkext/graph/edge.c @@ -36,6 +36,9 @@ struct _GGraphEdge { GObject parent; /* A laisser en premier */ + GCodeBlock *src; /* Bloc d'origine du lien */ + GCodeBlock *dst; /* Bloc de destination du lien */ + EdgeColor color; /* Couleur du rendu */ union @@ -137,6 +140,9 @@ static void g_graph_edge_init(GGraphEdge *edge) static void g_graph_edge_dispose(GGraphEdge *edge) { + g_clear_object(&edge->src); + g_clear_object(&edge->dst); + G_OBJECT_CLASS(g_graph_edge_parent_class)->dispose(G_OBJECT(edge)); } @@ -177,12 +183,18 @@ static void g_graph_edge_finalize(GGraphEdge *edge) * * ******************************************************************************/ -GGraphEdge *_g_graph_edge_new(const GdkPoint **templates, size_t count, EdgeColor color) +GGraphEdge *_g_graph_edge_new(GCodeBlock *src, GCodeBlock *dst, const GdkPoint **templates, size_t count, EdgeColor color) { GGraphEdge *result; /* Structure à retourner */ result = g_object_new(G_TYPE_GRAPH_EDGE, NULL); + result->src = src; + result->dst = dst; + + g_object_ref(G_OBJECT(src)); + g_object_ref(G_OBJECT(dst)); + result->color = color; assert(count == 4 || count == 6); @@ -200,6 +212,31 @@ GGraphEdge *_g_graph_edge_new(const GdkPoint **templates, size_t count, EdgeColo /****************************************************************************** * * * Paramètres : edge = ligne de rendu à consulter. * +* src = bloc d'origine du lien. [OUT] * +* dst = bloc de destination du lien. [OUT] * +* * +* Description : Fournit les deux blocs aux extrémités d'un lien. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_graph_edge_get_boundaries(const GGraphEdge *edge, GCodeBlock **src, GCodeBlock **dst) +{ + *src = edge->src; + *dst = edge->dst; + + g_object_ref(G_OBJECT(*src)); + g_object_ref(G_OBJECT(*dst)); + +} + + +/****************************************************************************** +* * +* Paramètres : edge = ligne de rendu à consulter. * * x1 = abscisse du point de départ de la ligne. [OUT] * * x2 = abscisse du point d'arrivée de la ligne. [OUT] * * * |