Project

General

Profile

Revision 64

changed layout of debugger view, added some sort of logic for not showing evals on tooltips for keywords,
add debugger restart logic, fixed some icon assignments, fixed off by one line error in breakpoint activation

View differences:

AppSrc/VdfSplat.src
163 163
      End
164 164
    End_Procedure // doOpenFile
165 165
    
166
    Procedure DoInitializeParameters
167
      Set piDebugfileVersion To 0
168
      //Set phoDebugger        To 0
169
      Set psApplication Of ghoApplication To ""
170
    End_Procedure
171
    
172
    //
173
    // Locates the debug file for the application binary passed.
174
    // Returns TRUE if found and sets property piDebugFileVersion
175
    //
176
    Function ParseApplicationDebugFile String sApplication Returns Boolean
177
      Boolean bExists
178
      Integer iRuntime
179
      String  sExt
180
      String  sDebugfile
181

  
182
      Get ParseFileExtension sApplication To sExt
183
      Move (Replace("."+sExt,sApplication,".dbg")) To sDebugfile
184
      Get vFilePathExists sDebugfile to bExists
185
      If (bExists=false) Begin
186
        Send Warning_Box ("Sorry but for the executable chosing the corresponding debug file\n"+;
187
               sDebugfile+"\ncould not be located.\n\nPlease select again.") ;
188
               "VdfSplat can't do that"
189
      End
190
      Else Begin
191
        Get ReadRuntimeVersion sDebugfile To iRuntime
192
        If (iRuntime=0) Begin
193
          Move False To bExists
194
        End
195
        Else Begin
196
          Set piDebugfileVersion To iRuntime
197
        End
198
      End
199
        
200
      Function_Return bExists
201
    End_Function
202
    
166 203
    Procedure doDebugRun
167 204
      String  sApplication
168
      String  sExt
169
      String  sDebugfile
170
      Integer iRuntime
171 205
      Boolean bOpen
172 206
      Boolean bExists
207
      Boolean bRestartMode
173 208
      Handle  hoDebug
174 209
      Handle  hoParent
175 210
      Handle  hoDialog
176 211
      
177
      Set piDebugfileVersion To 0
178

  
179 212
      Get psApplication of ghoApplication To sApplication
180 213
      If (sApplication = "") Begin
181 214
        Move (oOpenProgramDialog(Self)) To hoDialog
......
193 226
        // Oh still no app? Use our hardcoded path
194 227
        Procedure_Return
195 228
      End
196
      Get ParseFileExtension sApplication To sExt
197
      Move (Replace("."+sExt,sApplication,".dbg")) To sDebugfile
198
      Get vFilePathExists sDebugfile to bExists
199
      If (bExists=false) Begin
200
        Send Warning_Box ("Sorry but for the executable chosing the corresponding debug file\n"+;
201
               sDebugfile+"\ncould not be located.\n\nPlease select again.") ;
202
               "VdfSplat can't do that"
203
      End
204
      Else Begin
205
        Get ReadRuntimeVersion sDebugfile To iRuntime
206
        If (iRuntime=0) Begin
207
          Move False To bExists
229
      Get ParseApplicationDebugFile sApplication To bExists
230
        
231
      Get phoDebugger to hoDebug
232
      If (hoDebug) Begin
233
        Get pbDebugRestart of hoDebug to bRestartMode
234
        If (bRestartMode) Begin
235
          Send Destroy of hoDebug
236
          Move 0 To hoDebug 
208 237
        End
209 238
      End
210
        
211
      Get phoDebugger to hoDebug
212 239
      If (bExists and hoDebug=0) Begin
213 240
        //
214 241

  
215 242
        Get phoDebuggerHost To hoParent
216
        Set piDebugfileVersion To iRuntime
217
        Get Create Of hoParent U_cDebuggerEngine To hoDebug
243
        Get Create Of hoParent (RefClass(cDebuggerEngine)) To hoDebug
218 244
        If (hoDebug) Begin
219 245
          Send DoCreateEngine of hoDebug
220 246
        End
......
251 277
    End_Procedure
252 278
    
253 279
    Procedure doStopDebug
254
      Handle hoDebug
280
      Boolean bPaused
281
      Boolean bBreakMode
282
      Handle  hoDebug
255 283
      
256 284
      Get phoDebugger to hoDebug
257 285
      If (hoDebug) Begin
286
        Get pbLimitedBreakMode of hoDebug to bBreakMode
287
        Get HasProgramPaused To bPaused
288
        If (bPaused) Begin
289
          //Send doDebugContinue
290
        End
258 291
        Send ComStopProgram of hoDebug
259 292
        Send ComUpdateViews Of hoDebug
260
        Set psApplication of ghoApplication To ""
293
        If (bBreakMode=False) Begin
294
          // You cannot destroy the debugger on here as the messageloop has to run to get the debuggee back to run
295
          // so killing it here would be out of sync with what you want.
296
          //Send Destroy of hoDebug
297
          Send DoInitializeParameters
298
        End  
261 299
      End
262 300
    End_Procedure // doStopDebug
263 301
    
302
    Procedure DoRestartDebug
303
      String  sApplication
304
      
305
      Get psApplication of ghoApplication To sApplication
306
      Set pbDebugRestart of (phoDebugger(Self)) to True
307
      Send DoStopDebug
308
      //Sleep 1
309
      Set psApplication of ghoApplication To sApplication
310
    End_Procedure
311
    
264 312
    Procedure doDebugPause
265 313
      Handle hoDebug
266 314
      
......
390 438
    //
391 439
    // A program can only be paused after it has started
392 440
    // This is used as an indication that we can step through the source
393
    //
441
    // The property pbProgramPaused is set on both a breakpoint and on a Pause
394 442
    Function HasProgramPaused Returns Boolean
395 443
      Boolean bPaused
396 444
      Boolean bStarted
AppSrc/cDebugCJMenuItemClasses.pkg
205 205
{ OverrideProperty=psCaption InitialValue=CS_CaptionRestartDebug}
206 206
{ OverrideProperty=psToolTip InitialValue=CS_ToolTipRestartDebug}
207 207
{ OverrideProperty=psDescription InitialValue=CS_DescRestartDebug}
208
{ OverrideProperty=psImage InitialValue="run_exc.ico" }
208
{ OverrideProperty=psImage InitialValue="restart_co.ico" }
209 209

  
210 210
Class cCJRestartDebugMenuItem is a cCJDebugMenuItem
211 211
    
......
214 214
        Set psCaption       To CS_CaptionRestartDebug
215 215
        Set psToolTip       To CS_ToolTipRestartDebug
216 216
        Set psDescription   To CS_DescRestartDebug
217
        Set psImage         To "term_restart.ico"
