"""
/*
* Header.py 1.0
* Implementa un mini lenguaje de bloques para crear
* cabeceras con fancyhdr
*
* Copyright (C) Manuel Gutierrez Algaba, 2000
*
* This program is free software; you can redistribute it and/or modif
y
* it under the terms of the GNU General Public License as published b
y
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
"""
class Bloque:
def __init__(self, y, x, inicio_y = 0, inicio_x = 0):
"""
y : altura
x : anchura
"""
self.y = y
self.x = x
self.inicio_y = inicio_y
self.inicio_x = inicio_x
self.lista_bloques=[]
self.caracteres_anyadidos = []
def genera_bloque(self):
print "\\psline{-}" + self.escribe_coordenadas(
(self.inicio_x, self.inicio_y),
(self.inicio_x, self.inicio_y + self.y),
(self.inicio_x+self.x, self.inicio_y+ self.y),
(self.inicio_x+self.x, self.inicio_y),
(self.inicio_x, self.inicio_y) )
self.genera_escritura()
for i in self.lista_bloques:
i.genera_bloque()
def escribe_coordenadas(self, *args):
dev = ""
for i in args:
dev = dev + str(i) + " "
return dev
def lado(self, alt, long):
if alt != "inf" and alt!= "sup" and alt!="cent":
raise "Mala 'altitud'"
if long != "izq" and long!= "der" and long!="cent":
raise "Mala 'longitud'"
t = Bloque(self.y, self.x, self.inicio_y, self.inicio_x)
if alt == "sup":
t.inicio_y = self.y
if alt == "cent":
t.inicio_y = self.y / 2
if long == "der":
t.inicio_x = self.x
if long == "cent":
t.inicio_x = self.x / 2
return t
def traslada_x(self, x ):
self.inicio_x = self.inicio_x + x
for i in self.lista_bloques:
i.traslada_x(x)
def traslada_y(self, y):
self.inicio_y = self.inicio_y + y
for i in self.lista_bloques:
i.traslada_y(y)
def escribe_hacia(self, pos_x, pos_y, escribir):
"""
pos = numero fraccionario
"""
if pos_x >= 1.0 or pos_x < 0:
raise "Pos_x debe ser fraccionario y positivo"
if pos_y >= 1.0 or pos_y < 0:
raise "Pos_y debe ser fraccionario y positivo"