Theme
Date: 2017-02-11

org.fife.ui.rsyntaxtextarea

## Class Theme

- java.lang.Object
- - org.fife.ui.rsyntaxtextarea.Theme

-     public class Theme
      extends java.lang.Object

  A theme is a set of fonts and colors to use to style RSyntaxTextArea. Themes are defined in XML files that are validated against `themes.dtd`. This provides applications and other consumers with an easy way to style RSyntaxTextArea without having to use the API.

  Sample themes are included in the source tree under the `/themes` folder, but are not a part of the built RSyntaxTextArea jar. Hosting applications are free to ship and use these themes as-is, modify them, or create their own.

  Note that to save a `Theme` via `save(OutputStream)`, you must currently create a `Theme` from a text area wrapped in an `RTextScrollPane`, so that the color information for the gutter can be retrieved.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Theme(RSyntaxTextArea textArea)` Creates a theme from an RSyntaxTextArea.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `apply(RSyntaxTextArea textArea)` Applies this theme to a text area.
    `static Theme` | `load(java.io.InputStream in)` Loads a theme.
    `static Theme` | `load(java.io.InputStream in, java.awt.Font baseFont)` Loads a theme.
    `void` | `save(java.io.OutputStream out)` Saves this theme to an output stream.

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

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

- - ### Constructor Detail

    - #### Theme

          public Theme(RSyntaxTextArea textArea)

      Creates a theme from an RSyntaxTextArea. It should be contained in an `RTextScrollPane` to get all gutter color information.
      Parameters:
        `textArea` - The text area.

  - ### Method Detail

    - #### apply

          public void apply(RSyntaxTextArea textArea)

      Applies this theme to a text area.
      Parameters:
        `textArea` - The text area to apply this theme to.

    - #### load

          public static Theme load(java.io.InputStream in)
                            throws java.io.IOException

      Loads a theme.
      Parameters:
        `in` - The input stream to read from. This will be closed when this method returns.
      Returns:
        The theme.
      Throws:
        `java.io.IOException` - If an IO error occurs.
      See Also:
        `save(OutputStream)`

    - #### load

          public static Theme load(java.io.InputStream in,
                   java.awt.Font baseFont)
                            throws java.io.IOException

      Loads a theme.
      Parameters:
        `in` - The input stream to read from. This will be closed when this method returns.
        `baseFont` - The default font to use for any "base font" properties not specified in the theme XML. If this is `null`, a default monospaced font will be used.
      Returns:
        The theme.
      Throws:
        `java.io.IOException` - If an IO error occurs.
      See Also:
        `save(OutputStream)`

    - #### save

          public void save(java.io.OutputStream out)
                    throws java.io.IOException

      Saves this theme to an output stream.
      Parameters:
        `out` - The output stream to write to.
      Throws:
        `java.io.IOException` - If an IO error occurs.
      See Also:
        `load(InputStream)`