##// END OF EJS Templates
More work on componentizing everything....
More work on componentizing everything. I have also done some work on component: * componenets whose __init__ method fails are now unregistered. * Added a masquerade_as function to enable components to masquerade as one another. This is really a cheap and informal way of doing parts of an interface system.

File last commit:

r2052:321c2741
r2243:5b86c0c8
Show More
winconsole.py
46 lines | 1.4 KiB | text/x-python | PythonLexer
"""Set of functions to work with console on Windows.
"""
#*****************************************************************************
# Copyright (C) 2005 Alexander Belchenko <bialix@ukr.net>
#
# This file is placed in the public domain.
#
#*****************************************************************************
__author__ = 'Alexander Belchenko (e-mail: bialix AT ukr.net)'
__license__ = 'Public domain'
import struct
try:
import ctypes
except ImportError:
ctypes = None
def get_console_size(defaultx=80, defaulty=25):
""" Return size of current console.
This function try to determine actual size of current working
console window and return tuple (sizex, sizey) if success,
or default size (defaultx, defaulty) otherwise.
Dependencies: ctypes should be installed.
"""
if ctypes is None:
# no ctypes is found
return (defaultx, defaulty)
h = ctypes.windll.kernel32.GetStdHandle(-11)
csbi = ctypes.create_string_buffer(22)
res = ctypes.windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
if res:
(bufx, bufy, curx, cury, wattr,
left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh",
csbi.raw)
sizex = right - left + 1
sizey = bottom - top + 1
return (sizex, sizey)
else:
return (defaultx, defaulty)