217
        Set psImage         To "restart_co.ico"
218 218
        //Set psImageDisabled To "run_excd.ico"
219 219
        Set piShortcutKey   To xtpKey_Ctrl VK_F5
220 220
    End_Procedure
221 221

  
222 222
    Procedure OnExecute Variant vCommandBarControl
223
       Send doStopDebug
224
       Send doStartDebug
223
       Send doRestartDebug
225 224
    End_Procedure
226 225
    
227 226
    Function IsEnabled Returns Boolean
......
450 449
{ OverrideProperty=psCaption InitialValue=CS_CaptionRemoveBreakpoint}
451 450
{ OverrideProperty=psToolTip InitialValue=CS_ToolTipRemoveBreakpoint}
452 451
{ OverrideProperty=psDescription InitialValue=CS_DescRemoveBreakpoint }
453
{ OverrideProperty=psImage InitialValue="brkp_obj.ico" }
452
{ OverrideProperty=psImage InitialValue="skip_brkp.ico" }
454 453
Class cCJRemoveBreakpointMenuItem is a cCJDebugMenuItem
455 454
    
456 455
    Procedure Construct_Object
AppSrc/cDebuggerEngine.pkg
119 119
    Forward Get Msg_Entering To Rval  // Do Normal Entering
120 120
    // if entering is ok and single item check shadow state of that item.
121 121
    If (Rval=0) Begin
122
      Get Item_Count To iCount
123
      Get Current_Item To iItem
122
//      Get Item_Count To iCount
123
//      Get Current_Item To iItem
124 124
//      Showln ("entering stack "+trim(iCount)*"current"*trim(iItem))
125 125
      //  Get Shadow_State Item 0 To Rval
126 126
    End
......
279 279
    Property Boolean        pbEngineActive        False
280 280
    Property Boolean pbProgramStarted      False
281 281
    Property Boolean pbProgramPaused       False
282
    Property Boolean pbLimitedBreakMode    False
283
    Property Boolean pbDebugRestart        False
282 284
    Property String[]       pAllMessages
283 285
    Property String[]       pAllProperties
286
    Property String[]       pLanguageKeywords
284 287
    Property tBreakPoints[] pBreakPoints
285 288
    
286 289
    Set Name To "oDebuggerEngine"
......
367 370
    Set pAllProperties to AllProperties
368 371
  End_Procedure
369 372
  
373
  Function IsLanguageKeyword String sKeyword Returns Boolean
374
    Boolean  bIsKeyword
375
    Integer  iCount
376
    Integer  iKeyword
377
    String[] Keywords
378
    
379
    Move false to bIsKeyword
380
    Move (lowercase(sKeyWord)) To sKeyword
381
    If (sKeyword<>"") Begin
382
      Get pLanguageKeywords To Keywords
383
      Move (SizeOfArray(Keywords)) To iCount
384
      Decrement iCount
385
      For iKeyWord From 0 To iCount
386
        If (Keywords[iKeyword]=sKeyword) Begin
387
          Move True To bIsKeyword
388
          Move iCount To iKeyword // stop
389
        End
390
      Loop
391
    End
392
    Function_Return bIsKeyword
393
  End_Function
394
  
370 395
  Function IsVariableProperty String sVariable Returns Boolean
371 396
    Integer  iCount
372 397
    Integer  iProp
......
753 778
  // Occurs after the program exits
754 779
  Procedure OnComProgramExit
755 780
    Boolean  bStartedFromCLI
756
    String[] AllMessages
757
    String[] AllProperties
781
    Boolean  bRestartMode
782
    String[] Empty
758 783
    Set pbProgramStarted To False
759 784
    Set pbProgramPaused  To False
760 785
    Send SaveBreakPointsToDisk
761 786
    Set ApplicationFileName To ""
762
    Move (ResizeArray(Allmessages,0))   To AllMessages
763
    Move (ResizeArray(AllProperties,0)) To AllProperties
764
    Set pAllMessages   to AllMessages
765
    Set pAllProperties to AllProperties
766
    Get pbStartedFromCLI of ghoApplication To bStartedFromCLI
767
    If (bStartedFromCli) Begin
768
      // debug session was started from the command line.
769
      // Stopping the debug session normally should stop the debugger as well.
770
      Send Exit_Application
787
    Move (ResizeArray(Empty,0))   To Empty
788
    Set pAllMessages      To Empty
789
    Set pAllProperties    To Empty
790
    Set pLanguageKeywords To Empty
791
    Get pbDebugRestart to bRestartMode
792
    If (bRestartMode) Begin
793
      Send DoDebugRun
771 794
    End
795
    Else Begin
796
      Get pbStartedFromCLI of ghoApplication To bStartedFromCLI
797
      If (bStartedFromCli) Begin
798
        // debug session was started from the command line.
799
        // Stopping the debug session normally should stop the debugger as well.
800
        Send Exit_Application
801
      End
802
    End
772 803
  End_Procedure
773 804

  
774 805
  // Occurs if there is an error starting the program
......
816 847
        Send SetDebuggerAsForegroundApp
817 848
      End
818 849
      Send doOpenSourceFileAtLine of hoEditor llfile llline
819
      Send doActivateCallStack  // only displays if exists or not.
850
      Send doActivateDebugPanels  // only displays if exists or not.
820 851
    End
821 852
  End_Procedure
822 853
  
823 854
  //
824 855
  // Occurs when the program execution is paused
825 856
  Procedure OnComProgramPaused String llfile UInteger llline Boolean lllimitedBreakMode
826
    Set pbProgramPaused  To True
857
    Set pbProgramPaused    To True
858
    Set pbLimitedBreakMode To lllimitedBreakMode
827 859
    Send OnProgramPaused llfile llline lllimitedBreakMode
828 860
  End_Procedure
829 861

  
830 862
  // Occurs when the program execution resumes
831 863
  Procedure OnComProgramContinue
832
    Set pbProgramPaused  To False
864
    Set pbProgramPaused    To False
865
    Set pbLimitedBreakMode To False
833 866
  End_Procedure
834 867

  
835 868
  // Occurs after a change requiring views to be refreshed
......
871 904
    //Send Info_box lldescription "WebApp FATAL Error"
872 905
    Showln lleventid lltext
873 906
  End_Procedure
907
  
908
  Procedure AddKeyword String sWord
909
    Integer  iCount
910
    String[] Keywords
911
    
912
    Get pLanguageKeywords To Keywords
913
    Move (SizeOfArray(Keywords)) To iCount
914
    Move (Lowercase(sWord)) To Keywords[iCount]
915
    Set pLanguageKeywords To Keywords
916
  End_Procedure
917
  
918
  // Language keywords are not evaluated in the tooltip
