annotate engine/extensions/pychan/widgets/common.py @ 302:94470d79576f

* Small fix to make scons work in a fakeroot environment on ArchLinux. If this causes breakage please contact me.
author nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
date Fri, 10 Jul 2009 11:08:32 +0000
parents ea85ddce2b36
children 33dd55160a9d
rev   line source
248
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
1 # -*- coding: utf-8 -*-
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
2
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
3 import fife
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
4 import pychan.tools as tools
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
5 import pychan.events as events
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
6 from pychan.exceptions import *
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
7 from pychan.attrs import Attr,UnicodeAttr, PointAttr,ColorAttr,BoolAttr,IntAttr,FloatAttr
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
8 from pychan.properties import ColorProperty
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
9
249
1cc51d145af9 Further split up the containers.py; bugfix.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 248
diff changeset
10 AlignTop, AlignBottom, AlignLeft, AlignRight, AlignCenter = range(5)
248
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
11
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
12 def get_manager():
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
13 import pychan
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
14 return pychan.manager
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
15
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
16 def text2gui(text):
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
17 """
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
18 This function is applied to all text set on widgets.
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
19 It replaces tabs by four spaces.
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
20 It assumes the text to be a unicode object.
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
21 """
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
22 if not isinstance(text,unicode):
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
23 print "Widget text needs to be set from an unicode object. Got: '%s'" % repr(text)
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
24 text = unicode(text,"utf8")
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
25 return text.encode("utf8",*get_manager().unicodePolicy).replace("\t"," "*4).replace("[br]","\n")
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
26
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
27 def gui2text(text):
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
28 """
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
29 This function is applied to all text get from widgets.
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
30 Translates the encoded string into a unicode object.
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
31 """
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
32 return unicode(text,"utf8",*get_manager().unicodePolicy)
264
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
33
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
34 def gui2str(text):
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
35 """
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
36 This function returns an 8-bit representation of the
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
37 unicode string. This is useful for passing strings
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
38 to SWIG functions.
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
39 """
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
40 try:
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
41 return text.__str__()
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
42 except:
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
43 # String contains non-ascii characters
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
44 return text.encode("utf-8")
ea85ddce2b36 * Fixed a bug where resizing a listbox with non-ascii characters would give errors
cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 249
diff changeset
45
248
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
46
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
47 def isLayouted(widget):
249
1cc51d145af9 Further split up the containers.py; bugfix.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 248
diff changeset
48 from layout import LayoutBase
248
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
49 return isinstance(widget,LayoutBase)
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
50
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
51 class DummyImage(object):
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
52 def getWidth(self): return 0
a2d5e2721489 widgets.py split up.
phoku@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
53 def getHeight(self): return 0