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

# Importiere benutzte Module
from bildschirm import *

#Grundlegende Farben werden definiert.
weiss = 0xFFFFFF
schwarz = 0x000000

###################################
# Stift
###################################

class Stift:
	
	zstiftx = 0
	zstifty = 0
	zhoch = 1
	zschreibmodus = 0
	farbe = weiss
	
	def __init__(self, Bilds):
		self.meinBildschirm = Bilds
		if Bilds==None:
			print "Es ist kein Bildschirm verfuegbar"
		self.setzeStandard()
		
	# Methode zum Zeichnen einer Linie von (x1, y1) bis (x2, y2)
	def zeichneLinie(self, x1, y1, x2, y2):
		self.meinBildschirm.stelleLinieDar(x1, y1, x2, y2,self.farbe,1)
	# Methode zum Zuruecksetzen
	def setzeStandard(self):
		self.zstiftx=0
		self.zstifty=0
		self.zhoch=1
		self.zschreibmodus = 0
		self.farbe=weiss
	# Bewegen des Stiftes ueber den Bildschirm.
	# Wenn der Stift unten ist wird eine Linie gezeichnet.
	def bewegeBis(self,px,py):
		if not self.zhoch:
			self.meinBildschirm.stelleLinieDar(px, py, self.zstiftx, self.zstifty, self.farbe,1)
		self.zstiftx = px
		self.zstifty = py
	
	# Die Stiftspitze kann hoch oder runter gesetzt werden.
	def runter(self):
		self.zhoch = 0
	
	def hoch(self):
		self.zhoch = 1		
	
	# Zur Anzeige von Text.
	def schreibe(self, ps):
		ps = str(ps)
		self.meinBildschirm.schreibeText(self.zstiftx, self.zstifty, self.farbe,ps)
	
	# Normalmodus
	def normal(self):
		self.zschreibmodus=0
		self.farbe = weiss
	
	# Radiermodus (Farbe wird zur Hintergrundfarbe)
	def radiere(self):
		self.zschreibmodus=1
		self.farbe = self.meinBildschirm.getFarbe()
	
	# Zum Zeichnen von Rechtecken
	def zeichneRechteck(self, pHoehe, pBreite):
		self.meinBildschirm.stelleRechteckDar(self.zstiftx, self.zstifty, self.zstiftx + pBreite, self.zstifty + pHoehe, self.farbe,1)
	
	# Zum Zeichnen von Kreisen
	def zeichneKreis(self, pRadius):
		self.meinBildschirm.stelleKreisDar(self.zstiftx, self.zstifty, pRadius, self.farbe,1)
	
	# Get- und Set- Methoden
	def hPos(self):
		return self.zstiftx
	
	def vPos(self):
		return self.zstifty
	

