Added X backend stub
This commit is contained in:
@@ -1,31 +1,25 @@
|
||||
package main
|
||||
|
||||
import "os"
|
||||
import "fmt"
|
||||
import "time"
|
||||
import "git.tebibyte.media/sashakoshka/stone"
|
||||
// import _ "git.tebibyte.media/sashakoshka/stone/backends/x"
|
||||
|
||||
func main () {
|
||||
application := stone.Application { }
|
||||
err := application.Run(run)
|
||||
application := &stone.Application { }
|
||||
channel, err := application.Run()
|
||||
if err != nil { panic(err) }
|
||||
}
|
||||
|
||||
func run (application *stone.Application) {
|
||||
|
||||
currentTime := time.Time { }
|
||||
frameDelay := time.Second / 2
|
||||
textBuffer := ""
|
||||
|
||||
|
||||
for {
|
||||
typed := application.Typed()
|
||||
textBuffer += typed
|
||||
|
||||
shouldRender :=
|
||||
application.Resized() ||
|
||||
time.Since(currentTime) > frameDelay ||
|
||||
len(typed) > 0
|
||||
|
||||
if shouldRender {
|
||||
event := <- channel
|
||||
switch event.(type) {
|
||||
case stone.EventQuit:
|
||||
os.Exit(0)
|
||||
|
||||
case stone.EventResize:
|
||||
currentTime = time.Now()
|
||||
|
||||
application.ResetDot()
|
||||
@@ -43,18 +37,54 @@ func run (application *stone.Application) {
|
||||
application.SetRune(5, 1, ':')
|
||||
application.SetRune(6, 1, rune(second / 10 + 48))
|
||||
application.SetRune(7, 1, rune(second % 10 + 48))
|
||||
|
||||
application.Dot.X = 0
|
||||
application.Dot.Y = 2
|
||||
fmt.Fprintln(application, textBuffer)
|
||||
|
||||
}
|
||||
|
||||
if application.Pressed(stone.MouseButtonLeft) {
|
||||
x, y := application.MousePosition()
|
||||
application.SetRune(x, y, '#')
|
||||
}
|
||||
|
||||
if !application.Await(frameDelay) { break }
|
||||
}
|
||||
}
|
||||
|
||||
// func run (application *stone.Application) {
|
||||
// currentTime := time.Time { }
|
||||
// frameDelay := time.Second / 2
|
||||
// textBuffer := ""
|
||||
//
|
||||
// for {
|
||||
// typed := application.Typed()
|
||||
// textBuffer += typed
|
||||
//
|
||||
// shouldRender :=
|
||||
// application.Resized() ||
|
||||
// time.Since(currentTime) > frameDelay ||
|
||||
// len(typed) > 0
|
||||
//
|
||||
// if shouldRender {
|
||||
// currentTime = time.Now()
|
||||
//
|
||||
// application.ResetDot()
|
||||
// fmt.Fprintln(application, "hellorld!")
|
||||
//
|
||||
// hour := currentTime.Hour()
|
||||
// minute := currentTime.Minute()
|
||||
// second := currentTime.Second()
|
||||
//
|
||||
// application.SetRune(0, 1, rune(hour / 10 + 48))
|
||||
// application.SetRune(1, 1, rune(hour % 10 + 48))
|
||||
// application.SetRune(2, 1, ':')
|
||||
// application.SetRune(3, 1, rune(minute / 10 + 48))
|
||||
// application.SetRune(4, 1, rune(minute % 10 + 48))
|
||||
// application.SetRune(5, 1, ':')
|
||||
// application.SetRune(6, 1, rune(second / 10 + 48))
|
||||
// application.SetRune(7, 1, rune(second % 10 + 48))
|
||||
//
|
||||
// application.Dot.X = 0
|
||||
// application.Dot.Y = 2
|
||||
// fmt.Fprintln(application, textBuffer)
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if application.Pressed(stone.MouseButtonLeft) {
|
||||
// x, y := application.MousePosition()
|
||||
// application.SetRune(x, y, '#')
|
||||
// }
|
||||
//
|
||||
// if !application.Await(frameDelay) { break }
|
||||
// }
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user