1
////////////////////////////////////////////////////////////////////////////////
3
// This file is part of Toolkit for Conceptual Modeling (TCM).
4
// (c) copyright 1996, Vrije Universiteit Amsterdam.
5
// Author: Frank Dehne (frank@cs.vu.nl).
7
// TCM is free software; you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 2 of the License, or
10
// (at your option) any later version.
12
// TCM is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
17
// You should have received a copy of the GNU General Public License
18
// along with TCM; if not, write to the Free Software
19
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21
////////////////////////////////////////////////////////////////////////////////
23
#include "sndiagram.h"
27
// X bitmap data for the tiled buttons
29
#include "StartC1Line.xbm"
30
#include "EndC1Arrow.xbm"
31
#include "Comment.xbm"
32
#include "MediumCircle.xbm"
33
#include "MediumLeftLineCircle.xbm"
34
#include "MediumDiamond.xbm"
36
const char *SNWindow::SN_NODE_NAMES[] = {"Process", "Data stream", "State vector",
37
"Controlled data stream", "Comment"};
38
const Bitmap SNWindow::SN_NODE_ICONS[] =
39
{{Box_width, Box_height, Box_bits},
40
{MediumCircle_width, MediumCircle_height, MediumCircle_bits},
41
{MediumDiamond_width, MediumDiamond_height, MediumDiamond_bits},
42
{MediumLeftLineCircle_width, MediumLeftLineCircle_height,
43
MediumLeftLineCircle_bits},
44
{Comment_width, Comment_height, Comment_bits}};
46
const char *SNWindow::SN_EDGE_NAMES[] = {"Start connection", "End connection"};
47
const Bitmap SNWindow::SN_EDGE_ICONS [] =
48
{{StartC1Line_width, StartC1Line_height, StartC1Line_bits},
49
{EndC1Arrow_width, EndC1Arrow_height, EndC1Arrow_bits}};
52
SNWindow::SNWindow(const char *n): DiagramWindow(n) {}
54
DiagramViewer *SNWindow::CreateViewer(Config *cfg) {
55
return new SNViewer(cfg, this);
58
Graph *SNWindow::CreateGraph() {
62
Diagram *SNWindow::CreateDiagram(Config *c, DiagramViewer *v, Graph *g) {
63
return new SNDiagram(c, this, (SNViewer *)v, (SNGraph *)g);
66
void SNWindow::DetermineIcons() {
67
nodeNames = SN_NODE_NAMES;
68
nodeIcons = SN_NODE_ICONS;
69
edgeNames = SN_EDGE_NAMES;
70
edgeIcons = SN_EDGE_ICONS;
71
nrNodes = XtNumber(SN_NODE_NAMES);
72
nrEdges = XtNumber(SN_EDGE_NAMES);