summaryrefslogtreecommitdiff
path: root/pith/osdep/color.h
diff options
context:
space:
mode:
Diffstat (limited to 'pith/osdep/color.h')
-rw-r--r--pith/osdep/color.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/pith/osdep/color.h b/pith/osdep/color.h
new file mode 100644
index 00000000..32c86242
--- /dev/null
+++ b/pith/osdep/color.h
@@ -0,0 +1,98 @@
+/*
+ * $Id: color.h 1012 2008-03-26 00:44:22Z hubert@u.washington.edu $
+ *
+ * ========================================================================
+ * Copyright 2006-2008 University of Washington
+ * Copyright 2013 Eduardo Chappa
+ *
+ * Licensed 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
+ *
+ * ========================================================================
+ */
+
+#ifndef PITH_OSDEP_COLOR_INCLUDED
+#define PITH_OSDEP_COLOR_INCLUDED
+
+
+#define RGBLEN 11
+#define MAXCOLORLEN 11 /* longest string a color can be */
+
+typedef struct COLOR_PAIR {
+ char fg[MAXCOLORLEN+1];
+ char bg[MAXCOLORLEN+1];
+} COLOR_PAIR;
+
+#define COL_BLACK 0
+#define COL_RED 1
+#define COL_GREEN 2
+#define COL_YELLOW 3
+#define COL_BLUE 4
+#define COL_MAGENTA 5
+#define COL_CYAN 6
+#define COL_WHITE 7
+
+#define DEFAULT_NORM_FORE_RGB "000,000,000"
+#define DEFAULT_NORM_BACK_RGB "255,255,255"
+
+/* flags for pico_set_color() */
+#define PSC_NONE 0x0
+#define PSC_NORM 0x1
+#define PSC_REV 0x2
+#define PSC_RET 0x4 /* return an allocated copy of previous color */
+
+
+/*
+ * MATCH_NORM_COLOR means that the color that is set to this value
+ * will actually use the corresponding fg or bg color from the
+ * so called Normal Color. A MATCH_NONE_COLOR means that the
+ * corresponding fg or bg color will just be left alone, so that
+ * it will stay the same as it was. This is useful when you want
+ * to change the foreground color but let the background match
+ * whatever it was before, for example in colored index lines.
+ *
+ * Note: these need to be RGBLEN in length because they are sometimes
+ * used in places where an RGB value is expected.
+ */
+#define MATCH_NORM_COLOR "norm_padded"
+#define MATCH_NONE_COLOR "none_padded"
+
+#define MATCH_TRAN_COLOR "transparent"
+
+
+/* exported prototypes */
+COLOR_PAIR *new_color_pair(char *, char *);
+void free_color_pair(COLOR_PAIR **cp);
+int pico_is_good_colorpair(COLOR_PAIR *);
+COLOR_PAIR *pico_set_colorp(COLOR_PAIR *, int);
+
+
+/* required prototypes (os/app dependent ) */
+int pico_usingcolor(void);
+int pico_hascolor(void);
+char *colorx(int);
+char *color_to_asciirgb(char *);
+int pico_is_good_color(char *);
+COLOR_PAIR *pico_set_colors(char *, char *, int);
+int pico_set_fg_color(char *);
+int pico_set_bg_color(char *);
+void pico_nfcolor(char *);
+void pico_nbcolor(char *);
+void pico_rfcolor(char *);
+void pico_rbcolor(char *);
+COLOR_PAIR *pico_get_cur_color(void);
+COLOR_PAIR *pico_get_rev_color(void);
+void pico_set_normal_color(void);
+void pico_set_color_options(unsigned);
+unsigned pico_get_color_options(void);
+int pico_trans_is_on(void);
+char *pico_get_last_fg_color(void);
+char *pico_get_last_bg_color(void);
+char *color_to_canonical_name(char *);
+int pico_count_in_color_table(void);
+
+
+#endif /* PITH_OSDEP_COLOR_INCLUDED */