919
  Procedure AddLanguageKeywords
920
    Send AddKeyword "End_Function"
921
    Send AddKeyword "End_Procedure"
922
    Send AddKeyword "Function"
923
    Send AddKeyword "Move"
924
    Send AddKeyword "Procedure"
925
    Send AddKeyword "Send"
926
    Send AddKeyword "Showln"
927
    Send AddKeyword "To"
928
    Send AddKeyword "UChar[]"
929
  End_Procedure
874 930

  
875 931
  
876 932
  Procedure doCreateCallStack
......
965 1021
      If (hoVariables) Begin
966 1022
        Set phoLocalVariables  To hoVariables
967 1023
        Set Name               Of hoVariables To "oLocalVariables"
968
        Send CreateObjectCallback of hoParent hoVariables
969 1024
        
970 1025
        Send CreateComObject   Of hoVariables
971 1026
        Get IsComObjectCreated Of hoVariables To bCreated
972 1027
        If (bCreated) Begin
973 1028
          Set ComWindowType Of hoVariables To 0 // locals
974 1029
        End
1030
        Send CreateObjectCallback of hoParent hoVariables
975 1031
      End
976 1032
    End
977 1033
  End_Procedure // doCreateLocalVariables
......
996 1052
  End_Procedure // doCreateTables
997 1053

  
998 1054

  
999
  
1000
  Procedure doActivateCallStack
1055
  // we MUST send activate to the debug panels to make them display.
1056
  Procedure doActivateDebugPanels
1001 1057
    Handle  hoCallStack
1058
    Handle  hoLocalVars
1059
    Handle  hoGlobalVars
1002 1060
    Boolean bCreated
1003 1061

  
1004 1062
    Get phoCallStack To hoCallStack
1005 1063
    If (hoCallStack) Begin
1006 1064
      Get IsComObjectCreated Of hoCallStack To bCreated
1007 1065
      If (bCreated) Begin
1008
        Send Activate of hoCallStack  // we MUST send activate to the callstack to make it display itself
1066
        Send Activate of hoCallStack
1009 1067
      End
1010 1068
    End
1011
  End_Procedure // doActivateCallStack
1012 1069

  
1070
    Get phoLocalVariables To hoLocalVars
1071
    If (hoLocalVars) Begin
1072
      Get IsComObjectCreated Of hoLocalVars To bCreated
1073
      If (bCreated) Begin
1074
        Send Activate of hoLocalVars
1075
      End
1076
    End
1013 1077

  
1078
    Get phoGlobalVariables To hoGlobalVars
1079
    If (hoGlobalVars) Begin
1080
      Get IsComObjectCreated Of hoGlobalVars To bCreated
1081
      If (bCreated) Begin
1082
        Send Activate of hoGlobalVars
1083
      End
1084
    End
1085
  End_Procedure
1086

  
1087

  
1014 1088
  
1015 1089
  Procedure DoCreateEngine
1016 1090
    Boolean bCreated
......
1037 1111
    Send doCreateLocalVariables
1038 1112
    
1039 1113
    Send doCreateTablesWindow
1114
    
1115
    Send AddLanguageKeywords
1040 1116
  End_Procedure // DoCreateEngine
1041 1117

  
1042 1118
  
AppSrc/cSplatCodeMax.pkg
47 47
    Integer iVoid
48 48
  
49 49
    Get AddImage "brkp_obj.ico"     To iVoid // bit 1 // seems the first image is ignored as a margin image
50
    Get AddImage "inst_ptr.ico"     To iVoid // bit 2
50
    Get AddImage "inst_ptr_top.ico" To iVoid // bit 2
51 51
    Get AddImage "brkp_obj.ico"     To iVoid // bit 3
52
    Get AddImage "inst_ptr_top.ico" To iVoid // bit 4
52
    Get AddImage "inst_ptr.ico"     To iVoid // bit 4
53 53
  End_Procedure
54 54
End_Class
55 55

  
......
426 426
    Boolean bIsProperty
427 427
    Boolean bIsProcedure
428 428
    Boolean bIsObject
429
    Boolean bIsKeyword
430
    Boolean bPaused
429 431
    Boolean bOK
430 432
    
431 433
    // Does not always return what we need
......
438 440
        Move ""    To sResult
439 441
        Move ""    To sType
440 442
        Move False To bIsObject
441
        Get IsVariableProperty of hoDebugger sWord To bIsProperty
442
        If (bIsProperty) Begin
443
          Get ObjectForProperty sWord llLine llColumn to sTargetObject
444
          Move (sWord+"("+sTargetObject+")") To sWord
445
          Move "Property " To sType
446
        End
447
        Else Begin
448
          Get IsVariableProcedure Of hoDebugger sWord To bIsProcedure
449
          If (bIsProcedure) Begin
450
            Move "Procedure " To sType
451
          End
452
          Else Begin
453
            If (lowercase(sWord)="self") Begin
454
              Move "Object " To sType
455
              Move True     To bIsObject
443
        Get pbProgramPaused    Of hoDebugger To bPaused
444
        If (bPaused) Begin
445
          Get IsLanguageKeyword of hoDebugger sWord To bIsKeyword //
446
          If (bIsKeyword=false) Begin
447
            Get IsVariableProperty of hoDebugger sWord To bIsProperty
448
            If (bIsProperty) Begin
449
              Get ObjectForProperty sWord llLine llColumn to sTargetObject
450
              Move (sWord+"("+sTargetObject+")") To sWord
451
              Move "Property " To sType
456 452
            End
457
          End
458
        End
459
        Move ("Evaluating "+sType+"'"+sWord+"' results in"+character(10)) To llTipText
460
        If (bIsProcedure) Begin
461
          Move "Not evaluating methods." To sResult
462
        End
463
        Else Begin
464
          Get ComEval of hoDebugger sWord (&sResult) to bOK
465
        End
466
        If (bOK) Begin
467
          If (bIsObject) Begin
468
            Move sResult To sObjectID
469
            Move ""      To sObjectName
470
            Get ComEval of hoDebugger ("name("+sObjectID+")") (&sObjectName) to bOK
453
            Else Begin
454
              Get IsVariableProcedure Of hoDebugger sWord To bIsProcedure
455
              If (bIsProcedure) Begin
456
                Move "Procedure " To sType
457
              End
458
              Else Begin
459
                If (lowercase(sWord)="self") Begin
460
                  Move "Object " To sType
461
                  Move True     To bIsObject
462
                End
463
              End
464
            End
465
            Move ("Evaluating "+sType+"'"+sWord+"' results in"+character(10)) To llTipText
466
            If (bIsProcedure) Begin
467
              Move "Not evaluating methods." To sResult
468
            End
