4 "github.com/zyedidia/micro/internal/buffer"
5 "github.com/zyedidia/micro/internal/config"
6 "github.com/zyedidia/micro/internal/screen"
7 "github.com/zyedidia/micro/internal/views"
10 type UIWindow struct {
14 func NewUIWindow(n *views.Node) *UIWindow {
20 func (w *UIWindow) drawNode(n *views.Node) {
22 dividerStyle := config.DefStyle
23 if style, ok := config.Colorscheme["divider"]; ok {
27 for i, c := range cs {
28 if c.IsLeaf() && c.Kind == views.STVert {
30 for h := 0; h < c.H; h++ {
31 screen.SetContent(c.X+c.W, c.Y+h, '|', nil, dividerStyle.Reverse(true))
40 func (w *UIWindow) Display() {
44 func (w *UIWindow) GetMouseSplitID(vloc buffer.Loc) uint64 {
45 var mouseLoc func(*views.Node) uint64
46 mouseLoc = func(n *views.Node) uint64 {
48 for i, c := range cs {
49 if c.Kind == views.STVert {
51 if vloc.X == c.X+c.W && vloc.Y >= c.Y && vloc.Y < c.Y+c.H {
55 } else if c.Kind == views.STHoriz {
57 if vloc.Y == c.Y+c.H-1 && vloc.X >= c.X && vloc.X < c.X+c.W {
63 for _, c := range cs {
71 return mouseLoc(w.root)
73 func (w *UIWindow) Resize(width, height int) {}
74 func (w *UIWindow) SetActive(b bool) {}