Skip to content

Commit 052330c

Browse files
committed
Update tile library version
1 parent 6e23211 commit 052330c

File tree

8 files changed

+44
-19
lines changed

8 files changed

+44
-19
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.23.3
44

55
require (
66
github.com/codeation/impress v0.5.1
7-
github.com/codeation/tile v0.1.4
7+
github.com/codeation/tile v0.1.5
88
)
99

1010
require github.com/codeation/lru v1.3.0 // indirect

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ github.com/codeation/impress v0.5.1 h1:gZ+lgfB0n184njpaBp7/w5rq7fEJKu5bKH8kmGFCw
22
github.com/codeation/impress v0.5.1/go.mod h1:N1e3oKqfkN4c2tfobkZTIpsklzdRby4OaJrOYQutKXc=
33
github.com/codeation/lru v1.3.0 h1:BZlD5G4bt0bis9FHV5q3zyyDCAx21ue2CvvM1T8hQl4=
44
github.com/codeation/lru v1.3.0/go.mod h1:1C9+zUoRETpelIbMxh6wj9APf2VnKh0tk9aRsrOQUsk=
5-
github.com/codeation/tile v0.1.4 h1:BZcYNjc28q7vqCte1rW8dF88XbJUF8yqXNzVSj7GXuk=
6-
github.com/codeation/tile v0.1.4/go.mod h1:b1jBEAaEvDPHyzRxbc/zSnT7id6LMnFW4U0A95OpjeQ=
5+
github.com/codeation/tile v0.1.5 h1:5RT5lE030Vay2bp3VB8X1NURpaJLZDE1ZisK8oB6otU=
6+
github.com/codeation/tile v0.1.5/go.mod h1:b1jBEAaEvDPHyzRxbc/zSnT7id6LMnFW4U0A95OpjeQ=

mapcontrol/control.go

+9
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ var keypadEnter = event.Keyboard{
2323
Name: "KP_Enter",
2424
}
2525

