.TH XCDDRAW 1 "29 September 1993" "Demeter" "Demeter Software" .SH NAME xcddraw \- drawing tool for class dictionary graphs and class dictionaries .SH SYNOPSIS .I xcddraw .SH DESCRIPTION .I xcddraw is a drawing tool for class dictionary graphs and class dictionaries. .I xcddraw produces postscript files to store graphical representation of class dictionaries and class dictionary graphs. The postscript files are in the .I xcddraw format. They can be printed by regular print commands, such as lpr. The postscript file names should end in .I .cg. You can also use .I xcddraw to generate textual representation of a class dictionaries (see below). Their file names should end in .I .cd. .SH DRAWING CONVENTIONS There are six kinds of vertices and six kinds of edges. .TP construction vertex represents an instantiable class, is drawn as a rectangle. .TP alternation vertex represents an abstract class, is drawn as a hexagon. .TP repetition vertex represents a list/set class, is drawn as a hexagon with a rectangle inside. .TP terminal vertex represents a pimitive instantiable class, is drawn as a rectangle with .I T inside. There are five built-in terminal vertices: .I DemNumber, DemReal, DemIdent, DemString, DemText. .TP external vertex represents an external class/type, is drawn as a rectangle with ? inside. There are three kinds of external classes/types. .I T@ .RS 9.0 Class .I T is defined in class library .I cl, which is created by the Demeter System/C++ tools. .RE .RS 5.0 .I T@@ .RS 9.0 Class .I T is defined in class library .I cl, which is created by a thrid party. .RE .RE .RS 5.0 .I $T .RS 9.0 Any type .I T. .RE .RE .TP parameter vertex represents a parameter class, is drawn as a circle. .TP required construction/repetition edge a solid arrow .TP optional construction/repetition edge a dashed arrow .TP alternation edge a solid double-shafted arrow .TP inheritance edge a dashed double-shafted arrow .TP parameter edge a solid thin arrow .TP instantiation edge a solid extra thick arrow .SH DRAWING ACTIONS There are three drawing modes: .I selecting mode, .I drawing mode and .I deleting mode. To switch to the selecting mode, click the select icon in the vertical selection bar. To switch to the deleting mode, click the trash icon in the vertical selection bar. To switch to the drawing mode, click one of the vertex/edge icon in the vertical selection bar. .TP Selecting an object In the selecting mode, move the cursor to the object and click the left button; in the drawing and the deleting mode, move the cursor to the object and click the middle button; to delete a object in the deleting mode, move the cursor to the object and click the left button. .TP Moving an object In any mode, use the middle button to select an object, keep holding the middle button and move your mouse. When you move the object to the edge of the drawing area, the area will be automatically scrolled. .TP Drawing a vertex Use the left button to select the correct drawing mode. Move the cursor to the place you want to put the vertex. Click the left button. A dialog window will be popped up after the click. Enter the vertex name. If a vertex with the same name has been drawn, and the vertex is not a terminal vertex or a parameter vertex, the vertex will be drawn in thin lines. The vertex is called .I a secondary vertex. The first time a vertex is drawn, it is drawn in thick lines. It is called a primary vertex. You can set another vertex as a primary vertex in the info dialg window (see below). .TP Drawing an edge Use the left button to select the correct drawing mode. Move the cursor to the vertex from which the edge goes out. Click the left button to draw the start point of the edge. To draw the inner points of the edge, click the left button. To draw the end point, move the cursor to the vertex the edge coming to, click the middle button. If the edge is a construction edge, a dialog window will be popped up after the click of the middle button. Enter the edge label name in the window. You can reposition the points of the edge as desribed above. .TP Drawing a parameterized vertex For example, let's draw a parameterized repetition vertex List(S). First draw repetition vertex List as described above. Then draw parameter vertex S. Finally, draw a parameter edge from List to S to represent vertex List has a parameter S. .TP Deleting an object You can delete an object in the three modes. Use the middle button to select the object to be deleted. Hold the right button, then a menu is popped out. Choose the deletion item. You can also delete an object in the deleting mode by clicking the object with the left button. .TP Instantiating a parameterized vertex You can instantiate a parameterized vertex with actual parameters. To instantiate a parameterized construction vertex, for example, draw a construction vertex without name. Draw an instantiation edge from the unlabeled construction edge to the parameterized construction vertex. After drawing the end vertex, a dialog window will be popped up. Fill in the actual values for the formal arguments. .TP Using the info dialog window In the selecting mode, you can get the info dialog window by double-clicking an object with the left button. In other modes, use the middle button to select an object. Hold the right button and select the info item in the popped menu. In the vertex info dialog window, you can change the name of the vertex, add comments, add syntax (for construction, alternation, and repetition vertices) and reorder outgoing construction edges (for construction and alternation edges). In the edge info dialog window, you can change the name of a construction edge, add comments, add syntax to a construction edge. .TP Generating a class dictionary Choose menu item .I Cdgen under menu bar .I File. And give the name of the class dictionary file (ending in .cd ). .TP Reordering vertices Choose menu item .I reorder vertices under menu bar .I Edit. .TP Resizing pictures Choose menu item .I picture size under menu bar .I Option. .TP .SH "SEE ALSO" sem-check(1), headers(1), comp-pp(1)