Ejemplo n.º 1
0
// mouse handler
func (but *TitleBarButton) Mouse(x int, y int, deltaX int, deltaY int, flags uint16) {

	if (flags & mouse.F_L_CLICK) != 0 {
		log.Debug("TitleBarButton ms handler: click")
		but.wasClicked = true
		gfx.RectFilled(but.parent.Element.Buffer, but.Element.X, but.Element.Y, but.Element.X+but.Element.Width, but.Element.Y+but.Element.Height, but.parent.Element.Width, 49, 80, 0, gfx.A_OPAQUE)
		gfx.Rect(but.parent.Element.Buffer, but.Element.X, but.Element.Y, but.Element.X+but.Element.Width-1, but.Element.Y+but.Element.Height-1, but.parent.Element.Width, 0, 0, 0, gfx.A_OPAQUE)
	} else if but.wasClicked && (flags&mouse.F_L_RELEASE) != 0 {
		log.Debug("TitleBarButton ms handler: release")
		but.wasClicked = false
		but.Draw()
		but.clickHndr(false)
	}
}
Ejemplo n.º 2
0
func (win *Window) Draw() {
	log.Debugf("Drawing Window %v", win.Id)

	// window
	gfx.RectFilled(win.Element.Buffer, 0, 0, win.Element.Width, win.Element.Height, win.Element.Width, win.bg.R, win.bg.G, win.bg.B, win.bg.A)
	gfx.Rect(win.Element.Buffer, 0, 0, win.Element.Width-1, win.Element.Height-1, win.Element.Width, 0, 0, 0, gfx.A_OPAQUE)

	// title bar
	if !win.tbHidden {
		gfx.RectFilled(win.Element.Buffer, 1, 1, win.Element.Width-1, win.titleBarHeight, win.Element.Width, 29, 59, 99, gfx.A_OPAQUE)
	}
	// render children
	for v := win.Children.Front(); v != nil; v = v.Next() {
		v.Value.(base.IElement).Draw()
	}
}
Ejemplo n.º 3
0
func (but *Button) Draw() {
	var r, g, b byte

	if but.pushed {
		r, g, b = 49, 80, 0
	} else {
		r, g, b = 80, 130, 0
	}

	gfx.RectFilled(but.parent.Element.Buffer, but.Element.X, but.Element.Y, but.Element.X+but.Element.Width, but.Element.Y+but.Element.Height, but.parent.Element.Width, r, g, b, gfx.A_OPAQUE)
	gfx.Rect(but.parent.Element.Buffer, but.Element.X, but.Element.Y, but.Element.X+but.Element.Width-1, but.Element.Y+but.Element.Height-1, but.parent.Element.Width, 0, 0, 0, gfx.A_OPAQUE)

	if but.style&BS_TEXT != 0 {
		w, h, _ := fonts.ExpectedSize(but.Element.Font, but.txt)
		hoffsetTxt := but.Element.Width/2 - int(w)/2
		voffsetTxt := but.Element.Height/2 - int(h)/2 + 1
		fonts.Render(&but.parent.Element, but.txt,
			but.Element.X+hoffsetTxt, but.Element.Y+voffsetTxt,
			but.Element.Width, but.Element.Height, but.Element.Font)
	} else if but.style&BS_ICON_TEXT != 0 {
		iw := but.icon.Bounds().Dx()
		ih := but.icon.Bounds().Dy()
		w, h, _ := fonts.ExpectedSize(but.Element.Font, but.txt)
		hoffsetIcon := but.Element.Width/2 - int(int(w)+iw+ICON_TEXT_SPACE)/2
		voffsetTxt := but.Element.Height/2 - int(h)/2 + 1
		voffsetIcon := but.Element.Height/2 - int(ih)/2
		gfx.DrawOver(&but.parent.Element, but.icon, but.Element.X+hoffsetIcon, but.Element.Y+voffsetIcon, iw, ih)
		fonts.Render(&but.parent.Element, but.txt,
			but.Element.X+hoffsetIcon+iw+ICON_TEXT_SPACE, but.Element.Y+voffsetTxt,
			but.Element.Width, but.Element.Height, but.Element.Font)
	} else if but.style&BS_ICON != 0 {
		iw := but.icon.Bounds().Dx()
		ih := but.icon.Bounds().Dy()
		hoffsetIcon := but.Element.Width/2 - int(iw)/2
		voffsetIcon := but.Element.Height/2 - int(ih)/2
		gfx.DrawOver(&but.parent.Element, but.icon, but.Element.X+hoffsetIcon, but.Element.Y+voffsetIcon, iw, ih)
	}
}
Ejemplo n.º 4
0
func (but *TitleBarButton) Draw() {
	log.Debug("    Drawing TitleBarButton")

	gfx.RectFilled(but.parent.Element.Buffer, but.Element.X, but.Element.Y, but.Element.X+but.Element.Width, but.Element.Y+but.Element.Height, but.parent.Element.Width, 80, 130, 0, gfx.A_OPAQUE)
	gfx.Rect(but.parent.Element.Buffer, but.Element.X, but.Element.Y, but.Element.X+but.Element.Width-1, but.Element.Y+but.Element.Height-1, but.parent.Element.Width, 0, 0, 0, gfx.A_OPAQUE)
}