/*
* This file is part of lanterna (https://github.com/mabe02/lanterna).
*
* lanterna is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Copyright (C) 2010-2020 Martin Berglund
*/
package com.googlecode.lanterna.graphics;
import com.googlecode.lanterna.gui2.WindowDecorationRenderer;
import com.googlecode.lanterna.gui2.WindowPostRenderer;
The main theme interface, from which you can retrieve theme definitions
Author: Martin
/**
* The main theme interface, from which you can retrieve theme definitions
* @author Martin
*/
public interface Theme {
Returns what this theme considers to be the default definition
Returns: The default theme definition
/**
* Returns what this theme considers to be the default definition
* @return The default theme definition
*/
ThemeDefinition getDefaultDefinition();
Returns the theme definition associated with this class. The implementation of Theme should ensure that this call never returns null
, it should always give back a valid value (falling back to the default is nothing else can be used). Params: - clazz – Class to get the theme definition for
Returns: The ThemeDefinition for the class passed in
/**
* Returns the theme definition associated with this class. The implementation of Theme should ensure that this
* call never returns {@code null}, it should always give back a valid value (falling back to the default is nothing
* else can be used).
* @param clazz Class to get the theme definition for
* @return The ThemeDefinition for the class passed in
*/
ThemeDefinition getDefinition(Class<?> clazz);
Returns a post-renderer to invoke after drawing each window, unless the GUI system or individual windows has their own renderers set. If null
, no post-renderer will be done (unless the GUI system or the windows has a post-renderer). Returns: A WindowPostRenderer
to invoke after drawing each window unless overridden, or null
if none
/**
* Returns a post-renderer to invoke after drawing each window, unless the GUI system or individual windows has
* their own renderers set. If {@code null}, no post-renderer will be done (unless the GUI system or the windows
* has a post-renderer).
* @return A {@link com.googlecode.lanterna.gui2.WindowPostRenderer} to invoke after drawing each window unless
* overridden, or {@code null} if none
*/
WindowPostRenderer getWindowPostRenderer();
Returns the WindowDecorationRenderer
to use for windows drawn in this theme. If null
then lanterna will fall back to use DefaultWindowDecorationRenderer
. Returns: The decoration renderer to use for this theme, or null
to use system default
/**
* Returns the {@link WindowDecorationRenderer} to use for windows drawn in this theme. If {@code null} then
* lanterna will fall back to use {@link com.googlecode.lanterna.gui2.DefaultWindowDecorationRenderer}.
*
* @return The decoration renderer to use for this theme, or {@code null} to use system default
*/
WindowDecorationRenderer getWindowDecorationRenderer();
}