summaryrefslogtreecommitdiffstats
path: root/Lib/stdwin/TextEdit.py
blob: f70fba16a88622f3b66c5ecdc0dda9024c079bfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Text editing widget

from stdwinevents import *

class TextEdit():
	#
	def create(self, (parent, (cols, rows))):
		parent.addchild(self)
		self.parent = parent
		self.cols = cols
		self.rows = rows
		self.text = ''
		# Creation of the editor is done in realize()
		self.editor = 0
		return self
	#
	def settext(self, text):
		self.editor.settext(text)
	#
	# Downcalls from parent to child
	#
	def destroy(self):
		del self.parent
		del self.editor
		del self.window
	#
	def minsize(self, m):
		return self.cols*m.textwidth('in')/2, self.rows*m.lineheight()
	def setbounds(self, bounds):
		self.bounds = bounds
		if self.editor:
			self.editor.move(bounds)
	def getbounds(self, bounds):
		if self.editor:
			return self.editor.getrect()
		else:
			return self.bounds
	def realize(self):
		self.window = self.parent.getwindow()
		self.editor = self.window.textcreate(self.bounds)
		self.editor.settext(self.text)
		self.parent.need_mouse(self)
		self.parent.need_keybd(self)
		self.parent.need_altdraw(self)
	def draw(self, (d, area)):
		pass
	def altdraw(self, area):
		self.editor.draw(area)
	#
	# Event downcalls
	#
	def mouse_down(self, detail):
		x = self.editor.event(WE_MOUSE_DOWN, self.window, detail)
	def mouse_move(self, detail):
		x = self.editor.event(WE_MOUSE_MOVE, self.window, detail)
	def mouse_up(self, detail):
		x = self.editor.event(WE_MOUSE_UP, self.window, detail)
	#
	def keybd(self, (type, detail)):
		x = self.editor.event(type, self.window, detail)
	#