Adding upstream version 0.0~git20250520.a1d9079+dfsg.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
590ac7ff5f
commit
20149b7f3a
456 changed files with 70406 additions and 0 deletions
92
event/size/size.go
Normal file
92
event/size/size.go
Normal file
|
@ -0,0 +1,92 @@
|
|||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package size defines an event for the dimensions, physical resolution and
|
||||
// orientation of the app's window.
|
||||
//
|
||||
// See the golang.org/x/mobile/app package for details on the event model.
|
||||
package size
|
||||
|
||||
import (
|
||||
"image"
|
||||
|
||||
"golang.org/x/mobile/geom"
|
||||
)
|
||||
|
||||
// Event holds the dimensions, physical resolution and orientation of the app's
|
||||
// window.
|
||||
type Event struct {
|
||||
// WidthPx and HeightPx are the window's dimensions in pixels.
|
||||
WidthPx, HeightPx int
|
||||
|
||||
// WidthPt and HeightPt are the window's physical dimensions in points
|
||||
// (1/72 of an inch).
|
||||
//
|
||||
// The values are based on PixelsPerPt and are therefore approximate, as
|
||||
// per the comment on PixelsPerPt.
|
||||
WidthPt, HeightPt geom.Pt
|
||||
|
||||
// PixelsPerPt is the window's physical resolution. It is the number of
|
||||
// pixels in a single geom.Pt, from the golang.org/x/mobile/geom package.
|
||||
//
|
||||
// There are a wide variety of pixel densities in existing phones and
|
||||
// tablets, so apps should be written to expect various non-integer
|
||||
// PixelsPerPt values. In general, work in geom.Pt.
|
||||
//
|
||||
// The value is approximate, in that the OS, drivers or hardware may report
|
||||
// approximate or quantized values. An N x N pixel square should be roughly
|
||||
// 1 square inch for N = int(PixelsPerPt * 72), although different square
|
||||
// lengths (in pixels) might be closer to 1 inch in practice. Nonetheless,
|
||||
// this PixelsPerPt value should be consistent with e.g. the ratio of
|
||||
// WidthPx to WidthPt.
|
||||
PixelsPerPt float32
|
||||
|
||||
// Orientation is the orientation of the device screen.
|
||||
Orientation Orientation
|
||||
}
|
||||
|
||||
// Size returns the window's size in pixels, at the time this size event was
|
||||
// sent.
|
||||
func (e Event) Size() image.Point {
|
||||
return image.Point{e.WidthPx, e.HeightPx}
|
||||
}
|
||||
|
||||
// Bounds returns the window's bounds in pixels, at the time this size event
|
||||
// was sent.
|
||||
//
|
||||
// The top-left pixel is always (0, 0). The bottom-right pixel is given by the
|
||||
// width and height.
|
||||
func (e Event) Bounds() image.Rectangle {
|
||||
return image.Rectangle{Max: image.Point{e.WidthPx, e.HeightPx}}
|
||||
}
|
||||
|
||||
// Orientation is the orientation of the device screen.
|
||||
type Orientation int
|
||||
|
||||
const (
|
||||
// OrientationUnknown means device orientation cannot be determined.
|
||||
//
|
||||
// Equivalent on Android to Configuration.ORIENTATION_UNKNOWN
|
||||
// and on iOS to:
|
||||
// UIDeviceOrientationUnknown
|
||||
// UIDeviceOrientationFaceUp
|
||||
// UIDeviceOrientationFaceDown
|
||||
OrientationUnknown Orientation = iota
|
||||
|
||||
// OrientationPortrait is a device oriented so it is tall and thin.
|
||||
//
|
||||
// Equivalent on Android to Configuration.ORIENTATION_PORTRAIT
|
||||
// and on iOS to:
|
||||
// UIDeviceOrientationPortrait
|
||||
// UIDeviceOrientationPortraitUpsideDown
|
||||
OrientationPortrait
|
||||
|
||||
// OrientationLandscape is a device oriented so it is short and wide.
|
||||
//
|
||||
// Equivalent on Android to Configuration.ORIENTATION_LANDSCAPE
|
||||
// and on iOS to:
|
||||
// UIDeviceOrientationLandscapeLeft
|
||||
// UIDeviceOrientationLandscapeRight
|
||||
OrientationLandscape
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue