Package org.fife.ui.rtextarea

## Class ChangeableHighlightPainter

- java.lang.Object
- - javax.swing.text.LayeredHighlighter.LayerPainter
  - - org.fife.ui.rtextarea.ChangeableHighlightPainter

- All Implemented Interfaces:
    `Serializable`, `Highlighter.HighlightPainter`
  Direct Known Subclasses:
    `SmartHighlightPainter`, `SquiggleUnderlineHighlightPainter`

      public class ChangeableHighlightPainter
      extends LayeredHighlighter.LayerPainter
      implements Serializable

  An extension of `LayerPainter` that allows the user to change several of its properties:
  - Its color/fill style (can use a `GradientPaint`, for example).
  - Whether the edges of a painted highlight are rounded.
  - Whether painted highlights have translucency.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ChangeableHighlightPainter()` | Creates a new `ChangableHighlightPainter` that paints highlights with the text area's selection color (i.e., behaves exactly like `javax.swing.text.DefaultHighlighter.DefaultHighlightPainter` ).
    `ChangeableHighlightPainter​(Paint paint)` | Creates a new highlight painter using the specified `Paint` without rounded edges.
    `ChangeableHighlightPainter​(Paint paint, boolean rounded)` | Creates a new highlight painter.
    `ChangeableHighlightPainter​(Paint paint, boolean rounded, float alpha)` | Creates a new highlight painter.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `float` | `getAlpha()` | Returns the alpha value used in computing the translucency of these highlights.
    `Paint` | `getPaint()` | Returns the `Paint` (usually a `java.awt.Color`) being used to paint highlights.
    `boolean` | `getRoundedEdges()` | Returns whether rounded edges are used when painting selections with this highlight painter.
    `void` | `paint​(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c)` | Paints a highlight.
    `Shape` | `paintLayer​(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c, View view)` | Paints a portion of a highlight.
    `void` | `setAlpha​(float alpha)` | Sets the alpha value used in rendering highlights.
    `void` | `setPaint​(Paint paint)` | Sets the `Paint` (usually a `java.awt.Color`) used to paint this highlight.
    `void` | `setRoundedEdges​(boolean rounded)` | Sets whether rounded edges are used when painting this highlight.

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

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

- - ### Constructor Detail

    - #### ChangeableHighlightPainter

          public ChangeableHighlightPainter()

      Creates a new `ChangableHighlightPainter` that paints highlights with the text area's selection color (i.e., behaves exactly like `javax.swing.text.DefaultHighlighter.DefaultHighlightPainter` ).

    - #### ChangeableHighlightPainter

          public ChangeableHighlightPainter​(Paint paint)

      Creates a new highlight painter using the specified `Paint` without rounded edges.
      Parameters:
        `paint` - The `Paint` (usually a `java.awt.Color`) with which to paint the highlights.

    - #### ChangeableHighlightPainter

          public ChangeableHighlightPainter​(Paint paint,
                                            boolean rounded)

      Creates a new highlight painter.
      Parameters:
        `paint` - The `Paint` (usually a `java.awt.Color`) with which to paint the highlights.
        `rounded` - Whether to use rounded edges on the highlights.

    - #### ChangeableHighlightPainter

          public ChangeableHighlightPainter​(Paint paint,
                                            boolean rounded,
                                            float alpha)

      Creates a new highlight painter.
      Parameters:
        `paint` - The `Paint` (usually a `java.awt.Color`) with which to paint the highlights.
        `rounded` - Whether to use rounded edges on the highlights.
        `alpha` - The alpha value to use when painting highlights. This value should be in the range `0.0f` (completely transparent) through `1.0f` (opaque).

  - ### Method Detail

    - #### getAlpha

          public float getAlpha()

      Returns the alpha value used in computing the translucency of these highlights. A value of `1.0f` (the default) means that no translucency is used; there is no performance hit for this value. For all other values (`[0.0f..1.0f)`), there will be a performance hit.
      Returns:
        The alpha value.
      See Also:
        `setAlpha(float)`

    - #### getPaint

          public Paint getPaint()

      Returns the `Paint` (usually a `java.awt.Color`) being used to paint highlights.
      Returns:
        The `Paint`.
      See Also:
        `setPaint(java.awt.Paint)`

    - #### getRoundedEdges

          public boolean getRoundedEdges()

      Returns whether rounded edges are used when painting selections with this highlight painter.
      Returns:
        Whether rounded edges are used.
      See Also:
        `setRoundedEdges(boolean)`

    - #### paint

          public void paint​(Graphics g,
                            int offs0,
                            int offs1,
                            Shape bounds,
                            JTextComponent c)

      Paints a highlight.
      Specified by:
        `paint` in interface `Highlighter.HighlightPainter`
      Parameters:
        `g` - the graphics context
        `offs0` - the starting model offset >= 0
        `offs1` - the ending model offset >= offs1
        `bounds` - the bounding box for the highlight
        `c` - the editor

    - #### paintLayer

          public Shape paintLayer​(Graphics g,
                                  int offs0,
                                  int offs1,
                                  Shape bounds,
                                  JTextComponent c,
                                  View view)

      Paints a portion of a highlight.
      Specified by:
        `paintLayer` in class `LayeredHighlighter.LayerPainter`
      Parameters:
        `g` - the graphics context
        `offs0` - the starting model offset >= 0
        `offs1` - the ending model offset >= offs1
        `bounds` - the bounding box of the view, which is not necessarily the region to paint.
        `c` - the editor
        `view` - View painting for
      Returns:
        region drawing occurred in

    - #### setAlpha

          public void setAlpha​(float alpha)

      Sets the alpha value used in rendering highlights. If this value is `1.0f` (the default), the highlights are rendered completely opaque. This behavior matches that of `DefaultHighlightPainter` and imposes no performance hit. If this value is below `1.0f`, it represents how opaque the highlight will be. There will be a small performance hit for values less than `1.0f`.
      Parameters:
        `alpha` - The new alpha value to use for transparency.
      See Also:
        `getAlpha()`

    - #### setPaint

          public void setPaint​(Paint paint)

      Sets the `Paint` (usually a `java.awt.Color`) used to paint this highlight.
      Parameters:
        `paint` - The new `Paint`.
      See Also:
        `getPaint()`

    - #### setRoundedEdges

          public void setRoundedEdges​(boolean rounded)

      Sets whether rounded edges are used when painting this highlight.
      Parameters:
        `rounded` - Whether rounded edges should be used.
      See Also:
        `getRoundedEdges()`