|
| 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