mirror of
https://github.com/miguelmota/cointop
synced 2024-11-14 18:12:57 +00:00
01b248ee82
Former-commit-id: 03f60c917e961b9a602201f44db08d96f9633063 [formerly 03f60c917e961b9a602201f44db08d96f9633063 [formerly ebc717d2c1907fc7a7840d674e260a9a033b4554 [formerly 664ed54783c9fdfd300eb39fd4b4a648a410659f]]] Former-commit-id: aac9a01875dc0f2bb9cafdf6a70743e0268c0475 Former-commit-id: 587aa697ce2b26cd6a11406742349b60abad2c11 [formerly 61857f48e24c87948a072aa86c331f0a644bc26e] Former-commit-id: 0690a6a5fce4865803e25015fb141e316279bf8f
79 lines
1.6 KiB
Go
79 lines
1.6 KiB
Go
// Copyright 2017 Zack Guo <zack.y.guo@gmail.com>. All rights reserved.
|
|
// Use of this source code is governed by a MIT license that can
|
|
// be found in the LICENSE file.
|
|
|
|
package termui
|
|
|
|
import "image"
|
|
|
|
// Align is the position of the gauge's label.
|
|
type Align uint
|
|
|
|
// All supported positions.
|
|
const (
|
|
AlignNone Align = 0
|
|
AlignLeft Align = 1 << iota
|
|
AlignRight
|
|
AlignBottom
|
|
AlignTop
|
|
AlignCenterVertical
|
|
AlignCenterHorizontal
|
|
AlignCenter = AlignCenterVertical | AlignCenterHorizontal
|
|
)
|
|
|
|
func AlignArea(parent, child image.Rectangle, a Align) image.Rectangle {
|
|
w, h := child.Dx(), child.Dy()
|
|
|
|
// parent center
|
|
pcx, pcy := parent.Min.X+parent.Dx()/2, parent.Min.Y+parent.Dy()/2
|
|
// child center
|
|
ccx, ccy := child.Min.X+child.Dx()/2, child.Min.Y+child.Dy()/2
|
|
|
|
if a&AlignLeft == AlignLeft {
|
|
child.Min.X = parent.Min.X
|
|
child.Max.X = child.Min.X + w
|
|
}
|
|
|
|
if a&AlignRight == AlignRight {
|
|
child.Max.X = parent.Max.X
|
|
child.Min.X = child.Max.X - w
|
|
}
|
|
|
|
if a&AlignBottom == AlignBottom {
|
|
child.Max.Y = parent.Max.Y
|
|
child.Min.Y = child.Max.Y - h
|
|
}
|
|
|
|
if a&AlignTop == AlignRight {
|
|
child.Min.Y = parent.Min.Y
|
|
child.Max.Y = child.Min.Y + h
|
|
}
|
|
|
|
if a&AlignCenterHorizontal == AlignCenterHorizontal {
|
|
child.Min.X += pcx - ccx
|
|
child.Max.X = child.Min.X + w
|
|
}
|
|
|
|
if a&AlignCenterVertical == AlignCenterVertical {
|
|
child.Min.Y += pcy - ccy
|
|
child.Max.Y = child.Min.Y + h
|
|
}
|
|
|
|
return child
|
|
}
|
|
|
|
func MoveArea(a image.Rectangle, dx, dy int) image.Rectangle {
|
|
a.Min.X += dx
|
|
a.Max.X += dx
|
|
a.Min.Y += dy
|
|
a.Max.Y += dy
|
|
return a
|
|
}
|
|
|
|
var termWidth int
|
|
var termHeight int
|
|
|
|
func TermRect() image.Rectangle {
|
|
return image.Rect(0, 0, termWidth, termHeight)
|
|
}
|