26+
var keyShiftEnter = event.Keyboard{
27+
Rune: 13,
28+
Shift: true,
29+
Name: "Return",
30+
}
31+
2632
type Control struct {
2733
mapModel *mapmodel.MindMap
2834
mapView *mapview.View
@@ -101,6 +107,9 @@ func (c *Control) Action(ctx context.Context, app eventlink.App) {
101107
c.mapModel.Backspace()
102108
c.modView.Set(true)
103109
}
110+
case keyShiftEnter:
111+
c.mapModel.InsertNL()
112+
c.modView.Set(true)
104113

105114
case event.KeyCopy, menuevent.Copy:
106115
c.appClip.Put(c.mapModel.Selected.Value.String())

mapmodel/model.go

+12
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ type MindMap struct {
1212

1313
func New(source *xmlfile.Node, filename string) *MindMap {
1414
root := newXMLNode(source, nil)
15+
root.Value.End()
1516
return &MindMap{
1617
Root: root,
1718
Selected: root,
@@ -24,6 +25,7 @@ func (m *MindMap) Export() *xmlfile.Node {
2425
}
2526

2627
func (m *MindMap) Select(node *Node) {
28+
m.Selected.Value.Home()
2729
m.Selected = node
2830
m.Selected.Value.End()
2931
}
@@ -34,39 +36,45 @@ func (m *MindMap) Every(fn func(node *Node)) {
3436

3537
func (m *MindMap) Down() {
3638
if node := m.Selected.down(); node != nil {
39+
m.Selected.Value.Home()
3740
m.Selected = node
3841
m.Selected.Value.End()
3942
}
4043
}
4144

4245
func (m *MindMap) Up() {
4346
if node := m.Selected.up(); node != nil {
47+
m.Selected.Value.Home()
4448
m.Selected = node
4549
m.Selected.Value.End()
4650
}
4751
}
4852

4953
func (m *MindMap) NewChildNode() {
54+
m.Selected.Value.Home()
5055
m.Selected = m.Selected.newChild()
5156
}
5257

5358
func (m *MindMap) NewNextNode() {
5459
if m.Selected == m.Root {
5560
return
5661
}
62+
m.Selected.Value.Home()
5763
m.Selected = m.Selected.newNext()
5864
}
5965

6066
func (m *MindMap) DeleteNode() {
6167
if m.Selected == m.Root {
6268
return
6369
}
70+
m.Selected.Value.Home()
6471
m.Selected = m.Selected.remove()
6572
m.Selected.Value.End()
6673
}
6774

6875
func (m *MindMap) Adopt(node *Node, newParent *Node, beforeNode *Node) {
6976
newParent.insertBefore(node, beforeNode)
77+
m.Selected.Value.Home()
7078
m.Selected = node
7179
m.Selected.Value.End()
7280
}
@@ -83,6 +91,10 @@ func (m *MindMap) Insert(alpha rune) {
8391
m.Selected.Value.Insert(alpha)
8492
}
8593

94+
func (m *MindMap) InsertNL() {
95+
m.Selected.Value.InsertNL()
96+
}
97+
8698
func (m *MindMap) Backspace() {
8799
m.Selected.Value.Backspace()
88100
}

mapmodel/node.go

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ func newXMLNode(elem *xmlfile.Node, parent *Node) *Node {
2020
Parent: parent,
2121
Childs: make([]*Node, 0, len(elem.Childs)),
2222
}
23+
node.Value.Home()
2324
if len(elem.Childs) == 0 {
2425
return node
2526
}

mapview/nodeview.go

+7-10
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"github.com/codeation/tile/view/fn"
1212
"github.com/codeation/tile/view/margin"
1313
"github.com/codeation/tile/view/minsize"
14-
"github.com/codeation/tile/view/textview"
1514

1615
"github.com/codeation/lineation/mapmodel"
1716
"github.com/codeation/lineation/palette"
@@ -45,15 +44,13 @@ func (v *View) nodeViewer(node *mapmodel.Node) view.Viewer {
4544
return image.Pt(v.pal.BoxWidth(node.Level())-v.pal.TextAlign().X*2, 0)
4645
}
4746
var viewer view.Viewer
48-
viewer = textview.New(
49-
fieldview.WithFocused(node.Value, isChangeableFn),
50-
v.pal.DefaultFont(),
51-
v.pal.DefaultFont().Height+v.pal.TextLineOffset(),
52-
defaultTextColor,
53-
cursor,
54-
)
55-
viewer = minsize.New(viewer, nodeSizeFn)
56-
viewer = margin.New(viewer, textMargin)
47+
viewer = fieldview.New(fieldview.WithFocused(node.Value, isChangeableFn),
48+
v.pal.DefaultFont(), defaultTextColor).
49+
LineHeight(v.pal.DefaultFont().Height + v.pal.TextLineOffset()).
50+
WithCursor(cursor).
51+
MaxRows(v.pal.MaxRows())
52+
viewer = minsize.New(viewer).MinSize(nodeSizeFn)
53+
viewer = margin.New(viewer).Margin(textMargin)
5754
viewer = box.New(
5855
viewer,
5956
fn.If(isSelectedFn, activeForegroundColor, defaultForegroundColor),

palette/config.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ type configWindow struct {
1616
}
1717

1818
type configBoxes struct {
19-
Align configSize `json:"align"`
20-
Offset configSize `json:"offset"`
21-
Widths []int `json:"widths"`
19+
Align configSize `json:"align"`
20+
Offset configSize `json:"offset"`
21+
Widths []int `json:"widths"`
22+
MaxRows int `json:"max_rows"`
2223
}
2324

2425
type configDialogs struct {
@@ -57,9 +58,10 @@ func defaultConfig() *Config {
5758
Size: configSize{Width: 1280, Height: 768},
5859
},
5960
Boxes: configBoxes{
60-
Align: configSize{Width: 20, Height: 16},
61-
Offset: configSize{Width: 50, Height: 16},
62-
Widths: []int{100, 140, 300},
61+
Align: configSize{Width: 20, Height: 16},
62+
Offset: configSize{Width: 50, Height: 16},
63+
Widths: []int{100, 140, 300},
64+
MaxRows: 0,
6365
},
6466
Dialogs: configDialogs{
6567
Align: configSize{Width: 20, Height: 16},

palette/palette.go

+4
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ func (p *Palette) Columns() int {
8888
return len(p.config.Boxes.Widths)
8989
}
9090

91+
func (p *Palette) MaxRows() int {
92+
return p.config.Boxes.MaxRows
93+
}
94+
9195
func (p *Palette) BoxWidth(level int) int {
9296
if level <= len(p.config.Boxes.Widths) {
9397
return p.config.Boxes.Widths[level-1]

0 commit comments

Comments
 (0)