Пример #1
0
// Draw a popup menu
func (menu *PopupMenu) Draw(rend *sdl.Renderer) {
	if !menu.Visible {
		return
	}
	rend.SetDrawColor(hexcolor(0x303030))
	rend.FillRect(&menu.Pos)
	rend.SetDrawColor(hexcolor(0x363636))
	rend.DrawRect(&menu.Pos)
	if menu.hover != -1 && menu.hover < len(menu.entries) {
		rend.SetDrawColor(hexcolor(0x406f40))
		rend.FillRect(&menu.entries[menu.hover].label.Pos)
	}
	for _, e := range menu.entries {
		e.Draw(rend)
	}
}
Пример #2
0
func (node *Node) Draw(rend *sdl.Renderer) {
	if node.dragging {
		node.curr.X += (node.goal.X - node.curr.X) * (15.0 / 30.0)
		node.curr.Y += (node.goal.Y - node.curr.Y) * (15.0 / 30.0)
		node.Pos.X = int32(node.curr.X)
		node.Pos.Y = int32(node.curr.Y)
		node.label.Pos = node.Pos
	}

	clr := node.color
	if !node.dragging {
		rend.SetDrawColor(clr)
		rend.FillRect(&node.Pos)
	}
	rend.SetDrawColor(lighten(clr, 19))
	rend.DrawRect(&node.Pos)
	node.label.Draw(rend)

	if node.menu.Visible {
		node.menu.Draw(rend)
	}
}
Пример #3
0
func (canvas *CanvasPane) Draw(rend *sdl.Renderer) {

	for _, n := range canvas.nodes {
		n.DrawLink(rend)
	}

	for _, n := range canvas.nodes {
		n.Draw(rend)
	}

	canvas.menu.Draw(rend)

	if canvas.new_link != nil {
		_, x, y := sdl.GetMouseState()
		n0 := canvas.nodes[*canvas.new_link]
		rend.SetDrawColor(hexcolor(0xffffff))
		pos := n0.GetPos()
		rend.DrawRect(&pos)
		rend.SetDrawColor(hexcolor(0x694ae9))
		rend.DrawLine(n0.GetPos().X+n0.GetPos().W/2, n0.GetPos().Y+n0.GetPos().H/2, int32(x), int32(y))
	}
}