vdfsplat / AppSrc / VdfSplat.src @ 65
History | View | Annotate | Download (27.7 KB)
1 | 8 | wil | //TH-Header |
---|---|---|---|
2 | //***************************************************************************************** |
||
3 | // Copyright (c) 2013 Antwise Solutions |
||
4 | // All rights reserved. |
||
5 | // |
||
6 | // $FileName : VdfSplat.src |
||
7 | 22 | wil | // $ProjectName : Splat ! Vdf Debugger |
8 | 8 | wil | // $Authors : Wil van Antwerpen |
9 | // $Created : 12.14.2013 23:42 |
||
10 | // $Type : GPLv2 |
||
11 | // |
||
12 | // Contents: |
||
13 | // |
||
14 | //***************************************************************************************** |
||
15 | //TH-RevisionStart |
||
16 | //TH-RevisionEnd |
||
17 | |||
18 | 22 | wil | Use DFAllEnt.pkg |
19 | 49 | wil | Use cToolTipController.pkg |
20 | 7 | wil | Use cDebugCJCommandBarSystem.pkg |
21 | 10 | wil | Use vWin32fh.pkg |
22 | Use seq_chnl.pkg |
||
23 | 35 | wil | Use cSplatApplication.pkg |
24 | 43 | wil | Use cSplatPanel.pkg |
25 | 2 | wil | |
26 | Object oHtmlHelp is a cHtmlHelp |
||
27 | End_Object |
||
28 | |||
29 | 35 | wil | Object oApplication is a cSplatApplication |
30 | 2 | wil | Set peHelpType to htHtmlHelp |
31 | 46 | wil | |
32 | 31 | wil | Set psAutoOpenWorkspace to "" // We're not using data files, the exe has to be completely self contained. |
33 | 2 | wil | End_Object |
34 | |||
35 | 49 | wil | Object oToolTipController is a cToolTipController |
36 | Move Self to ghoToolTipController |
||
37 | End_Object |
||
38 | |||
39 | 2 | wil | Use oEditContextMenu.pkg |
40 | Use oDEOEditContextMenu.pkg |
||
41 | |||
42 | 37 | wil | #IF (1=0) |
43 | // This imagelist is a dummy, it is only used to have the Studio recognize |
||
44 | // which bitmaps are used in the application so that a "Scan Bitmaps" will always |
||
45 | // include the bitmaps as embedded resource. The imagelist itself is not used. |
||
46 | Object ImageContainer is a cImageList32 |
||
47 | Set piMaxImages to 10 |
||
48 | Procedure OnCreate |
||
49 | Integer iImage |
||
50 | Get AddImage "Debugger.bmp/t" to iImage |
||
51 | End_Procedure |
||
52 | End_Object |
||
53 | #ENDIF |
||
54 | |||
55 | 43 | wil | Object oMain is a cSplatPanel |
56 | 2 | wil | Set Label to "VdfSplat" |
57 | Set Location to 4 3 |
||
58 | 22 | wil | Set Size to 300 450 |
59 | 2 | wil | |
60 | 8 | wil | // Make sure it can be used here already |
61 | Use cDebuggerEngine.pkg |
||
62 | |||
63 | 7 | wil | |
64 | 65 | wil | Object oOpenProgramDialog Is an OpenDialog |
65 | Set Dialog_Caption to "Select a DataFlex executable file to debug" |
||
66 | 7 | wil | Set Filter_String to 'Visual DataFlex Executables|*.exe' |
67 | Set Initial_Folder to 'C:\Program Files\Visual DataFlex' |
||
68 | // Set MultiSelect_State To False |
||
69 | Set NoChangeDir_State To True // don't touch my current folder |
||
70 | Set CreatePrompt_State To False |
||
71 | Set HideReadOnly_State To True |
||
72 | Set Filter_Index to 2 |
||
73 | 22 | wil | End_Object |
74 | 25 | wil | |
75 | Object oOpenSourceFileDialog is an OpenDialog |
||
76 | Set Filter_String to 'Visual DataFlex source|*.*' |
||
77 | // Set Initial_Folder to 'C:\Program Files\Visual DataFlex' |
||
78 | // Set MultiSelect_State To False |
||
79 | Set NoChangeDir_State To True // don't touch my current folder |
||
80 | Set CreatePrompt_State To False |
||
81 | Set HideReadOnly_State To True |
||
82 | Set Filter_Index to 2 |
||
83 | End_Object |
||
84 | 2 | wil | |
85 | 10 | wil | Procedure Warning_Box String sMessage String sCaption |
86 | Integer eResponse |
||
87 | |||
88 | Get Message_Box sMessage sCaption MB_OK MB_ICONWARNING to eResponse |
||
89 | 22 | wil | End_Procedure // Warning_Box |
90 | 10 | wil | |
91 | Procedure Fishy_Box String sMessage String sDebugfile |
||
92 | Send Warning_Box ("Sorry but the debug file for the executable you choose\n\n"+; |
||
93 | sDebugfile+"\ndoesn't look like it is valid.\n\n"+sMessage+"\n\nPlease try again.") ; |
||
94 | "VdfSplat thinks this is fishy" |
||
95 | 22 | wil | End_Procedure // Fishy_Box |
96 | 10 | wil | |
97 | // |
||
98 | // Reads the runtime version of the .dbg file passed. |
||
99 | 22 | wil | // The file must exist. |
100 | 10 | wil | // |
101 | Function ReadRuntimeVersion String sDebugFile Returns Integer |
||
102 | Integer iRuntime |
||
103 | 22 | wil | Integer iChIn |
104 | 10 | wil | Integer iFileSize |
105 | Integer iVdfMax |
||
106 | Integer iVdfMin |
||
107 | String sBinary |
||
108 | |||
109 | 22 | wil | Move 0 To iRuntime |
110 | 10 | wil | Get vWin32_APIFileSize sDebugFile to iFileSize |
111 | If (iFileSize > 40000) Begin |
||
112 | |||
113 | 22 | wil | Get Seq_Open_Input_Channel sDebugfile to iChIn |
114 | 10 | wil | Direct_Input channel iChIn ("binary:" + sDebugfile) |
115 | Read_Block channel iChIn sBinary 50 |
||
116 | Send Seq_Close_Channel iChIn |
||
117 | If (Left(sBinary,4)="VDFB") Begin |
||
118 | Move (Ascii(Mid(sBinary,1,5))) To iVdfMax |
||
119 | Move (Ascii(Mid(sBinary,1,9))) To iVdfMin |
||
120 | 16 | wil | If ((iVdfMax>2 and iVdfMax < 26) and (iVdfMin<5)) Begin |
121 | 10 | wil | Move ((iVdfMax*10)+iVdfMin) To iRuntime |
122 | End |
||
123 | Else Begin |
||
124 | Send Fishy_Box ("The debug file suggests this is VDF version"*trim(iVdfMax)+"."+trim(iVdfMin)+"\nNot very likely that.") sDebugfile |
||
125 | 22 | wil | End |
126 | 10 | wil | End |
127 | Else Begin |
||
128 | Send Fishy_Box "The debug file signature is not correct." sDebugfile |
||
129 | End |
||
130 | End |
||
131 | Else Begin |
||
132 | Send Fishy_Box "It is wayyy too small." sDebugfile |
||
133 | 22 | wil | End |
134 | 10 | wil | Function_Return iRuntime |
135 | 22 | wil | End_Function // ReadRuntimeVersion |
136 | 10 | wil | |
137 | 24 | wil | Procedure doOpenFile |
138 | 27 | wil | Handle hoDebug |
139 | 25 | wil | Handle hoEditor |
140 | Handle hoDialog |
||
141 | Boolean bOpen |
||
142 | Boolean bIsValid |
||
143 | String sFileName |
||
144 | 24 | wil | |
145 | Get phoDebugger to hoDebug |
||
146 | If (hoDebug) Begin |
||
147 | 25 | wil | Move (oOpenSourceFileDialog(Self)) To hoDialog |
148 | |||
149 | Get Show_Dialog of hoDialog to bOpen |
||
150 | If bOpen Begin |
||
151 | Get File_Name of hoDialog To sFileName |
||
152 | Get ComIsValidSourceFile of hoDebug sFileName To bIsValid |
||
153 | If (bIsValid) Begin |
||
154 | Get phoEditor to hoEditor |
||
155 | If (hoEditor) Begin |
||
156 | Send DoOpenSourceFile of hoEditor sFileName |
||
157 | End |
||
158 | End |
||
159 | Else Begin |
||
160 | Send Info_Box "source file is not part of selected program we are currently debugging." |
||
161 | End |
||
162 | End |
||
163 | |||
164 | 24 | wil | End |
165 | End_Procedure // doOpenFile |
||
166 | |||
167 | 64 | wil | Procedure DoInitializeParameters |
168 | Set piDebugfileVersion To 0 |
||
169 | //Set phoDebugger To 0 |
||
170 | Set psApplication Of ghoApplication To "" |
||
171 | End_Procedure |
||
172 | |||
173 | // |
||
174 | // Locates the debug file for the application binary passed. |
||
175 | // Returns TRUE if found and sets property piDebugFileVersion |
||
176 | // |
||
177 | Function ParseApplicationDebugFile String sApplication Returns Boolean |
||
178 | Boolean bExists |
||
179 | Integer iRuntime |
||
180 | String sExt |
||
181 | String sDebugfile |
||
182 | |||
183 | Get ParseFileExtension sApplication To sExt |
||
184 | Move (Replace("."+sExt,sApplication,".dbg")) To sDebugfile |
||
185 | Get vFilePathExists sDebugfile to bExists |
||
186 | If (bExists=false) Begin |
||
187 | Send Warning_Box ("Sorry but for the executable chosing the corresponding debug file\n"+; |
||
188 | sDebugfile+"\ncould not be located.\n\nPlease select again.") ; |
||
189 | "VdfSplat can't do that" |
||
190 | End |
||
191 | Else Begin |
||
192 | Get ReadRuntimeVersion sDebugfile To iRuntime |
||
193 | If (iRuntime=0) Begin |
||
194 | Move False To bExists |
||
195 | End |
||
196 | Else Begin |
||
197 | Set piDebugfileVersion To iRuntime |
||
198 | End |
||
199 | End |
||
200 | |||
201 | Function_Return bExists |
||
202 | End_Function |
||
203 | |||
204 | 7 | wil | Procedure doDebugRun |
205 | 22 | wil | String sApplication |
206 | Boolean bOpen |
||
207 | 10 | wil | Boolean bExists |
208 | 64 | wil | Boolean bRestartMode |
209 | 8 | wil | Handle hoDebug |
210 | 22 | wil | Handle hoParent |
211 | 7 | wil | Handle hoDialog |
212 | 10 | wil | |
213 | 35 | wil | Get psApplication of ghoApplication To sApplication |
214 | 22 | wil | If (sApplication = "") Begin |
215 | 10 | wil | Move (oOpenProgramDialog(Self)) To hoDialog |
216 | |||
217 | Get Show_Dialog of hoDialog to bOpen |
||
218 | If bOpen Begin |
||
219 | 17 | wil | Get File_Name of hoDialog To sApplication |
220 | 22 | wil | // Don't tell me when I selected a file, just do it. |
221 | //Send Info_Box ("Selected file " + sApplication) |
||
222 | 10 | wil | End |
223 | 35 | wil | Else Send Info_Box "You did not choose a file, nothing to debug." |
224 | 10 | wil | |
225 | 22 | wil | End |
226 | 10 | wil | If (sApplication="") Begin |
227 | // Oh still no app? Use our hardcoded path |
||
228 | 35 | wil | Procedure_Return |
229 | 22 | wil | End |
230 | 64 | wil | Get ParseApplicationDebugFile sApplication To bExists |
231 | |||
232 | Get phoDebugger to hoDebug |
||
233 | If (hoDebug) Begin |
||
234 | Get pbDebugRestart of hoDebug to bRestartMode |
||
235 | If (bRestartMode) Begin |
||
236 | Send Destroy of hoDebug |
||
237 | 65 | wil | Move 0 To hoDebug |
238 | 10 | wil | End |
239 | 22 | wil | End |
240 | 10 | wil | If (bExists and hoDebug=0) Begin |
241 | 20 | wil | // |
242 | |||
243 | Get phoDebuggerHost To hoParent |
||
244 | 64 | wil | Get Create Of hoParent (RefClass(cDebuggerEngine)) To hoDebug |
245 | 8 | wil | If (hoDebug) Begin |
246 | Send DoCreateEngine of hoDebug |
||
247 | 20 | wil | End |
248 | End |
||
249 | 10 | wil | If (bExists and hoDebug<>0) Begin |
250 | |||
251 | 35 | wil | Set psApplication of ghoApplication To sApplication |
252 | 20 | wil | Set ApplicationFileName of hoDebug To sApplication |
253 | 38 | wil | // ?? |
254 | Send DoSetCaptionLabel Of (oVdfDbg(oClientArea(Self))) sApplication |
||
255 | 60 | wil | Send DoStartDebug |
256 | End |
||
257 | End_Procedure // doDebugRun |
||
258 | |||
259 | Procedure DoStartDebug |
||
260 | String sApplication |
||
261 | Integer iRuntime |
||
262 | Handle hoDebug |
||
263 | |||
264 | Get phoDebugger to hoDebug |
||
265 | If (hoDebug<>0) Begin |
||
266 | Get psApplication Of ghoApplication To sApplication |
||
267 | Get piDebugfileVersion To iRuntime |
||
268 | 7 | wil | //Send ComPause of hoDebug |
269 | //Procedure ComStartProgram String llcmdLine Variant llwebApp Variant llurl |
||
270 | 16 | wil | If (iRuntime<181) Begin |
271 | Send ComStartProgram of hoDebug sApplication false "" |
||
272 | End |
||
273 | Else Begin // noheap or heap? that's' the question. |
||
274 | Send ComStartProgram181 of hoDebug sApplication True false "" |
||
275 | End |
||
276 | 22 | wil | Send ComUpdateViews Of hoDebug |
277 | End |
||
278 | 60 | wil | End_Procedure |
279 | 7 | wil | |
280 | Procedure doStopDebug |
||
281 | 64 | wil | Boolean bPaused |
282 | Boolean bBreakMode |
||
283 | Handle hoDebug |
||
284 | 7 | wil | |
285 | Get phoDebugger to hoDebug |
||
286 | If (hoDebug) Begin |
||
287 | 64 | wil | Get pbLimitedBreakMode of hoDebug to bBreakMode |
288 | Get HasProgramPaused To bPaused |
||
289 | If (bPaused) Begin |
||
290 | //Send doDebugContinue |
||
291 | End |
||
292 | 7 | wil | Send ComStopProgram of hoDebug |
293 | 20 | wil | Send ComUpdateViews Of hoDebug |
294 | 64 | wil | If (bBreakMode=False) Begin |
295 | // You cannot destroy the debugger on here as the messageloop has to run to get the debuggee back to run |
||
296 | // so killing it here would be out of sync with what you want. |
||
297 | //Send Destroy of hoDebug |
||
298 | Send DoInitializeParameters |
||
299 | 65 | wil | End |
300 | 20 | wil | End |
301 | 7 | wil | End_Procedure // doStopDebug |
302 | |||
303 | 64 | wil | Procedure DoRestartDebug |
304 | String sApplication |
||
305 | |||
306 | Get psApplication of ghoApplication To sApplication |
||
307 | Set pbDebugRestart of (phoDebugger(Self)) to True |
||
308 | Send DoStopDebug |
||
309 | //Sleep 1 |
||
310 | Set psApplication of ghoApplication To sApplication |
||
311 | End_Procedure |
||
312 | |||
313 | 2 | wil | Procedure doDebugPause |
314 | Handle hoDebug |
||
315 | |||
316 | Get phoDebugger to hoDebug |
||
317 | If (hoDebug) Begin |
||
318 | Send ComPause of hoDebug |
||
319 | 22 | wil | Send ComUpdateViews Of hoDebug |
320 | End |
||
321 | End_Procedure // doDebugPause |
||
322 | 2 | wil | |
323 | Procedure doDebugContinue |
||
324 | Handle hoDebug |
||
325 | |||
326 | Get phoDebugger to hoDebug |
||
327 | If (hoDebug) Begin |
||
328 | Send ComContinue of hoDebug |
||
329 | 22 | wil | Send ComUpdateViews Of hoDebug |
330 | End |
||
331 | 2 | wil | End_Procedure // doDebugContinue |
332 | |||
333 | Procedure doDebugStepOver |
||
334 | Handle hoDebug |
||
335 | |||
336 | Get phoDebugger to hoDebug |
||
337 | If (hoDebug) Begin |
||
338 | Send ComStepOver of hoDebug |
||
339 | 22 | wil | Send ComUpdateViews Of hoDebug |
340 | End |
||
341 | End_Procedure // doDebugStepOver |
||
342 | 7 | wil | |
343 | Procedure doDebugStepInto |
||
344 | Handle hoDebug |
||
345 | |||
346 | Get phoDebugger to hoDebug |
||
347 | If (hoDebug) Begin |
||
348 | Send ComStepInto of hoDebug |
||
349 | 22 | wil | Send ComUpdateViews Of hoDebug |
350 | End |
||
351 | 7 | wil | End_Procedure // doDebugStepInto |
352 | |||
353 | Procedure doDebugStepOut |
||
354 | Handle hoDebug |
||
355 | |||
356 | Get phoDebugger to hoDebug |
||
357 | If (hoDebug) Begin |
||
358 | Send ComStepOut of hoDebug |
||
359 | 22 | wil | Send ComUpdateViews Of hoDebug |
360 | End |
||
361 | 7 | wil | End_Procedure // doDebugStepOut |
362 | 12 | wil | |
363 | 20 | wil | Procedure doSetBreakPoint |
364 | 12 | wil | Integer iLine |
365 | String sFileName |
||
366 | Boolean bSuccess |
||
367 | Handle hoDebugger |
||
368 | Handle hoEditor |
||
369 | |||
370 | Get phoDebugger to hoDebugger |
||
371 | Get phoEditor To hoEditor |
||
372 | If (hoDebugger<>0 and hoEditor<>0) begin |
||
373 | |||
374 | Get psFileName Of hoEditor To sFileName |
||
375 | 20 | wil | Get CurrentLine Of hoEditor To iLine |
376 | 12 | wil | If (sFileName<>"" and iLine<>0) Begin |
377 | 20 | wil | Get SetBreakPoint of hoDebugger sFileName (&iLine) To bSuccess |
378 | 37 | wil | If (bSuccess=false) Begin |
379 | Send info_box ("Set breakpoint at line"*trim(iLine)*"Failed.\nReturned="*trim(bSuccess)) |
||
380 | End |
||
381 | 20 | wil | //Send ComSetMarginImages iLine 1 |
382 | End |
||
383 | 12 | wil | End |
384 | 20 | wil | End_Procedure |
385 | |||
386 | Procedure doRemoveBreakPoint |
||
387 | Integer iLine |
||
388 | String sFileName |
||
389 | Boolean bSuccess |
||
390 | Handle hoDebugger |
||
391 | Handle hoEditor |
||
392 | |||
393 | Get phoDebugger to hoDebugger |
||
394 | Get phoEditor To hoEditor |
||
395 | If (hoDebugger<>0 and hoEditor<>0) begin |
||
396 | |||
397 | Get psFileName Of hoEditor To sFileName |
||
398 | Get CurrentLine Of hoEditor To iLine |
||
399 | If (sFileName<>"" and iLine<>0) Begin |
||
400 | Get RemoveBreakPoint of hoDebugger sFileName (&iLine) To bSuccess |
||
401 | 37 | wil | If (bSuccess=false) Begin |
402 | Send info_box ("Removing breakpoint at line"*trim(iLine)*"Failed.\nReturned="*trim(bSuccess)) |
||
403 | End |
||
404 | 20 | wil | //Send ComSetMarginImages iLine 1 |
405 | End |
||
406 | End |
||
407 | End_Procedure |
||
408 | 2 | wil | |
409 | 8 | wil | // |
410 | //Procedure doCreateCallStack |
||
411 | // Boolean bCreated |
||
412 | // Handle hoCallStack |
||
413 | // |
||
414 | 22 | wil | // |
415 | 8 | wil | // Get phoCallStack To hoCallStack |
416 | // If (hoCallStack) Begin |
||
417 | // Send CreateComObject of hoCallStack |
||
418 | // Get IsComObjectCreated Of hoCallStack To bCreated |
||
419 | // Showln "callstack [" bCreated "]" |
||
420 | // If (bCreated) Begin |
||
421 | 22 | wil | // Send RegisterComEvents Of hoCallStack |
422 | 8 | wil | // //Set ComWindowType Of hoGlobals To 1 // global |
423 | 22 | wil | // End |
424 | 8 | wil | // End |
425 | //End_Procedure // doCreateCallStack |
||
426 | 2 | wil | |
427 | 7 | wil | Function HasProgramStarted Returns Boolean |
428 | Boolean bStarted |
||
429 | Handle hoDebugger |
||
430 | |||
431 | Move False To bStarted |
||
432 | Get phoDebugger To hoDebugger |
||
433 | If (hoDebugger) Begin |
||
434 | Get pbProgramStarted of hoDebugger To bStarted |
||
435 | 22 | wil | End |
436 | 7 | wil | Function_Return bStarted |
437 | 22 | wil | End_Function // HasProgramStarted |
438 | 2 | wil | |
439 | 7 | wil | // |
440 | // A program can only be paused after it has started |
||
441 | // This is used as an indication that we can step through the source |
||
442 | 64 | wil | // The property pbProgramPaused is set on both a breakpoint and on a Pause |
443 | 7 | wil | Function HasProgramPaused Returns Boolean |
444 | 22 | wil | Boolean bPaused |
445 | 7 | wil | Boolean bStarted |
446 | Handle hoDebugger |
||
447 | |||
448 | Move False To bPaused |
||
449 | Get HasProgramStarted To bStarted |
||
450 | If (bStarted) Begin |
||
451 | Get phoDebugger To hoDebugger |
||
452 | If (hoDebugger) Begin |
||
453 | Get pbProgramPaused of hoDebugger to bPaused |
||
454 | 22 | wil | End |
455 | End |
||
456 | 7 | wil | Function_Return bPaused |
457 | 22 | wil | End_Function // HasProgramPaused |
458 | 7 | wil | |
459 | 37 | wil | // |
460 | // A breakpoint can only be removed if we have existing breakpoints |
||
461 | // |
||
462 | Function HasBreakpoints Returns Boolean |
||
463 | Boolean bHasBreakPoints |
||
464 | Boolean bStarted |
||
465 | Handle hoDebugger |
||
466 | |||
467 | Move False To bHasBreakPoints |
||
468 | Get HasProgramStarted To bStarted |
||
469 | If (bStarted) Begin |
||
470 | Get phoDebugger To hoDebugger |
||
471 | If (hoDebugger) Begin |
||
472 | Get HasBreakPoints of hoDebugger to bHasBreakPoints |
||
473 | End |
||
474 | End |
||
475 | Function_Return bHasBreakPoints |
||
476 | End_Function // HasBreakPoints |
||
477 | 7 | wil | |
478 | 37 | wil | |
479 | 2 | wil | |
480 | 7 | wil | Object oCommandBarSystem is a cDebugCJCommandBarSystem |
481 | 2 | wil | |
482 | Procedure OnCreateCommandBars |
||
483 | Handle hoOptions |
||
484 | Get OptionsObject to hoOptions |
||
485 | Forward Send OnCreateCommandBars |
||
486 | End_Procedure |
||
487 | 7 | wil | |
488 | 2 | wil | |
489 | Object oMenuBar is a cCJMenuBar |
||
490 | |||
491 | Object oFileMenu is a cCJMenuItem |
||
492 | 22 | wil | Set peControlType to xtpControlPopup |
493 | 2 | wil | Set psCaption to "&File" |
494 | Set psDescription to "Find, Save, Delete, Clear information or quit this application." |
||
495 | Set psCategory to "Menus" |
||
496 | |||
497 | Object oClearMenuItem is a cCJClearMenuItem |
||
498 | Set pbAddToDesignerMenu to True |
||
499 | End_Object |
||
500 | |||
501 | Object oClearAllMenu is a cCJClearAllMenuItem |
||
502 | Set pbAddToDesignerMenu to True |
||
503 | End_Object |
||
504 | |||
505 | Object oPromptMenuItem is a cCJPromptMenuItem |
||
506 | Set pbAddToDesignerMenu to True |
||
507 | Set pbControlBeginGroup to True |
||
508 | End_Object |
||
509 | |||
510 | Object oCJDebugPauseMenuItem is a cCJDebugPauseMenuItem |
||
511 | Set pbAddToDesignerMenu to True |
||
512 | Set pbControlBeginGroup to True |
||
513 | End_Object |
||
514 | |||
515 | Object oFindNextMenu is a cCJFindNextMenuItem |
||
516 | Set pbAddToDesignerMenu to True |
||
517 | End_Object |
||
518 | |||
519 | Object oFindPreviousMenu is a cCJFindPreviousMenuItem |
||
520 | Set pbAddToDesignerMenu to True |
||
521 | End_Object |
||
522 | |||
523 | Object oFindFirstMenu is a cCJFindFirstMenuItem |
||
524 | Set pbAddToDesignerMenu to True |
||
525 | End_Object |
||
526 | |||
527 | Object oFindLastMenu is a cCJFindLastMenuItem |
||
528 | Set pbAddToDesignerMenu to True |
||
529 | End_Object |
||
530 | |||
531 | Object oSaveMenuItem is a cCJSaveMenuItem |
||
532 | Set pbAddToDesignerMenu to True |
||
533 | Set pbControlBeginGroup to True |
||
534 | End_Object |
||
535 | |||
536 | Object oDeleteMenuItem is a cCJDeleteMenuItem |
||
537 | Set pbAddToDesignerMenu to True |
||
538 | End_Object |
||
539 | |||
540 | Object oExitMenu is a cCJExitMenuItem |
||
541 | Set pbControlBeginGroup to True |
||
542 | End_Object |
||
543 | |||
544 | End_Object |
||
545 | |||
546 | Object oViewMenu is a cCJMenuItem |
||
547 | Set peControlType to xtpControlPopup |
||
548 | Set psCaption to "&View" |
||
549 | Set psToolTip to "View" |
||
550 | Set psDescription to "Available Views" |
||
551 | |||
552 | Object ooVdfdbgMenuItem is a cCJMenuItem |
||
553 | 7 | wil | Set psCaption to "Debugger View" |
554 | Set psTooltip to "The debugger main view" |
||
555 | 2 | wil | |
556 | Procedure OnExecute Variant vCommandBarControl |
||
557 | Handle hoClient |
||
558 | Get Client_Id to hoClient |
||
559 | Send Activate_oVdfdbg of hoClient |
||
560 | End_Procedure |
||
561 | End_Object |
||
562 | 24 | wil | |
563 | Object oObjectInspectorMenuItem is a cCJMenuItem |
||
564 | Set psCaption to "Object Inspector Ctrl+L" |
||
565 | Set psTooltip to "Inspect the objects in the running program" |
||
566 | |||
567 | Procedure OnExecute Variant vCommandBarControl |
||
568 | Handle hoClient |
||
569 | Get Client_Id to hoClient |
||
570 | Send doActivateObjectInspectorPanel of hoClient |
||
571 | End_Procedure |
||
572 | |||
573 | Function IsEnabled Returns Boolean |
||
574 | Boolean bPaused |
||
575 | |||
576 | Get HasProgramPaused To bPaused |
||
577 | Function_Return bPaused |
||
578 | End_Function |
||
579 | End_Object |
||
580 | 2 | wil | End_Object |
581 | |||
582 | Object oNavigateMenu is a cCJMenuItem |
||
583 | 22 | wil | Set peControlType to xtpControlPopup |
584 | Set psCaption to "&Navigate" |
||
585 | Set psTooltip to "Navigate" |
||
586 | 2 | wil | Set psDescription to "Move to different areas of the application" |
587 | |||
588 | Object oNextAreaMenu is a cCJNextAreaMenu |
||
589 | End_Object |
||
590 | |||
591 | Object oPriorAreaMenu is a cCJPriorAreaMenu |
||
592 | End_Object |
||
593 | |||
594 | Object oNextViewMenu is a cCJNextViewMenu |
||
595 | End_Object |
||
596 | |||
597 | Object oPriorViewMenu is a cCJPriorViewMenu |
||
598 | End_Object |
||
599 | |||
600 | Object oPromptMenu is a cCJPromptMenuItem |
||
601 | Set pbControlBeginGroup to True |
||
602 | End_Object |
||
603 | |||
604 | Object oZoomMenu is a cCJZoomMenuItem |
||
605 | End_Object |
||
606 | |||
607 | End_Object |
||
608 | |||
609 | Object oWindowMenu is a cCJMDIWindowsMenuItem |
||
610 | Set peControlType to xtpControlPopup |
||
611 | Set psCaption to "&Window" |
||
612 | Set psToolTip to "Window" |
||
613 | 22 | wil | Set psDescription to "Display Current Views and set other display options." |
614 | 2 | wil | |
615 | 22 | wil | // These are the static windows items. More will be created in onInitPopup |
616 | 2 | wil | Object oDisplayOptionsMenu is a cCJMenuItem |
617 | 22 | wil | Set peControlType to xtpControlPopup |
618 | 2 | wil | Set psCaption to "&Display Options" |
619 | Set psToolTip to "Display Options" |
||
620 | Set psDescription to "Set display options" |
||
621 | |||
622 | Object oStatusbarMenu is a cCJStatusbarMenuItem |
||
623 | End_Object |
||
624 | |||
625 | Object oAutoArrangeIconsMenu is a cCJAutoArrangeIconsMenuItem |
||
626 | End_Object |
||
627 | |||
628 | Object oRestoreMenusMenu is a cCJRestoreMenusMenuItem |
||
629 | Set pbControlBeginGroup to True |
||
630 | End_Object |
||
631 | |||
632 | End_Object |
||
633 | |||
634 | Object oCascadeMenu is a cCJCascadeMenuItem |
||
635 | Set pbControlBeginGroup to True |
||
636 | End_Object |
||
637 | |||
638 | Object oHorizTile is a cCJTileHorizontally |
||
639 | End_Object |
||
640 | |||
641 | Object oVertTile is a cCJTileVertically |
||
642 | End_Object |
||
643 | |||
644 | Object oMinimizeMenuItem is a cCJMinimizeWindowsMenuItem |
||
645 | Set pbControlBeginGroup to True |
||
646 | End_Object |
||
647 | |||
648 | Object oRestoreMenuItem is a cCJRestoreWindowsMenuItem |
||
649 | End_Object |
||
650 | |||
651 | Object oArrangeIconsMenuItem is a cCJAutoArrangeIconsMenuItem |
||
652 | Set pbControlBeginGroup to True |
||
653 | End_Object |
||
654 | |||
655 | End_Object |
||
656 | |||
657 | Object oHelpMenu is a cCJMenuItem |
||
658 | 22 | wil | Set peControlType to xtpControlPopup |
659 | 2 | wil | Set psCaption to "&Help" |
660 | Set psDescription to "Access Information for learning and using this DataFlex application." |
||
661 | Set psToolTip to "Help" |
||
662 | |||
663 | 22 | wil | Object oHelpMenuItem is a cCJHelpMenuItem |
664 | 2 | wil | End_Object |
665 | |||
666 | Object oAboutMenuItem is a cCJAboutMenuItem |
||
667 | End_Object |
||
668 | |||
669 | End_Object |
||
670 | |||
671 | End_Object |
||
672 | |||
673 | 7 | wil | Object oDebugToolBar is a cCJToolbar |
674 | Set psTitle to "Debugging Toolbar" |
||
675 | 2 | wil | |
676 | 7 | wil | |
677 | Object oStartDebugButton is a cCJStartDebugMenuItem |
||
678 | 2 | wil | End_Object |
679 | |||
680 | 7 | wil | Object oStopDebugButton is a cCJStopDebugMenuItem |
681 | 2 | wil | End_Object |
682 | |||
683 | 60 | wil | Object oRestartDebugButton is a cCJRestartDebugMenuItem |
684 | End_Object |
||
685 | |||
686 | 2 | wil | Object oDebugPauseButton is a cCJDebugPauseMenuItem |
687 | End_Object |
||
688 | |||
689 | 7 | wil | Object oDebugContinueButton is a cCJDebugContinueMenuItem |
690 | End_Object |
||
691 | |||
692 | 2 | wil | Object oDebugStepOverButton is a cCJStepOverMenuItem |
693 | End_Object |
||
694 | |||
695 | 7 | wil | Object oDebugStepIntoButton is a cCJStepIntoMenuItem |
696 | 2 | wil | End_Object |
697 | 7 | wil | |
698 | Object oDebugStepOutButton is a cCJStepOutMenuItem |
||
699 | End_Object |
||
700 | |||
701 | 2 | wil | |
702 | End_Object |
||
703 | 27 | wil | |
704 | 24 | wil | Object oFileToolbar is a cCJToolbar |
705 | Set psTitle To "Open Source Toolbar" |
||
706 | Object oFileOpen is a cCJOpenFileMenuItem |
||
707 | End_Object |
||
708 | End_Object |
||
709 | 2 | wil | |
710 | 21 | wil | Object oBreakPointToolBar is a cCJToolbar |
711 | Set psTitle to "Breakpoint Toolbar" |
||
712 | |||
713 | Object oAddBreakpointButton is a cCJAddBreakpointMenuItem |
||
714 | End_Object |
||
715 | |||
716 | Object oRemoveBreakpointButton is a cCJRemoveBreakpointMenuItem |
||
717 | End_Object |
||
718 | End_Object |
||
719 | |||
720 | 2 | wil | Object oEditToolBar is a cCJToolbar |
721 | Set psTitle to "Edit Toolbar" |
||
722 | |||
723 | Object oCutToolbarItem is a cCJCutMenuItem |
||
724 | End_Object |
||
725 | |||
726 | Object oCopyToolbarItem is a cCJCopyMenuItem |
||
727 | End_Object |
||
728 | |||
729 | Object oPasteToolbarItem is a cCJPasteMenuItem |
||
730 | End_Object |
||
731 | |||
732 | Object oDeleteEditToolbarItem is a cCJDeleteEditMenuItem |
||
733 | Set pbControlBeginGroup to True |
||
734 | End_Object |
||
735 | |||
736 | End_Object |
||
737 | |||
738 | Object oStatusBar is a cCJStatusBar |
||
739 | |||
740 | Object oStatusPane1 is a cCJStatusBarPane |
||
741 | Set piID to sbpIDIdlePane |
||
742 | Set pbStyleStretch to True |
||
743 | 24 | wil | Set psText To "" |
744 | 2 | wil | End_Object |
745 | |||
746 | Object oStatusPane2 is a cCJStatusBarPane |
||
747 | Set phoViewPane to Self |
||
748 | Set pbStyleStretch to True |
||
749 | 24 | wil | Set psText To "" |
750 | 2 | wil | End_Object |
751 | 7 | wil | |
752 | Object oStatusPane3 is a cCJStatusBarPane |
||
753 | Set pbStyleStretch to True |
||
754 | Set psText To "testing 888" |
||
755 | End_Object |
||
756 | 27 | wil | |
757 | 38 | wil | Function EditorHandle Returns Handle |
758 | Handle hoEditor |
||
759 | Boolean bIsCreated |
||
760 | |||
761 | Get phoEditor To hoEditor |
||
762 | If (hoEditor) Begin |
||
763 | Get IsComObjectCreated Of hoEditor To bIsCreated |
||
764 | If (bIsCreated=false) Begin |
||
765 | Move 0 To hoEditor |
||
766 | End |
||
767 | End |
||
768 | Function_Return hoEditor |
||
769 | End_Function |
||
770 | |||
771 | 24 | wil | Function EditorCurrentLine Returns Integer |
772 | Handle hoEditor |
||
773 | Integer iCount |
||
774 | |||
775 | 38 | wil | Get EditorHandle To hoEditor |
776 | 24 | wil | If (hoEditor) Begin |
777 | Get CurrentLine Of hoEditor To iCount |
||
778 | End |
||
779 | Function_Return iCount |
||
780 | End_Function // EditorCurrentLine |
||
781 | 4 | wil | |
782 | Function EditorLineCount Returns Integer |
||
783 | Handle hoEditor |
||
784 | Integer iCount |
||
785 | |||
786 | 38 | wil | Get EditorHandle To hoEditor |
787 | 4 | wil | If (hoEditor) Begin |
788 | Get ComLineCount Of hoEditor To iCount |
||
789 | End |
||
790 | Function_Return iCount |
||
791 | 22 | wil | End_Function // EditorLineCount |
792 | 24 | wil | |
793 | Procedure Show_Status_Help String sStatusHelp |
||
794 | Integer iLine |
||
795 | 38 | wil | Handle hoEditor |
796 | String sFileName |
||
797 | 24 | wil | |
798 | 38 | wil | Move "" To sFileName |
799 | Get EditorHandle To hoEditor |
||
800 | If (hoEditor) Begin |
||
801 | Get psFileName of hoEditor To sFileName |
||
802 | End |
||
803 | 24 | wil | Get EditorCurrentLine To iLine |
804 | Set psText Of oStatusPane1 To ("Line: "+trim(iLine)) |
||
805 | 38 | wil | Set psText Of oStatusPane2 To ("File: "+sFileName) |
806 | 24 | wil | End_Procedure |
807 | 2 | wil | |
808 | End_Object |
||
809 | |||
810 | End_Object |
||
811 | |||
812 | Object oClientArea is a ClientArea |
||
813 | Use StdAbout.pkg |
||
814 | 40 | wil | Use ObjectInspector.dg |
815 | 7 | wil | Use Vdfdbg.vw |
816 | 2 | wil | |
817 | 24 | wil | Procedure doActivateObjectInspectorPanel |
818 | 53 | wil | Send StartObjectInspector |
819 | 24 | wil | End_Procedure |
820 | |||
821 | 37 | wil | |
822 | |||
823 | 2 | wil | Procedure Activate_About |
824 | 37 | wil | String sTitle sCopyright sVersion sBitmap sAuthor |
825 | |||
826 | // string sVal sVal2 sVal3 |
||
827 | // move (SysConf(sysconf_os_name)) to sVal |
||
828 | // send Info_box sVal "Os Name" |
||
829 | // move (SysConf(sysconf_os_short_name)) to sVal2 |
||
830 | // send Info_box sVal2 "os short name" |
||
831 | // move (SysConf(sysconf_os_major_rev)) to sVal3 |
||
832 | // send Info_Box sVal3 "os major revision" |
||
833 | // // |
||
834 | Move "VdfSplat" to sTitle |
||
835 | Move "Alfa 1" to sVersion |
||
836 | Move "Copyright 2015, GPL v2, Antwise Solutions" to sCopyright |
||
837 | Move "Author: Wil van Antwerpen" to sAuthor |
||
838 | Move "Debugger.bmp/t" to sBitMap |
||
839 | Send DoAbout sTitle sVersion sCopyright sAuthor sBitMap |
||
840 | 2 | wil | End_Procedure |
841 | |||
842 | End_Object |
||
843 | |||
844 | End_Object |
||
845 | |||
846 | 35 | wil | |
847 | Procedure StartDebugging |
||
848 | String sApplication |
||
849 | Handle hoClient |
||
850 | |||
851 | Get Client_Id Of oMain To hoClient |
||
852 | If (hoClient) Begin |
||
853 | Send Activate_oVdfdbg of hoClient |
||
854 | Get psApplication of ghoApplication to sApplication |
||
855 | If (sApplication<>"") Begin |
||
856 | Send doDebugRun of hoClient |
||
857 | End |
||
858 | End |
||
859 | End_Procedure |
||
860 | |||
861 | Send StartDebugging |
||
862 | 2 | wil | Start_UI |