#ifndef MC_SKIN_H #define MC_SKIN_H #include "lib/global.h" #include "lib/mcconfig.h" #include "lib/tty/color.h" /*** typedefs(not structures) and defined constants **********************************************/ /* Beware! When using Slang with color, not all the indexes are free. See color-slang.h (A_*) */ /* cache often used colors */ #define DEFAULT_COLOR mc_skin_color__cache[0] #define NORMAL_COLOR mc_skin_color__cache[1] #define MARKED_COLOR mc_skin_color__cache[2] #define SELECTED_COLOR mc_skin_color__cache[3] #define MARKED_SELECTED_COLOR mc_skin_color__cache[4] #define DISABLED_COLOR mc_skin_color__cache[5] #define REVERSE_COLOR mc_skin_color__cache[6] #define COMMAND_MARK_COLOR mc_skin_color__cache[7] #define HEADER_COLOR mc_skin_color__cache[8] #define SHADOW_COLOR mc_skin_color__cache[9] /* Dialog colors */ #define COLOR_NORMAL mc_skin_color__cache[10] #define COLOR_FOCUS mc_skin_color__cache[11] #define COLOR_HOT_NORMAL mc_skin_color__cache[12] #define COLOR_HOT_FOCUS mc_skin_color__cache[13] #define COLOR_TITLE mc_skin_color__cache[14] /* Error dialog colors */ #define ERROR_COLOR mc_skin_color__cache[15] #define ERROR_FOCUS mc_skin_color__cache[16] #define ERROR_HOT_NORMAL mc_skin_color__cache[17] #define ERROR_HOT_FOCUS mc_skin_color__cache[18] #define ERROR_TITLE mc_skin_color__cache[19] /* Menu colors */ #define MENU_ENTRY_COLOR mc_skin_color__cache[20] #define MENU_SELECTED_COLOR mc_skin_color__cache[21] #define MENU_HOT_COLOR mc_skin_color__cache[22] #define MENU_HOTSEL_COLOR mc_skin_color__cache[23] #define MENU_INACTIVE_COLOR mc_skin_color__cache[24] /* Popup menu colors */ #define PMENU_ENTRY_COLOR mc_skin_color__cache[25] #define PMENU_SELECTED_COLOR mc_skin_color__cache[26] #define PMENU_HOT_COLOR mc_skin_color__cache[27] /* unused: not implemented yet */ #define PMENU_HOTSEL_COLOR mc_skin_color__cache[28] /* unused: not implemented yet */ #define PMENU_TITLE_COLOR mc_skin_color__cache[29] #define BUTTONBAR_HOTKEY_COLOR mc_skin_color__cache[30] #define BUTTONBAR_BUTTON_COLOR mc_skin_color__cache[31] #define STATUSBAR_COLOR mc_skin_color__cache[32] /* * This should be selectable independently. Default has to be black background * foreground does not matter at all. */ #define GAUGE_COLOR mc_skin_color__cache[33] #define INPUT_COLOR mc_skin_color__cache[34] #define INPUT_UNCHANGED_COLOR mc_skin_color__cache[35] #define INPUT_MARK_COLOR mc_skin_color__cache[36] #define INPUT_HISTORY_COLOR mc_skin_color__cache[37] #define COMMAND_HISTORY_COLOR mc_skin_color__cache[38] #define HELP_NORMAL_COLOR mc_skin_color__cache[39] #define HELP_ITALIC_COLOR mc_skin_color__cache[40] #define HELP_BOLD_COLOR mc_skin_color__cache[41] #define HELP_LINK_COLOR mc_skin_color__cache[42] #define HELP_SLINK_COLOR mc_skin_color__cache[43] #define HELP_TITLE_COLOR mc_skin_color__cache[44] #define VIEW_NORMAL_COLOR mc_skin_color__cache[45] #define VIEW_BOLD_COLOR mc_skin_color__cache[46] #define VIEW_UNDERLINED_COLOR mc_skin_color__cache[47] #define VIEW_SELECTED_COLOR mc_skin_color__cache[48] /* * editor colors - only 4 for normal, search->found, select, and whitespace * respectively * Last is defined to view color. */ #define EDITOR_NORMAL_COLOR mc_skin_color__cache[49] #define EDITOR_NONPRINTABLE_COLOR mc_skin_color__cache[50] #define EDITOR_BOLD_COLOR mc_skin_color__cache[51] #define EDITOR_MARKED_COLOR mc_skin_color__cache[52] #define EDITOR_WHITESPACE_COLOR mc_skin_color__cache[53] #define EDITOR_RIGHT_MARGIN_COLOR mc_skin_color__cache[54] #define EDITOR_BACKGROUND mc_skin_color__cache[55] #define EDITOR_FRAME mc_skin_color__cache[56] #define EDITOR_FRAME_ACTIVE mc_skin_color__cache[57] #define EDITOR_FRAME_DRAG mc_skin_color__cache[58] /* color of left 8 char status per line */ #define LINE_STATE_COLOR mc_skin_color__cache[59] #define BOOK_MARK_COLOR mc_skin_color__cache[60] #define BOOK_MARK_FOUND_COLOR mc_skin_color__cache[61] /* Diff colors */ #define DFF_ADD_COLOR mc_skin_color__cache[62] #define DFF_CHG_COLOR mc_skin_color__cache[63] #define DFF_CHH_COLOR mc_skin_color__cache[64] #define DFF_CHD_COLOR mc_skin_color__cache[65] #define DFF_DEL_COLOR mc_skin_color__cache[66] #define DFF_ERROR_COLOR mc_skin_color__cache[67] #define MC_SKIN_COLOR_CACHE_COUNT 68 /*** enums ***************************************************************************************/ /*** structures declarations (and typedefs of structures)*****************************************/ typedef struct mc_skin_struct { gchar *name; gchar *description; mc_config_t *config; GHashTable *colors; gboolean have_256_colors; gboolean have_true_colors; } mc_skin_t; /*** global variables defined in .c file *********************************************************/ extern int mc_skin_color__cache[]; extern mc_skin_t mc_skin__default; /*** declarations of public functions ************************************************************/ gboolean mc_skin_init (const gchar *skin_override, GError **error); void mc_skin_deinit (void); int mc_skin_color_get (const gchar *group, const gchar *name); void mc_skin_lines_parse_ini_file (mc_skin_t *mc_skin); gchar *mc_skin_get (const gchar *group, const gchar *key, const gchar *default_value); GPtrArray *mc_skin_list (void); #endif /* MC_SKIN_H */