1 //---------------------------------------------------------------------------
\r
3 //---------------------------------------------------------------------------
\r
4 QNot::QNot(int x,int y) :QCircuit(x,y) {
\r
7 //---------------------------------------------------------------------------
\r
9 QNot::Draw(QDraw *qDraw) {
\r
11 int GridSize = qDraw->GetGridSize();
\r
12 int UnitSize = qDraw->GetUnitSize();
\r
13 int d = (GridSize-UnitSize)/2;
\r
14 int x1 = X * GridSize+d;
\r
15 int y1 = Y * GridSize+d;
\r
16 int x2 = x1 + UnitSize;
\r
17 int y2 = y1 + UnitSize;
\r
19 qDraw->SetBrushColor(clWhite);
\r
20 qDraw->FillRect(x1,y1,x2,y2);
\r
21 qDraw->SetPenColor(clBlack);
\r
22 qDraw->SetBrushColor(clWhite);
\r
23 qDraw->Ellipse(x1,y1,x2,y2);
\r
24 qDraw->DrawLine(x1+UnitSize/2,y1,x1+UnitSize/2,y2);
\r
25 qDraw->DrawLine(x1,y1+UnitSize/2,x2,y1+UnitSize/2);
\r
27 //---------------------------------------------------------------------------
\r
29 QNot::GetCalcText(void) {
\r
31 os << "NOT(q[" << Y << "])";
\r
34 //---------------------------------------------------------------------------
\r
36 QNot::DrawPS(QPSDraw *psDraw) {
\r
37 int GridSize = psDraw->GetGridSize();
\r
38 int UnitSize = psDraw->GetUnitSize();
\r
39 int d = (GridSize-UnitSize)/2;
\r
40 int x1 = X * GridSize+d;
\r
41 int y1 = Y * GridSize+d;
\r
42 int x2 = x1 + UnitSize;
\r
43 int y2 = y1 + UnitSize;
\r
45 psDraw->FillRect(x1,y1,x2,y2);
\r
46 psDraw->DrawCircle(X*GridSize + GridSize/2,Y*GridSize + GridSize/2,UnitSize/2);
\r
47 psDraw->DrawLine(x1+UnitSize/2,y1,x1+UnitSize/2,y2);
\r
48 psDraw->DrawLine(x1,y1+UnitSize/2,x2,y1+UnitSize/2);
\r
50 //---------------------------------------------------------------------------
\r
52 QNot::Reverse(int y) {
\r
55 //---------------------------------------------------------------------------
\r
57 QNot::GetOccupiedRect() {
\r
58 return TRect(X, Y, X + 1, Y + 1);
\r
60 //---------------------------------------------------------------------------
\r
62 * Construct clone object
\r
66 QNot *qn = new QNot(X, Y);
\r
67 return (QCircuit*)qn;
\r
69 //---------------------------------------------------------------------------
\r