# Copyright (c) 2006 Ralph Carrie <cralph@semsek2.ham.nw.schule.de>
# Teilweise wurde Code von Dr. L. Humbert, I. Linkweiler und C. Krick verwendet
# Stifte und Maeuse S60: Bildschirm
# Version: 1.0
# Datum: 15.05.2006

# Importiere benutzte Module.
import appuifw
from graphics import *
import e32

################################################
# Bildschirm
################################################

class Bildschirm:
	img = Image
	bildLeinwand = appuifw.Canvas
	def __init__(self):
		self.hintergrundfarbe=0x000000
		self.lock = e32.Ao_lock()
		appuifw.app.title=u'Stifte und Maeuse'
		appuifw.app.screen='normal'
		self.bildLeinwand=appuifw.Canvas(event_callback =self.showtime, redraw_callback = None)
		appuifw.app.body=self.bildLeinwand
		self.bildschirmgroesse=self.bildLeinwand.size
		self.img = Image.new((self.bildschirmgroesse[0], self.bildschirmgroesse[1]))
		self.img.clear(self.hintergrundfarbe)
		self.showtime(())
	# Methoden zum Anzeigen der grafischen Elemente
	def showtime(self, rect):
		self.bildLeinwand.blit(self.img)
	def getImage(self):
		return self.img
	# Get- und Set- Methoden
	def breite(self):
		return self.bildschirmgroesse[0]
	def hoehe(self):
		return self.bildschirmgroesse[1]
	def getFarbe(self):
		return self.hintergrundfarbe
	# Methode zum Bildschirmloeschen
	def loescheAlles(self):
		self.img.clear(self.hintergrundfarbe)
		self.showtime(())
		e32.ao_sleep(1)
	# Methode zum Setzen der Hintergrundfarbe
	def setzeHintergrundFarbe(self,farbcode):
		self.img.clear(farbcode)
		self.hintergrundfarbe=farbcode
		self.showtime(())
	# Methoden zum Darstellen von Elementen.
	def stelleRechteckDar(self, p1, p2, p3, p4, farbe, breite):
		self.img.rectangle((p1,p2,p3,p4),farbe, width=breite)
		self.showtime(())
		e32.ao_sleep(1)
	def stelleLinieDar(self, p1, p2, p3, p4, farbe, breite):
		self.img.line((p1,p2,p3,p4),farbe,width=breite)
		self.showtime(())
	def schreibeText(self,xpos,ypos,farbcode,txt):
		self.img.text((xpos,ypos),unicode(txt),farbcode)
		self.showtime(())
	def stelleKreisDar(self, xpos,ypos,rad, farbcode,breite):
		self.img.ellipse((xpos,ypos,xpos+rad,ypos+rad),farbcode,width=breite)
		self.showtime(())



