1 //---------------------------------------------------------------------------
2
3 #include <vcl.h>
4 #pragma hdrstop
5
6 #include "Umain.h"
7 #include "UEditor.h"
8 #include "Application.h"
9 #include "USettings.h"
10 #include "UAbout.h"
11 #include "UPreProcess.h"
12 //---------------------------------------------------------------------------
13 #pragma package(smart_init)
14 #pragma resource "*.dfm"
15
16 #define SoftNAME "GVexec"
17 TfrmMain *frmMain;
18 //---------------------------------------------------------------------------
TfrmMain(TComponent * Owner)19 __fastcall TfrmMain::TfrmMain(TComponent* Owner)
20 : TForm(Owner)
21 {
22 }
23 //---------------------------------------------------------------------------
New1Click(TObject * Sender)24 void __fastcall TfrmMain::New1Click(TObject *Sender)
25 {
26 TfrmEditor* Editor=new TfrmEditor(Application);
27 Editor->ChangeFileName("Untitled"+IntToStr(FileSeq++),true);
28 }
29 //---------------------------------------------------------------------------
30
Label1Click(TObject * Sender)31 void __fastcall TfrmMain::Label1Click(TObject *Sender)
32 {
33 this->ActiveMDIChild->Caption="this is active";
34
35 }
36 //---------------------------------------------------------------------------
37
38
39
FormCreate(TObject * Sender)40 void __fastcall TfrmMain::FormCreate(TObject *Sender)
41 {
42 FileSeq=1;
43 AnsiString g=SoftNAME;
44 // ODB->InitialDir=ReadFromRegistry("\\SOFTWARE\\ATT\\GRAPHVIZ\\","InstallPath")+"\\graphs";
45 /* if (!FileExists(ODB->InitialDir+"\\dot.exe"))
46 {
47 ShowMessage (ODB->InitialDir+"\\dot.exe");
48 ShowMessage ("Could not locate dot.exe , please make sure that dot.exe is in the same folder with GVedit");
49 Application->Terminate();
50 }*/
51 // ODB->InitialDir=ExtractFilePath(Application->ExeName);
52 }
53 //---------------------------------------------------------------------------
54
Open1Click(TObject * Sender)55 void __fastcall TfrmMain::Open1Click(TObject *Sender)
56 {
57 if(ODB->Execute())
58 {
59 if(FileExists(ODB->FileName))
60 {
61 TfrmEditor* Editor=new TfrmEditor(Application);
62 Editor->ChangeFileName(ODB->FileName,false);
63 FileSeq++;
64 Editor->R->Lines->LoadFromFile(ODB->FileName);
65 Editor->modified=false;
66 }
67 }
68
69 }
70 //---------------------------------------------------------------------------
71
72
SaveAs1Click(TObject * Sender)73 void __fastcall TfrmMain::SaveAs1Click(TObject *Sender)
74 {
75 if(this->ActiveMDIChild)
76 {
77 TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
78 if(Ed->isEditor)
79 Ed->SaveAs();
80 else
81 Ed->Editor->SaveAs();
82
83 }
84 }
85 //---------------------------------------------------------------------------
86
Save1Click(TObject * Sender)87 void __fastcall TfrmMain::Save1Click(TObject *Sender)
88 {
89 ToolButton5->Click();
90 }
91 //---------------------------------------------------------------------------
92
ToolButton1Click(TObject * Sender)93 void __fastcall TfrmMain::ToolButton1Click(TObject *Sender)
94 {
95 frmSettings->Init(true);
96 }
97 //---------------------------------------------------------------------------
ReadFromRegistry(AnsiString RBKey,AnsiString RKey)98 AnsiString TfrmMain::ReadFromRegistry(AnsiString RBKey,AnsiString RKey)
99 {
100
101 /* example
102 RBKey="\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"
103 RKey="Path"
104 */
105 AnsiString S="";
106 TRegistry *Registry = new TRegistry();
107 try
108 {
109 Registry->RootKey = HKEY_LOCAL_MACHINE;
110 // False because we do not want to create it if it doesn't exist
111 if(Registry->OpenKey(RBKey,false))
112 {
113 S=Registry->ReadString(RKey);
114 }
115 Registry->CloseKey();
116 delete Registry;
117 return S;
118 }
119 catch(...)
120 {
121 delete Registry;
122 return S;
123 }
124 }
Undo1Click(TObject * Sender)125 void __fastcall TfrmMain::Undo1Click(TObject *Sender)
126 {
127
128 TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
129 if (Ed)
130 {
131 if (Ed->isEditor)
132 Ed->R->Undo();
133 }
134 }
135 //---------------------------------------------------------------------------
136
137
Cut1Click(TObject * Sender)138 void __fastcall TfrmMain::Cut1Click(TObject *Sender)
139 {
140 TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
141 if (Ed)
142 {
143 if (Ed->isEditor)
144 Ed->R->CutToClipboard();
145 }
146
147
148 }
149 //---------------------------------------------------------------------------
150
Copy1Click(TObject * Sender)151 void __fastcall TfrmMain::Copy1Click(TObject *Sender)
152 {
153 TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
154 if (Ed)
155 {
156 if (Ed->isEditor)
157 Ed->R->CopyToClipboard();
158 }
159
160
161 }
162 //---------------------------------------------------------------------------
163
Paste1Click(TObject * Sender)164 void __fastcall TfrmMain::Paste1Click(TObject *Sender)
165 {
166
167
168 TfrmEditor *Ed=((TfrmEditor*)this->ActiveMDIChild);
169 if (Ed)
170 {
171 if (Ed->isEditor)
172 Ed->R->PasteFromClipboard();
173 }
174
175 }
176 //---------------------------------------------------------------------------
177
178
SaveCommandlogtofile1Click(TObject * Sender)179 void __fastcall TfrmMain::SaveCommandlogtofile1Click(TObject *Sender)
180 {
181 if( (Memo1->Text.Trim() !="")&& (SDB->Execute()))
182 Memo1->Lines->SaveToFile(SDB->FileName);
183 }
184 //---------------------------------------------------------------------------
185
Clear1Click(TObject * Sender)186 void __fastcall TfrmMain::Clear1Click(TObject *Sender)
187 {
188 Memo1->Lines->Clear();
189 }
190 //---------------------------------------------------------------------------
191
Cascade1Click(TObject * Sender)192 void __fastcall TfrmMain::Cascade1Click(TObject *Sender)
193 {
194 this->Cascade();
195 }
196 //---------------------------------------------------------------------------
197
Tile1Click(TObject * Sender)198 void __fastcall TfrmMain::Tile1Click(TObject *Sender)
199 {
200 this->Tile();
201 }
202 //---------------------------------------------------------------------------
203
DotProcess1Click(TObject * Sender)204 void __fastcall TfrmMain::DotProcess1Click(TObject *Sender)
205 {
206 frmSettings->Init(true);
207
208 }
209 //---------------------------------------------------------------------------
210
Settings1Click(TObject * Sender)211 void __fastcall TfrmMain::Settings1Click(TObject *Sender)
212 {
213 frmSettings->Init();
214 }
215 //---------------------------------------------------------------------------
216
ToolButton2Click(TObject * Sender)217 void __fastcall TfrmMain::ToolButton2Click(TObject *Sender)
218 {
219 frmSettings->Init();
220 }
221 //---------------------------------------------------------------------------
222
223
ToolButton3Click(TObject * Sender)224 void __fastcall TfrmMain::ToolButton3Click(TObject *Sender)
225 {
226 TfrmEditor* Editor=new TfrmEditor(Application);
227 Editor->ChangeFileName("Untitled"+IntToStr(FileSeq++),true);
228 }
229 //---------------------------------------------------------------------------
230
ToolButton6Click(TObject * Sender)231 void __fastcall TfrmMain::ToolButton6Click(TObject *Sender)
232 {
233 if(ODB->Execute())
234 {
235 if(FileExists(ODB->FileName))
236 {
237 TfrmEditor* Editor=new TfrmEditor(Application);
238 Editor->ChangeFileName(ODB->FileName,false);
239 FileSeq++;
240 Editor->R->Lines->LoadFromFile(ODB->FileName);
241 Editor->modified=false;
242 }
243 }
244
245
246 }
247 //---------------------------------------------------------------------------
248
ToolButton5Click(TObject * Sender)249 void __fastcall TfrmMain::ToolButton5Click(TObject *Sender)
250 {
251 if(this->ActiveMDIChild)
252 {
253 TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
254 if(Ed->isEditor)
255 Ed->Save();
256 else
257 Ed->Editor->Save();
258
259 }
260 }
261 //---------------------------------------------------------------------------
262
AboutGraphvizEditor1Click(TObject * Sender)263 void __fastcall TfrmMain::AboutGraphvizEditor1Click(TObject *Sender)
264 {
265 frmAbout->ShowModal();
266 }
267 //---------------------------------------------------------------------------
UpdateMainForm()268 void TfrmMain::UpdateMainForm()
269 {
270 //Updates buttons enabled/disabled respectively to active editor
271 TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
272 if(Ed)
273 {
274 ToolButton1->Enabled=true;
275 ToolButton2->Enabled=true;
276
277 ToolButton5->Enabled=Ed->modified;
278 Save1->Enabled=Ed->modified;
279 SaveAs1->Enabled=Ed->modified;
280 }
281 else
282 {
283 ToolButton1->Enabled=false;
284 ToolButton2->Enabled=false;
285
286 ToolButton5->Enabled=false;
287 Save1->Enabled=false;
288 SaveAs1->Enabled=false;
289
290 }
291
292
293 }
294
FormClose(TObject * Sender,TCloseAction & Action)295 void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action)
296 {
297 //check all editors before closing
298 TfrmEditor* EdStart=((TfrmEditor*)this->ActiveMDIChild);
299 if(EdStart)
300 {
301 TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
302 do
303 {
304 Ed->Close();
305 Ed=((TfrmEditor*)this->ActiveMDIChild);
306 }while (Ed);
307
308
309 }
310 }
311 //---------------------------------------------------------------------------
312
Find1Click(TObject * Sender)313 void __fastcall TfrmMain::Find1Click(TObject *Sender)
314 {
315 if(this->ActiveMDIChild)
316 {
317 TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
318 if(!Ed->isEditor)
319 Ed=Ed->Editor;
320 Ed->FindDialog1->Position = Point(0, 0);
321 Ed->FindDialog1->Execute();
322
323 }
324
325
326 }
327 //---------------------------------------------------------------------------
328
Replace1Click(TObject * Sender)329 void __fastcall TfrmMain::Replace1Click(TObject *Sender)
330 {
331 if(this->ActiveMDIChild)
332 {
333 TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
334 if(!Ed->isEditor)
335 Ed=Ed->Editor;
336 Ed->ReplaceDialog1->Position = Point(0, 0);
337 Ed->ReplaceDialog1->Execute();
338
339 }
340
341
342 }
343 //---------------------------------------------------------------------------
344
Timer1Timer(TObject * Sender)345 void __fastcall TfrmMain::Timer1Timer(TObject *Sender)
346 {
347 static int ct=0;
348 Panel1->Color= (Panel1->Color==clRed)? clBtnFace:clRed;
349 ct++;
350 if(ct==10)
351 {
352 ct=0;
353 Timer1->Enabled=false;
354 Panel1->Color=clBtnFace;
355 }
356 }
357 //---------------------------------------------------------------------------
358
Close1Click(TObject * Sender)359 void __fastcall TfrmMain::Close1Click(TObject *Sender)
360 {
361 if(this->ActiveMDIChild)
362 {
363 TfrmEditor* Ed=((TfrmEditor*)this->ActiveMDIChild);
364 if(Ed->isEditor)
365 Ed->Close();
366 else
367 Ed->Editor->Close();
368
369 }
370 }
371 //---------------------------------------------------------------------------
372
Help2Click(TObject * Sender)373 void __fastcall TfrmMain::Help2Click(TObject *Sender)
374 {
375 AnsiString FileName="GVedit.html";
376 AnsiString action="open";
377 ShellExecute(NULL, action.c_str(),FileName.c_str(), NULL, NULL, SW_SHOW); //read me file, if exists it shows
378
379 }
380 //---------------------------------------------------------------------------
381
Graphvizonnet1Click(TObject * Sender)382 void __fastcall TfrmMain::Graphvizonnet1Click(TObject *Sender)
383 {
384 AnsiString FileName="http://www.graphviz.org";
385 AnsiString action="open";
386 ShellExecute(NULL, action.c_str(),FileName.c_str(), NULL, NULL, SW_SHOW); //read me file, if exists it shows
387
388 }
389 //---------------------------------------------------------------------------
390
391
PreprocessorSettings1Click(TObject * Sender)392 void __fastcall TfrmMain::PreprocessorSettings1Click(TObject *Sender)
393 {
394 frmPre->ShowModal();
395 }
396 //---------------------------------------------------------------------------
397
398
Button1Click(TObject * Sender)399 void __fastcall TfrmMain::Button1Click(TObject *Sender)
400 {
401 try{
402 Image1->Picture->LoadFromFile("c:/gg.jpg");
403 }
404 catch(...)
405 {
406 ;
407 }
408 }
409 //---------------------------------------------------------------------------
410
411
412