Enum ThemeMode

java.lang.Object
java.lang.Enum<ThemeMode>
com.codename1.annotations.buildhints.ThemeMode
All Implemented Interfaces:
Comparable<ThemeMode>

public enum ThemeMode extends Enum<ThemeMode>

The look a build asks the platform for.

ONE enum for every hint that selects a theme, not one per platform. The domains overlap almost entirely and differ in a constant or two, which is not a reason to make a developer learn three names for modern -- and three enums drift, which is worse than the thing they were separated to prevent.

Where a hint really does accept less than all of this, its attribute says so with @Hint(valuePattern = ...) and the annotation processor refuses the rest. That is a build error naming the constant and the hint, which is what the old arrangement could not give: passing a constant the builder does not recognise is not an error there, it is a silent fallback to the default.

  • Enum Constant Details

    • DEFAULT

      public static final ThemeMode DEFAULT
      Say nothing, and let the build server apply its own default.
    • AUTO

      public static final ThemeMode AUTO
      Follow the device's own light/dark setting.
    • MODERN

      public static final ThemeMode MODERN
      The current platform look.
    • NATIVE

      public static final ThemeMode NATIVE

      The current platform look on EVERY operating system the application runs on, desktop included.

      This is what separates it from MODERN, which reaches iOS and Android only. Desktop is deliberately excluded there: the desktop native themes arrived years after the mobile ones, so a desktop application that set nativeTheme = ThemeMode.MODERN for its phone builds would have had every one of its screens redrawn by a hint it set for another platform. Asking for the desktop look has to be something you said, which is this constant.

    • IOS7

      public static final ThemeMode IOS7
      The flat iOS 7 look.
    • HOLOLIGHT

      public static final ThemeMode HOLOLIGHT
      The Android Holo light look.
    • LEGACY

      public static final ThemeMode LEGACY
      The pre-modern look for the platform.
    • CUSTOM

      public static final ThemeMode CUSTOM
      The theme the application ships, rather than a platform one.
  • Method Details

    • values

      public static ThemeMode[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static ThemeMode valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null