Class StyleManager

All Implemented Interfaces:
PointerInterface

public class StyleManager extends Object
A class for managing application-wide styling.

`AdwStyleManager` provides a way to query and influence the application
styles, such as whether to use dark or high contrast appearance.

It allows to set the color scheme via the
[property@StyleManager:color-scheme] property, and to query the current
appearance, as well as whether a system-wide color scheme preference exists.

https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.StyleManager.html

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • getColorScheme

      public int getColorScheme()
      Gets the requested application color scheme.
      Returns:
      the color scheme
    • getDark

      public boolean getDark()
      Gets whether the application is using dark appearance.

      This can be used to query the current appearance, as requested via
      [property@StyleManager:color-scheme].
      Returns:
      whether the application is using dark appearance
    • getDisplay

      public Display getDisplay()
      Gets the display the style manager is associated with.

      The display will be `NULL` for the style manager returned by
      [func@StyleManager.get_default].
      Returns:
      (nullable): the display
    • getHighContrast

      public boolean getHighContrast()
      Gets whether the application is using high contrast appearance.

      This cannot be overridden by applications.
      Returns:
      whether the application is using high contrast appearance
    • getSystemSupportsColorSchemes

      public boolean getSystemSupportsColorSchemes()
      Gets whether the system supports color schemes.

      This can be used to check if the current environment provides a color scheme
      preference. For example, applications might want to show a separate
      appearance switcher if it's set to `FALSE`.
      Returns:
      whether the system supports color schemes
    • setColorScheme

      public void setColorScheme(int color_scheme)
      Sets the requested application color scheme.

      The effective appearance will be decided based on the application color
      scheme and the system preferred color scheme. The
      [property@StyleManager:dark] property can be used to query the current
      effective appearance.

      The `ADW_COLOR_SCHEME_PREFER_LIGHT` color scheme results in the application
      using light appearance unless the system prefers dark colors. This is the
      default value.

      The `ADW_COLOR_SCHEME_PREFER_DARK` color scheme results in the application
      using dark appearance, but can still switch to the light appearance if the
      system can prefers it, for example, when the high contrast preference is
      enabled.

      The `ADW_COLOR_SCHEME_FORCE_LIGHT` and `ADW_COLOR_SCHEME_FORCE_DARK` values
      ignore the system preference entirely. They are useful if the application
      wants to match its UI to its content or to provide a separate color scheme
      switcher.

      If a per-[class@Gdk.Display] style manager has its color scheme set to
      `ADW_COLOR_SCHEME_DEFAULT`, it will inherit the color scheme from the
      default style manager.

      For the default style manager, `ADW_COLOR_SCHEME_DEFAULT` is equivalent to
      `ADW_COLOR_SCHEME_PREFER_LIGHT`.

      The [property@StyleManager:system-supports-color-schemes] property can be
      used to check if the current environment provides a color scheme
      preference.
      Parameters:
      color_scheme - the color scheme
    • getDefault

      public static StyleManager getDefault()
      Gets the default `AdwStyleManager` instance.

      It manages all [class@Gdk.Display] instances unless the style manager for
      that display has an override.

      See [func@StyleManager.get_for_display].
      Returns:
      the default style manager
    • getForDisplay

      public static StyleManager getForDisplay(@Nonnull Display display)
      Gets the `AdwStyleManager` instance managing @display.

      It can be used to override styles for that specific display instead of the
      whole application.

      Most applications should use [func@StyleManager.get_default] instead.
      Parameters:
      display - a `GdkDisplay`
      Returns:
      the style manager for @display
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()