src/macosx/classes/apple/laf/JRSUIConstants.java

Print this page


   1 /*
   2  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package apple.laf;
  27 
  28 import java.lang.reflect.Field;
  29 import java.nio.ByteBuffer;
  30 
  31 import javax.tools.annotation.GenerateNativeHeader;
  32 
  33 public final class JRSUIConstants {
  34     private static native long getPtrForConstant(final int constant);
  35 
  36     /* No native methods here, but the constants are needed in the supporting JNI code */
  37     @GenerateNativeHeader
  38     static class Key {
  39         protected static final int _value = 20;
  40         public static final Key VALUE = new Key(_value);
  41 
  42         protected static final int _thumbProportion = 24;
  43         public static final Key THUMB_PROPORTION = new Key(_thumbProportion);
  44 
  45         protected static final int _thumbStart = 25;
  46         public static final Key THUMB_START = new Key(_thumbStart);
  47 
  48         protected static final int _windowTitleBarHeight = 28;
  49         public static final Key WINDOW_TITLE_BAR_HEIGHT = new Key(_windowTitleBarHeight);
  50 
  51         protected static final int _animationFrame = 23;
  52         public static final Key ANIMATION_FRAME = new Key(_animationFrame);
  53 
  54         final int constant;
  55         private long ptr;
  56 
  57         private Key(final int constant) {
  58             this.constant = constant;
  59         }
  60 
  61         long getConstantPtr() {
  62             if (ptr != 0) return ptr;
  63             ptr = getPtrForConstant(constant);
  64             if (ptr != 0) return ptr;
  65             throw new RuntimeException("Constant not implemented in native: " + this);
  66         }
  67 
  68         public String toString() {
  69             return getConstantName(this) + (ptr == 0 ? "(unlinked)" : "");
  70         }
  71     }
  72 
  73     /* No native methods here, but the constants are needed in the supporting JNI code */
  74     @GenerateNativeHeader
  75     static class DoubleValue {
  76         protected static final byte TYPE_CODE = 1;
  77 
  78         final double doubleValue;
  79 
  80         DoubleValue(final double doubleValue) {
  81             this.doubleValue = doubleValue;
  82         }
  83 
  84         public byte getTypeCode() {
  85             return TYPE_CODE;
  86         }
  87 
  88         public void putValueInBuffer(final ByteBuffer buffer) {
  89             buffer.putDouble(doubleValue);
  90         }
  91 
  92         public boolean equals(final Object obj) {
  93             return (obj instanceof DoubleValue) && (((DoubleValue)obj).doubleValue == doubleValue);
  94         }
  95 
  96         public int hashCode() {


 122         Property(final PropertyEncoding encoding, final byte ordinal) {
 123             this.encoding = encoding;
 124             this.value = ((long)ordinal) << encoding.shift;
 125             this.ordinal = ordinal;
 126         }
 127 
 128         /**
 129          * Applies this property value to the provided state
 130          * @param encodedState the incoming JRSUI encoded state
 131          * @return the composite of the provided JRSUI encoded state and this value
 132          */
 133         public long apply(final long encodedState) {
 134             return (encodedState & ~encoding.mask) | value;
 135         }
 136 
 137         public String toString() {
 138             return getConstantName(this);
 139         }
 140     }
 141 
 142     /* No native methods here, but the constants are needed in the supporting JNI code */
 143     @GenerateNativeHeader
 144     public static class Size extends Property {
 145         private static final byte SHIFT = 0;
 146         private static final byte SIZE = 3;
 147         private static final long MASK = (long)0x7 << SHIFT;
 148         private static final PropertyEncoding size = new PropertyEncoding(MASK, SHIFT);
 149 
 150         Size(final byte value) {
 151             super(size, value);
 152         }
 153 
 154         private static final byte _mini = 1;
 155         public static final Size MINI = new Size(_mini);
 156         private static final byte _small = 2;
 157         public static final Size SMALL = new Size(_small);
 158         private static final byte _regular = 3;
 159         public static final Size REGULAR = new Size(_regular);
 160         private static final byte _large = 4;
 161         public static final Size LARGE = new Size(_large);
 162     }
 163 
 164     /* No native methods here, but the constants are needed in the supporting JNI code */
 165     @GenerateNativeHeader
 166     public static class State extends Property {
 167         private static final byte SHIFT = Size.SHIFT + Size.SIZE;
 168         private static final byte SIZE = 4;
 169         private static final long MASK = (long)0xF << SHIFT;
 170         private static final PropertyEncoding state = new PropertyEncoding(MASK, SHIFT);
 171 
 172         State(final byte value) {
 173             super(state, value);
 174         }
 175 
 176         private static final byte _active = 1;
 177         public static final State ACTIVE = new State(_active);
 178         private static final byte _inactive = 2;
 179         public static final State INACTIVE = new State(_inactive);
 180         private static final byte _disabled = 3;
 181         public static final State DISABLED = new State(_disabled);
 182         private static final byte _pressed = 4;
 183         public static final State PRESSED = new State(_pressed);
 184         private static final byte _pulsed = 5;
 185         public static final State PULSED = new State(_pulsed);
 186         private static final byte _rollover = 6;
 187         public static final State ROLLOVER = new State(_rollover);
 188         private static final byte _drag = 7;
 189         public static final State DRAG = new State(_drag);
 190     }
 191 
 192     /* No native methods here, but the constants are needed in the supporting JNI code */
 193     @GenerateNativeHeader
 194     public static class Direction extends Property {
 195         private static final byte SHIFT = State.SHIFT + State.SIZE;
 196         private static final byte SIZE = 4;
 197         private static final long MASK = (long)0xF << SHIFT;
 198         private static final PropertyEncoding direction = new PropertyEncoding(MASK, SHIFT);
 199 
 200         Direction(final byte value) {
 201             super(direction, value);
 202         }
 203 
 204         private static final byte _none = 1;
 205         public static final Direction NONE = new Direction(_none);
 206         private static final byte _up = 2;
 207         public static final Direction UP = new Direction(_up);
 208         private static final byte _down = 3;
 209         public static final Direction DOWN = new Direction(_down);
 210         private static final byte _left = 4;
 211         public static final Direction LEFT = new Direction(_left);
 212         private static final byte _right = 5;
 213         public static final Direction RIGHT = new Direction(_right);
 214         private static final byte _north = 6;
 215         public static final Direction NORTH = new Direction(_north);
 216         private static final byte _south = 7;
 217         public static final Direction SOUTH = new Direction(_south);
 218         private static final byte _east = 8;
 219         public static final Direction EAST = new Direction(_east);
 220         private static final byte _west = 9;
 221         public static final Direction WEST = new Direction(_west);
 222     }
 223 
 224     /* No native methods here, but the constants are needed in the supporting JNI code */
 225     @GenerateNativeHeader
 226     public static class Orientation extends Property {
 227         private static final byte SHIFT = Direction.SHIFT + Direction.SIZE;
 228         private static final byte SIZE = 2;
 229         private static final long MASK = (long)0x3 << SHIFT;
 230         private static final PropertyEncoding orientation = new PropertyEncoding(MASK, SHIFT);
 231 
 232         Orientation(final byte value) {
 233             super(orientation, value);
 234         }
 235 
 236         private static final byte _horizontal = 1;
 237         public static final Orientation HORIZONTAL = new Orientation(_horizontal);
 238         private static final byte _vertical = 2;
 239         public static final Orientation VERTICAL = new Orientation(_vertical);
 240     }
 241 
 242     /* No native methods here, but the constants are needed in the supporting JNI code */
 243     @GenerateNativeHeader
 244     public static class AlignmentVertical extends Property {
 245         private static final byte SHIFT = Orientation.SHIFT + Orientation.SIZE;
 246         private static final byte SIZE = 2;
 247         private static final long MASK = (long)0x3 << SHIFT;
 248         private static final PropertyEncoding alignmentVertical = new PropertyEncoding(MASK, SHIFT);
 249 
 250         AlignmentVertical(final byte value){
 251             super(alignmentVertical, value);
 252         }
 253 
 254         private static final byte _top = 1;
 255         public static final AlignmentVertical TOP = new AlignmentVertical(_top);
 256         private static final byte _center = 2;
 257         public static final AlignmentVertical CENTER = new AlignmentVertical(_center);
 258         private static final byte _bottom = 3;
 259         public static final AlignmentVertical BOTTOM = new AlignmentVertical(_bottom);
 260     }
 261 
 262     /* No native methods here, but the constants are needed in the supporting JNI code */
 263     @GenerateNativeHeader
 264     public static class AlignmentHorizontal extends Property {
 265         private static final byte SHIFT = AlignmentVertical.SHIFT + AlignmentVertical.SIZE;
 266         private static final byte SIZE = 2;
 267         private static final long MASK = (long)0x3 << SHIFT;
 268         private static final PropertyEncoding alignmentHorizontal = new PropertyEncoding(MASK, SHIFT);
 269 
 270         AlignmentHorizontal(final byte value){
 271             super(alignmentHorizontal, value);
 272         }
 273 
 274         private static final byte _left = 1;
 275         public static final AlignmentHorizontal LEFT = new AlignmentHorizontal(_left);
 276         private static final byte _center =  2;
 277         public static final AlignmentHorizontal CENTER = new AlignmentHorizontal(_center);
 278         private static final byte _right = 3;
 279         public static final AlignmentHorizontal RIGHT = new AlignmentHorizontal(_right);
 280     }
 281 
 282     /* No native methods here, but the constants are needed in the supporting JNI code */
 283     @GenerateNativeHeader
 284     public static class SegmentPosition extends Property {
 285         private static final byte SHIFT = AlignmentHorizontal.SHIFT + AlignmentHorizontal.SIZE;
 286         private static final byte SIZE = 3;
 287         private static final long MASK = (long)0x7 << SHIFT;
 288         private static final PropertyEncoding segmentPosition = new PropertyEncoding(MASK, SHIFT);
 289 
 290         SegmentPosition(final byte value) {
 291             super(segmentPosition, value);
 292         }
 293 
 294         private static final byte _first = 1;
 295         public static final SegmentPosition FIRST = new SegmentPosition(_first);
 296         private static final byte _middle = 2;
 297         public static final SegmentPosition MIDDLE = new SegmentPosition(_middle);
 298         private static final byte _last = 3;
 299         public static final SegmentPosition LAST = new SegmentPosition(_last);
 300         private static final byte _only = 4;
 301         public static final SegmentPosition ONLY = new SegmentPosition(_only);
 302     }
 303 
 304     /* No native methods here, but the constants are needed in the supporting JNI code */
 305     @GenerateNativeHeader
 306     public static class ScrollBarPart extends Property {
 307         private static final byte SHIFT = SegmentPosition.SHIFT + SegmentPosition.SIZE;
 308         private static final byte SIZE = 4;
 309         private static final long MASK = (long)0xF << SHIFT;
 310         private static final PropertyEncoding scrollBarPart = new PropertyEncoding(MASK, SHIFT);
 311 
 312         ScrollBarPart(final byte value) {
 313             super(scrollBarPart, value);
 314         }
 315 
 316         private static final byte _none = 1;
 317         public static final ScrollBarPart NONE = new ScrollBarPart(_none);
 318         private static final byte _thumb = 2;
 319         public static final ScrollBarPart THUMB = new ScrollBarPart(_thumb);
 320         private static final byte _arrowMin = 3;
 321         public static final ScrollBarPart ARROW_MIN = new ScrollBarPart(_arrowMin);
 322         private static final byte _arrowMax = 4;
 323         public static final ScrollBarPart ARROW_MAX = new ScrollBarPart(_arrowMax);
 324         private static final byte _arrowMaxInside = 5;
 325         public static final ScrollBarPart ARROW_MAX_INSIDE = new ScrollBarPart(_arrowMaxInside);
 326         private static final byte _arrowMinInside = 6;
 327         public static final ScrollBarPart ARROW_MIN_INSIDE = new ScrollBarPart(_arrowMinInside);
 328         private static final byte _trackMin = 7;
 329         public static final ScrollBarPart TRACK_MIN = new ScrollBarPart(_trackMin);
 330         private static final byte _trackMax = 8;
 331         public static final ScrollBarPart TRACK_MAX = new ScrollBarPart(_trackMax);
 332     }
 333 
 334     /* No native methods here, but the constants are needed in the supporting JNI code */
 335     @GenerateNativeHeader
 336     public static class Variant extends Property {
 337         private static final byte SHIFT = ScrollBarPart.SHIFT + ScrollBarPart.SIZE;
 338         private static final byte SIZE = 4;
 339         private static final long MASK = (long)0xF << SHIFT;
 340         private static final PropertyEncoding variant = new PropertyEncoding(MASK, SHIFT);
 341 
 342         Variant(final byte value) {
 343             super(variant, value);
 344         }
 345 
 346         private static final byte _menuGlyph = 1;
 347         public static final Variant MENU_GLYPH = new Variant(_menuGlyph);
 348         private static final byte _menuPopup = Variant._menuGlyph + 1;
 349         public static final Variant MENU_POPUP = new Variant(_menuPopup);
 350         private static final byte _menuPulldown = Variant._menuPopup + 1;
 351         public static final Variant MENU_PULLDOWN = new Variant(_menuPulldown);
 352         private static final byte _menuHierarchical = Variant._menuPulldown + 1;
 353         public static final Variant MENU_HIERARCHICAL = new Variant(_menuHierarchical);
 354 
 355         private static final byte _gradientListBackgroundEven = Variant._menuHierarchical + 1;
 356         public static final Variant GRADIENT_LIST_BACKGROUND_EVEN = new Variant(_gradientListBackgroundEven);
 357         private static final byte _gradientListBackgroundOdd = Variant._gradientListBackgroundEven + 1;
 358         public static final Variant GRADIENT_LIST_BACKGROUND_ODD = new Variant(_gradientListBackgroundOdd);
 359         private static final byte _gradientSideBar = Variant._gradientListBackgroundOdd + 1;
 360         public static final Variant GRADIENT_SIDE_BAR = new Variant(_gradientSideBar);
 361         private static final byte _gradientSideBarSelection = Variant._gradientSideBar + 1;
 362         public static final Variant GRADIENT_SIDE_BAR_SELECTION = new Variant(_gradientSideBarSelection);
 363         private static final byte _gradientSideBarFocusedSelection = Variant._gradientSideBarSelection + 1;
 364         public static final Variant GRADIENT_SIDE_BAR_FOCUSED_SELECTION = new Variant(_gradientSideBarFocusedSelection);
 365     }
 366 
 367     /* No native methods here, but the constants are needed in the supporting JNI code */
 368     @GenerateNativeHeader
 369     public static class WindowType extends Property {
 370         private static final byte SHIFT = Variant.SHIFT + Variant.SIZE;
 371         private static final byte SIZE = 2;
 372         private static final long MASK = (long)0x3 << SHIFT;
 373         private static final PropertyEncoding windowType = new PropertyEncoding(MASK, SHIFT);
 374 
 375         WindowType(final byte value){
 376             super(windowType, value);
 377         }
 378 
 379         private static final byte _document = 1;
 380         public static final WindowType DOCUMENT = new WindowType(_document);
 381         private static final byte _utility = 2;
 382         public static final WindowType UTILITY = new WindowType(_utility);
 383         private static final byte _titlelessUtility = 3;
 384         public static final WindowType TITLELESS_UTILITY = new WindowType(_titlelessUtility);
 385     }
 386 
 387     /* No native methods here, but the constants are needed in the supporting JNI code */
 388     @GenerateNativeHeader
 389     public static class Focused extends Property {
 390         private static final byte SHIFT = WindowType.SHIFT + WindowType.SIZE;
 391         private static final byte SIZE = 1;
 392         private static final long MASK = (long)0x1 << SHIFT;
 393         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 394 
 395         Focused(final byte value) {
 396             super(focused, value);
 397         }
 398 
 399         private static final byte _no = 0;
 400         public static final Focused NO = new Focused(_no);
 401         private static final byte _yes = 1;
 402         public static final Focused YES = new Focused(_yes);
 403     }
 404 
 405     /* No native methods here, but the constants are needed in the supporting JNI code */
 406     @GenerateNativeHeader
 407     public static class IndicatorOnly extends Property {
 408         private static final byte SHIFT = Focused.SHIFT + Focused.SIZE;
 409         private static final byte SIZE = 1;
 410         private static final long MASK = (long)0x1 << SHIFT;
 411         private static final PropertyEncoding indicatorOnly = new PropertyEncoding(MASK, SHIFT);
 412 
 413         IndicatorOnly(final byte value) {
 414             super(indicatorOnly, value);
 415         }
 416 
 417         private static final byte _no = 0;
 418         public static final IndicatorOnly NO = new IndicatorOnly(_no);
 419         private static final byte _yes = 1;
 420         public static final IndicatorOnly YES = new IndicatorOnly(_yes);
 421     }
 422 
 423     /* No native methods here, but the constants are needed in the supporting JNI code */
 424     @GenerateNativeHeader
 425     public static class NoIndicator extends Property {
 426         private static final byte SHIFT = IndicatorOnly.SHIFT + IndicatorOnly.SIZE;
 427         private static final byte SIZE = 1;
 428         private static final long MASK = (long)0x1 << SHIFT;
 429         private static final PropertyEncoding noIndicator = new PropertyEncoding(MASK, SHIFT);
 430 
 431         NoIndicator(final byte value) {
 432             super(noIndicator, value);
 433         }
 434 
 435         private static final byte _no = 0;
 436         public static final NoIndicator NO = new NoIndicator(_no);
 437         private static final byte _yes = 1;
 438         public static final NoIndicator YES = new NoIndicator(_yes);
 439     }
 440 
 441     /* No native methods here, but the constants are needed in the supporting JNI code */
 442     @GenerateNativeHeader
 443     public static class ArrowsOnly extends Property {
 444         private static final byte SHIFT = NoIndicator.SHIFT + NoIndicator.SIZE;
 445         private static final byte SIZE = 1;
 446         private static final long MASK = (long)0x1 << SHIFT;
 447         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 448 
 449         ArrowsOnly(final byte value) {
 450             super(focused, value);
 451         }
 452 
 453         private static final byte _no = 0;
 454         public static final ArrowsOnly NO = new ArrowsOnly(_no);
 455         private static final byte _yes = 1;
 456         public static final ArrowsOnly YES = new ArrowsOnly(_yes);
 457     }
 458 
 459     /* No native methods here, but the constants are needed in the supporting JNI code */
 460     @GenerateNativeHeader
 461     public static class FrameOnly extends Property {
 462         private static final byte SHIFT = ArrowsOnly.SHIFT + ArrowsOnly.SIZE;
 463         private static final byte SIZE = 1;
 464         private static final long MASK = (long)0x1 << SHIFT;
 465         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 466 
 467         FrameOnly(final byte value) {
 468             super(focused, value);
 469         }
 470 
 471         private static final byte _no = 0;
 472         public static final FrameOnly NO = new FrameOnly(_no);
 473         private static final byte _yes = 1;
 474         public static final FrameOnly YES = new FrameOnly(_yes);
 475     }
 476 
 477     /* No native methods here, but the constants are needed in the supporting JNI code */
 478     @GenerateNativeHeader
 479     public static class SegmentTrailingSeparator extends Property {
 480         private static final byte SHIFT = FrameOnly.SHIFT + FrameOnly.SIZE;
 481         private static final byte SIZE = 1;
 482         private static final long MASK = (long)0x1 << SHIFT;
 483         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 484 
 485         SegmentTrailingSeparator(final byte value) {
 486             super(focused, value);
 487         }
 488 
 489         private static final byte _no = 0;
 490         public static final SegmentTrailingSeparator NO = new SegmentTrailingSeparator(_no);
 491         private static final byte _yes = 1;
 492         public static final SegmentTrailingSeparator YES = new SegmentTrailingSeparator(_yes);
 493     }
 494 
 495     /* No native methods here, but the constants are needed in the supporting JNI code */
 496     @GenerateNativeHeader
 497     public static class SegmentLeadingSeparator extends Property {
 498         private static final byte SHIFT = SegmentTrailingSeparator.SHIFT + SegmentTrailingSeparator.SIZE;
 499         private static final byte SIZE = 1;
 500         private static final long MASK = (long)0x1 << SHIFT;
 501         private static final PropertyEncoding leadingSeparator = new PropertyEncoding(MASK, SHIFT);
 502 
 503         SegmentLeadingSeparator(final byte value) {
 504             super(leadingSeparator, value);
 505         }
 506 
 507         private static final byte _no = 0;
 508         public static final SegmentLeadingSeparator NO = new SegmentLeadingSeparator(_no);
 509         private static final byte _yes = 1;
 510         public static final SegmentLeadingSeparator YES = new SegmentLeadingSeparator(_yes);
 511     }
 512 
 513     /* No native methods here, but the constants are needed in the supporting JNI code */
 514     @GenerateNativeHeader
 515     public static class NothingToScroll extends Property {
 516         private static final byte SHIFT = SegmentLeadingSeparator.SHIFT + SegmentLeadingSeparator.SIZE;
 517         private static final byte SIZE = 1;
 518         private static final long MASK = (long)0x1 << SHIFT;
 519         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 520 
 521         NothingToScroll(final byte value) {
 522             super(focused, value);
 523         }
 524 
 525         private static final byte _no = 0;
 526         public static final NothingToScroll NO = new NothingToScroll(_no);
 527         private static final byte _yes = 1;
 528         public static final NothingToScroll YES = new NothingToScroll(_yes);
 529     }
 530 
 531     /* No native methods here, but the constants are needed in the supporting JNI code */
 532     @GenerateNativeHeader
 533     public static class WindowTitleBarSeparator extends Property {
 534         private static final byte SHIFT = NothingToScroll.SHIFT + NothingToScroll.SIZE;
 535         private static final byte SIZE = 1;
 536         private static final long MASK = (long)0x1 << SHIFT;
 537         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 538 
 539         WindowTitleBarSeparator(final byte value) {
 540             super(focused, value);
 541         }
 542 
 543         private static final byte _no = 0;
 544         public static final WindowTitleBarSeparator NO = new WindowTitleBarSeparator(_no);
 545         private static final byte _yes = 1;
 546         public static final WindowTitleBarSeparator YES = new WindowTitleBarSeparator(_yes);
 547     }
 548 
 549     /* No native methods here, but the constants are needed in the supporting JNI code */
 550     @GenerateNativeHeader
 551     public static class WindowClipCorners extends Property {
 552         private static final byte SHIFT = WindowTitleBarSeparator.SHIFT + WindowTitleBarSeparator.SIZE;
 553         private static final byte SIZE = 1;
 554         private static final long MASK = (long)0x1 << SHIFT;
 555         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 556 
 557         WindowClipCorners(final byte value) {
 558             super(focused, value);
 559         }
 560 
 561         private static final byte _no = 0;
 562         public static final WindowClipCorners NO = new WindowClipCorners(_no);
 563         private static final byte _yes = 1;
 564         public static final WindowClipCorners YES = new WindowClipCorners(_yes);
 565     }
 566 
 567     /* No native methods here, but the constants are needed in the supporting JNI code */
 568     @GenerateNativeHeader
 569     public static class ShowArrows extends Property {
 570         private static final byte SHIFT = WindowClipCorners.SHIFT + WindowClipCorners.SIZE;
 571         private static final byte SIZE = 1;
 572         private static final long MASK = (long)0x1 << SHIFT;
 573         private static final PropertyEncoding showArrows = new PropertyEncoding(MASK, SHIFT);
 574 
 575         ShowArrows(final byte value) {
 576             super(showArrows, value);
 577         }
 578 
 579         private static final byte _no = 0;
 580         public static final ShowArrows NO = new ShowArrows(_no);
 581         private static final byte _yes = 1;
 582         public static final ShowArrows YES = new ShowArrows(_yes);
 583     }
 584 
 585     /* No native methods here, but the constants are needed in the supporting JNI code */
 586     @GenerateNativeHeader
 587     public static class BooleanValue extends Property {
 588         private static final byte SHIFT = ShowArrows.SHIFT + ShowArrows.SIZE;
 589         private static final byte SIZE = 1;
 590         private static final long MASK = (long)0x1 << SHIFT;
 591         private static final PropertyEncoding booleanValue = new PropertyEncoding(MASK, SHIFT);
 592 
 593         BooleanValue(final byte value) {
 594             super(booleanValue, value);
 595         }
 596 
 597         private static final byte _no = 0;
 598         public static final BooleanValue NO = new BooleanValue(_no);
 599         private static final byte _yes = 1;
 600         public static final BooleanValue YES = new BooleanValue(_yes);
 601     }
 602 
 603     /* No native methods here, but the constants are needed in the supporting JNI code */
 604     @GenerateNativeHeader
 605     public static class Animating extends Property {
 606         private static final byte SHIFT = BooleanValue.SHIFT + BooleanValue.SIZE;
 607         private static final byte SIZE = 1;
 608         private static final long MASK = (long)0x1 << SHIFT;
 609         private static final PropertyEncoding animating = new PropertyEncoding(MASK, SHIFT);
 610 
 611         Animating(final byte value) {
 612             super(animating, value);
 613         }
 614 
 615         private static final byte _no = 0;
 616         public static final Animating NO = new Animating(_no);
 617         private static final byte _yes = 1;
 618         public static final Animating YES = new Animating(_yes);
 619     }
 620 
 621     /* No native methods here, but the constants are needed in the supporting JNI code */
 622     @GenerateNativeHeader
 623     public static class Widget extends Property {
 624         private static final byte SHIFT = Animating.SHIFT + Animating.SIZE;
 625         private static final byte SIZE = 7;
 626         private static final long MASK = (long)0x7F << SHIFT;
 627         private static final PropertyEncoding widget = new PropertyEncoding(MASK, SHIFT);
 628 
 629         Widget(final byte constant) {
 630             super(widget, constant);
 631         }
 632 
 633         private static final byte _background = 1;
 634         public static final Widget BACKGROUND = new Widget(_background);
 635 
 636         private static final byte _buttonBevel = _background + 1;
 637         public static final Widget BUTTON_BEVEL = new Widget(_buttonBevel);
 638         private static final byte _buttonBevelInset = _buttonBevel + 1;
 639         public static final Widget BUTTON_BEVEL_INSET = new Widget(_buttonBevelInset);
 640         private static final byte _buttonBevelRound = _buttonBevelInset + 1;
 641         public static final Widget BUTTON_BEVEL_ROUND = new Widget(_buttonBevelRound);
 642 
 643         private static final byte _buttonCheckBox = _buttonBevelRound + 1;
 644         public static final Widget BUTTON_CHECK_BOX = new Widget(_buttonCheckBox);
 645 
 646         private static final byte _buttonComboBox = _buttonCheckBox + 1;
 647         public static final Widget BUTTON_COMBO_BOX = new Widget(_buttonComboBox);
 648         private static final byte _buttonComboBoxInset = _buttonComboBox + 1;
 649         public static final Widget BUTTON_COMBO_BOX_INSET = new Widget(_buttonComboBoxInset); // not hooked up in JRSUIConstants.m
 650 
 651         private static final byte _buttonDisclosure = _buttonComboBoxInset + 1;
 652         public static final Widget BUTTON_DISCLOSURE = new Widget(_buttonDisclosure);
 653 
 654         private static final byte _buttonListHeader = _buttonDisclosure + 1;
 655         public static final Widget BUTTON_LIST_HEADER = new Widget(_buttonListHeader);
 656 
 657         private static final byte _buttonLittleArrows = _buttonListHeader + 1;
 658         public static final Widget BUTTON_LITTLE_ARROWS = new Widget(_buttonLittleArrows);
 659 
 660         private static final byte _buttonPopDown = _buttonLittleArrows + 1;
 661         public static final Widget BUTTON_POP_DOWN = new Widget(_buttonPopDown);
 662         private static final byte _buttonPopDownInset = _buttonPopDown + 1;
 663         public static final Widget BUTTON_POP_DOWN_INSET = new Widget(_buttonPopDownInset);
 664         private static final byte _buttonPopDownSquare = _buttonPopDownInset + 1;
 665         public static final Widget BUTTON_POP_DOWN_SQUARE = new Widget(_buttonPopDownSquare);
 666 
 667         private static final byte _buttonPopUp = _buttonPopDownSquare + 1;
 668         public static final Widget BUTTON_POP_UP = new Widget(_buttonPopUp);
 669         private static final byte _buttonPopUpInset = _buttonPopUp + 1;
 670         public static final Widget BUTTON_POP_UP_INSET = new Widget(_buttonPopUpInset);
 671         private static final byte _buttonPopUpSquare = _buttonPopUpInset + 1;
 672         public static final Widget BUTTON_POP_UP_SQUARE = new Widget(_buttonPopUpSquare);
 673 
 674         private static final byte _buttonPush = _buttonPopUpSquare + 1;
 675         public static final Widget BUTTON_PUSH = new Widget(_buttonPush);
 676         private static final byte _buttonPushScope = _buttonPush + 1;
 677         public static final Widget BUTTON_PUSH_SCOPE = new Widget(_buttonPushScope);
 678         private static final byte _buttonPushScope2 = _buttonPushScope + 1;
 679         public static final Widget BUTTON_PUSH_SCOPE2 = new Widget(_buttonPushScope2);
 680         private static final byte _buttonPushTextured = _buttonPushScope2 + 1;
 681         public static final Widget BUTTON_PUSH_TEXTURED = new Widget(_buttonPushTextured);
 682         private static final byte _buttonPushInset = _buttonPushTextured + 1;
 683         public static final Widget BUTTON_PUSH_INSET = new Widget(_buttonPushInset);
 684         private static final byte _buttonPushInset2 = _buttonPushInset + 1;
 685         public static final Widget BUTTON_PUSH_INSET2 = new Widget(_buttonPushInset2);
 686 
 687         private static final byte _buttonRadio = _buttonPushInset2 + 1;
 688         public static final Widget BUTTON_RADIO = new Widget(_buttonRadio);
 689 
 690         private static final byte _buttonRound = _buttonRadio + 1;
 691         public static final Widget BUTTON_ROUND = new Widget(_buttonRound);
 692         private static final byte _buttonRoundHelp = _buttonRound + 1;
 693         public static final Widget BUTTON_ROUND_HELP = new Widget(_buttonRoundHelp);
 694         private static final byte _buttonRoundInset = _buttonRoundHelp + 1;
 695         public static final Widget BUTTON_ROUND_INSET = new Widget(_buttonRoundInset);
 696         private static final byte _buttonRoundInset2 =_buttonRoundInset + 1;
 697         public static final Widget BUTTON_ROUND_INSET2 = new Widget(_buttonRoundInset2);
 698 
 699         private static final byte _buttonSearchFieldCancel = _buttonRoundInset2 + 1;
 700         public static final Widget BUTTON_SEARCH_FIELD_CANCEL = new Widget(_buttonSearchFieldCancel);
 701         private static final byte _buttonSearchFieldFind = _buttonSearchFieldCancel + 1;
 702         public static final Widget BUTTON_SEARCH_FIELD_FIND = new Widget(_buttonSearchFieldFind);
 703 
 704         private static final byte _buttonSegmented = _buttonSearchFieldFind + 1;
 705         public static final Widget BUTTON_SEGMENTED = new Widget(_buttonSegmented);
 706         private static final byte _buttonSegmentedInset = _buttonSegmented + 1;
 707         public static final Widget BUTTON_SEGMENTED_INSET = new Widget(_buttonSegmentedInset);
 708         private static final byte _buttonSegmentedInset2 = _buttonSegmentedInset + 1;
 709         public static final Widget BUTTON_SEGMENTED_INSET2 = new Widget(_buttonSegmentedInset2);
 710         private static final byte _buttonSegmentedSCurve = _buttonSegmentedInset2 + 1;
 711         public static final Widget BUTTON_SEGMENTED_SCURVE = new Widget(_buttonSegmentedSCurve);
 712         private static final byte _buttonSegmentedTextured = _buttonSegmentedSCurve + 1;
 713         public static final Widget BUTTON_SEGMENTED_TEXTURED = new Widget(_buttonSegmentedTextured);
 714         private static final byte _buttonSegmentedToolbar = _buttonSegmentedTextured + 1;
 715         public static final Widget BUTTON_SEGMENTED_TOOLBAR = new Widget(_buttonSegmentedToolbar);
 716 
 717         private static final byte _dial = _buttonSegmentedToolbar + 1;
 718         public static final Widget DIAL = new Widget(_dial);
 719 
 720         private static final byte _disclosureTriangle = _dial + 1;
 721         public static final Widget DISCLOSURE_TRIANGLE = new Widget(_disclosureTriangle);
 722 
 723         private static final byte _dividerGrabber = _disclosureTriangle + 1;
 724         public static final Widget DIVIDER_GRABBER = new Widget(_dividerGrabber);
 725         private static final byte _dividerSeparatorBar = _dividerGrabber + 1;
 726         public static final Widget DIVIDER_SEPARATOR_BAR = new Widget(_dividerSeparatorBar);
 727         private static final byte _dividerSplitter = _dividerSeparatorBar + 1;
 728         public static final Widget DIVIDER_SPLITTER = new Widget(_dividerSplitter);
 729 
 730         private static final byte _focus = _dividerSplitter + 1;
 731         public static final Widget FOCUS = new Widget(_focus);
 732 
 733         private static final byte _frameGroupBox = _focus + 1;
 734         public static final Widget FRAME_GROUP_BOX = new Widget(_frameGroupBox);
 735         private static final byte _frameGroupBoxSecondary = _frameGroupBox + 1;
 736         public static final Widget FRAME_GROUP_BOX_SECONDARY = new Widget(_frameGroupBoxSecondary);
 737 
 738         private static final byte _frameListBox = _frameGroupBoxSecondary + 1;
 739         public static final Widget FRAME_LIST_BOX = new Widget(_frameListBox);
 740 
 741         private static final byte _framePlacard = _frameListBox + 1;
 742         public static final Widget FRAME_PLACARD = new Widget(_framePlacard);
 743 
 744         private static final byte _frameTextField = _framePlacard + 1;
 745         public static final Widget FRAME_TEXT_FIELD = new Widget(_frameTextField);
 746         private static final byte _frameTextFieldRound = _frameTextField + 1;
 747         public static final Widget FRAME_TEXT_FIELD_ROUND = new Widget(_frameTextFieldRound);
 748 
 749         private static final byte _frameWell = _frameTextFieldRound + 1;
 750         public static final Widget FRAME_WELL = new Widget(_frameWell);
 751 
 752         private static final byte _growBox = _frameWell + 1;
 753         public static final Widget GROW_BOX = new Widget(_growBox);
 754         private static final byte _growBoxTextured = _growBox + 1;
 755         public static final Widget GROW_BOX_TEXTURED = new Widget(_growBoxTextured);
 756 
 757         private static final byte _gradient = _growBoxTextured + 1;
 758         public static final Widget GRADIENT = new Widget(_gradient);
 759 
 760         private static final byte _menu = _gradient + 1;
 761         public static final Widget MENU = new Widget(_menu);
 762         private static final byte _menuItem = _menu + 1;
 763         public static final Widget MENU_ITEM = new Widget(_menuItem);
 764         private static final byte _menuBar = _menuItem + 1;
 765         public static final Widget MENU_BAR = new Widget(_menuBar);
 766         private static final byte _menuTitle = _menuBar + 1;
 767         public static final Widget MENU_TITLE = new Widget(_menuTitle);
 768 
 769         private static final byte _progressBar = _menuTitle + 1;
 770         public static final Widget PROGRESS_BAR = new Widget(_progressBar);
 771         private static final byte _progressIndeterminateBar = _progressBar + 1;
 772         public static final Widget PROGRESS_INDETERMINATE_BAR = new Widget(_progressIndeterminateBar);
 773         private static final byte _progressRelevance = _progressIndeterminateBar + 1;
 774         public static final Widget PROGRESS_RELEVANCE = new Widget(_progressRelevance);
 775         private static final byte _progressSpinner = _progressRelevance + 1;
 776         public static final Widget PROGRESS_SPINNER = new Widget(_progressSpinner);
 777 
 778         private static final byte _scrollBar = _progressSpinner + 1;
 779         public static final Widget SCROLL_BAR = new Widget(_scrollBar);
 780 
 781         private static final byte _scrollColumnSizer = _scrollBar + 1;
 782         public static final Widget SCROLL_COLUMN_SIZER = new Widget(_scrollColumnSizer);
 783 
 784         private static final byte _slider = _scrollColumnSizer + 1;
 785         public static final Widget SLIDER = new Widget(_slider);
 786         private static final byte _sliderThumb = _slider + 1;
 787         public static final Widget SLIDER_THUMB = new Widget(_sliderThumb);
 788 
 789         private static final byte _synchronization = _sliderThumb + 1;
 790         public static final Widget SYNCHRONIZATION = new Widget(_synchronization);
 791 
 792         private static final byte _tab = _synchronization + 1;
 793         public static final Widget TAB = new Widget(_tab);
 794 
 795         private static final byte _titleBarCloseBox = _tab + 1;
 796         public static final Widget TITLE_BAR_CLOSE_BOX = new Widget(_titleBarCloseBox);
 797         private static final byte _titleBarCollapseBox = _titleBarCloseBox + 1;
 798         public static final Widget TITLE_BAR_COLLAPSE_BOX = new Widget(_titleBarCollapseBox);
 799         private static final byte _titleBarZoomBox = _titleBarCollapseBox + 1;
 800         public static final Widget TITLE_BAR_ZOOM_BOX = new Widget(_titleBarZoomBox);
 801 
 802         private static final byte _titleBarToolbarButton = _titleBarZoomBox + 1;
 803         public static final Widget TITLE_BAR_TOOLBAR_BUTTON = new Widget(_titleBarToolbarButton);
 804 
 805         private static final byte _toolbarItemWell = _titleBarToolbarButton + 1;
 806         public static final Widget TOOLBAR_ITEM_WELL = new Widget(_toolbarItemWell);
 807 
 808         private static final byte _windowFrame = _toolbarItemWell + 1;
 809         public static final Widget WINDOW_FRAME = new Widget(_windowFrame);
 810     }
 811 
 812     /* No native methods here, but the constants are needed in the supporting JNI code */
 813     @GenerateNativeHeader
 814     public static class Hit {
 815         private static final int _unknown = -1;
 816         public static final Hit UNKNOWN = new Hit(_unknown);
 817         private static final int _none = 0;
 818         public static final Hit NONE = new Hit(_none);
 819         private static final int _hit = 1;
 820         public static final Hit HIT = new Hit(_hit);
 821 
 822         final int hit;
 823         Hit(final int hit) { this.hit = hit; }
 824 
 825         public boolean isHit() {
 826             return hit > 0;
 827         }
 828 
 829         public String toString() {
 830             return getConstantName(this);
 831         }
 832     }
 833 
 834     /* No native methods here, but the constants are needed in the supporting JNI code */
 835     @GenerateNativeHeader
 836     public static class ScrollBarHit extends Hit {
 837         private static final int _thumb = 2;
 838         public static final ScrollBarHit THUMB = new ScrollBarHit(_thumb);
 839 
 840         private static final int _trackMin = 3;
 841         public static final ScrollBarHit TRACK_MIN = new ScrollBarHit(_trackMin);
 842         private static final int _trackMax = 4;
 843         public static final ScrollBarHit TRACK_MAX = new ScrollBarHit(_trackMax);
 844 
 845         private static final int _arrowMin = 5;
 846         public static final ScrollBarHit ARROW_MIN = new ScrollBarHit(_arrowMin);
 847         private static final int _arrowMax = 6;
 848         public static final ScrollBarHit ARROW_MAX = new ScrollBarHit(_arrowMax);
 849         private static final int _arrowMaxInside = 7;
 850         public static final ScrollBarHit ARROW_MAX_INSIDE = new ScrollBarHit(_arrowMaxInside);
 851         private static final int _arrowMinInside = 8;
 852         public static final ScrollBarHit ARROW_MIN_INSIDE = new ScrollBarHit(_arrowMinInside);
 853 
 854         ScrollBarHit(final int hit) { super(hit); }
 855     }
 856 
 857     static Hit getHit(final int hit) {
 858         switch (hit) {
 859             case Hit._none:
 860                 return Hit.NONE;
 861             case Hit._hit:
 862                 return Hit.HIT;
 863 
 864             case ScrollBarHit._thumb:
 865                 return ScrollBarHit.THUMB;
 866             case ScrollBarHit._trackMin:
 867                 return ScrollBarHit.TRACK_MIN;
 868             case ScrollBarHit._trackMax:
 869                 return ScrollBarHit.TRACK_MAX;
 870             case ScrollBarHit._arrowMin:
 871                 return ScrollBarHit.ARROW_MIN;


   1 /*
   2  * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package apple.laf;
  27 
  28 import java.lang.reflect.Field;
  29 import java.nio.ByteBuffer;
  30 
  31 import java.lang.annotation.Native;
  32 
  33 public final class JRSUIConstants {
  34     private static native long getPtrForConstant(final int constant);
  35 


  36     static class Key {
  37         @Native protected static final int _value = 20;
  38         public static final Key VALUE = new Key(_value);
  39 
  40         @Native protected static final int _thumbProportion = 24;
  41         public static final Key THUMB_PROPORTION = new Key(_thumbProportion);
  42 
  43         @Native protected static final int _thumbStart = 25;
  44         public static final Key THUMB_START = new Key(_thumbStart);
  45 
  46         @Native protected static final int _windowTitleBarHeight = 28;
  47         public static final Key WINDOW_TITLE_BAR_HEIGHT = new Key(_windowTitleBarHeight);
  48 
  49         @Native protected static final int _animationFrame = 23;
  50         public static final Key ANIMATION_FRAME = new Key(_animationFrame);
  51 
  52         final int constant;
  53         private long ptr;
  54 
  55         private Key(final int constant) {
  56             this.constant = constant;
  57         }
  58 
  59         long getConstantPtr() {
  60             if (ptr != 0) return ptr;
  61             ptr = getPtrForConstant(constant);
  62             if (ptr != 0) return ptr;
  63             throw new RuntimeException("Constant not implemented in native: " + this);
  64         }
  65 
  66         public String toString() {
  67             return getConstantName(this) + (ptr == 0 ? "(unlinked)" : "");
  68         }
  69     }
  70 


  71     static class DoubleValue {
  72         @Native protected static final byte TYPE_CODE = 1;
  73 
  74         final double doubleValue;
  75 
  76         DoubleValue(final double doubleValue) {
  77             this.doubleValue = doubleValue;
  78         }
  79 
  80         public byte getTypeCode() {
  81             return TYPE_CODE;
  82         }
  83 
  84         public void putValueInBuffer(final ByteBuffer buffer) {
  85             buffer.putDouble(doubleValue);
  86         }
  87 
  88         public boolean equals(final Object obj) {
  89             return (obj instanceof DoubleValue) && (((DoubleValue)obj).doubleValue == doubleValue);
  90         }
  91 
  92         public int hashCode() {


 118         Property(final PropertyEncoding encoding, final byte ordinal) {
 119             this.encoding = encoding;
 120             this.value = ((long)ordinal) << encoding.shift;
 121             this.ordinal = ordinal;
 122         }
 123 
 124         /**
 125          * Applies this property value to the provided state
 126          * @param encodedState the incoming JRSUI encoded state
 127          * @return the composite of the provided JRSUI encoded state and this value
 128          */
 129         public long apply(final long encodedState) {
 130             return (encodedState & ~encoding.mask) | value;
 131         }
 132 
 133         public String toString() {
 134             return getConstantName(this);
 135         }
 136     }
 137 


 138     public static class Size extends Property {
 139         @Native private static final byte SHIFT = 0;
 140         @Native private static final byte SIZE = 3;
 141         @Native private static final long MASK = (long)0x7 << SHIFT;
 142         private static final PropertyEncoding size = new PropertyEncoding(MASK, SHIFT);
 143 
 144         Size(final byte value) {
 145             super(size, value);
 146         }
 147 
 148         @Native private static final byte _mini = 1;
 149         public static final Size MINI = new Size(_mini);
 150         @Native private static final byte _small = 2;
 151         public static final Size SMALL = new Size(_small);
 152         @Native private static final byte _regular = 3;
 153         public static final Size REGULAR = new Size(_regular);
 154         @Native private static final byte _large = 4;
 155         public static final Size LARGE = new Size(_large);
 156     }
 157 


 158     public static class State extends Property {
 159         @Native private static final byte SHIFT = Size.SHIFT + Size.SIZE;
 160         @Native private static final byte SIZE = 4;
 161         @Native private static final long MASK = (long)0xF << SHIFT;
 162         private static final PropertyEncoding state = new PropertyEncoding(MASK, SHIFT);
 163 
 164         State(final byte value) {
 165             super(state, value);
 166         }
 167 
 168         @Native private static final byte _active = 1;
 169         public static final State ACTIVE = new State(_active);
 170         @Native private static final byte _inactive = 2;
 171         public static final State INACTIVE = new State(_inactive);
 172         @Native private static final byte _disabled = 3;
 173         public static final State DISABLED = new State(_disabled);
 174         @Native private static final byte _pressed = 4;
 175         public static final State PRESSED = new State(_pressed);
 176         @Native private static final byte _pulsed = 5;
 177         public static final State PULSED = new State(_pulsed);
 178         @Native private static final byte _rollover = 6;
 179         public static final State ROLLOVER = new State(_rollover);
 180         @Native private static final byte _drag = 7;
 181         public static final State DRAG = new State(_drag);
 182     }
 183 


 184     public static class Direction extends Property {
 185         @Native private static final byte SHIFT = State.SHIFT + State.SIZE;
 186         @Native private static final byte SIZE = 4;
 187         @Native private static final long MASK = (long)0xF << SHIFT;
 188         private static final PropertyEncoding direction = new PropertyEncoding(MASK, SHIFT);
 189 
 190         Direction(final byte value) {
 191             super(direction, value);
 192         }
 193 
 194         @Native private static final byte _none = 1;
 195         public static final Direction NONE = new Direction(_none);
 196         @Native private static final byte _up = 2;
 197         public static final Direction UP = new Direction(_up);
 198         @Native private static final byte _down = 3;
 199         public static final Direction DOWN = new Direction(_down);
 200         @Native private static final byte _left = 4;
 201         public static final Direction LEFT = new Direction(_left);
 202         @Native private static final byte _right = 5;
 203         public static final Direction RIGHT = new Direction(_right);
 204         @Native private static final byte _north = 6;
 205         public static final Direction NORTH = new Direction(_north);
 206         @Native private static final byte _south = 7;
 207         public static final Direction SOUTH = new Direction(_south);
 208         @Native private static final byte _east = 8;
 209         public static final Direction EAST = new Direction(_east);
 210         @Native private static final byte _west = 9;
 211         public static final Direction WEST = new Direction(_west);
 212     }
 213 


 214     public static class Orientation extends Property {
 215         @Native private static final byte SHIFT = Direction.SHIFT + Direction.SIZE;
 216         @Native private static final byte SIZE = 2;
 217         @Native private static final long MASK = (long)0x3 << SHIFT;
 218         private static final PropertyEncoding orientation = new PropertyEncoding(MASK, SHIFT);
 219 
 220         Orientation(final byte value) {
 221             super(orientation, value);
 222         }
 223 
 224         @Native private static final byte _horizontal = 1;
 225         public static final Orientation HORIZONTAL = new Orientation(_horizontal);
 226         @Native private static final byte _vertical = 2;
 227         public static final Orientation VERTICAL = new Orientation(_vertical);
 228     }
 229 


 230     public static class AlignmentVertical extends Property {
 231         @Native private static final byte SHIFT = Orientation.SHIFT + Orientation.SIZE;
 232         @Native private static final byte SIZE = 2;
 233         @Native private static final long MASK = (long)0x3 << SHIFT;
 234         private static final PropertyEncoding alignmentVertical = new PropertyEncoding(MASK, SHIFT);
 235 
 236         AlignmentVertical(final byte value){
 237             super(alignmentVertical, value);
 238         }
 239 
 240         @Native private static final byte _top = 1;
 241         public static final AlignmentVertical TOP = new AlignmentVertical(_top);
 242         @Native private static final byte _center = 2;
 243         public static final AlignmentVertical CENTER = new AlignmentVertical(_center);
 244         @Native private static final byte _bottom = 3;
 245         public static final AlignmentVertical BOTTOM = new AlignmentVertical(_bottom);
 246     }
 247 


 248     public static class AlignmentHorizontal extends Property {
 249         @Native private static final byte SHIFT = AlignmentVertical.SHIFT + AlignmentVertical.SIZE;
 250         @Native private static final byte SIZE = 2;
 251         @Native private static final long MASK = (long)0x3 << SHIFT;
 252         private static final PropertyEncoding alignmentHorizontal = new PropertyEncoding(MASK, SHIFT);
 253 
 254         AlignmentHorizontal(final byte value){
 255             super(alignmentHorizontal, value);
 256         }
 257 
 258         @Native private static final byte _left = 1;
 259         public static final AlignmentHorizontal LEFT = new AlignmentHorizontal(_left);
 260         @Native private static final byte _center =  2;
 261         public static final AlignmentHorizontal CENTER = new AlignmentHorizontal(_center);
 262         @Native private static final byte _right = 3;
 263         public static final AlignmentHorizontal RIGHT = new AlignmentHorizontal(_right);
 264     }
 265 


 266     public static class SegmentPosition extends Property {
 267         @Native private static final byte SHIFT = AlignmentHorizontal.SHIFT + AlignmentHorizontal.SIZE;
 268         @Native private static final byte SIZE = 3;
 269         @Native private static final long MASK = (long)0x7 << SHIFT;
 270         private static final PropertyEncoding segmentPosition = new PropertyEncoding(MASK, SHIFT);
 271 
 272         SegmentPosition(final byte value) {
 273             super(segmentPosition, value);
 274         }
 275 
 276         @Native private static final byte _first = 1;
 277         public static final SegmentPosition FIRST = new SegmentPosition(_first);
 278         @Native private static final byte _middle = 2;
 279         public static final SegmentPosition MIDDLE = new SegmentPosition(_middle);
 280         @Native private static final byte _last = 3;
 281         public static final SegmentPosition LAST = new SegmentPosition(_last);
 282         @Native private static final byte _only = 4;
 283         public static final SegmentPosition ONLY = new SegmentPosition(_only);
 284     }
 285 


 286     public static class ScrollBarPart extends Property {
 287         @Native private static final byte SHIFT = SegmentPosition.SHIFT + SegmentPosition.SIZE;
 288         @Native private static final byte SIZE = 4;
 289         @Native private static final long MASK = (long)0xF << SHIFT;
 290         private static final PropertyEncoding scrollBarPart = new PropertyEncoding(MASK, SHIFT);
 291 
 292         ScrollBarPart(final byte value) {
 293             super(scrollBarPart, value);
 294         }
 295 
 296         @Native private static final byte _none = 1;
 297         public static final ScrollBarPart NONE = new ScrollBarPart(_none);
 298         @Native private static final byte _thumb = 2;
 299         public static final ScrollBarPart THUMB = new ScrollBarPart(_thumb);
 300         @Native private static final byte _arrowMin = 3;
 301         public static final ScrollBarPart ARROW_MIN = new ScrollBarPart(_arrowMin);
 302         @Native private static final byte _arrowMax = 4;
 303         public static final ScrollBarPart ARROW_MAX = new ScrollBarPart(_arrowMax);
 304         @Native private static final byte _arrowMaxInside = 5;
 305         public static final ScrollBarPart ARROW_MAX_INSIDE = new ScrollBarPart(_arrowMaxInside);
 306         @Native private static final byte _arrowMinInside = 6;
 307         public static final ScrollBarPart ARROW_MIN_INSIDE = new ScrollBarPart(_arrowMinInside);
 308         @Native private static final byte _trackMin = 7;
 309         public static final ScrollBarPart TRACK_MIN = new ScrollBarPart(_trackMin);
 310         @Native private static final byte _trackMax = 8;
 311         public static final ScrollBarPart TRACK_MAX = new ScrollBarPart(_trackMax);
 312     }
 313 


 314     public static class Variant extends Property {
 315         @Native private static final byte SHIFT = ScrollBarPart.SHIFT + ScrollBarPart.SIZE;
 316         @Native private static final byte SIZE = 4;
 317         @Native private static final long MASK = (long)0xF << SHIFT;
 318         private static final PropertyEncoding variant = new PropertyEncoding(MASK, SHIFT);
 319 
 320         Variant(final byte value) {
 321             super(variant, value);
 322         }
 323 
 324         @Native private static final byte _menuGlyph = 1;
 325         public static final Variant MENU_GLYPH = new Variant(_menuGlyph);
 326         @Native private static final byte _menuPopup = Variant._menuGlyph + 1;
 327         public static final Variant MENU_POPUP = new Variant(_menuPopup);
 328         @Native private static final byte _menuPulldown = Variant._menuPopup + 1;
 329         public static final Variant MENU_PULLDOWN = new Variant(_menuPulldown);
 330         @Native private static final byte _menuHierarchical = Variant._menuPulldown + 1;
 331         public static final Variant MENU_HIERARCHICAL = new Variant(_menuHierarchical);
 332 
 333         @Native private static final byte _gradientListBackgroundEven = Variant._menuHierarchical + 1;
 334         public static final Variant GRADIENT_LIST_BACKGROUND_EVEN = new Variant(_gradientListBackgroundEven);
 335         @Native private static final byte _gradientListBackgroundOdd = Variant._gradientListBackgroundEven + 1;
 336         public static final Variant GRADIENT_LIST_BACKGROUND_ODD = new Variant(_gradientListBackgroundOdd);
 337         @Native private static final byte _gradientSideBar = Variant._gradientListBackgroundOdd + 1;
 338         public static final Variant GRADIENT_SIDE_BAR = new Variant(_gradientSideBar);
 339         @Native private static final byte _gradientSideBarSelection = Variant._gradientSideBar + 1;
 340         public static final Variant GRADIENT_SIDE_BAR_SELECTION = new Variant(_gradientSideBarSelection);
 341         @Native private static final byte _gradientSideBarFocusedSelection = Variant._gradientSideBarSelection + 1;
 342         public static final Variant GRADIENT_SIDE_BAR_FOCUSED_SELECTION = new Variant(_gradientSideBarFocusedSelection);
 343     }
 344 


 345     public static class WindowType extends Property {
 346         @Native private static final byte SHIFT = Variant.SHIFT + Variant.SIZE;
 347         @Native private static final byte SIZE = 2;
 348         @Native private static final long MASK = (long)0x3 << SHIFT;
 349         private static final PropertyEncoding windowType = new PropertyEncoding(MASK, SHIFT);
 350 
 351         WindowType(final byte value){
 352             super(windowType, value);
 353         }
 354 
 355         @Native private static final byte _document = 1;
 356         public static final WindowType DOCUMENT = new WindowType(_document);
 357         @Native private static final byte _utility = 2;
 358         public static final WindowType UTILITY = new WindowType(_utility);
 359         @Native private static final byte _titlelessUtility = 3;
 360         public static final WindowType TITLELESS_UTILITY = new WindowType(_titlelessUtility);
 361     }
 362 


 363     public static class Focused extends Property {
 364         @Native private static final byte SHIFT = WindowType.SHIFT + WindowType.SIZE;
 365         @Native private static final byte SIZE = 1;
 366         @Native private static final long MASK = (long)0x1 << SHIFT;
 367         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 368 
 369         Focused(final byte value) {
 370             super(focused, value);
 371         }
 372 
 373         @Native private static final byte _no = 0;
 374         public static final Focused NO = new Focused(_no);
 375         @Native private static final byte _yes = 1;
 376         public static final Focused YES = new Focused(_yes);
 377     }
 378 


 379     public static class IndicatorOnly extends Property {
 380         @Native private static final byte SHIFT = Focused.SHIFT + Focused.SIZE;
 381         @Native private static final byte SIZE = 1;
 382         @Native private static final long MASK = (long)0x1 << SHIFT;
 383         private static final PropertyEncoding indicatorOnly = new PropertyEncoding(MASK, SHIFT);
 384 
 385         IndicatorOnly(final byte value) {
 386             super(indicatorOnly, value);
 387         }
 388 
 389         @Native private static final byte _no = 0;
 390         public static final IndicatorOnly NO = new IndicatorOnly(_no);
 391         @Native private static final byte _yes = 1;
 392         public static final IndicatorOnly YES = new IndicatorOnly(_yes);
 393     }
 394 


 395     public static class NoIndicator extends Property {
 396         @Native private static final byte SHIFT = IndicatorOnly.SHIFT + IndicatorOnly.SIZE;
 397         @Native private static final byte SIZE = 1;
 398         @Native private static final long MASK = (long)0x1 << SHIFT;
 399         private static final PropertyEncoding noIndicator = new PropertyEncoding(MASK, SHIFT);
 400 
 401         NoIndicator(final byte value) {
 402             super(noIndicator, value);
 403         }
 404 
 405         @Native private static final byte _no = 0;
 406         public static final NoIndicator NO = new NoIndicator(_no);
 407         @Native private static final byte _yes = 1;
 408         public static final NoIndicator YES = new NoIndicator(_yes);
 409     }
 410 


 411     public static class ArrowsOnly extends Property {
 412         @Native private static final byte SHIFT = NoIndicator.SHIFT + NoIndicator.SIZE;
 413         @Native private static final byte SIZE = 1;
 414         @Native private static final long MASK = (long)0x1 << SHIFT;
 415         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 416 
 417         ArrowsOnly(final byte value) {
 418             super(focused, value);
 419         }
 420 
 421         @Native private static final byte _no = 0;
 422         public static final ArrowsOnly NO = new ArrowsOnly(_no);
 423         @Native private static final byte _yes = 1;
 424         public static final ArrowsOnly YES = new ArrowsOnly(_yes);
 425     }
 426 


 427     public static class FrameOnly extends Property {
 428         @Native private static final byte SHIFT = ArrowsOnly.SHIFT + ArrowsOnly.SIZE;
 429         @Native private static final byte SIZE = 1;
 430         @Native private static final long MASK = (long)0x1 << SHIFT;
 431         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 432 
 433         FrameOnly(final byte value) {
 434             super(focused, value);
 435         }
 436 
 437         @Native private static final byte _no = 0;
 438         public static final FrameOnly NO = new FrameOnly(_no);
 439         @Native private static final byte _yes = 1;
 440         public static final FrameOnly YES = new FrameOnly(_yes);
 441     }
 442 


 443     public static class SegmentTrailingSeparator extends Property {
 444         @Native private static final byte SHIFT = FrameOnly.SHIFT + FrameOnly.SIZE;
 445         @Native private static final byte SIZE = 1;
 446         @Native private static final long MASK = (long)0x1 << SHIFT;
 447         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 448 
 449         SegmentTrailingSeparator(final byte value) {
 450             super(focused, value);
 451         }
 452 
 453         @Native private static final byte _no = 0;
 454         public static final SegmentTrailingSeparator NO = new SegmentTrailingSeparator(_no);
 455         @Native private static final byte _yes = 1;
 456         public static final SegmentTrailingSeparator YES = new SegmentTrailingSeparator(_yes);
 457     }
 458 


 459     public static class SegmentLeadingSeparator extends Property {
 460         @Native private static final byte SHIFT = SegmentTrailingSeparator.SHIFT + SegmentTrailingSeparator.SIZE;
 461         @Native private static final byte SIZE = 1;
 462         @Native private static final long MASK = (long)0x1 << SHIFT;
 463         private static final PropertyEncoding leadingSeparator = new PropertyEncoding(MASK, SHIFT);
 464 
 465         SegmentLeadingSeparator(final byte value) {
 466             super(leadingSeparator, value);
 467         }
 468 
 469         @Native private static final byte _no = 0;
 470         public static final SegmentLeadingSeparator NO = new SegmentLeadingSeparator(_no);
 471         @Native private static final byte _yes = 1;
 472         public static final SegmentLeadingSeparator YES = new SegmentLeadingSeparator(_yes);
 473     }
 474 


 475     public static class NothingToScroll extends Property {
 476         @Native private static final byte SHIFT = SegmentLeadingSeparator.SHIFT + SegmentLeadingSeparator.SIZE;
 477         @Native private static final byte SIZE = 1;
 478         @Native private static final long MASK = (long)0x1 << SHIFT;
 479         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 480 
 481         NothingToScroll(final byte value) {
 482             super(focused, value);
 483         }
 484 
 485         @Native private static final byte _no = 0;
 486         public static final NothingToScroll NO = new NothingToScroll(_no);
 487         @Native private static final byte _yes = 1;
 488         public static final NothingToScroll YES = new NothingToScroll(_yes);
 489     }
 490 


 491     public static class WindowTitleBarSeparator extends Property {
 492         @Native private static final byte SHIFT = NothingToScroll.SHIFT + NothingToScroll.SIZE;
 493         @Native private static final byte SIZE = 1;
 494         @Native private static final long MASK = (long)0x1 << SHIFT;
 495         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 496 
 497         WindowTitleBarSeparator(final byte value) {
 498             super(focused, value);
 499         }
 500 
 501         @Native private static final byte _no = 0;
 502         public static final WindowTitleBarSeparator NO = new WindowTitleBarSeparator(_no);
 503         @Native private static final byte _yes = 1;
 504         public static final WindowTitleBarSeparator YES = new WindowTitleBarSeparator(_yes);
 505     }
 506 


 507     public static class WindowClipCorners extends Property {
 508         @Native private static final byte SHIFT = WindowTitleBarSeparator.SHIFT + WindowTitleBarSeparator.SIZE;
 509         @Native private static final byte SIZE = 1;
 510         @Native private static final long MASK = (long)0x1 << SHIFT;
 511         private static final PropertyEncoding focused = new PropertyEncoding(MASK, SHIFT);
 512 
 513         WindowClipCorners(final byte value) {
 514             super(focused, value);
 515         }
 516 
 517         @Native private static final byte _no = 0;
 518         public static final WindowClipCorners NO = new WindowClipCorners(_no);
 519         @Native private static final byte _yes = 1;
 520         public static final WindowClipCorners YES = new WindowClipCorners(_yes);
 521     }
 522 


 523     public static class ShowArrows extends Property {
 524         @Native private static final byte SHIFT = WindowClipCorners.SHIFT + WindowClipCorners.SIZE;
 525         @Native private static final byte SIZE = 1;
 526         @Native private static final long MASK = (long)0x1 << SHIFT;
 527         private static final PropertyEncoding showArrows = new PropertyEncoding(MASK, SHIFT);
 528 
 529         ShowArrows(final byte value) {
 530             super(showArrows, value);
 531         }
 532 
 533         @Native private static final byte _no = 0;
 534         public static final ShowArrows NO = new ShowArrows(_no);
 535         @Native private static final byte _yes = 1;
 536         public static final ShowArrows YES = new ShowArrows(_yes);
 537     }
 538 


 539     public static class BooleanValue extends Property {
 540         @Native private static final byte SHIFT = ShowArrows.SHIFT + ShowArrows.SIZE;
 541         @Native private static final byte SIZE = 1;
 542         @Native private static final long MASK = (long)0x1 << SHIFT;
 543         private static final PropertyEncoding booleanValue = new PropertyEncoding(MASK, SHIFT);
 544 
 545         BooleanValue(final byte value) {
 546             super(booleanValue, value);
 547         }
 548 
 549         @Native private static final byte _no = 0;
 550         public static final BooleanValue NO = new BooleanValue(_no);
 551         @Native private static final byte _yes = 1;
 552         public static final BooleanValue YES = new BooleanValue(_yes);
 553     }
 554 


 555     public static class Animating extends Property {
 556         @Native private static final byte SHIFT = BooleanValue.SHIFT + BooleanValue.SIZE;
 557         @Native private static final byte SIZE = 1;
 558         @Native private static final long MASK = (long)0x1 << SHIFT;
 559         private static final PropertyEncoding animating = new PropertyEncoding(MASK, SHIFT);
 560 
 561         Animating(final byte value) {
 562             super(animating, value);
 563         }
 564 
 565         @Native private static final byte _no = 0;
 566         public static final Animating NO = new Animating(_no);
 567         @Native private static final byte _yes = 1;
 568         public static final Animating YES = new Animating(_yes);
 569     }
 570 


 571     public static class Widget extends Property {
 572         @Native private static final byte SHIFT = Animating.SHIFT + Animating.SIZE;
 573         @Native private static final byte SIZE = 7;
 574         @Native private static final long MASK = (long)0x7F << SHIFT;
 575         private static final PropertyEncoding widget = new PropertyEncoding(MASK, SHIFT);
 576 
 577         Widget(final byte constant) {
 578             super(widget, constant);
 579         }
 580 
 581         @Native private static final byte _background = 1;
 582         public static final Widget BACKGROUND = new Widget(_background);
 583 
 584         @Native private static final byte _buttonBevel = _background + 1;
 585         public static final Widget BUTTON_BEVEL = new Widget(_buttonBevel);
 586         @Native private static final byte _buttonBevelInset = _buttonBevel + 1;
 587         public static final Widget BUTTON_BEVEL_INSET = new Widget(_buttonBevelInset);
 588         @Native private static final byte _buttonBevelRound = _buttonBevelInset + 1;
 589         public static final Widget BUTTON_BEVEL_ROUND = new Widget(_buttonBevelRound);
 590 
 591         @Native private static final byte _buttonCheckBox = _buttonBevelRound + 1;
 592         public static final Widget BUTTON_CHECK_BOX = new Widget(_buttonCheckBox);
 593 
 594         @Native private static final byte _buttonComboBox = _buttonCheckBox + 1;
 595         public static final Widget BUTTON_COMBO_BOX = new Widget(_buttonComboBox);
 596         @Native private static final byte _buttonComboBoxInset = _buttonComboBox + 1;
 597         public static final Widget BUTTON_COMBO_BOX_INSET = new Widget(_buttonComboBoxInset); // not hooked up in JRSUIConstants.m
 598 
 599         @Native private static final byte _buttonDisclosure = _buttonComboBoxInset + 1;
 600         public static final Widget BUTTON_DISCLOSURE = new Widget(_buttonDisclosure);
 601 
 602         @Native private static final byte _buttonListHeader = _buttonDisclosure + 1;
 603         public static final Widget BUTTON_LIST_HEADER = new Widget(_buttonListHeader);
 604 
 605         @Native private static final byte _buttonLittleArrows = _buttonListHeader + 1;
 606         public static final Widget BUTTON_LITTLE_ARROWS = new Widget(_buttonLittleArrows);
 607 
 608         @Native private static final byte _buttonPopDown = _buttonLittleArrows + 1;
 609         public static final Widget BUTTON_POP_DOWN = new Widget(_buttonPopDown);
 610         @Native private static final byte _buttonPopDownInset = _buttonPopDown + 1;
 611         public static final Widget BUTTON_POP_DOWN_INSET = new Widget(_buttonPopDownInset);
 612         @Native private static final byte _buttonPopDownSquare = _buttonPopDownInset + 1;
 613         public static final Widget BUTTON_POP_DOWN_SQUARE = new Widget(_buttonPopDownSquare);
 614 
 615         @Native private static final byte _buttonPopUp = _buttonPopDownSquare + 1;
 616         public static final Widget BUTTON_POP_UP = new Widget(_buttonPopUp);
 617         @Native private static final byte _buttonPopUpInset = _buttonPopUp + 1;
 618         public static final Widget BUTTON_POP_UP_INSET = new Widget(_buttonPopUpInset);
 619         @Native private static final byte _buttonPopUpSquare = _buttonPopUpInset + 1;
 620         public static final Widget BUTTON_POP_UP_SQUARE = new Widget(_buttonPopUpSquare);
 621 
 622         @Native private static final byte _buttonPush = _buttonPopUpSquare + 1;
 623         public static final Widget BUTTON_PUSH = new Widget(_buttonPush);
 624         @Native private static final byte _buttonPushScope = _buttonPush + 1;
 625         public static final Widget BUTTON_PUSH_SCOPE = new Widget(_buttonPushScope);
 626         @Native private static final byte _buttonPushScope2 = _buttonPushScope + 1;
 627         public static final Widget BUTTON_PUSH_SCOPE2 = new Widget(_buttonPushScope2);
 628         @Native private static final byte _buttonPushTextured = _buttonPushScope2 + 1;
 629         public static final Widget BUTTON_PUSH_TEXTURED = new Widget(_buttonPushTextured);
 630         @Native private static final byte _buttonPushInset = _buttonPushTextured + 1;
 631         public static final Widget BUTTON_PUSH_INSET = new Widget(_buttonPushInset);
 632         @Native private static final byte _buttonPushInset2 = _buttonPushInset + 1;
 633         public static final Widget BUTTON_PUSH_INSET2 = new Widget(_buttonPushInset2);
 634 
 635         @Native private static final byte _buttonRadio = _buttonPushInset2 + 1;
 636         public static final Widget BUTTON_RADIO = new Widget(_buttonRadio);
 637 
 638         @Native private static final byte _buttonRound = _buttonRadio + 1;
 639         public static final Widget BUTTON_ROUND = new Widget(_buttonRound);
 640         @Native private static final byte _buttonRoundHelp = _buttonRound + 1;
 641         public static final Widget BUTTON_ROUND_HELP = new Widget(_buttonRoundHelp);
 642         @Native private static final byte _buttonRoundInset = _buttonRoundHelp + 1;
 643         public static final Widget BUTTON_ROUND_INSET = new Widget(_buttonRoundInset);
 644         @Native private static final byte _buttonRoundInset2 =_buttonRoundInset + 1;
 645         public static final Widget BUTTON_ROUND_INSET2 = new Widget(_buttonRoundInset2);
 646 
 647         @Native private static final byte _buttonSearchFieldCancel = _buttonRoundInset2 + 1;
 648         public static final Widget BUTTON_SEARCH_FIELD_CANCEL = new Widget(_buttonSearchFieldCancel);
 649         @Native private static final byte _buttonSearchFieldFind = _buttonSearchFieldCancel + 1;
 650         public static final Widget BUTTON_SEARCH_FIELD_FIND = new Widget(_buttonSearchFieldFind);
 651 
 652         @Native private static final byte _buttonSegmented = _buttonSearchFieldFind + 1;
 653         public static final Widget BUTTON_SEGMENTED = new Widget(_buttonSegmented);
 654         @Native private static final byte _buttonSegmentedInset = _buttonSegmented + 1;
 655         public static final Widget BUTTON_SEGMENTED_INSET = new Widget(_buttonSegmentedInset);
 656         @Native private static final byte _buttonSegmentedInset2 = _buttonSegmentedInset + 1;
 657         public static final Widget BUTTON_SEGMENTED_INSET2 = new Widget(_buttonSegmentedInset2);
 658         @Native private static final byte _buttonSegmentedSCurve = _buttonSegmentedInset2 + 1;
 659         public static final Widget BUTTON_SEGMENTED_SCURVE = new Widget(_buttonSegmentedSCurve);
 660         @Native private static final byte _buttonSegmentedTextured = _buttonSegmentedSCurve + 1;
 661         public static final Widget BUTTON_SEGMENTED_TEXTURED = new Widget(_buttonSegmentedTextured);
 662         @Native private static final byte _buttonSegmentedToolbar = _buttonSegmentedTextured + 1;
 663         public static final Widget BUTTON_SEGMENTED_TOOLBAR = new Widget(_buttonSegmentedToolbar);
 664 
 665         @Native private static final byte _dial = _buttonSegmentedToolbar + 1;
 666         public static final Widget DIAL = new Widget(_dial);
 667 
 668         @Native private static final byte _disclosureTriangle = _dial + 1;
 669         public static final Widget DISCLOSURE_TRIANGLE = new Widget(_disclosureTriangle);
 670 
 671         @Native private static final byte _dividerGrabber = _disclosureTriangle + 1;
 672         public static final Widget DIVIDER_GRABBER = new Widget(_dividerGrabber);
 673         @Native private static final byte _dividerSeparatorBar = _dividerGrabber + 1;
 674         public static final Widget DIVIDER_SEPARATOR_BAR = new Widget(_dividerSeparatorBar);
 675         @Native private static final byte _dividerSplitter = _dividerSeparatorBar + 1;
 676         public static final Widget DIVIDER_SPLITTER = new Widget(_dividerSplitter);
 677 
 678         @Native private static final byte _focus = _dividerSplitter + 1;
 679         public static final Widget FOCUS = new Widget(_focus);
 680 
 681         @Native private static final byte _frameGroupBox = _focus + 1;
 682         public static final Widget FRAME_GROUP_BOX = new Widget(_frameGroupBox);
 683         @Native private static final byte _frameGroupBoxSecondary = _frameGroupBox + 1;
 684         public static final Widget FRAME_GROUP_BOX_SECONDARY = new Widget(_frameGroupBoxSecondary);
 685 
 686         @Native private static final byte _frameListBox = _frameGroupBoxSecondary + 1;
 687         public static final Widget FRAME_LIST_BOX = new Widget(_frameListBox);
 688 
 689         @Native private static final byte _framePlacard = _frameListBox + 1;
 690         public static final Widget FRAME_PLACARD = new Widget(_framePlacard);
 691 
 692         @Native private static final byte _frameTextField = _framePlacard + 1;
 693         public static final Widget FRAME_TEXT_FIELD = new Widget(_frameTextField);
 694         @Native private static final byte _frameTextFieldRound = _frameTextField + 1;
 695         public static final Widget FRAME_TEXT_FIELD_ROUND = new Widget(_frameTextFieldRound);
 696 
 697         @Native private static final byte _frameWell = _frameTextFieldRound + 1;
 698         public static final Widget FRAME_WELL = new Widget(_frameWell);
 699 
 700         @Native private static final byte _growBox = _frameWell + 1;
 701         public static final Widget GROW_BOX = new Widget(_growBox);
 702         @Native private static final byte _growBoxTextured = _growBox + 1;
 703         public static final Widget GROW_BOX_TEXTURED = new Widget(_growBoxTextured);
 704 
 705         @Native private static final byte _gradient = _growBoxTextured + 1;
 706         public static final Widget GRADIENT = new Widget(_gradient);
 707 
 708         @Native private static final byte _menu = _gradient + 1;
 709         public static final Widget MENU = new Widget(_menu);
 710         @Native private static final byte _menuItem = _menu + 1;
 711         public static final Widget MENU_ITEM = new Widget(_menuItem);
 712         @Native private static final byte _menuBar = _menuItem + 1;
 713         public static final Widget MENU_BAR = new Widget(_menuBar);
 714         @Native private static final byte _menuTitle = _menuBar + 1;
 715         public static final Widget MENU_TITLE = new Widget(_menuTitle);
 716 
 717         @Native private static final byte _progressBar = _menuTitle + 1;
 718         public static final Widget PROGRESS_BAR = new Widget(_progressBar);
 719         @Native private static final byte _progressIndeterminateBar = _progressBar + 1;
 720         public static final Widget PROGRESS_INDETERMINATE_BAR = new Widget(_progressIndeterminateBar);
 721         @Native private static final byte _progressRelevance = _progressIndeterminateBar + 1;
 722         public static final Widget PROGRESS_RELEVANCE = new Widget(_progressRelevance);
 723         @Native private static final byte _progressSpinner = _progressRelevance + 1;
 724         public static final Widget PROGRESS_SPINNER = new Widget(_progressSpinner);
 725 
 726         @Native private static final byte _scrollBar = _progressSpinner + 1;
 727         public static final Widget SCROLL_BAR = new Widget(_scrollBar);
 728 
 729         @Native private static final byte _scrollColumnSizer = _scrollBar + 1;
 730         public static final Widget SCROLL_COLUMN_SIZER = new Widget(_scrollColumnSizer);
 731 
 732         @Native private static final byte _slider = _scrollColumnSizer + 1;
 733         public static final Widget SLIDER = new Widget(_slider);
 734         @Native private static final byte _sliderThumb = _slider + 1;
 735         public static final Widget SLIDER_THUMB = new Widget(_sliderThumb);
 736 
 737         @Native private static final byte _synchronization = _sliderThumb + 1;
 738         public static final Widget SYNCHRONIZATION = new Widget(_synchronization);
 739 
 740         @Native private static final byte _tab = _synchronization + 1;
 741         public static final Widget TAB = new Widget(_tab);
 742 
 743         @Native private static final byte _titleBarCloseBox = _tab + 1;
 744         public static final Widget TITLE_BAR_CLOSE_BOX = new Widget(_titleBarCloseBox);
 745         @Native private static final byte _titleBarCollapseBox = _titleBarCloseBox + 1;
 746         public static final Widget TITLE_BAR_COLLAPSE_BOX = new Widget(_titleBarCollapseBox);
 747         @Native private static final byte _titleBarZoomBox = _titleBarCollapseBox + 1;
 748         public static final Widget TITLE_BAR_ZOOM_BOX = new Widget(_titleBarZoomBox);
 749 
 750         @Native private static final byte _titleBarToolbarButton = _titleBarZoomBox + 1;
 751         public static final Widget TITLE_BAR_TOOLBAR_BUTTON = new Widget(_titleBarToolbarButton);
 752 
 753         @Native private static final byte _toolbarItemWell = _titleBarToolbarButton + 1;
 754         public static final Widget TOOLBAR_ITEM_WELL = new Widget(_toolbarItemWell);
 755 
 756         @Native private static final byte _windowFrame = _toolbarItemWell + 1;
 757         public static final Widget WINDOW_FRAME = new Widget(_windowFrame);
 758     }
 759 


 760     public static class Hit {
 761         @Native private static final int _unknown = -1;
 762         public static final Hit UNKNOWN = new Hit(_unknown);
 763         @Native private static final int _none = 0;
 764         public static final Hit NONE = new Hit(_none);
 765         @Native private static final int _hit = 1;
 766         public static final Hit HIT = new Hit(_hit);
 767 
 768         final int hit;
 769         Hit(final int hit) { this.hit = hit; }
 770 
 771         public boolean isHit() {
 772             return hit > 0;
 773         }
 774 
 775         public String toString() {
 776             return getConstantName(this);
 777         }
 778     }
 779 


 780     public static class ScrollBarHit extends Hit {
 781         @Native private static final int _thumb = 2;
 782         public static final ScrollBarHit THUMB = new ScrollBarHit(_thumb);
 783 
 784         @Native private static final int _trackMin = 3;
 785         public static final ScrollBarHit TRACK_MIN = new ScrollBarHit(_trackMin);
 786         @Native private static final int _trackMax = 4;
 787         public static final ScrollBarHit TRACK_MAX = new ScrollBarHit(_trackMax);
 788 
 789         @Native private static final int _arrowMin = 5;
 790         public static final ScrollBarHit ARROW_MIN = new ScrollBarHit(_arrowMin);
 791         @Native private static final int _arrowMax = 6;
 792         public static final ScrollBarHit ARROW_MAX = new ScrollBarHit(_arrowMax);
 793         @Native private static final int _arrowMaxInside = 7;
 794         public static final ScrollBarHit ARROW_MAX_INSIDE = new ScrollBarHit(_arrowMaxInside);
 795         @Native private static final int _arrowMinInside = 8;
 796         public static final ScrollBarHit ARROW_MIN_INSIDE = new ScrollBarHit(_arrowMinInside);
 797 
 798         ScrollBarHit(final int hit) { super(hit); }
 799     }
 800 
 801     static Hit getHit(final int hit) {
 802         switch (hit) {
 803             case Hit._none:
 804                 return Hit.NONE;
 805             case Hit._hit:
 806                 return Hit.HIT;
 807 
 808             case ScrollBarHit._thumb:
 809                 return ScrollBarHit.THUMB;
 810             case ScrollBarHit._trackMin:
 811                 return ScrollBarHit.TRACK_MIN;
 812             case ScrollBarHit._trackMax:
 813                 return ScrollBarHit.TRACK_MAX;
 814             case ScrollBarHit._arrowMin:
 815                 return ScrollBarHit.ARROW_MIN;