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