Adaptation la taille de la fentre.

darcs-hash:20041002122516-d1718-c201f9ffa44ee08519fb1985724b2983564005ab.gz
This commit is contained in:
bernat 2004-10-02 14:25:16 +02:00
parent 0047e7f9a1
commit 8d3ca461b3
2 changed files with 30 additions and 5 deletions

View file

@ -82,6 +82,17 @@ def tableau(largeurs,data) :
[ ( données entète), (données ligne1), .... ]
"""
sep_col = u'|'
# Si l'une des largeurs est '*', alors on la met la plus grande possible
if '*' in largeurs:
rows, cols = get_size()
nlargeurs = []
for n in largeurs:
if n != '*':
nlargeurs.append(n)
else:
nlargeurs.append(max(cols - sum(filter(lambda x:x!='*',largeurs)) - len(largeurs) - 1, 3))
largeurs = nlargeurs
# Ligne de séparation entète corps
s=u'\n'
@ -109,6 +120,20 @@ def tableau(largeurs,data) :
f = f.replace(u'\n',s,1) # Insertion du séparateur entète - corps
return f[:-1] # Supression du \n final
def get_size():
"""Retourne la taille de l'écran.
Sous la forme d'un tuble (colonnes, lignes)"""
try:
from termios import TIOCGWINSZ
from struct import pack, unpack
from fcntl import ioctl
s = pack("HHHH", 0, 0, 0, 0)
rows, cols = unpack("HHHH", ioctl(sys.stdout.fileno(), TIOCGWINSZ, s))[:2]
return (rows, cols)
except:
return (80, 24)
def prompt(prompt, defaut=''):
""" Pose la question prompt, retourne la réponse """
sys.stdout.write(coul(prompt,'gras'))