A topSchema is a schema surrounded by a dashed rectangle with a label on the top left. More...
#include <topSchema.h>
Inherits schema.
Public Member Functions | |
virtual void | place (double ox, double oy, int orientation) |
Define the graphic position of the schema. | |
virtual void | draw (device &dev) |
Draw the enlarged schema. | |
virtual point | inputPoint (unsigned int i) const |
Top schema has no input. | |
virtual point | outputPoint (unsigned int i) const |
Top schema has no output. | |
Friends | |
schema * | makeTopSchema (schema *s1, double margin, const string &text, const string &link) |
Creates a new top schema. |
A topSchema is a schema surrounded by a dashed rectangle with a label on the top left.
The rectangle is placed at half the margin parameter. Arrows are added to all the outputs
Definition at line 34 of file topSchema.h.
void topSchema::draw | ( | device & | dev | ) | [virtual] |
Draw the enlarged schema.
This methos can only be called after the block have been placed
Implements schema.
Definition at line 92 of file topSchema.cpp.
00093 { 00094 assert(placed()); 00095 00096 // draw a background white rectangle 00097 dev.rect(x(), y(), width()-1, height()-1, "#ffffff", fLink.c_str()); 00098 00099 // draw the label 00100 dev.label(x()+fMargin, y()+fMargin/2, fText.c_str()); 00101 00102 fSchema->draw(dev); 00103 00104 // draw arrows at output points of schema 00105 for (unsigned int i=0; i<fSchema->outputs(); i++) { 00106 point p = fSchema->outputPoint(i); 00107 dev.fleche(p.x, p.y, 0, orientation()); 00108 } 00109 }
void topSchema::place | ( | double | ox, | |
double | oy, | |||
int | orientation | |||
) | [virtual] |
Define the graphic position of the schema.
Computes the graphic position of all the elements, in particular the inputs and outputs. This method must be called before draw(), otherwise draw is not allowed
Implements schema.
Definition at line 60 of file topSchema.cpp.