469
            Else Begin
470
              Get ComEval of hoDebugger sWord (&sResult) to bOK
471
            End
471 472
            If (bOK) Begin
472
              Move (sResult+" ("+sObjectName+") ") To sResult
473
              If (bIsObject) Begin
474
                Move sResult To sObjectID
475
                Move ""      To sObjectName
476
                Get ComEval of hoDebugger ("name("+sObjectID+")") (&sObjectName) to bOK
477
                If (bOK) Begin
478
                  Move (sResult+" ("+sObjectName+") ") To sResult
479
                End
480
              End
481
              Move (sResult+character(10)+character(10)+"Eval OK") To sResult
473 482
            End
483
            Else Begin
484
              Move (sResult+character(10)+character(10)+"Eval Failed") To sResult
485
            End
474 486
          End
475
          Move (sResult+character(10)+character(10)+"Eval OK") To sResult
487
          Else Begin
488
            Move ("Keyword "+sWord) To sResult
489
          End
476 490
        End
477 491
        Else Begin
478
          Move (sResult+character(10)+character(10)+"Eval Failed") To sResult
492
          Move sWord To sResult
479 493
        End
480 494
        Move (sResult+", line="+trim(llLine+1)*", column="+Trim(llColumn+1)) To sResult
481 495
      End
......
550 564
  
551 565
  Procedure doOpenSourceFileAtLine String sFileName Integer iLine
552 566
    Integer eBkLineColor
567
    Integer iTopMostLine
553 568
    Boolean bVisible
554 569
    Boolean bScrollup
555 570
    
556 571
    Move false to bScrollup
557 572
    Send doOpenSourceFile sFileName
558
    Set piCurrentLine To iLine
559
    If (iLine>10) Begin
560
      Move (iLine-4) To iLine // scroll up a bit so we can see context
573
    Set piCurrentLine to iLine
574
    Move iLine to iTopMostLine
575
    If (iLine>5) Begin
576
      Move (iLine-4) to iTopMostLine // scroll up a bit so we can see context
561 577
      Move true to bScrollup
562 578
    End
563
    Send ComSetTopIndex 0 iLine
564
    If (bScrollup) Move (iLine+3) to iLine
579
    Send ComSetTopIndex 0 iTopMostLine
580
    If (iLine>=0) Begin
581
        Send ComSetMarginImages (iLine-1) ICO_Inst_ptr //ICO_Brkp_obj// 2
582
        //Set psFilename     of oCodeMax To sFileName
583
        // Make it visible to the user where we are
584
        //Move True to bVisible
585
        //Send ComSelectLine of oCodeMax iLine bVisible
586
        Move (RGB(223,253,193)) to eBkLineColor
587
        Send ComSetLineColor (iLine-1) eBkLineColor //clYellow
588
    End
565 589
    
566
    Send ComSetMarginImages iLine ICO_Inst_ptr //ICO_Brkp_obj// 2
567
    //Set psFilename     of oCodeMax To sFileName
568
    // Make it visible to the user where we are
569
    //Move True to bVisible
570
    //Send ComSelectLine of oCodeMax iLine bVisible
571
    Move (RGB(223,253,193)) To eBkLineColor
572
    Send ComSetLineColor iLine eBkLineColor //clYellow
573
    
574 590
    Send UpdateStatusHelp
575 591
    
576 592
//    Send ComSetLineColor iLine clRed
AppSrc/vdfdbg.vw
141 141
Object oVdfdbg is a dbView
142 142

  
143 143
    Set Border_Style to Border_Thick
144
    Set Size to 346 469
144
    Set Size to 346 769
145 145
    Set Location to 3 4
146 146
    Set Maximize_Icon to True
147 147
    
148 148
    Set phoDebuggerHost To Self
149
    Object oDebugSplitterContainer is a cSplitterContainer
150
      Set pbSplitVertical to False
151
      Set piSplitterLocation to 200
152
      Object oEditorSplitter is a cSplitterContainerChild
153
        Object oCodeMax is a cSplatCodeMax
154
          Set Size to 188 459
155
          Set Location to 6 6
156
          Set peAnchors to anAll
149
    Object oVerticalSplitterContainer is a cSplitterContainer
150
      Set pbSplitVertical to True
151
      Set piSplitterLocation to 559
152
      Object oLeftPanelSplitter is a cSplitterContainerChild
153
        Object oDebugSplitterContainer is a cSplitterContainer
154
          Set pbSplitVertical to False
155
          Set piSplitterLocation to 200
156
          Object oTopPanelSplitter is a cSplitterContainerChild
157
            Object oCodeMax is a cSplatCodeMax
158
              Set Size to 188 553
159
              Set Location to 6 6
160
              Set peAnchors to anAll
161
              
162
              Set phoEditor To Self
163
            
164
                Procedure OnCreate
165
                  Variant vImageList
166
                  Boolean bCreated
167
                  Handle  hoLanguage
168
                  
169
                  Forward Send OnCreate
170
                  
171
                  // ToDo: Set the ActiveX properties here...
172
                  Get ComImageList  To vImageList
173
                  //Set ComHImageList 0  // OLE_HANDLE value
174
                  
175
                End_Procedure
176
        
177
              Embed_ActiveX_Resource
178
              6AMAAAgAAgAAAAAACAACAAAAAAAAAQEBAAAAAQEBAQAAAQAAAAAAAAAAAAAAAAHpAwAAAQEBAAEBAAEEAP//////////////////////////////////////////QwBv
179
              AHUAcgBpAGUAcgAgAE4AZQB3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAA/////wAAAAAAAAABAAAACgAAAAEAAf//////
180
              ////AAAAAAABAAAAAQAAAE0uAAB2FwAA.
181
              End_Embed_ActiveX_Resource
182
            
183
            End_Object
184
          End_Object
185
          Object oBottomPanelSplitter Is a cSplitterContainerChild
186
            Object oDebug_TD is a TabDialog
187
              Set Size to 135 553
188
              Set Location to 4 6
189
              Set peAnchors to anAll
157 190
          
158
          Set phoEditor To Self
159
        
160
            Procedure OnCreate
161
              Variant vImageList
162
              Boolean bCreated
163
              Handle  hoLanguage
191
              Object oGlobalVariables_TP is a TabPage
192
                Set Label to "Global Variables"
193
                
194
                Object oGlobalVarContainer is a Container3d
195
                  Set Size to 131 540
196
                  Set Location to 2 2
197
                  Set peAnchors to anAll
198
                  Set Border_Style to Border_StaticEdge
199
                  Set phoGlobalVarHost To Self
200
            
201
                  
202
                  Procedure CreateObjectCallback Handle hoObject
203
                    Handle hoGlobalVar
204
                    
