-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathB_BlockText.py
92 lines (70 loc) · 2.71 KB
/
B_BlockText.py
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from DemoFramework import DemoFramework
from LUILabel import LUILabel
from LUIBlockText import LUIBlockText
from LUIScrollableRegion import LUIScrollableRegion
import random
f = DemoFramework()
f.prepare_demo("LUIBlockText")
# Constructor
f.add_constructor_parameter("text", "u'Label'")
f.add_constructor_parameter("shadow", "True")
f.add_constructor_parameter("font_size", "14")
f.add_constructor_parameter("font", "'label'")
# Functions
f.add_public_function("clear", [])
f.add_public_function("set_text", [("text", "string")])
f.add_public_function("set_wrap", [("wrap", "boolean")])
f.add_public_function("set_width", [("width", "integer")])
f.add_property("labels", "list")
# Events
f.construct_sourcecode("LUIBlockText")
text_container = LUIScrollableRegion(
parent=f.get_widget_node(),
width=340,
height=190,
padding=0,
)
#TODO: Support newline through charcode 10
#TODO: If space causes next line, dont print it
# Create a new label
label = LUIBlockText(parent=text_container, width=310)
# Paragraph with no line breaks
label.add(
text='''Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed malesuada sit amet erat non gravida. Pellentesque sit amet cursus risus Sed egestas, nulla in tempor cursus, ante felis cursus magna, nec vehicula nisi nulla eu nulla.''',
color=(0.9,0.9,.9),
wordwrap=True,
padding=5,
)
# Paragraph with some linebreaks
label.add(
text='''Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed malesuada sit amet erat non gravida.
Pellentesque sit amet cursus risus Sed egestas, nulla in tempor cursus, ante felis cursus magna, nec vehicula nisi nulla eu nulla.
Nulla sed pellentesque erat. Morbi facilisis at erat id auctor. Phasellus euismod facilisis sem, at molestie velit condimentum sit amet.
Nulla posuere rhoncus aliquam.''',
color=(0.9,0.9,.9),
wordwrap=True,
padding=5,
)
# Paragraph with no spaces or linebreaks
label.add(
text='''Loremipsumolorsitamet,consecteturadipiscingelit.Sedmalesuadasitameteratnongravida.PellentesquesitametcursusrisusSedegestas,nullaintemporcursus,antefeliscursusmagna,necvehiculanisinullaeunulla.''',
color=(0.9,0.9,.9),
wordwrap=True,
padding=5,
)
def setWidth(width):
label.set_width(width)
text_container.on_element_added()
def setWrap(wrap):
label.set_wrap(wrap)
text_container.on_element_added()
f.set_actions({
"Set Random Text": lambda: label.set_text(str(random.randint(100, 10000))),
"Set Random Color": lambda: label.set_color((random.random(), random.random(), random.random(), 1)),
"Clear": lambda: label.clear(),
"Smaller": lambda: setWidth(200),
"Larger": lambda: setWidth(310),
"Wrapping on": lambda: setWrap(True),
"Wrapping off": lambda: setWrap(False),
})
base.run()