12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // SPDX-License-Identifier: Unlicense OR MIT
- package layout
- import (
- "time"
- "gioui.org/io/event"
- "gioui.org/io/input"
- "gioui.org/io/system"
- "gioui.org/op"
- "gioui.org/unit"
- )
- // Context carries the state needed by almost all layouts and widgets.
- // A zero value Context never returns events, map units to pixels
- // with a scale of 1.0, and returns the zero time from Now.
- type Context struct {
- // Constraints track the constraints for the active widget or
- // layout.
- Constraints Constraints
- Metric unit.Metric
- // Now is the animation time.
- Now time.Time
- // Locale provides information on the system's language preferences.
- // BUG(whereswaldon): this field is not currently populated automatically.
- // Interested users must look up and populate these values manually.
- Locale system.Locale
- disabled bool
- input.Source
- *op.Ops
- }
- // Dp converts v to pixels.
- func (c Context) Dp(v unit.Dp) int {
- return c.Metric.Dp(v)
- }
- // Sp converts v to pixels.
- func (c Context) Sp(v unit.Sp) int {
- return c.Metric.Sp(v)
- }
- func (c Context) Event(filters ...event.Filter) (event.Event, bool) {
- if c.disabled {
- return nil, false
- }
- return c.Source.Event(filters...)
- }
- // Enabled reports whether this context is enabled. Disabled contexts
- // don't report events.
- func (c Context) Enabled() bool {
- return !c.disabled
- }
- // Disabled returns a copy of this context that don't deliver any events.
- func (c Context) Disabled() Context {
- c.disabled = true
- return c
- }
|