| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| #ifndef GUAC_TERMINAL_COLOR_SCHEME_H |
| #define GUAC_TERMINAL_COLOR_SCHEME_H |
| |
| #include "config.h" |
| |
| #include "terminal/palette.h" |
| |
| #include <guacamole/client.h> |
| |
| #include <stdlib.h> |
| #include <string.h> |
| |
| /** |
| * The name of the color scheme having black foreground and white background. |
| */ |
| #define GUAC_TERMINAL_SCHEME_BLACK_WHITE "black-white" |
| |
| /** |
| * The name of the color scheme having gray foreground and black background. |
| */ |
| #define GUAC_TERMINAL_SCHEME_GRAY_BLACK "gray-black" |
| |
| /** |
| * The name of the color scheme having green foreground and black background. |
| */ |
| #define GUAC_TERMINAL_SCHEME_GREEN_BLACK "green-black" |
| |
| /** |
| * The name of the color scheme having white foreground and black background. |
| */ |
| #define GUAC_TERMINAL_SCHEME_WHITE_BLACK "white-black" |
| |
| /** |
| * Color name representing the foreground color. |
| */ |
| #define GUAC_TERMINAL_SCHEME_FOREGROUND "foreground" |
| |
| /** |
| * Color name representing the background color. |
| */ |
| #define GUAC_TERMINAL_SCHEME_BACKGROUND "background" |
| |
| /** |
| * Color name representing a numbered color. |
| */ |
| #define GUAC_TERMINAL_SCHEME_NUMBERED "color" |
| |
| /** |
| * Parse a color-scheme configuration string, and return specified |
| * foreground/background colors and color palette. |
| * |
| * @param client |
| * The client that the terminal is connected to. |
| * |
| * @param color_scheme |
| * The name of a pre-defined color scheme (one of the |
| * names defined by the GUAC_TERMINAL_SCHEME_* constants), or |
| * semicolon-separated list of name-value pairs, i.e. "<name>: <value> [; |
| * <name>: <value> [; ...]]". For example, "color2: rgb:cc/33/22; |
| * background: color5". |
| * |
| * If blank, the default scheme of GUAC_TERMINAL_SCHEME_GRAY_BLACK will be |
| * used. If invalid, a warning will be logged, and |
| * GUAC_TERMINAL_SCHEME_GRAY_BLACK will be used. |
| * |
| * @param[out] foreground |
| * Parsed foreground color. |
| * |
| * @param[out] background |
| * Parsed background color. |
| * |
| * @param[in,out] palette |
| * Parsed color palette. The caller is responsible for allocating a mutable |
| * array on entry. On return, the array contains the parsed palette. |
| */ |
| void guac_terminal_parse_color_scheme(guac_client* client, |
| const char* color_scheme, guac_terminal_color* foreground, |
| guac_terminal_color* background, |
| guac_terminal_color (*palette)[256]); |
| |
| #endif |
| |