| /* | |
| * Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved. | |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
| * | |
| * This code is free software; you can redistribute it and/or modify it | |
| * under the terms of the GNU General Public License version 2 only, as | |
| * published by the Free Software Foundation. Oracle designates this | |
| * particular file as subject to the "Classpath" exception as provided | |
| * by Oracle in the LICENSE file that accompanied this code. | |
| * | |
| * This code is distributed in the hope that it will be useful, but WITHOUT | |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
| * version 2 for more details (a copy is included in the LICENSE file that | |
| * accompanied this code). | |
| * | |
| * You should have received a copy of the GNU General Public License version | |
| * 2 along with this work; if not, write to the Free Software Foundation, | |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
| * | |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
| * or visit www.oracle.com if you need additional information or have any | |
| * questions. | |
| */ | |
| package apple.laf; | |
| import java.nio.ByteBuffer; | |
| import java.lang.annotation.Native; | |
| public final class JRSUIConstants { | |
| /** | |
| * There is no way to get width of focus border, so it is hardcoded here. | |
| * All components, which can be focused should take care about it. | |
| */ | |
| public static final int FOCUS_SIZE = 4; | |
| private static native long getPtrForConstant(final int constant); | |
| static class Key { | |
| @Native protected static final int _value = 20; | |
| public static final Key VALUE = new Key(_value); | |
| @Native protected static final int _thumbProportion = 24; | |
| public static final Key THUMB_PROPORTION = new Key(_thumbProportion); | |
| @Native protected static final int _thumbStart = 25; | |
| public static final Key THUMB_START = new Key(_thumbStart); | |
| @Native protected static final int _windowTitleBarHeight = 28; | |
| public static final Key WINDOW_TITLE_BAR_HEIGHT = new Key(_windowTitleBarHeight); | |
| @Native protected static final int _animationFrame = 23; | |
| public static final Key ANIMATION_FRAME = new Key(_animationFrame); | |
| final int constant; | |
| private long ptr; | |
| private Key(final int constant) { | |
| this.constant = constant; | |
| } | |
| long getConstantPtr() { | |
| if (ptr != 0) return ptr; | |
| ptr = getPtrForConstant(constant); | |
| if (ptr != 0) return ptr; | |
| throw new RuntimeException("Constant not implemented in native: " + this); | |
| } | |
| private String getConstantName(Key hit) { | |
| if (hit == VALUE) { | |
| return "VALUE"; | |
| } else if (hit == THUMB_PROPORTION) { | |
| return "THUMB_PROPORTION"; | |
| } else if (hit == THUMB_START) { | |
| return "THUMB_START"; | |
| } else if (hit == WINDOW_TITLE_BAR_HEIGHT) { | |
| return "WINDOW_TITLE_BAR_HEIGHT"; | |
| } else if (hit == ANIMATION_FRAME) { | |
| return "ANIMATION_FRAME"; | |
| } | |
| return getClass().getSimpleName(); | |
| } | |
| public String toString() { | |
| return getConstantName(this) + (ptr == 0 ? "(unlinked)" : ""); | |
| } | |
| } | |
| static class DoubleValue { | |
| @Native protected static final byte TYPE_CODE = 1; | |
| final double doubleValue; | |
| DoubleValue(final double doubleValue) { | |
| this.doubleValue = doubleValue; | |
| } | |
| public byte getTypeCode() { | |
| return TYPE_CODE; | |
| } | |
| public void putValueInBuffer(final ByteBuffer buffer) { | |
| buffer.putDouble(doubleValue); | |
| } | |
| public boolean equals(final Object obj) { | |
| return (obj instanceof DoubleValue) && (((DoubleValue)obj).doubleValue == doubleValue); | |
| } | |
| public int hashCode() { | |
| return Double.hashCode(doubleValue); | |
| } | |
| public String toString() { | |
| return Double.toString(doubleValue); | |
| } | |
| } | |
| static class PropertyEncoding { | |
| final long mask; | |
| final byte shift; | |
| PropertyEncoding(final long mask, final byte shift) { | |
| this.mask = mask; | |
| this.shift = shift; | |
| } | |
| } | |
| static class Property { | |
| final PropertyEncoding encoding; | |
| final long value; | |
| final byte ordinal; | |
| Property(final PropertyEncoding encoding, final byte ordinal) { | |
| this.encoding = encoding; | |
| this.value = ((long)ordinal) << encoding.shift; | |
| this.ordinal = ordinal; | |
| } | |
| /** | |
| * Applies this property value to the provided state | |
| * @param encodedState the incoming JRSUI encoded state | |
| * @return the composite of the provided JRSUI encoded state and this value | |
| */ | |
| public long apply(final long encodedState) { | |
| return (encodedState & ~encoding.mask) | value; | |
| } | |
| public String toString() { | |
| return getClass().getSimpleName(); | |
| } | |
| } | |
| public static class Size extends Property { | |
| @Native private static final byte SHIFT = 0; | |
| @Native private static final byte SIZE = 3; | |
| @Native private static final long MASK = (long)0x7 << SHIFT; | |
| private static final PropertyEncoding size = new PropertyEncoding(MASK, SHIFT); | |
| Size(final byte value) { | |
| super(size, value); | |
| } | |
| @Native private static final byte _mini = 1; | |
| public static final Size MINI = new Size(_mini); | |
| @Native private static final byte _small = 2; | |
| public static final Size SMALL = new Size(_small); | |
| @Native private static final byte _regular = 3; | |
| public static final Size REGULAR = new Size(_regular); | |
| @Native private static final byte _large = 4; | |
| public static final Size LARGE = new Size(_large); | |
| } | |
| public static class State extends Property { | |
| @Native private static final byte SHIFT = Size.SHIFT + Size.SIZE; | |
| @Native private static final byte SIZE = 4; | |
| @Native private static final long MASK = (long)0xF << SHIFT; | |
| private static final PropertyEncoding state = new PropertyEncoding(MASK, SHIFT); | |
| State(final byte value) { | |
| super(state, value); | |
| } | |
| @Native private static final byte _active = 1; | |
| public static final State ACTIVE = new State(_active); | |
| @Native private static final byte _inactive = 2; | |
| public static final State INACTIVE = new State(_inactive); | |
| @Native private static final byte _disabled = 3; | |
| public static final State DISABLED = new State(_disabled); | |
| @Native private static final byte _pressed = 4; | |
| public static final State PRESSED = new State(_pressed); | |
| @Native private static final byte _pulsed = 5; | |
| /** | |
| * This identifies the default button in a window/dialog. | |
| * The name PULSED has become misleading over time. | |
| * The default button used to continually pulse up until | |
| * Mac OS 10.9, but now there is no pulsing animation. | |
| * We still need this State constant to render default | |
| * buttons correctly, though. | |
| */ | |
| public static final State PULSED = new State(_pulsed); | |
| @Native private static final byte _rollover = 6; | |
| public static final State ROLLOVER = new State(_rollover); | |
| @Native private static final byte _drag = 7; | |
| public static final State DRAG = new State(_drag); | |
| } | |
| public static class Direction extends Property { | |
| @Native private static final byte SHIFT = State.SHIFT + State.SIZE; | |
| @Native private static final byte SIZE = 4; | |
| @Native private static final long MASK = (long)0xF << SHIFT; | |
| private static final PropertyEncoding direction = new PropertyEncoding(MASK, SHIFT); | |
| Direction(final byte value) { | |
| super(direction, value); | |
| } | |
| @Native private static final byte _none = 1; | |
| public static final Direction NONE = new Direction(_none); | |
| @Native private static final byte _up = 2; | |
| public static final Direction UP = new Direction(_up); | |
| @Native private static final byte _down = 3; | |
| public static final Direction DOWN = new Direction(_down); | |
| @Native private static final byte _left = 4; | |
| public static final Direction LEFT = new Direction(_left); | |
| @Native private static final byte _right = 5; | |
| public static final Direction RIGHT = new Direction(_right); | |
| @Native private static final byte _north = 6; | |
| public static final Direction NORTH = new Direction(_north); | |
| @Native private static final byte _south = 7; | |
| public static final Direction SOUTH = new Direction(_south); | |
| @Native private static final byte _east = 8; | |
| public static final Direction EAST = new Direction(_east); | |
| @Native private static final byte _west = 9; | |
| public static final Direction WEST = new Direction(_west); | |
| } | |
| public static class Orientation extends Property { | |
| @Native private static final byte SHIFT = Direction.SHIFT + Direction.SIZE; | |
| @Native private static final byte SIZE = 2; | |
| @Native private static final long MASK = (long)0x3 << SHIFT; | |
| private static final PropertyEncoding orientation = new PropertyEncoding(MASK, SHIFT); | |
| Orientation(final byte value) { | |
| super(orientation, value); | |
| } | |
| @Native private static final byte _horizontal = 1; | |
| public static final Orientation HORIZONTAL = new Orientation(_horizontal); | |
| @Native private static final byte _vertical = 2; | |
| public static final Orientation VERTICAL = new Orientation(_vertical); | |
| } | |
| public static class AlignmentVertical extends Property { | |
| @Native private static final byte SHIFT = Orientation.SHIFT + Orientation.SIZE; | |
| @Native private static final byte SIZE = 2; | |
| @Native private static final long MASK = (long)0x3 << SHIFT; | |
| private static final PropertyEncoding alignmentVertical = new PropertyEncoding(MASK, SHIFT); | |
| AlignmentVertical(final byte value){ | |
| super(alignmentVertical, value); | |
| } | |
| @Native private static final byte _top = 1; | |
| public static final AlignmentVertical TOP = new AlignmentVertical(_top); | |
| @Native private static final byte _center = 2; | |
| public static final AlignmentVertical CENTER = new AlignmentVertical(_center); | |
| @Native private static final byte _bottom = 3; | |
| public static final AlignmentVertical BOTTOM = new AlignmentVertical(_bottom); | |
| } | |
| public static class AlignmentHorizontal extends Property { | |
| @Native private static final byte SHIFT = AlignmentVertical.SHIFT + AlignmentVertical.SIZE; | |
| @Native private static final byte SIZE = 2; | |
| @Native private static final long MASK = (long)0x3 << SHIFT; | |
| private static final PropertyEncoding alignmentHorizontal = new PropertyEncoding(MASK, SHIFT); | |
| AlignmentHorizontal(final byte value){ | |
| super(alignmentHorizontal, value); | |
| } | |
| @Native private static final byte _left = 1; | |
| public static final AlignmentHorizontal LEFT = new AlignmentHorizontal(_left); | |
| @Native private static final byte _center = 2; | |
| public static final AlignmentHorizontal CENTER = new AlignmentHorizontal(_center); | |
| @Native private static final byte _right = 3; | |
| public static final AlignmentHorizontal RIGHT = new AlignmentHorizontal(_right); | |
| } | |
| public static class SegmentPosition extends Property { | |
| @Native private static final byte SHIFT = AlignmentHorizontal.SHIFT + AlignmentHorizontal.SIZE; | |
| @Native private static final byte SIZE = 3; | |
| @Native private static final long MASK = (long)0x7 << SHIFT; | |
| private static final PropertyEncoding segmentPosition = new PropertyEncoding(MASK, SHIFT); | |
| SegmentPosition(final byte value) { | |
| super(segmentPosition, value); | |
| } | |
| @Native private static final byte _first = 1; | |
| public static final SegmentPosition FIRST = new SegmentPosition(_first); | |
| @Native private static final byte _middle = 2; | |
| public static final SegmentPosition MIDDLE = new SegmentPosition(_middle); | |
| @Native private static final byte _last = 3; | |
| public static final SegmentPosition LAST = new SegmentPosition(_last); | |
| @Native private static final byte _only = 4; | |
| public static final SegmentPosition ONLY = new SegmentPosition(_only); | |
| } | |
| public static class ScrollBarPart extends Property { | |
| @Native private static final byte SHIFT = SegmentPosition.SHIFT + SegmentPosition.SIZE; | |
| @Native private static final byte SIZE = 4; | |
| @Native private static final long MASK = (long)0xF << SHIFT; | |
| private static final PropertyEncoding scrollBarPart = new PropertyEncoding(MASK, SHIFT); | |
| ScrollBarPart(final byte value) { | |
| super(scrollBarPart, value); | |
| } | |
| @Native private static final byte _none = 1; | |
| public static final ScrollBarPart NONE = new ScrollBarPart(_none); | |
| @Native private static final byte _thumb = 2; | |
| public static final ScrollBarPart THUMB = new ScrollBarPart(_thumb); | |
| @Native private static final byte _arrowMin = 3; | |
| public static final ScrollBarPart ARROW_MIN = new ScrollBarPart(_arrowMin); | |
| @Native private static final byte _arrowMax = 4; | |
| public static final ScrollBarPart ARROW_MAX = new ScrollBarPart(_arrowMax); | |
| @Native private static final byte _arrowMaxInside = 5; | |
| public static final ScrollBarPart ARROW_MAX_INSIDE = new ScrollBarPart(_arrowMaxInside); | |
| @Native private static final byte _arrowMinInside = 6; | |
| public static final ScrollBarPart ARROW_MIN_INSIDE = new ScrollBarPart(_arrowMinInside); | |
| @Native private static final byte _trackMin = 7; | |
| public static final ScrollBarPart TRACK_MIN = new ScrollBarPart(_trackMin); | |
| @Native private static final byte _trackMax = 8; | |
| public static final ScrollBarPart TRACK_MAX = new ScrollBarPart(_trackMax); | |
| } | |
| public static class Variant extends Property { | |
| @Native private static final byte SHIFT = ScrollBarPart.SHIFT + ScrollBarPart.SIZE; | |
| @Native private static final byte SIZE = 4; | |
| @Native private static final long MASK = (long)0xF << SHIFT; | |
| private static final PropertyEncoding variant = new PropertyEncoding(MASK, SHIFT); | |
| Variant(final byte value) { | |
| super(variant, value); | |
| } | |
| @Native private static final byte _menuGlyph = 1; | |
| public static final Variant MENU_GLYPH = new Variant(_menuGlyph); | |
| @Native private static final byte _menuPopup = Variant._menuGlyph + 1; | |
| public static final Variant MENU_POPUP = new Variant(_menuPopup); | |
| @Native private static final byte _menuPulldown = Variant._menuPopup + 1; | |
| public static final Variant MENU_PULLDOWN = new Variant(_menuPulldown); | |
| @Native private static final byte _menuHierarchical = Variant._menuPulldown + 1; | |
| public static final Variant MENU_HIERARCHICAL = new Variant(_menuHierarchical); | |
| @Native private static final byte _gradientListBackgroundEven = Variant._menuHierarchical + 1; | |
| public static final Variant GRADIENT_LIST_BACKGROUND_EVEN = new Variant(_gradientListBackgroundEven); | |
| @Native private static final byte _gradientListBackgroundOdd = Variant._gradientListBackgroundEven + 1; | |
| public static final Variant GRADIENT_LIST_BACKGROUND_ODD = new Variant(_gradientListBackgroundOdd); | |
| @Native private static final byte _gradientSideBar = Variant._gradientListBackgroundOdd + 1; | |
| public static final Variant GRADIENT_SIDE_BAR = new Variant(_gradientSideBar); | |
| @Native private static final byte _gradientSideBarSelection = Variant._gradientSideBar + 1; | |
| public static final Variant GRADIENT_SIDE_BAR_SELECTION = new Variant(_gradientSideBarSelection); | |
| @Native private static final byte _gradientSideBarFocusedSelection = Variant._gradientSideBarSelection + 1; | |
| public static final Variant GRADIENT_SIDE_BAR_FOCUSED_SELECTION = new Variant(_gradientSideBarFocusedSelection); | |
| } | |
| public static class WindowType extends Property { | |
| @Native private static final byte SHIFT = Variant.SHIFT + Variant.SIZE; | |
| @Native private static final byte SIZE = 2; | |
| @Native private static final long MASK = (long)0x3 << SHIFT; | |
| private static final PropertyEncoding windowType = new PropertyEncoding(MASK, SHIFT); | |
| WindowType(final byte value){ | |
| super(windowType, value); | |
| } | |
| @Native private static final byte _document = 1; | |
| public static final WindowType DOCUMENT = new WindowType(_document); | |
| @Native private static final byte _utility = 2; | |
| public static final WindowType UTILITY = new WindowType(_utility); | |
| @Native private static final byte _titlelessUtility = 3; | |
| public static final WindowType TITLELESS_UTILITY = new WindowType(_titlelessUtility); | |
| } | |
| public static class Focused extends Property { | |
| @Native private static final byte SHIFT = WindowType.SHIFT + WindowType.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT); | |
| Focused(final byte value) { | |
| super(focused, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final Focused NO = new Focused(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final Focused YES = new Focused(_yes); | |
| } | |
| public static class IndicatorOnly extends Property { | |
| @Native private static final byte SHIFT = Focused.SHIFT + Focused.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding indicatorOnly = new PropertyEncoding(MASK, SHIFT); | |
| IndicatorOnly(final byte value) { | |
| super(indicatorOnly, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final IndicatorOnly NO = new IndicatorOnly(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final IndicatorOnly YES = new IndicatorOnly(_yes); | |
| } | |
| public static class NoIndicator extends Property { | |
| @Native private static final byte SHIFT = IndicatorOnly.SHIFT + IndicatorOnly.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding noIndicator = new PropertyEncoding(MASK, SHIFT); | |
| NoIndicator(final byte value) { | |
| super(noIndicator, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final NoIndicator NO = new NoIndicator(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final NoIndicator YES = new NoIndicator(_yes); | |
| } | |
| public static class ArrowsOnly extends Property { | |
| @Native private static final byte SHIFT = NoIndicator.SHIFT + NoIndicator.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT); | |
| ArrowsOnly(final byte value) { | |
| super(focused, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final ArrowsOnly NO = new ArrowsOnly(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final ArrowsOnly YES = new ArrowsOnly(_yes); | |
| } | |
| public static class FrameOnly extends Property { | |
| @Native private static final byte SHIFT = ArrowsOnly.SHIFT + ArrowsOnly.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT); | |
| FrameOnly(final byte value) { | |
| super(focused, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final FrameOnly NO = new FrameOnly(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final FrameOnly YES = new FrameOnly(_yes); | |
| } | |
| public static class SegmentTrailingSeparator extends Property { | |
| @Native private static final byte SHIFT = FrameOnly.SHIFT + FrameOnly.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT); | |
| SegmentTrailingSeparator(final byte value) { | |
| super(focused, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final SegmentTrailingSeparator NO = new SegmentTrailingSeparator(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final SegmentTrailingSeparator YES = new SegmentTrailingSeparator(_yes); | |
| } | |
| public static class SegmentLeadingSeparator extends Property { | |
| @Native private static final byte SHIFT = SegmentTrailingSeparator.SHIFT + SegmentTrailingSeparator.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding leadingSeparator = new PropertyEncoding(MASK, SHIFT); | |
| SegmentLeadingSeparator(final byte value) { | |
| super(leadingSeparator, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final SegmentLeadingSeparator NO = new SegmentLeadingSeparator(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final SegmentLeadingSeparator YES = new SegmentLeadingSeparator(_yes); | |
| } | |
| public static class NothingToScroll extends Property { | |
| @Native private static final byte SHIFT = SegmentLeadingSeparator.SHIFT + SegmentLeadingSeparator.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT); | |
| NothingToScroll(final byte value) { | |
| super(focused, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final NothingToScroll NO = new NothingToScroll(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final NothingToScroll YES = new NothingToScroll(_yes); | |
| } | |
| public static class WindowTitleBarSeparator extends Property { | |
| @Native private static final byte SHIFT = NothingToScroll.SHIFT + NothingToScroll.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT); | |
| WindowTitleBarSeparator(final byte value) { | |
| super(focused, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final WindowTitleBarSeparator NO = new WindowTitleBarSeparator(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final WindowTitleBarSeparator YES = new WindowTitleBarSeparator(_yes); | |
| } | |
| public static class WindowClipCorners extends Property { | |
| @Native private static final byte SHIFT = WindowTitleBarSeparator.SHIFT + WindowTitleBarSeparator.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT); | |
| WindowClipCorners(final byte value) { | |
| super(focused, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final WindowClipCorners NO = new WindowClipCorners(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final WindowClipCorners YES = new WindowClipCorners(_yes); | |
| } | |
| public static class ShowArrows extends Property { | |
| @Native private static final byte SHIFT = WindowClipCorners.SHIFT + WindowClipCorners.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding showArrows = new PropertyEncoding(MASK, SHIFT); | |
| ShowArrows(final byte value) { | |
| super(showArrows, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final ShowArrows NO = new ShowArrows(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final ShowArrows YES = new ShowArrows(_yes); | |
| } | |
| public static class BooleanValue extends Property { | |
| @Native private static final byte SHIFT = ShowArrows.SHIFT + ShowArrows.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding booleanValue = new PropertyEncoding(MASK, SHIFT); | |
| BooleanValue(final byte value) { | |
| super(booleanValue, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final BooleanValue NO = new BooleanValue(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final BooleanValue YES = new BooleanValue(_yes); | |
| } | |
| public static class Animating extends Property { | |
| @Native private static final byte SHIFT = BooleanValue.SHIFT + BooleanValue.SIZE; | |
| @Native private static final byte SIZE = 1; | |
| @Native private static final long MASK = (long)0x1 << SHIFT; | |
| private static final PropertyEncoding animating = new PropertyEncoding(MASK, SHIFT); | |
| Animating(final byte value) { | |
| super(animating, value); | |
| } | |
| @Native private static final byte _no = 0; | |
| public static final Animating NO = new Animating(_no); | |
| @Native private static final byte _yes = 1; | |
| public static final Animating YES = new Animating(_yes); | |
| } | |
| public static class Widget extends Property { | |
| @Native private static final byte SHIFT = Animating.SHIFT + Animating.SIZE; | |
| @Native private static final byte SIZE = 7; | |
| @Native private static final long MASK = (long)0x7F << SHIFT; | |
| private static final PropertyEncoding widget = new PropertyEncoding(MASK, SHIFT); | |
| Widget(final byte constant) { | |
| super(widget, constant); | |
| } | |
| @Native private static final byte _background = 1; | |
| public static final Widget BACKGROUND = new Widget(_background); | |
| @Native private static final byte _buttonBevel = _background + 1; | |
| public static final Widget BUTTON_BEVEL = new Widget(_buttonBevel); | |
| @Native private static final byte _buttonBevelInset = _buttonBevel + 1; | |
| public static final Widget BUTTON_BEVEL_INSET = new Widget(_buttonBevelInset); | |
| @Native private static final byte _buttonBevelRound = _buttonBevelInset + 1; | |
| public static final Widget BUTTON_BEVEL_ROUND = new Widget(_buttonBevelRound); | |
| @Native private static final byte _buttonCheckBox = _buttonBevelRound + 1; | |
| public static final Widget BUTTON_CHECK_BOX = new Widget(_buttonCheckBox); | |
| @Native private static final byte _buttonComboBox = _buttonCheckBox + 1; | |
| public static final Widget BUTTON_COMBO_BOX = new Widget(_buttonComboBox); | |
| @Native private static final byte _buttonComboBoxInset = _buttonComboBox + 1; | |
| public static final Widget BUTTON_COMBO_BOX_INSET = new Widget(_buttonComboBoxInset); // not hooked up in JRSUIConstants.m | |
| @Native private static final byte _buttonDisclosure = _buttonComboBoxInset + 1; | |
| public static final Widget BUTTON_DISCLOSURE = new Widget(_buttonDisclosure); | |
| @Native private static final byte _buttonListHeader = _buttonDisclosure + 1; | |
| public static final Widget BUTTON_LIST_HEADER = new Widget(_buttonListHeader); | |
| @Native private static final byte _buttonLittleArrows = _buttonListHeader + 1; | |
| public static final Widget BUTTON_LITTLE_ARROWS = new Widget(_buttonLittleArrows); | |
| @Native private static final byte _buttonPopDown = _buttonLittleArrows + 1; | |
| public static final Widget BUTTON_POP_DOWN = new Widget(_buttonPopDown); | |
| @Native private static final byte _buttonPopDownInset = _buttonPopDown + 1; | |
| public static final Widget BUTTON_POP_DOWN_INSET = new Widget(_buttonPopDownInset); | |
| @Native private static final byte _buttonPopDownSquare = _buttonPopDownInset + 1; | |
| public static final Widget BUTTON_POP_DOWN_SQUARE = new Widget(_buttonPopDownSquare); | |
| @Native private static final byte _buttonPopUp = _buttonPopDownSquare + 1; | |
| public static final Widget BUTTON_POP_UP = new Widget(_buttonPopUp); | |
| @Native private static final byte _buttonPopUpInset = _buttonPopUp + 1; | |
| public static final Widget BUTTON_POP_UP_INSET = new Widget(_buttonPopUpInset); | |
| @Native private static final byte _buttonPopUpSquare = _buttonPopUpInset + 1; | |
| public static final Widget BUTTON_POP_UP_SQUARE = new Widget(_buttonPopUpSquare); | |
| @Native private static final byte _buttonPush = _buttonPopUpSquare + 1; | |
| public static final Widget BUTTON_PUSH = new Widget(_buttonPush); | |
| @Native private static final byte _buttonPushScope = _buttonPush + 1; | |
| public static final Widget BUTTON_PUSH_SCOPE = new Widget(_buttonPushScope); | |
| @Native private static final byte _buttonPushScope2 = _buttonPushScope + 1; | |
| public static final Widget BUTTON_PUSH_SCOPE2 = new Widget(_buttonPushScope2); | |
| @Native private static final byte _buttonPushTextured = _buttonPushScope2 + 1; | |
| public static final Widget BUTTON_PUSH_TEXTURED = new Widget(_buttonPushTextured); | |
| @Native private static final byte _buttonPushInset = _buttonPushTextured + 1; | |
| public static final Widget BUTTON_PUSH_INSET = new Widget(_buttonPushInset); | |
| @Native private static final byte _buttonPushInset2 = _buttonPushInset + 1; | |
| public static final Widget BUTTON_PUSH_INSET2 = new Widget(_buttonPushInset2); | |
| @Native private static final byte _buttonRadio = _buttonPushInset2 + 1; | |
| public static final Widget BUTTON_RADIO = new Widget(_buttonRadio); | |
| @Native private static final byte _buttonRound = _buttonRadio + 1; | |
| public static final Widget BUTTON_ROUND = new Widget(_buttonRound); | |
| @Native private static final byte _buttonRoundHelp = _buttonRound + 1; | |
| public static final Widget BUTTON_ROUND_HELP = new Widget(_buttonRoundHelp); | |
| @Native private static final byte _buttonRoundInset = _buttonRoundHelp + 1; | |
| public static final Widget BUTTON_ROUND_INSET = new Widget(_buttonRoundInset); | |
| @Native private static final byte _buttonRoundInset2 =_buttonRoundInset + 1; | |
| public static final Widget BUTTON_ROUND_INSET2 = new Widget(_buttonRoundInset2); | |
| @Native private static final byte _buttonSearchFieldCancel = _buttonRoundInset2 + 1; | |
| public static final Widget BUTTON_SEARCH_FIELD_CANCEL = new Widget(_buttonSearchFieldCancel); | |
| @Native private static final byte _buttonSearchFieldFind = _buttonSearchFieldCancel + 1; | |
| public static final Widget BUTTON_SEARCH_FIELD_FIND = new Widget(_buttonSearchFieldFind); | |
| @Native private static final byte _buttonSegmented = _buttonSearchFieldFind + 1; | |
| public static final Widget BUTTON_SEGMENTED = new Widget(_buttonSegmented); | |
| @Native private static final byte _buttonSegmentedInset = _buttonSegmented + 1; | |
| public static final Widget BUTTON_SEGMENTED_INSET = new Widget(_buttonSegmentedInset); | |
| @Native private static final byte _buttonSegmentedInset2 = _buttonSegmentedInset + 1; | |
| public static final Widget BUTTON_SEGMENTED_INSET2 = new Widget(_buttonSegmentedInset2); | |
| @Native private static final byte _buttonSegmentedSCurve = _buttonSegmentedInset2 + 1; | |
| public static final Widget BUTTON_SEGMENTED_SCURVE = new Widget(_buttonSegmentedSCurve); | |
| @Native private static final byte _buttonSegmentedTextured = _buttonSegmentedSCurve + 1; | |
| public static final Widget BUTTON_SEGMENTED_TEXTURED = new Widget(_buttonSegmentedTextured); | |
| @Native private static final byte _buttonSegmentedToolbar = _buttonSegmentedTextured + 1; | |
| public static final Widget BUTTON_SEGMENTED_TOOLBAR = new Widget(_buttonSegmentedToolbar); | |
| @Native private static final byte _dial = _buttonSegmentedToolbar + 1; | |
| public static final Widget DIAL = new Widget(_dial); | |
| @Native private static final byte _disclosureTriangle = _dial + 1; | |
| public static final Widget DISCLOSURE_TRIANGLE = new Widget(_disclosureTriangle); | |
| @Native private static final byte _dividerGrabber = _disclosureTriangle + 1; | |
| public static final Widget DIVIDER_GRABBER = new Widget(_dividerGrabber); | |
| @Native private static final byte _dividerSeparatorBar = _dividerGrabber + 1; | |
| public static final Widget DIVIDER_SEPARATOR_BAR = new Widget(_dividerSeparatorBar); | |
| @Native private static final byte _dividerSplitter = _dividerSeparatorBar + 1; | |
| public static final Widget DIVIDER_SPLITTER = new Widget(_dividerSplitter); | |
| @Native private static final byte _focus = _dividerSplitter + 1; | |
| public static final Widget FOCUS = new Widget(_focus); | |
| @Native private static final byte _frameGroupBox = _focus + 1; | |
| public static final Widget FRAME_GROUP_BOX = new Widget(_frameGroupBox); | |
| @Native private static final byte _frameGroupBoxSecondary = _frameGroupBox + 1; | |
| public static final Widget FRAME_GROUP_BOX_SECONDARY = new Widget(_frameGroupBoxSecondary); | |
| @Native private static final byte _frameListBox = _frameGroupBoxSecondary + 1; | |
| public static final Widget FRAME_LIST_BOX = new Widget(_frameListBox); | |
| @Native private static final byte _framePlacard = _frameListBox + 1; | |
| public static final Widget FRAME_PLACARD = new Widget(_framePlacard); | |
| @Native private static final byte _frameTextField = _framePlacard + 1; | |
| public static final Widget FRAME_TEXT_FIELD = new Widget(_frameTextField); | |
| @Native private static final byte _frameTextFieldRound = _frameTextField + 1; | |
| public static final Widget FRAME_TEXT_FIELD_ROUND = new Widget(_frameTextFieldRound); | |
| @Native private static final byte _frameWell = _frameTextFieldRound + 1; | |
| public static final Widget FRAME_WELL = new Widget(_frameWell); | |
| @Native private static final byte _growBox = _frameWell + 1; | |
| public static final Widget GROW_BOX = new Widget(_growBox); | |
| @Native private static final byte _growBoxTextured = _growBox + 1; | |
| public static final Widget GROW_BOX_TEXTURED = new Widget(_growBoxTextured); | |
| @Native private static final byte _gradient = _growBoxTextured + 1; | |
| public static final Widget GRADIENT = new Widget(_gradient); | |
| @Native private static final byte _menu = _gradient + 1; | |
| public static final Widget MENU = new Widget(_menu); | |
| @Native private static final byte _menuItem = _menu + 1; | |
| public static final Widget MENU_ITEM = new Widget(_menuItem); | |
| @Native private static final byte _menuBar = _menuItem + 1; | |
| public static final Widget MENU_BAR = new Widget(_menuBar); | |
| @Native private static final byte _menuTitle = _menuBar + 1; | |
| public static final Widget MENU_TITLE = new Widget(_menuTitle); | |
| @Native private static final byte _progressBar = _menuTitle + 1; | |
| public static final Widget PROGRESS_BAR = new Widget(_progressBar); | |
| @Native private static final byte _progressIndeterminateBar = _progressBar + 1; | |
| public static final Widget PROGRESS_INDETERMINATE_BAR = new Widget(_progressIndeterminateBar); | |
| @Native private static final byte _progressRelevance = _progressIndeterminateBar + 1; | |
| public static final Widget PROGRESS_RELEVANCE = new Widget(_progressRelevance); | |
| @Native private static final byte _progressSpinner = _progressRelevance + 1; | |
| public static final Widget PROGRESS_SPINNER = new Widget(_progressSpinner); | |
| @Native private static final byte _scrollBar = _progressSpinner + 1; | |
| public static final Widget SCROLL_BAR = new Widget(_scrollBar); | |
| @Native private static final byte _scrollColumnSizer = _scrollBar + 1; | |
| public static final Widget SCROLL_COLUMN_SIZER = new Widget(_scrollColumnSizer); | |
| @Native private static final byte _slider = _scrollColumnSizer + 1; | |
| public static final Widget SLIDER = new Widget(_slider); | |
| @Native private static final byte _sliderThumb = _slider + 1; | |
| public static final Widget SLIDER_THUMB = new Widget(_sliderThumb); | |
| @Native private static final byte _synchronization = _sliderThumb + 1; | |
| public static final Widget SYNCHRONIZATION = new Widget(_synchronization); | |
| @Native private static final byte _tab = _synchronization + 1; | |
| public static final Widget TAB = new Widget(_tab); | |
| @Native private static final byte _titleBarCloseBox = _tab + 1; | |
| public static final Widget TITLE_BAR_CLOSE_BOX = new Widget(_titleBarCloseBox); | |
| @Native private static final byte _titleBarCollapseBox = _titleBarCloseBox + 1; | |
| public static final Widget TITLE_BAR_COLLAPSE_BOX = new Widget(_titleBarCollapseBox); | |
| @Native private static final byte _titleBarZoomBox = _titleBarCollapseBox + 1; | |
| public static final Widget TITLE_BAR_ZOOM_BOX = new Widget(_titleBarZoomBox); | |
| @Native private static final byte _titleBarToolbarButton = _titleBarZoomBox + 1; | |
| public static final Widget TITLE_BAR_TOOLBAR_BUTTON = new Widget(_titleBarToolbarButton); | |
| @Native private static final byte _toolbarItemWell = _titleBarToolbarButton + 1; | |
| public static final Widget TOOLBAR_ITEM_WELL = new Widget(_toolbarItemWell); | |
| @Native private static final byte _windowFrame = _toolbarItemWell + 1; | |
| public static final Widget WINDOW_FRAME = new Widget(_windowFrame); | |
| } | |
| public static class Hit { | |
| @Native private static final int _unknown = -1; | |
| public static final Hit UNKNOWN = new Hit(_unknown); | |
| @Native private static final int _none = 0; | |
| public static final Hit NONE = new Hit(_none); | |
| @Native private static final int _hit = 1; | |
| public static final Hit HIT = new Hit(_hit); | |
| final int hit; | |
| Hit(final int hit) { this.hit = hit; } | |
| public boolean isHit() { | |
| return hit > 0; | |
| } | |
| private String getConstantName(Hit hit) { | |
| if (hit == UNKNOWN) { | |
| return "UNKNOWN"; | |
| } else if (hit == NONE) { | |
| return "NONE"; | |
| } else if (hit == HIT) { | |
| return "HIT"; | |
| } | |
| return getClass().getSimpleName(); | |
| } | |
| public String toString() { | |
| return getConstantName(this); | |
| } | |
| } | |
| public static class ScrollBarHit extends Hit { | |
| @Native private static final int _thumb = 2; | |
| public static final ScrollBarHit THUMB = new ScrollBarHit(_thumb); | |
| @Native private static final int _trackMin = 3; | |
| public static final ScrollBarHit TRACK_MIN = new ScrollBarHit(_trackMin); | |
| @Native private static final int _trackMax = 4; | |
| public static final ScrollBarHit TRACK_MAX = new ScrollBarHit(_trackMax); | |
| @Native private static final int _arrowMin = 5; | |
| public static final ScrollBarHit ARROW_MIN = new ScrollBarHit(_arrowMin); | |
| @Native private static final int _arrowMax = 6; | |
| public static final ScrollBarHit ARROW_MAX = new ScrollBarHit(_arrowMax); | |
| @Native private static final int _arrowMaxInside = 7; | |
| public static final ScrollBarHit ARROW_MAX_INSIDE = new ScrollBarHit(_arrowMaxInside); | |
| @Native private static final int _arrowMinInside = 8; | |
| public static final ScrollBarHit ARROW_MIN_INSIDE = new ScrollBarHit(_arrowMinInside); | |
| ScrollBarHit(final int hit) { super(hit); } | |
| } | |
| static Hit getHit(final int hit) { | |
| switch (hit) { | |
| case Hit._none: | |
| return Hit.NONE; | |
| case Hit._hit: | |
| return Hit.HIT; | |
| case ScrollBarHit._thumb: | |
| return ScrollBarHit.THUMB; | |
| case ScrollBarHit._trackMin: | |
| return ScrollBarHit.TRACK_MIN; | |
| case ScrollBarHit._trackMax: | |
| return ScrollBarHit.TRACK_MAX; | |
| case ScrollBarHit._arrowMin: | |
| return ScrollBarHit.ARROW_MIN; | |
| case ScrollBarHit._arrowMax: | |
| return ScrollBarHit.ARROW_MAX; | |
| case ScrollBarHit._arrowMaxInside: | |
| return ScrollBarHit.ARROW_MAX_INSIDE; | |
| case ScrollBarHit._arrowMinInside: | |
| return ScrollBarHit.ARROW_MIN_INSIDE; | |
| } | |
| return Hit.UNKNOWN; | |
| } | |
| } |