; --------------------------------------------------------------------------------------------; 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.; --------------------------------------------------------------------------------------------; update the enabled / disabled states for; all windows of this debugger according to the ProgramState value;Procedure Debugger_UpdateWindowStates(*Debugger.DebuggerData)For i = 0 To #DEBUGGER_WINDOW_LAST-1If *Debugger\Windows[i]Select i; debug output window doesn't need updating when program states change.Case #DEBUGGER_WINDOW_AsmUpdateAsmWindowState(*Debugger)Case #DEBUGGER_WINDOW_MemoryUpdateMemoryViewerWindowState(*Debugger)Case #DEBUGGER_WINDOW_VariableUpdateVariableWindowState(*Debugger)Case #DEBUGGER_WINDOW_HistoryUpdateHistoryWindowState(*Debugger)Case #DEBUGGER_WINDOW_WatchListUpdateWatchListWindowState(*Debugger)Case #DEBUGGER_WINDOW_LibraryUpdateLibraryViewerState(*Debugger)Case #DEBUGGER_WINDOW_ProfilerUpdateProfilerWindowState(*Debugger)Case #DEBUGGER_WINDOW_DataBreakpointsUpdateDataBreakpointWindowState(*Debugger)Case #DEBUGGER_WINDOW_PurifierUpdatePurifierWindowState(*Debugger)EndSelectEndIfNext iEndProcedure; update the language for all open debugger windows;Procedure Debugger_UpdateWindowPreferences()ForEach RunningDebuggers()If RunningDebuggers()\Windows[#DEBUGGER_WINDOW_Debug]UpdateDebugWindow(@RunningDebuggers())EndIfIf RunningDebuggers()\Windows[#DEBUGGER_WINDOW_Asm]UpdateAsmWindow(@RunningDebuggers())EndIfIf RunningDebuggers()\Windows[#DEBUGGER_WINDOW_Memory]UpdateMemoryViewerWindow(@RunningDebuggers())EndIfIf RunningDebuggers()\Windows[#DEBUGGER_WINDOW_Variable]UpdateVariableWindow(@RunningDebuggers())EndIfIf RunningDebuggers()\Windows[#DEBUGGER_WINDOW_History]UpdateHistoryWindow(@RunningDebuggers())EndIfIf RunningDebuggers()\Windows[#DEBUGGER_WINDOW_Library]UpdateLibraryViewer(@RunningDebuggers())EndIfIf RunningDebuggers()\Windows[#DEBUGGER_WINDOW_Profiler]UpdateProfilerWindow(@RunningDebuggers())EndIfIf RunningDebuggers()\Windows[#DEBUGGER_WINDOW_Purifier]UpdatePurifierWindow(@RunningDebuggers())EndIfCompilerIf Not #SpiderBasicUpdateWatchListWindow(@RunningDebuggers()) ; this is always openUpdateDataBreakpointWindow(@RunningDebuggers()) ; also always openCompilerEndIf; update the stay on top setting;CompilerIf #DEFAULT_CanWindowStayOnTopFor i = 0 To #DEBUGGER_WINDOW_LAST-1If RunningDebuggers()\Windows[i] <> 0SetWindowStayOnTop(RunningDebuggers()\Windows[i], DebuggerOnTop)EndIfNext iCompilerEndIfNext RunningDebuggers()EndProcedure; checks if an event is coming from a debugger window and dispatches it; to the right procedure; returns 1 if it was a debugger event and 0 if not;Procedure Debugger_ProcessEvents(EventWindowID, EventID)Processed = 0; save and restore this, as this procedure might be called from; a "ForEach RunningDebuggers()" itself!;Index = ListIndex(RunningDebuggers())ForEach RunningDebuggers()For i = 0 To #DEBUGGER_WINDOW_LAST-1If RunningDebuggers()\Windows[i] = EventWindowIDProcessed = 1If EventID = #PB_Event_ActivateWindow ; process this for all windows; Debug "activated!"If DebuggerBringToTop And DebuggerOnTop = 0; bring all windows of this debugger to the topIf DebuggerMainWindow ; start with the main window (if there is one)SetWindowForeground_NoActivate(DebuggerMainWindow)EndIfFor x = 0 To #DEBUGGER_WINDOW_LAST-1If x <> i And RunningDebuggers()\Windows[x] <> 0; handle the special cases (existing, but hidden windowsIf (x <> #DEBUGGER_WINDOW_Debug Or RunningDebuggers()\IsDebugOutputVisible) And (x <> #DEBUGGER_WINDOW_Watchlist Or RunningDebuggers()\IsWatchlistVisible)SetWindowForeground_NoActivate(RunningDebuggers()\Windows[x])EndIfEndIfNext x; make sure this one stays on the frontSetWindowForeground_NoActivate(RunningDebuggers()\Windows[i])EndIfEndIf; dispatch the event to the right procedure;Select iCase #DEBUGGER_WINDOW_DebugDebugWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_AsmAsmWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_MemoryMemoryViewerWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_VariableVariableWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_HistoryHistoryWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_WatchListWatchListWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_LibraryLibraryViewerEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_ProfilerProfilerWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_DataBreakpointsDataBreakpointWindowEvents(@RunningDebuggers(), EventID)Case #DEBUGGER_WINDOW_PurifierPurifierWindowEvents(@RunningDebuggers(), EventID)Default ; unknown !?Processed = 0EndSelectBreak 2EndIfNext iNext RunningDebuggers()If Index = -1ResetList(RunningDebuggers())ElseSelectElement(RunningDebuggers(), Index)EndIfProcedureReturn ProcessedEndProcedure
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。