205
                    If (hoObject) Begin
206
                      Get phoGlobalVariables To hoGlobalVar
207
                      If (hoObject=hoGlobalVar) Begin
208
                        Set Size                     Of hoGlobalVar To 118 359
209
                        Set Location                 Of hoGlobalVar To 8 8
210
                        Set peAnchors                Of hoGlobalVar To anAll
211
                      End
212
                    End
213
                  End_Procedure // CreateObjectCallback
214
                End_Object
215
              End_Object
216
          
217
              Object oWatches_TP is a TabPage
218
                Set Label to "Watches"
219
          
220
                Object oWatchesContainer is a Container3d
221
                  Set Size to 131 540
222
                  Set Location to 2 2
223
                  Set peAnchors to anAll
224
                  Set Border_Style to Border_StaticEdge
225
                
226
                  Set phoWatchesHost To Self
227
                  
228
                  Procedure CreateObjectCallback Handle hoObject
229
                    Handle hoWatches
230
                    
231
                    If (hoObject) Begin
232
                      Get phoWatches To hoWatches
233
                      If (hoObject=hoWatches) Begin
234
                        Set Size                     Of hoWatches To 118 361
235
                        Set Location                 Of hoWatches To 9 6
236
                        Set peAnchors                Of hoWatches To anAll
237
                      End
238
                    End
239
                  End_Procedure // CreateObjectCallback
240
                End_Object
241
              End_Object
242
          
243
              Object oTrace_TP is a TabPage
244
                Set Label to "Trace"
245
                
246
                Object oTraceContainer is a Container3d
247
                  Set Size to 131 540
248
                  Set Location to 2 2
249
                  Set peAnchors to anAll
250
                  Set Border_Style to Border_StaticEdge
251
                  Set phoTraceHost To Self
252
                  
253
                  Procedure CreateObjectCallback Handle hoObject
254
                    Handle hoTrace
255
                    
256
                    If (hoObject) Begin
257
                      Get phoTrace To hoTrace
258
                      If (hoObject=hoTrace) Begin
259
                        Set Size                     Of hoTrace To 118 359
260
                        Set Location                 Of hoTrace To 9 6
261
                        Set Label                    Of hoTrace To "Trace"
262
                        Set peAnchors                Of hoTrace To anAll
263
                      End
264
                    End
265
                  End_Procedure // CreateObjectCallback
266
                End_Object
267
              End_Object
268
          
269
              //Object oDACTreelist_TP is a TabPage
270
              //  Set Label to "DACTreeList (not used)"
271
              //  // I do not think we are going to use this one.
272
              //  Object oComCDACTreeListCtl1 is a cComCDACTreeListCtl
273
              //    Set Size to 100 100
274
              //    Set Location to 10 35
275
              //
276
              //      Procedure OnCreate
277
              //          Forward Send OnCreate
278
              //          // ToDo: Set the ActiveX properties here...
279
              //      End_Procedure
280
              //
281
              //  End_Object
282
              //End_Object
283
          
284
              Object oTables_TP is a TabPage
285
                Set Label to "Tables"
286
                
287
                Object oTablesContainer is a Container3d
288
                  Set Size to 131 540
289
                  Set Location to 2 2
290
                  Set peAnchors to anAll
291
                  Set Border_Style to Border_StaticEdge
292
                  Set phoTablesHost To Self
293
            
294
                  
295
                  Procedure CreateObjectCallback Handle hoObject
296
                    Handle hoTables
297
                    
298
                    If (hoObject) Begin
299
                      Get phoTablesWindow To hoTables
300
                      If (hoObject=hoTables) Begin
301
                        Set Size                     Of hoTables To 118 363
302
                        Set Location                 Of hoTables To 7 6
303
                        Set peAnchors                Of hoTables To anAll
304
                      End
305
                    End
306
                  End_Procedure // CreateObjectCallback
307
                End_Object
308
              End_Object
309
              Object oBreakpoints_TP is a TabPage
310
                Set Label to "Breakpoints"
311
                Object oBreakPointsContainer is a Container3d
312
                  Set Size to 131 540
313
                  Set Location to 2 2
314
                  Set peAnchors to anAll
315
                  Set Border_Style to Border_StaticEdge
316
            
317
                  Object oBreakpointsGrid is a cCJGrid
318
                    Set Size to 112 382
319
                    Set Location to 6 10
320
                    Set peAnchors to anAll
321
                    Set pbReadOnly to True
322
                    Set phoBreakpointsGrid To Self
164 323
              
165
              Forward Send OnCreate
324
                    Object oBPContextMenu Is a cBreakPointsGridContextMenu
325
                    End_Object
326
                    
327
                    Set phoContextMenu To oBPContextMenu
328
                    // Need to move to subclass for this technique, maybe later.
329
                    //Function CreateContextMenu Returns Handle
330
                    //  Handle hoMenu
331
                    //
332
                    //  Get Create (RefClass(cBreakPointsGridContextMenu)) To hoMenu
333
                    //  If (hoMenu) Begin
334
                    //    Set Name Of hoMenu To "oBPContextMenu"
335
                    //  End
336
                    //  Function_Return hoMenu
337
                    //End_Function
338
            
339
                    Object oEnabledColumn is a cCJGridColumn
340
                      Set piWidth to 57
341
                      Set psCaption to "Active"
342
                      Set pbCheckbox to True
343
                      Set pbResizable to False
344
                    End_Object
345
            
346
                    Object oLineColumn is a cCJGridColumn
347
                      Set piWidth to 85
348
                      Set psCaption to "Line"
349
                      Set peDataType to Mask_Numeric_Window
350
                      Set pbResizable to False
351
                    End_Object
352
            
353
                    Object oFileNameColumn is a cCJGridColumn
354
                      Set piWidth to 351
355
                      Set psCaption to "File"
356
                    End_Object
357
                    
358
                    //
359
                    // Procedure ComSetCaretPos Integer llLine Integer llCol
360
                    //
361
                    // Procedure ComSelectLine Integer llLine Boolean llMakeVisible
362
                    
363
                    Procedure LoadData
364
                      Handle  hoDataSource
365
                      Handle  hoDebug
366
                      Boolean bFound
367
                      Boolean bIsCreated
368
                      Integer iBreak
369
                      Integer iCount
370
                      Integer iRows
371
                      Integer iActive
372
                      Integer iLine
373
                      Integer iFile
374
                      tDataSourceRow[] TheData
375
                      tBreakPoints[] BP
376
                      
377
                      Get phoDataSource to hoDataSource
378
                      Get phoDebugger   to hoDebug
379
                      
380
                      // Get the datasource indexes of the various columns
381
                      Get piColumnId of oEnabledColumn  to iActive
