mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
0f05231c35
Signed-off-by: Elias Naur <mail@eliasnaur.com>
42 lines
548 B
Go
42 lines
548 B
Go
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
package ui
|
|
|
|
type Value struct {
|
|
V float32
|
|
U Unit
|
|
}
|
|
|
|
type Unit uint8
|
|
|
|
const (
|
|
UnitPx Unit = iota
|
|
UnitDp
|
|
UnitSp
|
|
)
|
|
|
|
func Px(v float32) Value {
|
|
return Value{V: v, U: UnitPx}
|
|
}
|
|
|
|
func Dp(v float32) Value {
|
|
return Value{V: v, U: UnitDp}
|
|
}
|
|
|
|
func Sp(v float32) Value {
|
|
return Value{V: v, U: UnitSp}
|
|
}
|
|
|
|
func (c *Config) Pixels(v Value) float32 {
|
|
switch v.U {
|
|
case UnitPx:
|
|
return v.V
|
|
case UnitDp:
|
|
return c.PxPerDp * v.V
|
|
case UnitSp:
|
|
return c.PxPerSp * v.V
|
|
default:
|
|
panic("unknown unit")
|
|
}
|
|
}
|