term_drawing.v: support arrows, 1, 2 and space
parent
862cae5b02
commit
a3404a38c6
|
@ -94,6 +94,7 @@ mut:
|
||||||
msg_hide_tick int
|
msg_hide_tick int
|
||||||
primary_color tui.Color = colors[1][6]
|
primary_color tui.Color = colors[1][6]
|
||||||
secondary_color tui.Color = colors[1][9]
|
secondary_color tui.Color = colors[1][9]
|
||||||
|
bg_color tui.Color = tui.Color{0, 0, 0}
|
||||||
color_index int
|
color_index int
|
||||||
drawing [][]tui.Color = [][]tui.Color{len: h, init: []tui.Color{len: w}}
|
drawing [][]tui.Color = [][]tui.Color{len: h, init: []tui.Color{len: w}}
|
||||||
size int = 1
|
size int = 1
|
||||||
|
@ -171,25 +172,40 @@ fn event(event &tui.Event, x voidptr) {
|
||||||
}
|
}
|
||||||
.key_down {
|
.key_down {
|
||||||
match event.code {
|
match event.code {
|
||||||
.j {
|
.f1, ._1 {
|
||||||
|
oevent := *event
|
||||||
|
nevent := { oevent | button: tui.MouseButton.primary, x: app.mouse_pos.x , y: app.mouse_pos.y }
|
||||||
|
app.paint(nevent)
|
||||||
|
}
|
||||||
|
.f2, ._2 {
|
||||||
|
oevent := *event
|
||||||
|
nevent := { oevent | button: tui.MouseButton.secondary, x: app.mouse_pos.x , y: app.mouse_pos.y }
|
||||||
|
app.paint(nevent)
|
||||||
|
}
|
||||||
|
.space {
|
||||||
|
oevent := *event
|
||||||
|
nevent := { oevent | button: tui.MouseButton.tertiary, x: app.mouse_pos.x , y: app.mouse_pos.y }
|
||||||
|
app.paint(nevent)
|
||||||
|
}
|
||||||
|
.j, .down {
|
||||||
if event.modifiers & tui.shift != 0 {
|
if event.modifiers & tui.shift != 0 {
|
||||||
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
||||||
}
|
}
|
||||||
app.mouse_pos.y++
|
app.mouse_pos.y++
|
||||||
}
|
}
|
||||||
.k {
|
.k, .up {
|
||||||
if event.modifiers & tui.shift != 0 {
|
if event.modifiers & tui.shift != 0 {
|
||||||
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
||||||
}
|
}
|
||||||
app.mouse_pos.y--
|
app.mouse_pos.y--
|
||||||
}
|
}
|
||||||
.h {
|
.h, .left {
|
||||||
if event.modifiers & tui.shift != 0 {
|
if event.modifiers & tui.shift != 0 {
|
||||||
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
||||||
}
|
}
|
||||||
app.mouse_pos.x -= 2
|
app.mouse_pos.x -= 2
|
||||||
}
|
}
|
||||||
.l {
|
.l, .right {
|
||||||
if event.modifiers & tui.shift != 0 {
|
if event.modifiers & tui.shift != 0 {
|
||||||
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
app.set_pixel((1 + app.mouse_pos.x) / 2, app.mouse_pos.y, app.primary_color)
|
||||||
}
|
}
|
||||||
|
@ -228,11 +244,7 @@ fn event(event &tui.Event, x voidptr) {
|
||||||
.c {
|
.c {
|
||||||
app.drawing = [][]tui.Color{len: h, init: []tui.Color{len: w}}
|
app.drawing = [][]tui.Color{len: h, init: []tui.Color{len: w}}
|
||||||
}
|
}
|
||||||
.q {
|
.q, .escape {
|
||||||
app.render(true)
|
|
||||||
exit(0)
|
|
||||||
}
|
|
||||||
.escape {
|
|
||||||
app.render(true)
|
app.render(true)
|
||||||
exit(0)
|
exit(0)
|
||||||
}
|
}
|
||||||
|
@ -269,7 +281,11 @@ fn (mut app App) set_pixel(x_ int, y_ int, c tui.Color) {
|
||||||
|
|
||||||
fn (mut app App) paint(event &tui.Event) {
|
fn (mut app App) paint(event &tui.Event) {
|
||||||
x_start, y_start := int(f32((event.x - 1) / 2) - app.size / 2 + 1), event.y - app.size / 2
|
x_start, y_start := int(f32((event.x - 1) / 2) - app.size / 2 + 1), event.y - app.size / 2
|
||||||
color := if event.button == .primary { app.primary_color } else { app.secondary_color }
|
color := match event.button {
|
||||||
|
.primary { app.primary_color }
|
||||||
|
.secondary { app.secondary_color }
|
||||||
|
else { app.bg_color }
|
||||||
|
}
|
||||||
for x in x_start .. x_start + app.size {
|
for x in x_start .. x_start + app.size {
|
||||||
for y in y_start .. y_start + app.size {
|
for y in y_start .. y_start + app.size {
|
||||||
app.set_pixel(x, y, color)
|
app.set_pixel(x, y, color)
|
||||||
|
|
|
@ -125,6 +125,7 @@ pub enum MouseButton {
|
||||||
unknown
|
unknown
|
||||||
primary
|
primary
|
||||||
secondary
|
secondary
|
||||||
|
tertiary
|
||||||
}
|
}
|
||||||
|
|
||||||
pub enum EventType {
|
pub enum EventType {
|
||||||
|
|
Loading…
Reference in New Issue