Skip to content

Commit 6654f9f

Browse files
authored
Add support for text element markup (#218)
1 parent 2d62442 commit 6654f9f

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

examples/screen.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,15 @@
2828
<!-- Screen -->
2929
<pc-entity name="screen">
3030
<pc-screen screen-space></pc-screen>
31-
<pc-entity name="text" position="0 20 0">
31+
<pc-entity name="text" position="0 40 0">
3232
<pc-element type="text" asset="arial" text="This is Arial"></pc-element>
3333
</pc-entity>
34-
<pc-entity name="text2" position="0 -20 0">
34+
<pc-entity name="text2" position="0 0 0">
3535
<pc-element type="text" asset="courier" text="This is Courier"></pc-element>
3636
</pc-entity>
37+
<pc-entity name="text3" position="0 -40 0">
38+
<pc-element type="text" asset="arial" enable-markup text='[color="#ff0000"]Red[/color] [color="#00ff00"]Green[/color] [color="#0088ff"]Blue[/color]'></pc-element>
39+
</pc-entity>
3740
</pc-entity>
3841
</pc-scene>
3942
</pc-app>

src/components/element-component.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ class ElementComponentElement extends ComponentElement {
2121

2222
private _color: Color = new Color(1, 1, 1, 1);
2323

24+
private _enableMarkup: boolean = false;
25+
2426
private _fontSize: number = 32;
2527

2628
private _lineHeight: number = 32;
@@ -49,6 +51,7 @@ class ElementComponentElement extends ComponentElement {
4951
anchor: this._anchor,
5052
autoWidth: this._autoWidth,
5153
color: this._color,
54+
enableMarkup: this._enableMarkup,
5255
fontAsset: AssetElement.get(this._asset)!.id,
5356
fontSize: this._fontSize,
5457
lineHeight: this._lineHeight,
@@ -145,6 +148,25 @@ class ElementComponentElement extends ComponentElement {
145148
return this._color;
146149
}
147150

151+
/**
152+
* Sets whether the element component should use markup.
153+
* @param value - Whether to enable markup.
154+
*/
155+
set enableMarkup(value: boolean) {
156+
this._enableMarkup = value;
157+
if (this.component) {
158+
this.component.enableMarkup = value;
159+
}
160+
}
161+
162+
/**
163+
* Gets whether the element component should use markup.
164+
* @returns Whether markup is enabled.
165+
*/
166+
get enableMarkup() {
167+
return this._enableMarkup;
168+
}
169+
148170
/**
149171
* Sets the font size of the element component.
150172
* @param value - The font size.
@@ -285,6 +307,7 @@ class ElementComponentElement extends ComponentElement {
285307
'asset',
286308
'auto-width',
287309
'color',
310+
'enable-markup',
288311
'font-size',
289312
'line-height',
290313
'pivot',
@@ -311,6 +334,9 @@ class ElementComponentElement extends ComponentElement {
311334
case 'color':
312335
this.color = parseColor(newValue);
313336
break;
337+
case 'enable-markup':
338+
this.enableMarkup = this.hasAttribute(name);
339+
break;
314340
case 'font-size':
315341
this.fontSize = Number(newValue);
316342
break;

0 commit comments

Comments
 (0)