OSDN Git Service

Save results as text
[qcad/qcad.git] / qcadwin / Preview.cpp
1 //---------------------------------------------------------------------------\r
2 #include <vcl.h>\r
3 #pragma hdrstop\r
4 \r
5 #include "Preview.h"\r
6 //---------------------------------------------------------------------------\r
7 #pragma package(smart_init)\r
8 #pragma resource "*.dfm"\r
9 TFPreview *FPreview;\r
10 //---------------------------------------------------------------------------\r
11 __fastcall\r
12 TFPreview::TFPreview(TComponent* Owner)\r
13     : TForm(Owner) {\r
14   qDraw  = new QDraw(Image->Canvas);\r
15   CBZoom->Items->Add("100%");\r
16   CBZoom->Items->Add("120%");\r
17   CBZoom->Items->Add("150%");\r
18   CBZoom->Items->Add("200%");\r
19   CBZoom->ItemIndex = 0;\r
20   qManager=NULL;\r
21 }\r
22 //---------------------------------------------------------------------------\r
23 void __fastcall\r
24 TFPreview::FormClose(TObject *Sender, TCloseAction &Action) {\r
25   delete qDraw;\r
26 }\r
27 //---------------------------------------------------------------------------\r
28 void\r
29 TFPreview::Execute(QManager *qm) {\r
30   qManager = qm;\r
31   CBZoom->ItemIndex = 0;\r
32   ChangeSize();\r
33   DrawAll();\r
34   ShowModal();\r
35 }\r
36 //---------------------------------------------------------------------------\r
37 /**\r
38  * Change Circuit Size\r
39  */\r
40 void\r
41 TFPreview::ChangeSize(void) {\r
42   int GridSize = qDraw->GetGridSize();\r
43   int LineNumber = qManager->GetLineNumber();\r
44   int ColumnNumber = qManager->GetColumnNumber();\r
45   Image->Picture = NULL;\r
46   Image->Height = LineNumber * GridSize + GridSize*2;\r
47   Image->Width = ColumnNumber * GridSize + GridSize*2;\r
48   Image->Canvas->Brush->Color = clWhite;\r
49   Image->Canvas->FillRect(Rect(0,0,Image->Width,Image->Height));\r
50 \r
51   ClientWidth = Image->Width;\r
52   ClientHeight = Image->Height;\r
53 \r
54   if (ClientWidth > MAX_WIDTH) {\r
55     ClientWidth = MAX_WIDTH;\r
56   }\r
57   if (ClientHeight > MAX_HEIGHT) {\r
58     ClientHeight = MAX_HEIGHT;\r
59   }\r
60   qDraw->SetCanvas(Image->Canvas);\r
61 }\r
62 //---------------------------------------------------------------------------\r
63 void\r
64 TFPreview::DrawAll(void) {\r
65   int gridx = 700 / (qManager->GetColumnNumber() + 2);\r
66   int gridy = 500 / (qManager->GetLineNumber() + 1);\r
67   if (gridx < gridy) {\r
68     qDraw->SetGridSize(gridx);\r
69   } else {\r
70     qDraw->SetGridSize(gridy);\r
71   }\r
72   ClearCanvas();\r
73   qManager->DrawAllPrinter(qDraw);\r
74 }\r
75 //---------------------------------------------------------------------------\r
76 void\r
77 TFPreview::ClearCanvas() {\r
78   Image->Canvas->Brush->Color = clWhite;\r
79   Image->Canvas->Pen->Color = clBlack;\r
80   Image->Canvas->FillRect(TRect(0, 0, Image->Width, Image->Height));\r
81 }\r
82 //---------------------------------------------------------------------------\r
83 void __fastcall\r
84 TFPreview::TBShowIndexClick(TObject *Sender) {\r
85   qManager->PrtSt.ShowIndexFlg = TBShowIndex->Down;\r
86   DrawAll();\r
87 }\r
88 //---------------------------------------------------------------------------\r
89 \r
90 void __fastcall\r
91 TFPreview::TBShowVGClick(TObject *Sender) {\r
92   qManager->PrtSt.ShowVtLineFlg = TBShowVG->Down;\r
93   DrawAll();\r
94 }\r
95 //---------------------------------------------------------------------------\r
96 void __fastcall TFPreview::CBZoomChange(TObject *Sender) {\r
97   DrawAll();\r
98 }\r
99 //---------------------------------------------------------------------------\r
100 \r