home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.6)
-
- import contextlib
- import ctypes
- from ctypes import byref
- from ctypes.wintypes import SHORT, WORD
- STD_INPUT_HANDLE = -10
- STD_OUTPUT_HANDLE = -11
- STD_ERROR_HANDLE = -12
- FOREGROUND_BLUE = 1
- FOREGROUND_GREEN = 2
- FOREGROUND_RED = 4
- FOREGROUND_INTENSITY = 8
- BACKGROUND_BLUE = 16
- BACKGROUND_GREEN = 32
- BACKGROUND_RED = 64
- BACKGROUND_INTENSITY = 128
- kernel32 = ctypes.windll.kernel32
- SetConsoleTextAttribute = kernel32.SetConsoleTextAttribute
- GetConsoleScreenBufferInfo = kernel32.GetConsoleScreenBufferInfo
- std_out_handle = kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
-
- class COORD(ctypes.Structure):
- _fields_ = [
- ('X', SHORT),
- ('Y', SHORT)]
-
-
- class SMALL_RECT(ctypes.Structure):
- _fields_ = [
- ('Left', SHORT),
- ('Top', SHORT),
- ('Right', SHORT),
- ('Bottom', SHORT)]
-
-
- class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
- _fields_ = [
- ('dwSize', COORD),
- ('dwCursorPosition', COORD),
- ('wAttributes', WORD),
- ('srWindow', SMALL_RECT),
- ('dwMaximumWindowSize', COORD)]
-
- screen_info = CONSOLE_SCREEN_BUFFER_INFO()
-
- def set_color(color, handle = std_out_handle):
- return SetConsoleTextAttribute(handle, color)
-
- colormap = dict(grey = 8, white = 7, red = FOREGROUND_RED, green = FOREGROUND_GREEN, blue = FOREGROUND_BLUE, yellow = FOREGROUND_RED | FOREGROUND_GREEN, bold = FOREGROUND_INTENSITY)
-
- def color(color):
- color_int = 0
- for c in color.split():
- color_int |= colormap.get(c)
-
- GetConsoleScreenBufferInfo(std_out_handle, byref(screen_info))
- set_color(color_int)
-
- try:
- yield None
- finally:
- set_color(screen_info.wAttributes)
-
-
- color = contextlib.contextmanager(color)
-
- def main():
- color('bold red').__enter__()
-
- try:
- print 'red'
- finally:
- pass
-
- color('grey').__enter__()
-
- try:
- print 'grey'
- finally:
- pass
-
- color('white').__enter__()
-
- try:
- print 'white'
- finally:
- pass
-
- print 'normal'
-
- if __name__ == '__main__':
- main()
-
-