MonitorUI
Reason for this page: defining the intended behaviour of the monitor (g)ui to maintain consistency across ports and to prevent needless work :)
general
entering the monitor
- exit fullscreen mode if needed
- if monitor window is not visible, enable it
- transfer focus to the monitor window
leaving the monitor
- restore fullscreen mode, make emulation window visible
- transfer focus to the emulator window
keeping the monitor open
If console_log->console_can_stay_open (which is a constant) is 1, the respective console driver is capable of outputting text even when the monitor is not active (ie the emulation is running). This can be useful because eg trace/watch output shows up immediatly.
TODO: Since "keep open on exit" is not what everyone wants, a new resource KeepMonitorOpen should allow to toggle this behavior
close on exit
This is the default behavior, which is also (exclusively) used by most ports.
- exiting the monitor closes the monitor window, closing the monitor window exits the monitor respectively
keep open on exit
This is optional behavior which is only available on ports that support it (currently: win32, gtk, xaw). It should be enabled if both console_log->console_can_stay_open and KeepMonitorOpen are 1
- the monitor window stays open all the time, except for when the user closes the window.
- TODO: this creates the problem that the monitor window might be closed, although console_log->console_can_stay_open and KeepMonitorOpen are 1. This must be handled somehow by switching between buffered and non buffered mode at runtime.
- entering and exiting the monitor only transfers focus to/from the emulation window respectively