File: Styles.py

package info (click to toggle)
jython 2.7.3%2Brepack1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 62,820 kB
  • sloc: python: 641,384; java: 306,981; xml: 2,066; sh: 514; ansic: 126; makefile: 77
file content (35 lines) | stat: -rw-r--r-- 1,129 bytes parent folder | download | duplicates (2)
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
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