1 /* 2 * textstyle.h 3 * 4 * Version: 2.2.5 5 * 6 * ----------------------------------------------------------------------------- 7 * 8 * SPDX-License-Identifier: MIT 9 * 10 * Copyright (c) 2018-2024 Ryan M. Lederman <lederman@gmail.com> 11 * 12 * Permission is hereby granted, free of charge, to any person obtaining a copy of 13 * this software and associated documentation files (the "Software"), to deal in 14 * the Software without restriction, including without limitation the rights to 15 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 16 * the Software, and to permit persons to whom the Software is furnished to do so, 17 * subject to the following conditions: 18 * 19 * The above copyright notice and this permission notice shall be included in all 20 * copies or substantial portions of the Software. 21 * 22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 24 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 25 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 26 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 27 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 * 29 * ----------------------------------------------------------------------------- 30 */ 31 32 #ifndef _SIR_TEXTSTYLE_H_INCLUDED 33 # define _SIR_TEXTSTYLE_H_INCLUDED 34 35 # include "sir/types.h" 36 37 extern sir_text_style_data sir_text_style_section; 38 39 /** Returns the final string form of the current ::sir_textstyle for a ::sir_level. */ 40 const char* _sir_gettextstyle(sir_level level); 41 42 /** Sets the ::sir_textstyle for a ::sir_level. */ 43 bool _sir_settextstyle(sir_level level, const sir_textstyle* style); 44 45 /** Retrieves the default ::sir_textstyle for a ::sir_level. */ 46 const sir_textstyle* _sir_getdefstyle(sir_level level); 47 48 /** Resets all per-level ::sir_textstyle to defaults. */ 49 bool _sir_resettextstyles(void); 50 51 /** Creates the ANSI escape sequence that produces the associated text style. */ 52 bool _sir_formatstyle(sir_colormode mode, const sir_textstyle* style, 53 char buf[SIR_MAXSTYLE]); 54 55 /** Validates a ::sir_textstyle based on color mode. */ 56 bool _sir_validtextstyle(sir_colormode mode, const sir_textstyle* style); 57 58 /** Sets the current color mode. */ 59 bool _sir_setcolormode(sir_colormode mode); 60 61 #endif /* !_SIR_TEXTSTYLE_H_INCLUDED */