//画行走路线 func drawWalkPath(window gxui.Window, theme gxui.Theme, driver gxui.Driver, x1, y1, x2, y2 int64) { ps, isWalk := nm.FindPath(nmastar, x1, y1, x2, y2) if !isWalk { return } canvas := driver.CreateCanvas(math.Size{W: int(nmj.Width), H: int(nmj.Heigth)}) var polys []gxui.PolygonVertex for i := 0; i < len(ps); i++ { polys = append(polys, gxui.PolygonVertex{ Position: math.Point{ int(ps[i].X), int(ps[i].Y), }}) } canvas.DrawLines(polys, gxui.CreatePen(2, gxui.Green)) canvas.Complete() image := theme.CreateImage() image.SetCanvas(canvas) window.AddChild(image) }
func beginTabDragging(holder gxui.PanelHolder, panel gxui.Control, name string, window gxui.Window) { var mms, mos gxui.EventSubscription mms = window.OnMouseMove(func(ev gxui.MouseEvent) { for _, c := range gxui.TopControlsUnder(ev.WindowPoint, ev.Window) { if over, ok := c.C.(gxui.PanelHolder); ok { insertAt := insertIndex(over, c.P) if over == holder { if insertAt > over.PanelIndex(panel) { insertAt-- } } holder.RemovePanel(panel) holder = over holder.AddPanelAt(panel, name, insertAt) holder.Select(insertAt) } } }) mos = window.OnMouseUp(func(gxui.MouseEvent) { mms.Unlisten() mos.Unlisten() }) }