// 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) } }
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() } }
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) } }
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) }