382
                      Get piColumnId of oLineColumn     to iLine
383
                      Get piColumnId of oFileNameColumn to iFile
166 384
              
167
              // ToDo: Set the ActiveX properties here...
168
              Get ComImageList  To vImageList
169
              //Set ComHImageList 0  // OLE_HANDLE value
385
                      // Load all data into the datasource array
386
                      If (hoDebug) Begin
387
                        Get pBreakPoints of hoDebug To BP
388
                      End
389
                      Move (SizeOfArray(BP)) To iCount
390
                      For iBreak from 0 To (iCount-1)
391
                        // BP[iBreak].bHasCondition
392
                        // BP[iBreak].sExpression
393
                        
394
                        //If (BP[iBreak].bEnabled) Move "Y" To TheData[iRows].sValue[iActive]
395
                        //Else Move "N" To TheData[iRows].sValue[iActive]
396
                        Move BP[iBreak].bEnabled  To TheData[iRows].sValue[iActive]
397
                        Move BP[iBreak].iLine     To TheData[iRows].sValue[iLine]
398
                        Move BP[iBreak].sFileName To TheData[iRows].sValue[iFile]
399
                        Increment iRows
400
                      Loop
401
                      
402
                      Get IsComObjectCreated To bIsCreated
403
                      If (bIsCreated) Begin
404
                        // Initialize Grid with new data
405
                        Send InitializeData TheData
406
                        Send MovetoFirstRow
407
                      End
408
                    End_Procedure
409
                    
410
                  End_Object
411
      
412
                  Object oButton3 is a Button
413
                    Set Size to 14 61
414
                    Set Location to 57 410
415
                    Set Label to "add breakpoint"
416
                    Set peAnchors to anTopRight
417
                    
418
                    Procedure OnClick
419
                      Integer iLine
420
                      String  sFileName
421
                      Boolean bSuccess
422
                      Handle  hoDebugger
423
                      Handle  hoEditor
424
                      
425
                      Get phoDebugger to hoDebugger
426
                      Get phoEditor   to hoEditor
427
                      If (hoDebugger<>0 and hoEditor<>0) Begin
428
                        
429
                        Get psFileName    of hoEditor to sFileName
430
                        Get piCurrentLine of hoEditor to iLine
431
                        If (sFileName<>"" and iLine<>0) Begin
432
                          Get SetBreakPoint of hoDebugger sFileName (&iLine) to bSuccess
433
                          Send info_box ("Set breakpoint at line"*trim(iLine)*"success="*trim(bSuccess))
434
                          //Send ComSetMarginImages iLine 1
435
                        End
436
                      End
437
              // in codemax
438
              //    // turns on/off margin images for a specific line
439
              //    Procedure ComSetMarginImages Integer llLine UChar llImages
440
              //
441
              //    // sets the line margin images
442
              //    Procedure Set ComHImageList OLE_HANDLE value
443
              //
444
              //    // sets the line margin images
445
              //    Function ComHImageList Returns OLE_HANDLE
446
              //    // Returns the first line number with the specified margin images
447
              //    Function ComFindLineMatchingMarginImages Integer llStartLine UChar llImages Returns Integer
448
              // in debugger
449
              //    // Sets the specified breakpoint
450
              //    Function ComSetBreakPoint String llfile UInteger ByRef llline Returns Boolean
451
                    End_Procedure
452
                    
453
                  End_Object
454
                End_Object
455
                
456
                Procedure DisplayTabDetails
457
                  Send LoadData of oBreakpointsGrid
458
                End_Procedure
459
              End_Object // TP
460
          
170 461
              
171
            End_Procedure
172
    
173
          Embed_ActiveX_Resource
174
          6AMAAAgAAgAAAAAACAACAAAAAAAAAQEBAAAAAQEBAQAAAQAAAAAAAAAAAAAAAAHpAwAAAQEBAAEBAAEEAP//////////////////////////////////////////QwBv
175
          AHUAcgBpAGUAcgAgAE4AZQB3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAA/////wAAAAAAAAABAAAACgAAAAEAAf//////
176
          ////AAAAAAABAAAAAQAAAE0uAAB2FwAA.
177
          End_Embed_ActiveX_Resource
178
        
179
        End_Object
180
        
181
        
462
              Function Tab_Change Integer iToTab Integer ePointerMode Returns Integer
463
                Handle  hoToTab
464
                Integer iCurrentTab
465
                Integer iRetVal
466
                
467
                Get Current_Tab To iCurrentTab
468
                Forward Get Tab_Change iToTab ePointerMode To iRetVal
469
                If (iCurrentTab<>-1 and iRetval=0) Begin
470
                  Get Tab_Page_Id iToTab To hoToTab
471
                  If (hoToTab=oBreakPoints_TP) Begin
472
                    Send DisplayTabDetails of hoToTab
473
                  End
474
                End
475
                Function_Return iRetVal
476
              End_Function
477
              
478
            End_Object  // oDebug_TD
479
          
480
          End_Object // oDebugPanelSplitter
481
        End_Object // oSplitterContainer
182 482
      End_Object
183
      Object oDebugPanelsSplitter is a cSplitterContainerChild
184
        Object oDebug_TD is a TabDialog
185
          Set Size to 135 381
186
          Set Location to 4 6
187
          Set peAnchors to anAll
188
      
189
          Object oCallStack_TP is a TabPage
190
            Set Label to "Call Stack"
191
            
483
      Object oRightPanelSplitter Is a cSplitterContainerChild
484
        Object oStackSplitterContainer is a cSplitterContainer
485
          Set pbSplitVertical to False
486
          Set piSplitterLocation to 140
487
          Object oStackTopPanelSplitter is a cSplitterContainerChild
488
          
192 489
            Object oCallStackContainer is a Container3d
193
              Set Size to 131 377
490
              Set Size to 131 370
194 491
              Set Location to 2 2
195 492
              Set peAnchors to anAll
196 493
              Set Border_Style to Border_StaticEdge
......
204 501
                  Get phoCallStack To hoCallStack
205 502
                  If (hoObject=hoCallStack) Begin
206 503
                    Set Size                     Of hoCallStack To 118 361
207
                    Set Location                 Of hoCallStack To 9 5
504
                    Set Location                 Of hoCallStack To 11 5
208 505
                    Set Label_Justification_Mode Of hoCallStack To JMode_Top
209 506
                    Set Label_Col_Offset         Of hoCallStack To 0
210 507
                    Set Label                    Of hoCallStack To "Call Stack"
......
219 516
                If (hoObject) Begin
220 517
                  Get phoCallStack To hoCallStack
221 518
                  If (hoObject=hoCallStack) Begin
222
                    Set ComObjectColumnWidth     Of hoCallStack To 200
