Skip to content

Commit 542b14e

Browse files
committed
Implement word wrap and wider window tabs
1 parent db9193a commit 542b14e

File tree

3 files changed

+32
-5
lines changed

3 files changed

+32
-5
lines changed

content/editor/ui/tab_container/tab_container.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,13 @@
5050
overflow-y: hidden;
5151
}
5252
.tab {
53-
width: 66px;
53+
width: 75px;
5454
height: 20px;
5555
padding-left: 2px;
5656
background-image: url("content/textures/window_tab.png");
5757
image-rendering: pixelated;
5858
background-color: #1f1f1f;
59+
word-wrap: unset;
5960
}
6061
.tabsInner {
6162
width: 1000%;

src/engine/ui/label.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@ func (label *Label) renderText() {
213213
} else {
214214
maxWidth = label.MaxWidth()
215215
}
216+
} else {
217+
maxWidth = matrix.FloatMax
216218
}
217219
label.clearDrawings()
218220
label.entity.Transform.SetDirty()

src/engine/ui/markup/css/properties/css_word_wrap.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,37 @@ package properties
4040
import (
4141
"errors"
4242
"kaiju/engine"
43+
"kaiju/engine/ui"
4344
"kaiju/engine/ui/markup/css/rules"
4445
"kaiju/engine/ui/markup/document"
45-
"kaiju/engine/ui"
4646
)
4747

48-
func (p WordWrap) Process(panel *ui.Panel, elm *document.Element, values []rules.PropertyValue, host *engine.Host) error {
49-
problems := []error{errors.New("WordWrap not implemented")}
48+
func setChildTextWordWrap(elm *document.Element, wrap bool) {
49+
for _, c := range elm.Children {
50+
if c.IsText() {
51+
c.UI.ToLabel().SetWrap(wrap)
52+
} else {
53+
setChildTextWordWrap(c, wrap)
54+
}
55+
}
56+
}
5057

51-
return problems[0]
58+
func (p WordWrap) Process(panel *ui.Panel, elm *document.Element, values []rules.PropertyValue, host *engine.Host) error {
59+
if len(values) != 1 {
60+
return errors.New("WordWrap requires a single value")
61+
}
62+
switch values[0].Str {
63+
case "normal":
64+
setChildTextWordWrap(elm, true)
65+
case "unset":
66+
setChildTextWordWrap(elm, false)
67+
case "inherit":
68+
case "initial":
69+
case "break-word":
70+
// TODO: Implement word breaking in labels
71+
fallthrough
72+
default:
73+
return errors.New("WordWrap does not currently support " + values[0].Str)
74+
}
75+
return nil
5276
}

0 commit comments

Comments
 (0)