~ubuntu-branches/ubuntu/lucid/graphviz/lucid-security

« back to all changes in this revision

Viewing changes to tcldgl/dgl.h

  • Committer: Bazaar Package Importer
  • Author(s): Stephen M Moraco
  • Date: 2002-02-05 18:52:12 UTC
  • Revision ID: james.westby@ubuntu.com-20020205185212-8i04c70te00rc40y
Tags: upstream-1.7.16
ImportĀ upstreamĀ versionĀ 1.7.16

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <assert.h>
 
2
#include <tcl.h>
 
3
#include <agraph.h>
 
4
#include <tclhandle.h>
 
5
#include <incr.h>
 
6
#include <shape.h>
 
7
 
 
8
#ifdef HAVE_CONFIG_H
 
9
#include "gvconfig.h"
 
10
#endif
 
11
 
 
12
typedef struct dgLayout_s dgLayout_t;
 
13
typedef struct dgLayoutNode_s dgLayoutNode_t;
 
14
typedef struct dgLayoutEdge_s dgLayoutEdge_t;
 
15
 
 
16
typedef enum dgdir_e {BOTH, FORWARD, BACKWARD, NOREVERSE} dgdir_t;
 
17
 
 
18
typedef struct dglInterp_s {
 
19
        Tcl_Interp         *interp;
 
20
        tblHeader_pt    layoutTable;
 
21
} dglInterp_t;
 
22
 
 
23
struct dgLayoutNode_s {
 
24
        ILnode_t                node; /* must be first */
 
25
        Tcl_HashEntry   *n;     /* pointer to base object */
 
26
};
 
27
 
 
28
struct dgLayoutEdge_s {
 
29
        ILedge_t                edge; /* must be first */
 
30
        Tcl_HashEntry   *e;     /* pointer to base object */
 
31
};
 
32
 
 
33
struct dgLayout_s {
 
34
        ILview_t                v;         /* must be first */
 
35
        unsigned long           id;
 
36
        dglInterp_t        *dglInterp;
 
37
        ILengine_t         *engine;
 
38
        char               *batch_cmd;
 
39
        char               *insert_node_cmd;
 
40
        char               *insert_edge_cmd;
 
41
        char               *modify_node_cmd;
 
42
        char               *modify_edge_cmd;
 
43
        char               *delete_node_cmd;
 
44
        char               *delete_edge_cmd;
 
45
        ILedge_t           *defaultedge;        /* a place to keep default shape info */
 
46
        ILnode_t           *defaultnode;
 
47
        int                             orientation;
 
48
        Tcl_HashTable   edgetable;
 
49
        Tcl_HashTable   nodetable;
 
50
};
 
51
 
 
52
/* functions from dglayout.c */
 
53
int layoutcmd(ClientData clientData, Tcl_Interp * interp, int argc, char *argv[]);
 
54
 
 
55
/* functions from dgshape.c */
 
56
void setnodeshapefromdefault(dgLayout_t * v, ILnode_t *spec);
 
57
void setedgeshapefromdefault(dgLayout_t * v, ILedge_t *spec);
 
58
void setnodeshape(ILnode_t *spec, ilshapetype_t type);
 
59
void setedgeshape(ILedge_t *spec, ilshapetype_t type);
 
60
int dgedgeshape(dgLayout_t *vp, int argc, char **argv, ILedge_t *spec);
 
61
int dgnodeshape(dgLayout_t *vp, int argc, char **argv, ILnode_t *spec);
 
62
void freeshapes(ilshape_t *shape);
 
63
 
 
64
/* functions from dgutil.c */
 
65
void initedgespec(ILedge_t *spec);
 
66
void initnodespec(ILnode_t *spec);
 
67
int getedgespec (dgLayout_t *v, char *e, dgLayoutEdge_t **vep, int create_p);
 
68
int getnodespec (dgLayout_t *v, char *n, dgLayoutNode_t **vnp, int create_p);
 
69
void dgldelete (dgLayout_t *v);
 
70
 
 
71
dgLayoutEdge_t * edge_to_spec(dgLayout_t *v, Tcl_HashEntry *e);
 
72
dgLayoutNode_t * node_to_spec(dgLayout_t *v, Tcl_HashEntry *n);
 
73
 
 
74
ilshape_t *init_edge_pos();
 
75
void insert_obj(dgLayout_t *v, ILobj_t *spec);
 
76
void modify_obj(dgLayout_t *v, ILobj_t *spec);
 
77
void delete_obj(dgLayout_t *v, ILobj_t *spec);
 
78
int shape_obj(dgLayout_t *v, ILobj_t *spec);
 
79
 
 
80
int dgscanxy(dgLayout_t *vp, char **argv, ilcoord_t *p);
 
81
void dgsprintxy(dgLayout_t *vp, Tcl_DString *result, int npts, ilcoord_t *p);
 
82
int dgboundary(dgLayout_t *vp, int argc, char **argv, ILnode_t *spec);
 
83
 
 
84
char *buildBindings(char *s1, char *s2);
 
85
char *dglExpandPercentsEval(
 
86
    Tcl_Interp * interp,     /* interpreter context */
 
87
    register char *before,   /* Command with percent expressions */
 
88
    char *l,     /* layoutHandle string to substitute for "%l" */
 
89
    char *n,     /* nodeHandle string to substitute for "%n"
 
90
                    or tailnode in *_edge_cmd */
 
91
    char *e,     /* edgeHandle string to substitute for "%e" */
 
92
    char *A,     /* headnode in *_edge_cmd */
 
93
    char *a,     /* node/edge coords */
 
94
    dgLayout_t *vp, /* layout context */
 
95
    int npts,   /* number of coordinates */
 
96
    ilcoord_t * ppos     /* Coordinates to substitute for %a */
 
97
);
 
98
 
 
99
char * layout_to_handle(dgLayout_t *v, char *buf);
 
100
dgLayout_t * handle_to_layout(char *s);
 
101
int dglCallbacks (dgLayout_t *v, int flag);
 
102
 
 
103
extern dglInterp_t dglInterp;