Source code for campy.io.console

"""
File: console.py
----------------
This file redirects the <code>cin</code>, <code>cout</code>,
and <code>cerr</code> channels to use a console window.  This file
must be included in the source file that contains the <code>main</code>
method, although it may be included in other source files as well.
"""

import campy.private.platform as _platform
import enum as _enum

# Set this to True for autograding to avoid the startup of loading a graphical window.
__DONT_ENABLE_GRAPHICAL_CONSOLE = False

[docs]class Console: def __init__(self): self.console_clear_enabled = False self.console_echo = False self.console_event_on_close = False self.console_exit_program_on_close = False self.console_location_saved = False self.console_locked = False self.console_close_operation = ConsoleCloseOperation.CONSOLE_HIDE_ON_CLOSE
[docs] def clear_console(self): msg = "==================== (console cleared) ====================" if self.console_clear_enabled: print(msg) _platform.getPlatform().jbeconsole_clear() else: print(msg)
@property def console_print_exceptions(self): pass
# @console_close_operation.setter # def console_close_operation(self, op): # if self.console_locked: return # self.console_close_operation = op # print('TODO: jbeconsole_setCloseOperation') # #_platform.getPlatform().jbeconsole_setCloseOperation(op) # self.console_exit_program_on_close = op == ConsoleCloseOperation.CONSOLE_EXIT_ON_CLOSE # @console_echo.setter # def console_echo(self, echo): # if self.console_locked: return # self.console_echo = echo # @console_error_color.setter # def console_error_color(self, color): # TODO: annotate color w/ str # if self.console_locked: return # self.console_error_color = color # print('TODO: jbeconsole_setConsoleColor') # @console_event_on_close.setter # def console_event_on_close(self, event_on_close): # if self.console_locked: return # self.console_event_on_close = event_on_close
[docs]class ConsoleCloseOperation(_enum.IntEnum): CONSOLE_DO_NOTHING_ON_CLOSE = 0 CONSOLE_HIDE_ON_CLOSE = 1 CONSOLE_DISPOSE_ON_CLOSE = 2 CONSOLE_EXIT_ON_CLOSE = 3
# TODO: redirect stuff _inst = Console()