Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/circuits/QNot.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Wed Aug 3 10:14:23 2011 UTC (12 years, 9 months ago) by kaityo
File MIME type: text/x-c++src
File size: 2193 byte(s)
First commit
1 //---------------------------------------------------------------------------
2 #include "QNot.h"
3 //---------------------------------------------------------------------------
4 QNot::QNot(int x,int y) :QCircuit(x,y) {
5 Name = GetTypeStr();
6 }
7 //---------------------------------------------------------------------------
8 void
9 QNot::Draw(QDraw *qDraw) {
10
11 int GridSize = qDraw->GetGridSize();
12 int UnitSize = qDraw->GetUnitSize();
13 int d = (GridSize-UnitSize)/2;
14 int x1 = X * GridSize+d;
15 int y1 = Y * GridSize+d;
16 int x2 = x1 + UnitSize;
17 int y2 = y1 + UnitSize;
18
19 qDraw->SetBrushColor(clWhite);
20 qDraw->FillRect(x1,y1,x2,y2);
21 qDraw->SetPenColor(clBlack);
22 qDraw->SetBrushColor(clWhite);
23 qDraw->Ellipse(x1,y1,x2,y2);
24 qDraw->DrawLine(x1+UnitSize/2,y1,x1+UnitSize/2,y2);
25 qDraw->DrawLine(x1,y1+UnitSize/2,x2,y1+UnitSize/2);
26 }
27 //---------------------------------------------------------------------------
28 string
29 QNot::GetCalcText(void) {
30 ostringstream os;
31 os << "NOT(q[" << Y << "])";
32 return os.str();
33 }
34 //---------------------------------------------------------------------------
35 void
36 QNot::DrawPS(QPSDraw *psDraw) {
37 int GridSize = psDraw->GetGridSize();
38 int UnitSize = psDraw->GetUnitSize();
39 int d = (GridSize-UnitSize)/2;
40 int x1 = X * GridSize+d;
41 int y1 = Y * GridSize+d;
42 int x2 = x1 + UnitSize;
43 int y2 = y1 + UnitSize;
44
45 psDraw->FillRect(x1,y1,x2,y2);
46 psDraw->DrawCircle(X*GridSize + GridSize/2,Y*GridSize + GridSize/2,UnitSize/2);
47 psDraw->DrawLine(x1+UnitSize/2,y1,x1+UnitSize/2,y2);
48 psDraw->DrawLine(x1,y1+UnitSize/2,x2,y1+UnitSize/2);
49 }
50 //---------------------------------------------------------------------------
51 void
52 QNot::Reverse(int y) {
53 Y = y - Y;
54 }
55 //---------------------------------------------------------------------------
56 TRect
57 QNot::GetOccupiedRect() {
58 return TRect(X, Y, X + 1, Y + 1);
59 }
60 //---------------------------------------------------------------------------
61 /**
62 * Construct clone object
63 **/
64 QCircuit *
65 QNot::Clone() {
66 QNot *qn = new QNot(X, Y);
67 return (QCircuit*)qn;
68 }
69 //---------------------------------------------------------------------------

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26