feat(qmkasciigen): support add binding tiny
parent
0b4de29e5f
commit
c5c00fd2fc
|
@ -86,6 +86,13 @@ var mapTransform = []map[string]string{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only use this as last resort
|
||||||
|
var mapBindingTiny = []map[string]string{
|
||||||
|
{
|
||||||
|
"BACKSPACE": "BACK",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
type DrawConfig struct {
|
type DrawConfig struct {
|
||||||
PrintLayout bool
|
PrintLayout bool
|
||||||
PrintLayer bool
|
PrintLayer bool
|
||||||
|
@ -189,6 +196,22 @@ func Draw(
|
||||||
padding = 1
|
padding = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(keyStr)+2*padding > key.NewW {
|
||||||
|
// Make it smaller
|
||||||
|
for _, m := range mapBindingTiny {
|
||||||
|
if _, ok := m[keyStr]; ok {
|
||||||
|
keyStr = m[keyStr]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Re calc padding
|
||||||
|
padding = (key.NewW-len(keyStr))/2 - 1
|
||||||
|
if padding <= 0 {
|
||||||
|
padding = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Draw strategy
|
// Draw strategy
|
||||||
// Draw 4 + in corner
|
// Draw 4 + in corner
|
||||||
// Draw - on top and bottom
|
// Draw - on top and bottom
|
||||||
|
@ -197,13 +220,16 @@ func Draw(
|
||||||
for j := key.NewX; j <= key.NewX+key.NewW; j++ {
|
for j := key.NewX; j <= key.NewX+key.NewW; j++ {
|
||||||
if i == key.NewY || i == key.NewY+key.NewH {
|
if i == key.NewY || i == key.NewY+key.NewH {
|
||||||
if j == key.NewX || j == key.NewX+key.NewW {
|
if j == key.NewX || j == key.NewX+key.NewW {
|
||||||
|
// Draw corner
|
||||||
table[i][j] = "+"
|
table[i][j] = "+"
|
||||||
} else if table[i][j] != "+" {
|
} else if table[i][j] != "+" {
|
||||||
|
// Draw top/bottom
|
||||||
table[i][j] = "-"
|
table[i][j] = "-"
|
||||||
}
|
}
|
||||||
} else if i == key.NewY+key.NewH/2 {
|
} else if i == key.NewY+key.NewH/2 {
|
||||||
// Write key in the middle
|
// Write key in the middle
|
||||||
if j == key.NewX || j == key.NewX+key.NewW {
|
if j == key.NewX || j == key.NewX+key.NewW {
|
||||||
|
// Draw left/right
|
||||||
table[i][j] = "|"
|
table[i][j] = "|"
|
||||||
} else if len(keyStr) > 0 && j > key.NewX+padding && j < key.NewX+len(keyStr)+padding+1 && j <= key.NewX+key.NewW-padding {
|
} else if len(keyStr) > 0 && j > key.NewX+padding && j < key.NewX+len(keyStr)+padding+1 && j <= key.NewX+key.NewW-padding {
|
||||||
// Only handle ASCII keyStr
|
// Only handle ASCII keyStr
|
||||||
|
|
Loading…
Reference in New Issue