File: dGraphContainer.mli

package info (click to toggle)
ocamlgraph 2.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,624 kB
  • sloc: ml: 19,995; xml: 151; makefile: 14; sh: 1
file content (155 lines) | stat: -rw-r--r-- 5,402 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
(**************************************************************************)
(*                                                                        *)
(*  This file is part of OcamlGraph.                                      *)
(*                                                                        *)
(*  Copyright (C) 2009-2010                                               *)
(*    CEA (Commissariat  l'nergie Atomique)                             *)
(*                                                                        *)
(*  you can redistribute it and/or modify it under the terms of the GNU   *)
(*  Lesser General Public License as published by the Free Software       *)
(*  Foundation, version 2.1, with a linking exception.                    *)
(*                                                                        *)
(*  It is distributed in the hope that it will be useful,                 *)
(*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *)
(*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *)
(*  GNU Lesser General Public License for more details.                   *)
(*                                                                        *)
(*  See the file ../LICENSE for more details.                             *)
(*                                                                        *)
(*  Authors:                                                              *)
(*    - Julien Signoles  (Julien.Signoles@cea.fr)                         *)
(*    - Jean-Denis Koeck (jdkoeck@gmail.com)                              *)
(*    - Benoit Bataille  (benoit.bataille@gmail.com)                      *)
(*                                                                        *)
(**************************************************************************)

open Graph

type cluster = string

type status = Global | Tree | Both

class type
  ['vertex, 'edge, 'cluster, 'tree_vertex, 'tree_edge, 'tree_cluster]
    view_container_type =
  object

    method global_view :
      ('vertex, 'edge, 'cluster) DGraphView.view option

    method tree_view:
      ('tree_vertex, 'tree_edge, 'tree_cluster) DGraphView.view option

    method tree_root: 'vertex option

    method depth_backward : int
    method depth_forward : int
    method status : status

    method set_depth_backward : int -> unit
    method set_depth_forward : int -> unit
    method set_tree_root: 'vertex -> unit
    method switch : status -> unit

    method adapt_zoom: unit -> unit
  end

module type S = sig

  type graph
  type vertex
  type edge

  module Tree: Sig.G with type V.label = vertex

  module GView: DGraphView.S with type vertex = vertex
                              and type edge = edge
                              and type cluster = cluster

  module TView: DGraphView.S with type vertex = Tree.V.t
                              and type edge = Tree.E.t
                              and type cluster = cluster

  type global_view = (vertex, edge, cluster) DGraphView.view
  type tree_view = (Tree.V.t, Tree.E.t, cluster) DGraphView.view

  class view_container :
    ?packing:(GObj.widget -> unit)
    -> ?status:status
    -> ?default_callbacks:bool (* register default node callbacks (centering
                                  and highlighting). True by default *)
    -> mk_global_view: (unit -> global_view)
    -> mk_tree_view:
    (depth_backward:int -> depth_forward:int -> Gtk.widget Gtk.obj -> vertex
     -> tree_view)
    -> vertex option
    -> [ vertex, edge, cluster, Tree.V.t, Tree.E.t, cluster]
      view_container_type

end

module Make(G: Graphviz.GraphWithDotAttrs) : sig

  include S with type graph = G.t and type vertex = G.V.t and type edge = G.E.t

  val from_graph :
    ?packing:(GObj.widget -> unit)
    -> ?status:status
    -> ?default_callbacks:bool 
    ->
    ?mk_global_view:
      ((G.V.t, G.E.t, cluster) DGraphModel.abstract_model -> global_view)
    ->
    ?mk_tree_view:
      ((Tree.V.t, Tree.E.t, cluster) DGraphModel.abstract_model -> tree_view)
    -> ?root:G.vertex
    -> G.t
    -> view_container

  val from_graph_with_commands :
    ?packing:(GObj.widget -> unit)
    -> ?status:status
    -> ?default_callbacks:bool 
    ->
    ?mk_global_view:
      ((G.V.t, G.E.t, cluster) DGraphModel.abstract_model -> global_view)
    ->
    ?mk_tree_view:
      ((Tree.V.t, Tree.E.t, cluster) DGraphModel.abstract_model -> tree_view)
    -> ?root:G.vertex
    -> G.t
    -> GPack.table * view_container

end

module Dot : sig

  open DGraphModel

  include S with type graph = DotG.t
             and type vertex = DotG.V.t
             and type edge = DotG.E.t

  val from_dot :
    ?packing:(GObj.widget -> unit)
    -> ?status:status
    -> ?default_callbacks:bool 
    -> ?mk_global_view:
      ((DotG.V.t, DotG.E.t, cluster) abstract_model -> global_view)
    -> ?mk_tree_view:
      ((Tree.V.t, Tree.E.t, cluster) abstract_model -> tree_view)
    -> string (* dot filename *)
    -> view_container

  val from_dot_with_commands :
    ?packing:(GObj.widget -> unit)
    -> ?status:status
    -> ?default_callbacks:bool 
    -> ?mk_global_view:
      ((DotG.V.t, DotG.E.t, cluster) abstract_model -> global_view)
    -> ?mk_tree_view:
      ((Tree.V.t, Tree.E.t, cluster) abstract_model -> tree_view)
    -> string (* dot filename *)
    -> GPack.table * view_container

end