223
                    Set ComMessageColumnWidth    Of hoCallStack To 400
519
                    Set ComObjectColumnWidth     Of hoCallStack To 90
520
                    Set ComMessageColumnWidth    Of hoCallStack To 265
224 521
                  End
225 522
                End
226 523
              End_Procedure
......
231 528
              //  If hWindow Move (InvalidateRect(hWindow,0,True)) To hVoid
232 529
              //End_Procedure // RepaintTabPage
233 530
            End_Object
234
            
235 531
          End_Object
236
      
237
          Object oWatches_TP is a TabPage
238
            Set Label to "Watches"
239
      
240
            Object oWatchesContainer is a Container3d
241
              Set Size to 131 377
242
              Set Location to 2 2
243
              Set peAnchors to anAll
244
              Set Border_Style to Border_StaticEdge
532
          Object oStackBottomPanelSplitter Is a cSplitterContainerChild
245 533
            
246
              Set phoWatchesHost To Self
247
              
248
              Procedure CreateObjectCallback Handle hoObject
249
                Handle hoWatches
250
                
251
                If (hoObject) Begin
252
                  Get phoWatches To hoWatches
253
                  If (hoObject=hoWatches) Begin
254
                    Set Size                     Of hoWatches To 118 361
255
                    Set Location                 Of hoWatches To 9 6
256
                    Set peAnchors                Of hoWatches To anAll
257
                  End
258
                End
259
              End_Procedure // CreateObjectCallback
260
            End_Object
261
          End_Object
262
      
263
          Object oTrace_TP is a TabPage
264
            Set Label to "Trace"
265
            
266
            Object oTraceContainer is a Container3d
267
              Set Size to 131 377
534
            Object oLocalVarContainer is a Container3d
535
              Set Size to 200 370
268 536
              Set Location to 2 2
269 537
              Set peAnchors to anAll
270
              Set Border_Style to Border_StaticEdge
271
              Set phoTraceHost To Self
538
              Set Border_Style To Border_StaticEdge
272 539
              
273
              Procedure CreateObjectCallback Handle hoObject
274
                Handle hoTrace
275
                
276
                If (hoObject) Begin
277
                  Get phoTrace To hoTrace
278
                  If (hoObject=hoTrace) Begin
279
                    Set Size                     Of hoTrace To 118 359
280
                    Set Location                 Of hoTrace To 9 6
281
                    Set Label                    Of hoTrace To "Trace"
282
                    Set peAnchors                Of hoTrace To anAll
283
                  End
284
                End
285
              End_Procedure // CreateObjectCallback
286
            End_Object
287
          End_Object
288
      
289
          //Object oDACTreelist_TP is a TabPage
290
          //  Set Label to "DACTreeList (not used)"
291
          //  // I do not think we are going to use this one.
292
          //  Object oComCDACTreeListCtl1 is a cComCDACTreeListCtl
293
          //    Set Size to 100 100
294
          //    Set Location to 10 35
295
          //
296
          //      Procedure OnCreate
297
          //          Forward Send OnCreate
298
          //          // ToDo: Set the ActiveX properties here...
299
          //      End_Procedure
300
          //
301
          //  End_Object
302
          //End_Object
303
      
304
          Object oGlobalVariables_TP is a TabPage
305
            Set Label to "Global Variables"
306
            
307
            Object oGlobalVarContainer is a Container3d
308
              Set Size to 131 377
309
              Set Location to 2 2
310
              Set peAnchors to anAll
311
              Set Border_Style to Border_StaticEdge
312
              Set phoGlobalVarHost To Self
313
        
314
              
315
              Procedure CreateObjectCallback Handle hoObject
316
                Handle hoGlobalVar
317
                
318
                If (hoObject) Begin
319
                  Get phoGlobalVariables To hoGlobalVar
320
                  If (hoObject=hoGlobalVar) Begin
321
                    Set Size                     Of hoGlobalVar To 118 359
322
                    Set Location                 Of hoGlobalVar To 8 8
323
                    Set peAnchors                Of hoGlobalVar To anAll
324
                  End
325
                End
326
              End_Procedure // CreateObjectCallback
327
            End_Object
328
          End_Object
329
      
330
          Object oLocalVariables_TP is a TabPage
331
            Set Label to "Local Variables"
332
      
333
            
334
            Object oLocalVarContainer is a Container3d
335
              Set Size to 131 377
336
              Set Location to 2 2
337
              Set peAnchors to anAll
338
              Set Border_Style to Border_StaticEdge
339 540
              Set phoLocalVarHost To Self
340
        
341 541
              
342 542
              Procedure CreateObjectCallback Handle hoObject
343 543
                Handle hoLocalVar
......
345 545
                If (hoObject) Begin
346 546
                  Get phoLocalVariables To hoLocalVar
347 547
                  If (hoObject=hoLocalVar) Begin
348
                    Set Size                     Of hoLocalVar To 118 359
349
                    Set Location                 Of hoLocalVar To 8 8
548
                    Set Size                     Of hoLocalVar To 188 359
549
                    Set Location                 Of hoLocalVar To 11 5
550
                    Set Label_Justification_Mode Of hoLocalVar To JMode_Top
551
                    Set Label_Col_Offset         Of hoLocalVar To 0
552
                    Set Label                    Of hoLocalVar To "Local Variables"
350 553
                    Set peAnchors                Of hoLocalVar To anAll
351 554
                  End
352 555
                End
353 556
              End_Procedure // CreateObjectCallback
354 557
            End_Object
355 558
          End_Object
356
      
357
          Object oTables_TP is a TabPage
358
            Set Label to "Tables"
359
            
360
            Object oTablesContainer is a Container3d
361
              Set Size to 131 377
362
              Set Location to 2 2
363
              Set peAnchors to anAll
364
              Set Border_Style to Border_StaticEdge
365
              Set phoTablesHost To Self
366
        
367
              
368
              Procedure CreateObjectCallback Handle hoObject
369
                Handle hoTables
370
                
371
                If (hoObject) Begin
372
                  Get phoTablesWindow To hoTables
373
                  If (hoObject=hoTables) Begin
374
                    Set Size                     Of hoTables To 118 363
375
                    Set Location                 Of hoTables To 7 6
376
                    Set peAnchors                Of hoTables To anAll
377
                  End
378
                End
379
              End_Procedure // CreateObjectCallback
380
            End_Object
381
          End_Object
382
          Object oBreakpoints_TP is a TabPage
383
            Set Label to "Breakpoints"
384
            Object oBreakPointsContainer is a Container3d
385
              Set Size to 131 377
386
              Set Location to 2 2
387
              Set peAnchors to anAll
388
              Set Border_Style to Border_StaticEdge
