File: Styles.py

package info (click to toggle)
jython 2.5.3-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 43,304 kB
  • sloc: python: 351,314; java: 216,338; xml: 1,547; sh: 330; perl: 124; ansic: 102; makefile: 101
file content (34 lines) | stat: -rw-r--r-- 951 bytes parent folder | download | duplicates (10)
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
from pawt.swing.text import StyleContext, StyleConstants, TabSet, TabStop
import string

class Styles:
	def __init__(self, context=None):
		if context is None:
			context = StyleContext()
		self.context = context
		self.default = self.context.getStyle(StyleContext.DEFAULT_STYLE)

	def add(self, name, parent=None, tabsize=None, **keywords):
		if parent is None:
			parent = self.default
		style = self.context.addStyle(name, parent)

		for key, value in keywords.items():
			key = string.upper(key[0])+key[1:]
			meth = getattr(StyleConstants, "set"+key)
			meth(style, value)

		if tabsize is not None:
			charWidth=StyleConstants.getFontSize(style)
			tabs = []
			for i in range(20):
				tabs.append(TabStop(i*tabsize*charWidth))
			StyleConstants.setTabSet(style, TabSet(tabs))
		return style

	def get(self, stylename):
		return self.context.getStyle(stylename)

	def __tojava__(self, c):
		if isinstance(self.context, c):
			return self.context