Skip to content

Commit 31b1364

Browse files
committed
Add ViewGravity
1 parent 9fed483 commit 31b1364

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
//
2+
// Gravity+RawRepresentable.swift
3+
// SwiftAndroid
4+
//
5+
// Created by Alsey Coleman Miller on 6/9/25.
6+
//
7+
8+
import JavaKit
9+
10+
/// Standard constants and tools for placing an object within a potentially larger container.
11+
public struct ViewGravity: OptionSet, Equatable, Hashable, Codable, Sendable {
12+
13+
public let rawValue: Int32
14+
15+
public init(rawValue: Int32) {
16+
self.rawValue = rawValue
17+
}
18+
}
19+
20+
internal extension ViewGravity {
21+
22+
static let javaClass = try! JavaClass<AndroidView.Gravity>()
23+
}
24+
25+
// MARK: - Properties
26+
27+
public extension ViewGravity {
28+
29+
/// Indicate whether the supplied gravity has an horizontal pull.
30+
var isHorizontal: Bool {
31+
Self.javaClass.isHorizontal(rawValue)
32+
}
33+
34+
/// Indicate whether the supplied gravity has a vertical pull.
35+
var isVertical: Bool {
36+
Self.javaClass.isVertical(rawValue)
37+
}
38+
}
39+
40+
// MARK: - Constants
41+
42+
public extension ViewGravity {
43+
44+
static let axisClip = ViewGravity(rawValue: javaClass.AXIS_CLIP)
45+
static let axisPullAfter = ViewGravity(rawValue: javaClass.AXIS_PULL_AFTER)
46+
static let axisPullBefore = ViewGravity(rawValue: javaClass.AXIS_PULL_BEFORE)
47+
static let axisSpecified = ViewGravity(rawValue: javaClass.AXIS_SPECIFIED)
48+
static let axisXShift = ViewGravity(rawValue: javaClass.AXIS_X_SHIFT)
49+
static let axisYShift = ViewGravity(rawValue: javaClass.AXIS_Y_SHIFT)
50+
51+
static let bottom = ViewGravity(rawValue: javaClass.BOTTOM)
52+
static let center = ViewGravity(rawValue: javaClass.CENTER)
53+
static let centerHorizontal = ViewGravity(rawValue: javaClass.CENTER_HORIZONTAL)
54+
static let centerVertical = ViewGravity(rawValue: javaClass.CENTER_VERTICAL)
55+
56+
static let clipHorizontal = ViewGravity(rawValue: javaClass.CLIP_HORIZONTAL)
57+
static let clipVertical = ViewGravity(rawValue: javaClass.CLIP_VERTICAL)
58+
59+
static let displayClipHorizontal = ViewGravity(rawValue: javaClass.DISPLAY_CLIP_HORIZONTAL)
60+
static let displayClipVertical = ViewGravity(rawValue: javaClass.DISPLAY_CLIP_VERTICAL)
61+
62+
static let end = ViewGravity(rawValue: javaClass.END)
63+
static let fill = ViewGravity(rawValue: javaClass.FILL)
64+
static let fillHorizontal = ViewGravity(rawValue: javaClass.FILL_HORIZONTAL)
65+
static let fillVertical = ViewGravity(rawValue: javaClass.FILL_VERTICAL)
66+
67+
static let horizontalGravityMask = ViewGravity(rawValue: javaClass.HORIZONTAL_GRAVITY_MASK)
68+
static let left = ViewGravity(rawValue: javaClass.LEFT)
69+
static let noGravity = ViewGravity(rawValue: javaClass.NO_GRAVITY)
70+
71+
static let relativeHorizontalGravityMask = ViewGravity(rawValue: javaClass.RELATIVE_HORIZONTAL_GRAVITY_MASK)
72+
static let relativeLayoutDirection = ViewGravity(rawValue: javaClass.RELATIVE_LAYOUT_DIRECTION)
73+
74+
static let right = ViewGravity(rawValue: javaClass.RIGHT)
75+
static let start = ViewGravity(rawValue: javaClass.START)
76+
static let top = ViewGravity(rawValue: javaClass.TOP)
77+
static let verticalGravityMask = ViewGravity(rawValue: javaClass.VERTICAL_GRAVITY_MASK)
78+
}

0 commit comments

Comments
 (0)