summaryrefslogtreecommitdiffstats
path: root/lib/skin.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/skin.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/lib/skin.h b/lib/skin.h
new file mode 100644
index 0000000..024e0c5
--- /dev/null
+++ b/lib/skin.h
@@ -0,0 +1,145 @@
+#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_BOLD_COLOR mc_skin_color__cache[50]
+#define EDITOR_MARKED_COLOR mc_skin_color__cache[51]
+#define EDITOR_WHITESPACE_COLOR mc_skin_color__cache[52]
+#define EDITOR_RIGHT_MARGIN_COLOR mc_skin_color__cache[53]
+#define EDITOR_BACKGROUND mc_skin_color__cache[54]
+#define EDITOR_FRAME mc_skin_color__cache[55]
+#define EDITOR_FRAME_ACTIVE mc_skin_color__cache[56]
+#define EDITOR_FRAME_DRAG mc_skin_color__cache[57]
+/* color of left 8 char status per line */
+#define LINE_STATE_COLOR mc_skin_color__cache[58]
+#define BOOK_MARK_COLOR mc_skin_color__cache[59]
+#define BOOK_MARK_FOUND_COLOR mc_skin_color__cache[60]
+
+/* Diff colors */
+#define DFF_ADD_COLOR mc_skin_color__cache[61]
+#define DFF_CHG_COLOR mc_skin_color__cache[62]
+#define DFF_CHH_COLOR mc_skin_color__cache[63]
+#define DFF_CHD_COLOR mc_skin_color__cache[64]
+#define DFF_DEL_COLOR mc_skin_color__cache[65]
+#define DFF_ERROR_COLOR mc_skin_color__cache[66]
+
+#define MC_SKIN_COLOR_CACHE_COUNT 67
+
+/*** 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 */