glom.go raw
1 package main
2
3 import (
4 l "github.com/p9c/p9/pkg/gel/gio/layout"
5
6 "github.com/p9c/p9/pkg/qu"
7
8 "github.com/p9c/p9/cmd/misc/glom/pkg/pathtree"
9 "github.com/p9c/p9/pkg/gel"
10 "github.com/p9c/p9/pkg/interrupt"
11 )
12
13 type State struct {
14 *gel.Window
15 }
16
17 func NewState(quit qu.C) *State {
18 return &State{
19 Window: gel.NewWindowP9(quit),
20 }
21 }
22
23 func main() {
24 quit := qu.T()
25 state := NewState(quit)
26 var e error
27 folderView := pathtree.New(state.Window)
28 state.Window.SetDarkTheme(folderView.Dark.True())
29 if e = state.Window.
30 Size(48, 32).
31 Title("glom, the visual code editor").
32 Open().
33 Run(func(gtx l.Context) l.Dimensions { return folderView.Fn(gtx) }, func() {
34 interrupt.Request()
35 quit.Q()
36 }, quit,
37 ); E.Chk(e) {
38
39 }
40 }
41