ChangeableHighlightPainter
Date: 2017-02-11

org.fife.ui.rtextarea

## Class ChangeableHighlightPainter

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

- All Implemented Interfaces:
    java.io.Serializable, javax.swing.text.Highlighter.HighlightPainter
  Direct Known Subclasses:
    SmartHighlightPainter, SquiggleUnderlineHighlightPainter

      public class ChangeableHighlightPainter
      extends javax.swing.text.LayeredHighlighter.LayerPainter
      implements java.io.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 and 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(java.awt.Paint paint)` Creates a new highlight painter using the specified `Paint` without rounded edges.
    `ChangeableHighlightPainter(java.awt.Paint paint, boolean rounded)` Creates a new highlight painter.
    `ChangeableHighlightPainter(java.awt.Paint paint, boolean rounded, float alpha)` Creates a new highlight painter.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `float` | `getAlpha()` Returns the alpha value used in computing the translucency of these highlights.
    `java.awt.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(java.awt.Graphics g, int offs0, int offs1, java.awt.Shape bounds, javax.swing.text.JTextComponent c)` Paints a highlight.
    `java.awt.Shape` | `paintLayer(java.awt.Graphics g, int offs0, int offs1, java.awt.Shape bounds, javax.swing.text.JTextComponent c, javax.swing.text.View view)` Paints a portion of a highlight.
    `void` | `setAlpha(float alpha)` Sets the alpha value used in rendering highlights.
    `void` | `setPaint(java.awt.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(java.awt.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(java.awt.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(java.awt.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 java.awt.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(java.awt.Graphics g,
                   int offs0,
                   int offs1,
                   java.awt.Shape bounds,
                   javax.swing.text.JTextComponent c)

      Paints a highlight.
      Specified by:
        `paint` in interface `javax.swing.text.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 java.awt.Shape paintLayer(java.awt.Graphics g,
                                  int offs0,
                                  int offs1,
                                  java.awt.Shape bounds,
                                  javax.swing.text.JTextComponent c,
                                  javax.swing.text.View view)

      Paints a portion of a highlight.
      Specified by:
        `paintLayer` in class `javax.swing.text.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(java.awt.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()`