本文整理汇总了Golang中github.com/evmar/gocairo/cairo.Context.Translate方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.Translate方法的具体用法?Golang Context.Translate怎么用?Golang Context.Translate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/evmar/gocairo/cairo.Context
的用法示例。
在下文中一共展示了Context.Translate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Draw
func (l *LogView) Draw(cr *cairo.Context) {
cr.Translate(0, float64(-l.scrollOffset))
y := 0
for _, e := range l.Entries {
h := e.prompt.Height()
if y+h >= l.scrollOffset {
e.prompt.Draw(cr)
}
y += h
cr.Translate(0, float64(h))
if e.term != nil {
h = e.term.Height()
if y+h >= l.scrollOffset {
e.term.Draw(cr)
}
y += h
cr.Translate(0, float64(h))
}
}
if y > l.height {
scrollOffset := y - l.height
if l.scrollOffset != scrollOffset {
if l.scrollAnim != nil && l.scrollAnim.Done {
l.scrollAnim = nil
}
if l.scrollAnim == nil {
l.scrollAnim = ui.NewLerp(&l.scrollOffset, scrollOffset, 40*time.Millisecond)
l.GetWindow().win.AddAnimation(l.scrollAnim)
} else {
// TODO adjust existing anim
}
}
}
}
示例2: Draw
func (t *TermView) Draw(cr *cairo.Context) {
t.mf.Use(cr, false)
t.termMu.Lock()
defer t.termMu.Unlock()
offset := t.term.Top * t.mf.ch
offset = 0
if offset > 0 {
cr.Save()
defer cr.Restore()
cr.Translate(0, float64(-offset))
}
firstLine := offset / t.mf.ch
if firstLine < 0 {
firstLine = 0
}
lastLine := t.term.Top + t.term.Height
if lastLine > len(t.term.Lines) {
lastLine = len(t.term.Lines)
}
for row := firstLine; row < lastLine; row++ {
drawTerminalLine(cr, t.mf, row*t.mf.ch, t.term.Lines[row])
}
if !t.term.HideCursor {
ch := rune(0)
if t.term.Row < len(t.term.Lines) &&
t.term.Col < len(t.term.Lines[t.term.Row]) {
ch = t.term.Lines[t.term.Row][t.term.Col].Ch
}
drawCursor(cr, t.mf, t.term.Row, t.term.Col, ch)
}
}