389
        
390
              Object oBreakpointsGrid is a cCJGrid
391
                Set Size to 112 282
392
                Set Location to 6 10
393
                Set peAnchors to anAll
394
                Set pbReadOnly to True
395
                Set phoBreakpointsGrid To Self
396
          
397
                Object oBPContextMenu Is a cBreakPointsGridContextMenu
398
                End_Object
399
                
400
                Set phoContextMenu To oBPContextMenu
401
                // Need to move to subclass for this technique, maybe later.
402
                //Function CreateContextMenu Returns Handle
403
                //  Handle hoMenu
404
                //
405
                //  Get Create (RefClass(cBreakPointsGridContextMenu)) To hoMenu
406
                //  If (hoMenu) Begin
407
                //    Set Name Of hoMenu To "oBPContextMenu"
408
                //  End
409
                //  Function_Return hoMenu
410
                //End_Function
411
        
412
                Object oEnabledColumn is a cCJGridColumn
413
                  Set piWidth to 57
414
                  Set psCaption to "Active"
415
                  Set pbCheckbox to True
416
                  Set pbResizable to False
417
                End_Object
418
        
419
                Object oLineColumn is a cCJGridColumn
420
                  Set piWidth to 85
421
                  Set psCaption to "Line"
422
                  Set peDataType to Mask_Numeric_Window
423
                  Set pbResizable to False
424
                End_Object
425
        
426
                Object oFileNameColumn is a cCJGridColumn
427
                  Set piWidth to 351
428
                  Set psCaption to "File"
429
                End_Object
430
                
431
                //
432
                // Procedure ComSetCaretPos Integer llLine Integer llCol
433
                //
434
                // Procedure ComSelectLine Integer llLine Boolean llMakeVisible
435
                
436
                Procedure LoadData
437
                  Handle  hoDataSource
438
                  Handle  hoDebug
439
                  Boolean bFound
440
                  Boolean bIsCreated
441
                  Integer iBreak
442
                  Integer iCount
443
                  Integer iRows
444
                  Integer iActive
445
                  Integer iLine
446
                  Integer iFile
447
                  tDataSourceRow[] TheData
448
                  tBreakPoints[] BP
449
                  
450
                  Get phoDataSource to hoDataSource
451
                  Get phoDebugger   to hoDebug
452
                  
453
                  // Get the datasource indexes of the various columns
454
                  Get piColumnId of oEnabledColumn  to iActive
455
                  Get piColumnId of oLineColumn     to iLine
456
                  Get piColumnId of oFileNameColumn to iFile
457
          
458
                  // Load all data into the datasource array
459
                  If (hoDebug) Begin
460
                    Get pBreakPoints of hoDebug To BP
461
                  End
462
                  Move (SizeOfArray(BP)) To iCount
463
                  For iBreak from 0 To (iCount-1)
464
                    // BP[iBreak].bHasCondition
465
                    // BP[iBreak].sExpression
466
                    
467
                    //If (BP[iBreak].bEnabled) Move "Y" To TheData[iRows].sValue[iActive]
468
                    //Else Move "N" To TheData[iRows].sValue[iActive]
469
                    Move BP[iBreak].bEnabled  To TheData[iRows].sValue[iActive]
470
                    Move BP[iBreak].iLine     To TheData[iRows].sValue[iLine]
471
                    Move BP[iBreak].sFileName To TheData[iRows].sValue[iFile]
472
                    Increment iRows
473
                  Loop
474
                  
475
                  Get IsComObjectCreated To bIsCreated
476
                  If (bIsCreated) Begin
477
                    // Initialize Grid with new data
478
                    Send InitializeData TheData
479
                    Send MovetoFirstRow
480
                  End
481
                End_Procedure
482
                
483
              End_Object
484
  
485
              Object oButton3 is a Button
486
                Set Size to 14 61
487
                Set Location to 57 310
488
                Set Label to "add breakpoint"
489
                Set peAnchors to anTopRight
490
                
491
                Procedure OnClick
492
                  Integer iLine
493
                  String  sFileName
494
                  Boolean bSuccess
495
                  Handle  hoDebugger
496
                  Handle  hoEditor
497
                  
498
                  Get phoDebugger to hoDebugger
499
                  Get phoEditor   to hoEditor
500
                  If (hoDebugger<>0 and hoEditor<>0) Begin
501
                    
502
                    Get psFileName    of hoEditor to sFileName
503
                    Get piCurrentLine of hoEditor to iLine
504
                    If (sFileName<>"" and iLine<>0) Begin
505
                      Get SetBreakPoint of hoDebugger sFileName (&iLine) to bSuccess
506
                      Send info_box ("Set breakpoint at line"*trim(iLine)*"success="*trim(bSuccess))
507
                      //Send ComSetMarginImages iLine 1
508
                    End
509
                  End
510
          // in codemax
511
          //    // turns on/off margin images for a specific line
512
          //    Procedure ComSetMarginImages Integer llLine UChar llImages
513
          //
514
          //    // sets the line margin images
515
          //    Procedure Set ComHImageList OLE_HANDLE value
516
          //
517
          //    // sets the line margin images
518
          //    Function ComHImageList Returns OLE_HANDLE
519
          //    // Returns the first line number with the specified margin images
520
          //    Function ComFindLineMatchingMarginImages Integer llStartLine UChar llImages Returns Integer
521
          // in debugger
522
          //    // Sets the specified breakpoint
523
          //    Function ComSetBreakPoint String llfile UInteger ByRef llline Returns Boolean
524
                End_Procedure
525
                
526
              End_Object
527
            End_Object
528
            
529
            Procedure DisplayTabDetails
530
              Send LoadData of oBreakpointsGrid
531
            End_Procedure
532
          End_Object // TP
533
      
534
          
535
          Function Tab_Change Integer iToTab Integer ePointerMode Returns Integer
536
            Handle  hoToTab
537
            Integer iCurrentTab
538
            Integer iRetVal
539
            
540
            Get Current_Tab To iCurrentTab
541
            Forward Get Tab_Change iToTab ePointerMode To iRetVal
542
            If (iCurrentTab<>-1 and iRetval=0) Begin
543
              Get Tab_Page_Id iToTab To hoToTab
544
              If (hoToTab=oBreakPoints_TP) Begin
545
                Send DisplayTabDetails of hoToTab
546
              End
547
            End
548
            Function_Return iRetVal
549
          End_Function
550
          
551
        End_Object  // oDebug_TD
552
      
553
      End_Object // oDebugPanelSplitter
554
    End_Object // oSplitterContainer
559
        End_Object
560
      End_Object
561
    End_Object
555 562

  
556 563

  
557 564

  

Also available in: Unified diff