source: coopr.gui.coopr/trunk/coopr/gui/coopr/Styles.py @ 2135

Last change on this file since 2135 was 2135, checked in by wehart, 10 years ago

Adding Jython GUI components.

  • Property svn:executable set to *
File size: 951 bytes
Line 
1from pawt.swing.text import StyleContext, StyleConstants, TabSet, TabStop
2import string
3
4class Styles:
5        def __init__(self, context=None):
6                if context is None:
7                        context = StyleContext()
8                self.context = context
9                self.default = self.context.getStyle(StyleContext.DEFAULT_STYLE)
10
11        def add(self, name, parent=None, tabsize=None, **keywords):
12                if parent is None:
13                        parent = self.default
14                style = self.context.addStyle(name, parent)
15
16                for key, value in keywords.items():
17                        key = string.upper(key[0])+key[1:]
18                        meth = getattr(StyleConstants, "set"+key)
19                        meth(style, value)
20
21                if tabsize is not None:
22                        charWidth=StyleConstants.getFontSize(style)
23                        tabs = []
24                        for i in range(20):
25                                tabs.append(TabStop(i*tabsize*charWidth))
26                        StyleConstants.setTabSet(style, TabSet(tabs))
27                return style
28
29        def get(self, stylename):
30                return self.context.getStyle(stylename)
31
32        def __tojava__(self, c):
33                if isinstance(self.context, c):
34                        return self.context
Note: See TracBrowser for help on using the repository browser.