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

    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.

Version:
  0.6
Author:
  Robert Futrell
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(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

Methods
`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()`