9fans.net/go@v0.0.7/cmd/acme/internal/ui/cols1.go (about)

     1  // #include <u.h>
     2  // #include <libc.h>
     3  // #include <draw.h>
     4  // #include <thread.h>
     5  // #include <cursor.h>
     6  // #include <mouse.h>
     7  // #include <keyboard.h>
     8  // #include <frame.h>
     9  // #include <fcall.h>
    10  // #include <plumb.h>
    11  // #include <libsec.h>
    12  // #include "dat.h"
    13  // #include "fns.h"
    14  
    15  package ui
    16  
    17  import (
    18  	"9fans.net/go/cmd/acme/internal/adraw"
    19  	"9fans.net/go/cmd/acme/internal/wind"
    20  	"9fans.net/go/draw"
    21  )
    22  
    23  func ColaddAndMouse(c *wind.Column, w *wind.Window, clone *wind.Window, y int) *wind.Window {
    24  	w = wind.Coladd(c, w, clone, y)
    25  	savemouse(w)
    26  	// near the button, but in the body
    27  	adraw.Display.MoveCursor(w.Tag.ScrollR.Max.Add(draw.Pt(3, 3)))
    28  	wind.Barttext = &w.Body
    29  	return w
    30  }
    31  
    32  func ColcloseAndMouse(c *wind.Column, w *wind.Window, dofree bool) {
    33  	didmouse := restoremouse(w) != 0
    34  	wr := w.R
    35  	w = wind.Colclose(c, w, dofree)
    36  	if !didmouse && w != nil && w.R.Min.Y == wr.Min.Y {
    37  		w.Showdel = true
    38  		wind.Winresize(w, w.R, false, true)
    39  		movetodel(w)
    40  	}
    41  }
    42  
    43  func Colmousebut(c *wind.Column) {
    44  	adraw.Display.MoveCursor(c.Tag.ScrollR.Min.Add(c.Tag.ScrollR.Max).Div(2))
    45  }
    46  
    47  func Coldragwin(c *wind.Column, w *wind.Window, but int) {
    48  	Clearmouse()
    49  	adraw.Display.SwitchCursor2(&adraw.BoxCursor, &adraw.BoxCursor2)
    50  	b := Mouse.Buttons
    51  	op := Mouse.Point
    52  	for Mouse.Buttons == b {
    53  		Mousectl.Read()
    54  	}
    55  	adraw.Display.SwitchCursor(nil)
    56  	if Mouse.Buttons != 0 {
    57  		for Mouse.Buttons != 0 {
    58  			Mousectl.Read()
    59  		}
    60  		return
    61  	}
    62  	wind.Coldragwin1(c, w, but, op, Mouse.Point)
    63  	Winmousebut(w)
    64  }