com.explodingpixels.macwidgets.plaf

## Class HudPaintingUtils

- java.lang.Object
- - com.explodingpixels.macwidgets.plaf.HudPaintingUtils

-     public class HudPaintingUtils
      extends Object

  A collection of utilty method for painting Heads Up Style widgets. See the following for examples of HUD widgets:
  - `HudButtonUI`
  - `HudCheckBoxUI`
  - `HudComboBoxUI`
  - `HudLabelUI`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `HudPaintingUtils.Roundedness` An enumeration representing the roundness styles of HUD buttons.
    `static interface` | `HudPaintingUtils.ShapeProvider`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Color` | `BORDER_COLOR`
    `static Color` | `FONT_COLOR`
    `static Color` | `FONT_DISABLED_COLOR`
    `static Color` | `PRESSED_MARK_COLOR`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `getHudControlShadowSize(AbstractButton button)` Gets the number of pixels that a HUD style widget's shadow takes up.
    `static Font` | `getHudFont()` Gets the font used by HUD style widgets.
    `static void` | `initHudComponent(JComponent component, boolean isDarkColorScheme)` Initializes the given `JComponent` as a HUD style widget.
    `static void` | `paintHudControlBackground(Graphics2D graphics, AbstractButton button, int width, int height, HudPaintingUtils.Roundedness roundedness, boolean isDarkColorScheme)` Paints a HUD style button background onto the given `Graphics2D` context using the given `HudPaintingUtils.Roundedness`.
    `static void` | `paintHudControlBackground(Graphics2D graphics, Rectangle bounds, HudPaintingUtils.ShapeProvider shapeProvider, Paint paint)` Paints a HUD style background in the given shape.
    `static void` | `updateGraphicsToPaintDisabledControlIfNecessary(Graphics2D graphics, Component component)` Installs an `AlphaComposite` on the given Graphics2D) if the given {@link Component} is disabled.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### FONT_COLOR

          public static final Color FONT_COLOR

    - #### FONT_DISABLED_COLOR

          public static final Color FONT_DISABLED_COLOR

    - #### PRESSED_MARK_COLOR

          public static final Color PRESSED_MARK_COLOR

    - #### BORDER_COLOR

          public static final Color BORDER_COLOR

  - ### Method Detail

    - #### initHudComponent

          public static void initHudComponent(JComponent component,
                              boolean isDarkColorScheme)

      Initializes the given `JComponent` as a HUD style widget. This includes setting the font, foreground and opacity of the given component.
      Parameters:
        `component` - the component to initialize as a HUD component.

    - #### getHudFont

          public static Font getHudFont()

      Gets the font used by HUD style widgets.
      Returns:
        the font used by HUD style widgets.

    - #### getHudControlShadowSize

          public static int getHudControlShadowSize(AbstractButton button)

      Gets the number of pixels that a HUD style widget's shadow takes up. HUD button's have a shadow directly below them, that is, there is no top, left or right component to the shadow.
      Parameters:
        `button` - the button that the shadow is drawn on.
      Returns:
        the number of pixels that a HUD style widget's shadow takes up.

    - #### paintHudControlBackground

          public static void paintHudControlBackground(Graphics2D graphics,
                                       AbstractButton button,
                                       int width,
                                       int height,
                                       HudPaintingUtils.Roundedness roundedness,
                                       boolean isDarkColorScheme)

      Paints a HUD style button background onto the given `Graphics2D` context using the given `HudPaintingUtils.Roundedness`. The background will be painted from 0,0 to width/height.
      Parameters:
        `graphics` - the graphics context to paint onto.
        `button` - the button being painted.
        `width` - the width of the area to paint.
        `height` - the height of the area to paint.
        `roundedness` - the roundedness to use when painting the background.
        `isDarkColorScheme` - whether to use the light or dark color scheme for this button

    - #### paintHudControlBackground

          public static void paintHudControlBackground(Graphics2D graphics,
                                       Rectangle bounds,
                                       HudPaintingUtils.ShapeProvider shapeProvider,
                                       Paint paint)

      Paints a HUD style background in the given shape. This includes a drop shadow which will be drawn under the shape to be painted. The shadow will be draw outside the given bounds.
      Parameters:
        `graphics` - the `Graphics2D` context to draw in.
        `bounds` - the bounds to paint in.
        `shapeProvider` - the delegate to request the `Shape` from.
        `paint` - the `Paint` to use to fill the `Shape`.

    - #### updateGraphicsToPaintDisabledControlIfNecessary

          public static void updateGraphicsToPaintDisabledControlIfNecessary(Graphics2D graphics,
                                                             Component component)

      Installs an `AlphaComposite` on the given Graphics2D) if the given {@link Component} is disabled.
      Parameters:
        `graphics` - the `Graphics2D` to adjust.
        `component` - the `Component` whos enablement state should be queried.