; --------------------------------------------------------------------------------------------; Copyright (c) Fantaisie Software. All rights reserved.; Dual licensed under the GPL and Fantaisie Software licenses.; See LICENSE and LICENSE-FANTAISIE in the project root for license information.; --------------------------------------------------------------------------------------------;; For easier debugging of IDE internals.;; If the #DEBUG constant is set to 1, there is a new menu entry; "Help->Debugging", which will open this window where some info; can be viewed about the current source and settings etc.;; (more stuff can be added as needed while looking for bugs);;CompilerIf #DEBUGEnumeration#DEBUG_SourceTokens#DEBUG_SortedTokens#DEBUG_SortedIssues#DEBUG_ProjectTokens#DEBUG_CompilerDialog#DEBUG_PreferencesDialog#DEBUG_FindDialog#DEBUG_GrepDialog#DEBUG_AddToolsDialog#DEBUG_EditToolsDialog#DEBUG_MemoryStatsEndEnumerationGlobal Debugging_Combo, Debugging_Editor, Debugging_DisplayDeclare.s DumpDialogHirachy(*Object.DlgBase, Indent)CompilerIf #CompileWindowsStructure PROCESS_HEAP_ENTRY_BlockhMem.idwReserved.l[3]EndStructureStructure PROCESS_HEAP_ENTRY_RegiondwCommittedSize.ldwUnCommittedSize.llpFirstBlock.ilpLastBlock.iEndStructureStructure PROCESS_HEAP_ENTRYlpData.icbData.lcbOverhead.biRegionIndex.bwFlags.wStructureUnionBlock.PROCESS_HEAP_ENTRY_BlockRegion.PROCESS_HEAP_ENTRY_RegionEndStructureUnionEndStructure#PROCESS_HEAP_ENTRY_BUSY = 0004ドル#PROCESS_HEAP_ENTRY_DDESHARE = 0020ドル#PROCESS_HEAP_ENTRY_MOVEABLE = 0010ドル#PROCESS_HEAP_REGION = 0001ドル#PROCESS_HEAP_UNCOMMITTED_RANGE = 0002ドルProcedure.s HeapStats(Heap)Protected Entry.PROCESS_HEAP_ENTRYProtected Blocks, Size, OverheadProtected UncommittedHeapLock_(Heap)While HeapWalk_(Heap, @Entry)If Entry\wFlags & #PROCESS_HEAP_ENTRY_BUSYBlocks + 1Size + Entry\cbDataOverhead + Entry\cbOverheadElseIf Entry\wFlags & #PROCESS_HEAP_UNCOMMITTED_RANGEUncommitted + Entry\cbDataEndIfWendHeapUnlock_(Heap)Result$ = "Allocated Blocks : " + Str(Blocks) + #NewLineIf Blocks > 0Result$ + "Avg. Block Size : " + StrByteSize(Size/Blocks) + #NewLineEndIfResult$ + "Total Memory : " + StrByteSize(Size) + #NewLineResult$ + "Heap Overhead : " + StrByteSize(Overhead) + #NewLineResult$ + "Uncommitted Memory: " + StrByteSize(Uncommitted) + #NewLineIf HeapValidate_(Heap, 0, #Null)Result$ + "Heap valiadtion : Ok" + #NewLineElseResult$ + "Heap valiadtion : Failed !!!" + #NewLineEndIfProcedureReturn Result$EndProcedureCompilerEndIfProcedure.s DumpDlgBin(*Bin.DlgBinBase, Indent)Text$ = Space(Indent) + "Margins = t:"+Str(*Bin\tMargin)+", b:"+Str(*Bin\bMargin)+", l:"+Str(*Bin\lMargin)+", r:"+Str(*Bin\rMargin)+#NewLineText$ + Space(Indent) + "Expand = v:"+Str(*Bin\vExpand)+", h:"+Str(*Bin\hExpand)+" Align = v:"+Str(*Bin\vAlign)+", h:"+Str(*Bin\hAlign)+#NewLineText$ + Space(Indent) + "Requested Size = "+Str(*Bin\RequestedWidth) + ", "+Str(*Bin\RequestedHeight) + #NewLineIf *Bin\ChildText$ + DumpDialogHirachy(*Bin\Child, Indent+2)ElseText$ + Space(Indent) + "-- no child --"EndIfProcedureReturn Text$EndProcedureProcedure.s DumpDlgBox(*Box.DlgBoxBase, Indent)Text$ = ""; those have extra dataIf *Box\StaticData\type = #DIALOG_VBox Or *Box\StaticData\type = #DIALOG_HBox*Box2.DlgBox = *BoxText$ + Space(Indent) + "Spacing = "+Str(*Box2\Spacing)+", Expand = "+Str(*Box2\Expand)+", Item = "+Str(*Box2\ExpandItem) + ", Align = "+Str(*Box2\Align)+#NewLineText$ + Space(Indent) + "RequestedSize = "+Str(*Box2\RequestedSize) + #NewLineText$ + Space(Indent) + "ChildSizes ="For i = 0 To *Box\NbChildren-1Text$ + " " + Str(*Box2\ChildSizes[i])Next iText$ + #NewLineEndIfIf *Box\NbChildren = 0Text$ + Space(Indent) + "-- no children --"ElseFor i = 0 To *Box\NbChildren-1Text$ + DumpDialogHirachy(*Box\Children[i], Indent+2)Next iEndIfProcedureReturn Text$EndProcedureProcedure.s DumpDlgGadget(*Gadget.DlgGadget, Name,ドル Indent)Text$ = "----- "+Name$+" -----"+#NewLineText$ + Space(Indent) + "Position = "+Str(GadgetX(*Gadget\Gadget)) + ", "+Str(GadgetY(*Gadget\Gadget)) + ", "+Str(GadgetWidth(*Gadget\Gadget)) + ", "+Str(GadgetHeight(*Gadget\Gadget))+#NewLineIf *Gadget\HasTitleText$ + Space(Indent) + "Text = "+ReplaceString(GetGadgetText(*Gadget\Gadget), #Newline, "\n") + #NewLineEndIfProcedureReturn Text$EndProcedureProcedure.s DumpDialogHirachy(*Object.DlgBase, Indent)Text$ = Space(Indent)Select *Object\StaticData\typeCase #DIALOG_Window*Window.DlgWindow = *ObjectText$ + "----- Window -----"+#NewLineText$ + Space(Indent) + "Size = "+Str(WindowWidth(*Window\Window)) + ", "+Str(WindowHeight(*Window\Window)) + #NewLineText$ + DumpDlgBin(*Object, Indent)Case #DIALOG_VBoxText$ + "----- VBox -----"+#NewLineText$ + DumpDlgBox(*Object, Indent)Case #DIALOG_HBoxText$ + "----- HBox -----"+#NewLineText$ + DumpDlgBox(*Object, Indent)Case #DIALOG_MultiboxText$ + "----- Multibox -----"+#NewLineText$ + DumpDlgBox(*Object, Indent)Case #DIALOG_SingleboxText$ + "----- Singlebox -----"+#NewLineText$ + DumpDlgBin(*Object, Indent)Case #DIALOG_Gridbox*Grid.DlgGridBox = *ObjectText$ + "----- Gridbox -----"+#NewLineText$ + Space(Indent) + "NbColumns = "+Str(*Grid\NbColumns) + ", NbRows = "+Str(*Grid\NbRows) + #NewLineText$ + Space(Indent) + "Spacing = col:"+Str(*Grid\colSpacing)+" row:"+Str(*Grid\rowSpacing)+", Expand = col:"+Str(*Grid\colExpand)+" row:"+Str(*Grid\rowExpand)+", Item = col:"+Str(*Grid\colExpandItem)+" row:"+Str(*Grid\rowExpandItem)+#NewLineText$ + Space(Indent) + "RequestedWidth = "+Str(*Grid\RequestedWidth)+", RequestedHeight = "+Str(*Grid\RequestedHeight)+#NewLineText$ + Space(Indent) + "ColSizes ="For i = 0 To *Grid\NbColumns-1Text$ + " " + Str(*Grid\colSize[i])Next iText$ + #NewLine + Space(Indent) + "RowSizes ="For i = 0 To *Grid\NbRows-1Text$ + " " + Str(*Grid\rowSize[i])Next iText$ + #NewLineFor row = 0 To *Grid\NbRows-1Text$ + Space(Indent+2) + "===== Gridbox new row =====" + #NewLineFor col = 0 To *Grid\NbColumns-1Child.DialogObject = *GRid\Rows[row]\Cols[col]\ChildIf Child <> #DlgGrid_Empty And Child <> #DlgGrid_SpanText$ + DumpDialogHirachy(Child, Indent+2)If *GRid\Rows[row]\Cols[col]\Colspan > 1 Or *GRid\Rows[row]\Cols[col]\Rowspan > 1Text$ + Space(Indent+2)+"(Gridbox: Colspan = "+Str(*GRid\Rows[row]\Cols[col]\Colspan)+", Rowspan = "+Str(*GRid\Rows[row]\Cols[col]\Rowspan)+")"+#NewLineEndIfEndIfNext colNext rowCase #DIALOG_EmptyText$ + "----- Empty -----"+#NewLineCase #DIALOG_Button: Text$ + DumpDlgGadget(*Object, "Button", Indent)Case #DIALOG_Checkbox: Text$ + DumpDlgGadget(*Object, "Checkbox", Indent)Case #DIALOG_Image: Text$ + DumpDlgGadget(*Object, "Image", Indent)Case #DIALOG_Option: Text$ + DumpDlgGadget(*Object, "Option", Indent)Case #DIALOG_ListView: Text$ + DumpDlgGadget(*Object, "ListView", Indent) ; we ignore the <item> and <column> entries in this displayCase #DIALOG_ListIcon: Text$ + DumpDlgGadget(*Object, "ListIcon", Indent)Case #DIALOG_Tree: Text$ + DumpDlgGadget(*Object, "Tree", Indent)Case #DIALOG_ComboBox: Text$ + DumpDlgGadget(*Object, "ComboBox", Indent)Case #DIALOG_Text: Text$ + DumpDlgGadget(*Object, "Text", Indent)Case #DIALOG_String: Text$ + DumpDlgGadget(*Object, "String", Indent)Case #DIALOG_Editor: Text$ + DumpDlgGadget(*Object, "Editor", Indent)Case #DIALOG_Scintilla: Text$ + DumpDlgGadget(*Object, "Scintilla", Indent)Case #DIALOG_ScrollBar: Text$ + DumpDlgGadget(*Object, "ScrollBar", Indent)Case #DIALOG_ProgressBar: Text$ + DumpDlgGadget(*Object, "ProgressBar", Indent)Case #DIALOG_ContainerText$ + "----- Container -----"+#NewLineText$ + DumpDlgBin(*Object, Indent)Case #DIALOG_PanelText$ + "----- Panel -----"+#NewLineText$ + DumpDlgBox(*Object, Indent)Case #DIALOG_Tab*Tab.DlgTab = *ObjectText$ + "----- Tab -----"+#NewLineText$ + Space(Indent) + "Title = "+GetGadgetItemText(*Tab\ParentGadget, *Tab\ItemIndex) + #NewLineText$ + DumpDlgBin(*Object, Indent)Case #DIALOG_Scroll*Scroll.DlgScroll = *ObjectText$ + "----- ScrollArea -----"+#NewLineText$ + Space(Indent) + "InnerWidth = "+Str(*Scroll\InnerWidth) + ", InnerHeight = "+Str(*Scroll\InnerHeight) + ", Scrolling = "+Str(*Scroll\Scrolling)+#NewLineText$ + DumpDlgBin(*Object, Indent)Case #DIALOG_Frame*Frame.DlgFrame = *ObjectText$ + "----- Frame -----"+#NewLineText$ + Space(Indent) + "Title = "+GetGadgetText(*Frame\Gadget) + #NewLineText$ + Space(Indent) + "Boder = t:"+Str(*Frame\BorderTop)+", b:"+Str(*Frame\BorderBottom)+", l:"+Str(*Frame\BorderLeft)+", r:"+Str(*Frame\BorderRight)+#NewLineText$ + DumpDlgBin(*Object, Indent)EndSelectProcedureReturn Text$EndProcedureProcedure DebuggingWindowEvents(EventID)Static NewList *Items()If EventID = #PB_Event_GadgetIf EventGadget() = Debugging_DisplayContent$ = ""Select GetGadgetState(Debugging_Combo) ; specifies the actionCase #DEBUG_SourceTokens ; sourcetoken listIf *ActiveSource\Parser\SourceItemArrayIf *ActiveSource\Parser\SourceItemCount > 0length = Len(Str(*ActiveSource\Parser\SourceItemCount))For i = 0 To *ActiveSource\Parser\SourceItemCount-1Content$ + RSet(Str(i+1), length, " ")*Item.SourceItem = *ActiveSource\Parser\SourceItemArray\Line[i]\FirstWhile *ItemSelect *Item\TypeCase #ITEM_Keyword : Kind$ = "Keyword("+BasicKeywordsReal(*Item\Keyword)+")"Case #ITEM_Procedure : Kind$ = "Procedure"Case #ITEM_Macro : Kind$ = "Macro"Case #ITEM_CommentMark : Kind$ = "Marker"Case #ITEM_Issue : Kind$ = "Issue"Case #ITEM_Structure : Kind$ = "Structure"Case #ITEM_Interface : Kind$ = "Interface"Case #ITEM_Constant : Kind$ = "Constant"Case #ITEM_Variable : Kind$ = "Variable"Case #ITEM_Array : Kind$ = "Array"Case #ITEM_LinkedList : Kind$ = "LinkedList"Case #ITEM_Import : Kind$ = "Import"Case #ITEM_FoldStart : Kind$ = "FoldStart"Case #ITEM_FoldEnd : Kind$ = "FoldEnd"Case #ITEM_MacroEnd : Kind$ = "MacroEnd"Case #ITEM_ProcedureEnd : Kind$ = "ProcedureEnd"Case #ITEM_InlineASM : Kind$ = "InlineASM"Case #ITEM_InlineASMEnd : Kind$ = "InlineASMEnd"Case #ITEM_Declare : Kind$ = "Declare"Case #ITEM_Define : Kind$ = "Define"Case #ITEM_Prototype : Kind$ = "Prototype"Case #ITEM_Label : Kind$ = "Label"Case #ITEM_Map : Kind$ = "Map"Case #ITEM_UnknownBraced : Kind$ = "UnknownBraced"Case #ITEM_DeclareModule : Kind$ = "DeclareModule"Case #ITEM_EndDeclareModule: Kind$ = "EndDeclareModule"Case #ITEM_Module : Kind$ = "Module"Case #ITEM_EndModule : Kind$ = "EndModule"Case #ITEM_UseModule : Kind$ = "UseModule"Case #ITEM_UnuseModule : Kind$ = "UnuseModule"Default : Kind$ = "Unknown("+Str(*Item\Type)+")"EndSelectIf *Item\ModulePrefix$ = ""Prefix$ = ""ElsePrefix$ = *Item\ModulePrefix$ + "::"EndIfContent$ + " -> ["+Str(*Item\Position)+"] "+Kind$+"="+Prefix$+*Item\Name$+" "+*Item\StringData$*Item = *Item\NextWendContent$ + #NewLineNext iElseContent$ = "-- Array count is 0 --"EndIfElseContent$ = "-- Array pointer is 0 --"EndIfCase #DEBUG_SortedTokens ; sorted source tokensSortParserData(@*ActiveSource\Parser) ; ensure it is up to dateContent$ = ""ForEach *ActiveSource\Parser\Modules()Content$ + #NewLine + "=================== Module: " + MapKey(*ActiveSource\Parser\Modules()) + " =======================" + #NewLineFor Type = 0 To #ITEM_LastSortedSelect TypeCase #ITEM_Procedure : Title$ = "----- Procedures -----"Case #ITEM_Macro : Title$ = "----- Macros -----"Case #ITEM_Declare : Title$ = "----- Declares -----"Case #ITEM_Structure : Title$ = "----- Structures -----"Case #ITEM_Interface : Title$ = "----- Interfaces -----"Case #ITEM_Prototype : Title$ = "----- Prototypes -----"Case #ITEM_Constant : Title$ = "----- Constants -----"Case #ITEM_Variable : Title$ = "----- Variables -----"Case #ITEM_Array : Title$ = "----- Arrays -----"Case #ITEM_LinkedList: Title$ = "----- LinkedLists -----"Case #ITEM_Label : Title$ = "----- Labels -----"Case #ITEM_Import : Title$ = "----- Imports -----"Case #ITEM_Map : Title$ = "----- Maps -----"Default : Title$ = "----- Unknown type -----"EndSelectRadixEnumerateAll(*ActiveSource\Parser\Modules()\Indexed[Type], *Items())If ListSize(*Items()) > 0Content$ + #NewLine + Title$ + #NewLineForEach *Items()*Item.SourceItem = *Items()Content$ + *Item\Name$ + " " + *Item\StringData$ + #NewLineNext *Items()EndIfNext TypeNext *ActiveSource\Parser\Modules()Case #DEBUG_SortedIssuesSortParserData(@*ActiveSource\Parser) ; ensure it is up to dateContent$ = ""*Item.SourceItem = *ActiveSource\Parser\SortedIssuesWhile *ItemContent$ + "Line=" + Str(*Item\SortedLine + 1) + ", Issue=" + *Item\Issue + ", Text=" + *Item\Name$ + #NewLine*Item = *Item\NextSortedWendCase #DEBUG_ProjectTokensContent$ = ""If IsProjectIf ListSize(ProjectFiles()) > 0ForEach ProjectFiles()Content$ + " #####################################################" + #NewLineContent$ + " " + ProjectFiles()\FileName$If ProjectFiles()\SourceContent$ + " (loaded)" + #NewLine*Parser.ParserData = @ProjectFiles()\Source\ParserSortParserData(*Parser, ProjectFiles()\Source)ElseContent$ + #NewLine*Parser.ParserData = @ProjectFiles()\ParserSortParserData(*Parser)EndIfContent$ + " #####################################################" + #NewLineForEach *Parser\Modules()Content$ + #NewLine + "=================== Module: " + MapKey(*Parser\Modules()) + " =======================" + #NewLineFor Type = 0 To #ITEM_LastSortedSelect TypeCase #ITEM_Procedure : Title$ = "----- Procedures -----"Case #ITEM_Macro : Title$ = "----- Macros -----"Case #ITEM_Declare : Title$ = "----- Declares -----"Case #ITEM_Structure : Title$ = "----- Structures -----"Case #ITEM_Interface : Title$ = "----- Interfaces -----"Case #ITEM_Prototype : Title$ = "----- Prototypes -----"Case #ITEM_Constant : Title$ = "----- Constants -----"Case #ITEM_Variable : Title$ = "----- Variables -----"Case #ITEM_Array : Title$ = "----- Arrays -----"Case #ITEM_LinkedList: Title$ = "----- LinkedLists -----"Case #ITEM_Label : Title$ = "----- Labels -----"Case #ITEM_Import : Title$ = "----- Imports -----"Case #ITEM_Map : Title$ = "----- Maps -----"Default : Title$ = "----- Unknown type -----"EndSelectRadixEnumerateAll(*Parser\Modules()\Indexed[Type], *Items())If ListSize(*Items()) > 0Content$ + #NewLine + Title$ + #NewLineForEach *Items()*Item.SourceItem = *Items()Content$ + *Item\Name$ + " " + *Item\StringData$ + #NewLineNext *Items()EndIfNext TypeNext *Parser\Modules()Next ProjectFiles()ElseContent$ = "-- No project files --"EndIfElseContent$ = "-- No current project --"EndIfCase #DEBUG_CompilerDialog ; DialogHirachy - OptionWindowIf IsWindow(#WINDOW_Option)Content$ = DumpDialogHirachy(OptionWindowDialog, 0) ; the main object is directly the DlgWindow objectElseContent$ = "-- Compiler Window not open --"EndIfCase #DEBUG_PreferencesDialog ; DialogHirachy - PreferencesIf IsWindow(#WINDOW_Preferences)Content$ = DumpDialogHirachy(PreferenceWindowDialog, 0) ; the main object is directly the DlgWindow objectElseContent$ = "-- Preferences Window not open --"EndIfCase #DEBUG_FindDialog ; DialogHirachy - FindIf IsWindow(#WINDOW_Find)Content$ = DumpDialogHirachy(FindWindowDialog, 0) ; the main object is directly the DlgWindow objectElseContent$ = "-- Find Window not open --"EndIfCase #DEBUG_GrepDialog ; DialogHirachy - GrepIf IsWindow(#WINDOW_Grep)Content$ = DumpDialogHirachy(GrepWindowDialog, 0) ; the main object is directly the DlgWindow objectElseContent$ = "-- Grep Window not open --"EndIfCase #DEBUG_AddToolsDialog ; DialogHirachy - AddToolsIf IsWindow(#WINDOW_AddTools)Content$ = DumpDialogHirachy(AddToolsWindowDialog, 0) ; the main object is directly the DlgWindow objectElseContent$ = "-- AddTools Window not open --"EndIfCase #DEBUG_EditToolsDialog ; DialogHirachy - EditToolsIf IsWindow(#WINDOW_EditTools)Content$ = DumpDialogHirachy(EditToolsWindowDialog, 0) ; the main object is directly the DlgWindow objectElseContent$ = "-- EditTools Window not open --"EndIfCase #DEBUG_MemoryStats ; memory statsCompilerIf #CompileWindows And #PB_Compiler_Backend <> #PB_Backend_CProtected StringHeap, MemoryBase, MemoryHeap; The needed !extrn are in WindowsDebugging.pb already.CompilerIf #CompileX86!mov eax, dword [_PB_StringHeap]!mov [p.v_StringHeap], eax!mov eax, dword [_PB_MemoryBase]!mov [p.v_MemoryBase], eax!mov eax, dword [_PB_Memory_Heap]!mov [p.v_MemoryHeap], eaxCompilerElse!mov rax, qword [PB_StringHeap]!mov [p.v_StringHeap], rax!mov rax, qword [_PB_MemoryBase]!mov [p.v_MemoryBase], rax!mov rax, qword [PB_Memory_Heap]!mov [p.v_MemoryHeap], raxCompilerEndIfContent$ = "Process Heap:"+#NewLine+"------------------------------"+#NewLineContent$ + HeapStats(GetProcessHeap_())+#NewLine+#NewLineContent$ + "String Heap:"+#NewLine+"------------------------------"+#NewLineContent$ + HeapStats(StringHeap)+#NewLine+#NewLineContent$ + "MemoryBase Heap:"+#NewLine+"------------------------------"+#NewLineContent$ + HeapStats(MemoryBase)+#NewLine+#NewLineContent$ + "AllocateMemory Heap:"+#NewLine+"------------------------------"+#NewLineContent$ + HeapStats(MemoryHeap)+#NewLine+#NewLineDim AllHeaps.i(100)NumHeaps = GetProcessHeaps_(101, @AllHeaps())Unknown = 1For i = 0 To NumHeaps-1If AllHeaps(i) <> StringHeap And AllHeaps(i) <> MemoryBase And AllHeaps(i) <> MemoryHeap And AllHeaps(i) <> GetProcessHeap_()Content$ + "Unknown Heap #"+Str(Unknown)+#NewLine+"------------------------------"+#NewLineContent$ + HeapStats(AllHeaps(i))+#NewLine+#NewLineUnknown + 1EndIfNext iCompilerElseContent$ = "-- Windows ASM only --"CompilerEndIfEndSelectSetGadgetText(Debugging_Editor, Content$)EndIfElseIf EventID = #PB_Event_SizeWindoww = WindowWidth(#WINDOW_Debugging)h = WindowHeight(#WINDOW_Debugging)c = GetRequiredHeight(Debugging_Combo)ResizeGadget(Debugging_Combo, 10, 10, w-180, c)ResizeGadget(Debugging_Display, w-160, 10, 150, c)ResizeGadget(Debugging_Editor, 10, c+20, w-20, h-c-30)ElseIf EventID = #PB_Event_CloseWindowCloseWindow(#WINDOW_Debugging)EndIfEndProcedureProcedure OpenDebuggingWindow()If IsWindow(#WINDOW_Debugging)SetWindowforeground(#WINDOW_Debugging)ElseIf OpenWindow(#WINDOW_Debugging, 0, 0, 600, 400, #ProductName$ + " - IDE Debugging", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_Invisible)Debugging_Combo = ComboBoxGadget(#PB_Any, 0, 0, 0, 0)Debugging_Display = ButtonGadget(#PB_Any, 0, 0, 0, 0, "Display")Debugging_Editor = EditorGadget(#PB_Any, 0, 0, 0, 0, #PB_Editor_ReadOnly)AddGadgetItem(Debugging_Combo, -1, "SourceToken Array")AddGadgetItem(Debugging_Combo, -1, "SourceToken Sorted Lists")AddGadgetItem(Debugging_Combo, -1, "SourceToken Sorted Issues")AddGadgetItem(Debugging_Combo, -1, "ProjectFiles SourceToken Sorted Lists")AddGadgetItem(Debugging_Combo, -1, "DialogManager - Compiler Options")AddGadgetItem(Debugging_Combo, -1, "DialogManager - Preferences")AddGadgetItem(Debugging_Combo, -1, "DialogManager - Find")AddGadgetItem(Debugging_Combo, -1, "DialogManager - Grep")AddGadgetItem(Debugging_Combo, -1, "DialogManager - Config Tools")AddGadgetItem(Debugging_Combo, -1, "DialogManager - Edit Tool")AddGadgetItem(Debugging_Combo, -1, "DialogManager - Sort Sources")AddGadgetItem(Debugging_Combo, -1, "Memory Stats (Windows Only)")SetGadgetState(Debugging_Combo, 0)CompilerIf #CompileWindowsSetGadgetFont(Debugging_Editor, GetStockObject_(#ANSI_FIXED_FONT))CompilerEndIfDebuggingWindowEvents(#PB_Event_SizeWindow)HideWindow(#WINDOW_Debugging, 0)EndIfEndProcedureCompilerEndIf
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。