summaryrefslogtreecommitdiff
path: root/src/gtkext/graph/node.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-05-12 18:55:55 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-05-12 18:55:55 (GMT)
commit4605b4ac4a04bb11bdf91d77e248656702774bde (patch)
tree4987c19b0f739ef7cb89ac80068233d6fb037819 /src/gtkext/graph/node.h
parent46bcc7f122245f22772fd3e38d16e6afa7bd5881 (diff)
Ensured parent nodes are centered on their children when expected.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@534 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/graph/node.h')
-rw-r--r--src/gtkext/graph/node.h28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/gtkext/graph/node.h b/src/gtkext/graph/node.h
index 502b366..6d3589a 100644
--- a/src/gtkext/graph/node.h
+++ b/src/gtkext/graph/node.h
@@ -55,11 +55,24 @@ typedef struct _GGraphNodeClass GGraphNodeClass;
/* Indications sur l'abscisse idéale à adopter */
typedef union _pending_position
{
- gint direct_x; /* Position strictement vert. */
- gint left_margin; /* Limite à ne pas dépasser #1 */
- gint right_margin; /* Limite à ne pas dépasser #2 */
- GGraphNode *left_node; /* Noeud de référence à droite */
- GGraphNode *right_node; /* Noeud de référence à gauche */
+ /* PPF_DIRECT_X, PPF_LEFT_MARGIN, PPF_RIGHT_MARGIN */
+ struct
+ {
+ union
+ {
+ gint direct_x; /* Position strictement vert. */
+ gint left_margin; /* Limite à ne pas dépasser #1 */
+ gint right_margin; /* Limite à ne pas dépasser #2 */
+ };
+ GGraphNode *relative_ref; /* Eventuelle ref. relative */
+ };
+
+ /* PPF_LEFT_NODE, PPF_RIGHT_NODE, PPF_MIDDLE_OF */
+ struct
+ {
+ GGraphNode *left_node; /* Noeud de référence à droite */
+ GGraphNode *right_node; /* Noeud de référence à gauche */
+ };
} pending_position;
@@ -71,7 +84,8 @@ typedef enum _PendingPositionFlags
PPF_LEFT_MARGIN, /* Limite à ne pas dépasser #1 */
PPF_RIGHT_MARGIN, /* Limite à ne pas dépasser #2 */
PPF_LEFT_NODE, /* Noeud de référence à droite */
- PPF_RIGHT_NODE /* Noeud de référence à gauche */
+ PPF_RIGHT_NODE, /* Noeud de référence à gauche */
+ PPF_MIDDLE_OF /* Centré entre deux noeuds */
} PendingPositionFlags;
@@ -107,7 +121,7 @@ void g_graph_node_apply_position(GGraphNode *);
void g_graph_node_set_x_position(GGraphNode *, gint);
/* Prépare la position du noeud pour l'alignement des liens. */
-void g_graph_node_set_pending_position(GGraphNode *, PendingPositionFlags, pending_position, GGraphNode *);
+void g_graph_node_set_pending_position(GGraphNode *, PendingPositionFlags, pending_position);
/* Indique la position du noeud pour l'alignement des liens. */
void g_graph_node_get_pending_position(GGraphNode *, PendingPositionFlags *, pending_position *);