/ gui-lib / mrlib / graph.rkt
graph.rkt
 1  #lang racket/base
 2  
 3  (require racket/contract
 4           racket/class
 5           racket/gui/base
 6           "private/dot.rkt" 
 7           "private/graph.rkt")
 8  
 9  (provide
10   (contract-out
11    [dot-positioning (->* ((is-a?/c pasteboard%)) 
12                          ((or/c dot-label neato-label neato-hier-label neato-ipsep-label)
13                           boolean?)
14                          void?)]
15    [find-dot (->* () (boolean?) (or/c path? #f))]))
16  
17  (provide dot-label neato-label neato-hier-label neato-ipsep-label)
18  
19  (provide graph-snip<%>
20           graph-snip-mixin
21           graph-pasteboard<%>
22           graph-pasteboard-mixin)
23  
24  (provide
25   (contract-out
26    [add-links
27     (case->
28      (-> (is-a?/c graph-snip<%>) (is-a?/c graph-snip<%>) void?)
29      (-> (is-a?/c graph-snip<%>)
30          (is-a?/c graph-snip<%>)
31          (or/c #f (is-a?/c pen%))
32          (or/c #f (is-a?/c pen%))
33          (or/c #f (is-a?/c brush%))
34          (or/c #f (is-a?/c brush%))
35          void?)
36      (-> (is-a?/c graph-snip<%>)
37          (is-a?/c graph-snip<%>)
38          (or/c #f (is-a?/c pen%))
39          (or/c #f (is-a?/c pen%))
40          (or/c #f (is-a?/c brush%))
41          (or/c #f (is-a?/c brush%))
42          (or/c #f string?)
43          void?)
44      (-> (is-a?/c graph-snip<%>)
45          (is-a?/c graph-snip<%>)
46          (or/c #f (is-a?/c pen%))
47          (or/c #f (is-a?/c pen%))
48          (or/c #f (is-a?/c brush%))
49          (or/c #f (is-a?/c brush%))
50          number?
51          number?
52          void?)
53      (-> (is-a?/c graph-snip<%>)
54          (is-a?/c graph-snip<%>)
55          (or/c #f (is-a?/c pen%))
56          (or/c #f (is-a?/c pen%))
57          (or/c #f (is-a?/c brush%))
58          (or/c #f (is-a?/c brush%))
59          number?
60          number?
61          (or/c #f string?)
62          void?))]
63    [add-links/text-colors
64     (-> (is-a?/c graph-snip<%>)
65         (is-a?/c graph-snip<%>)
66         (or/c #f (is-a?/c pen%))
67         (or/c #f (is-a?/c pen%))
68         (or/c #f (is-a?/c brush%))
69         (or/c #f (is-a?/c brush%))
70         (or/c #f (is-a?/c color%))
71         (or/c #f (is-a?/c color%))
72         number?
73         number?
74         (or/c #f string?)
75         void?)]
76    [remove-links
77     (-> (is-a?/c graph-snip<%>)
78         (is-a?/c graph-snip<%>)
79         void?)]
80    [set-link-label
81     (-> (is-a?/c graph-snip<%>)
82         (is-a?/c graph-snip<%>)
83         (or/c #f string?)
84         void?)]))