skin.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #ifndef MC_SKIN_H
  2. #define MC_SKIN_H
  3. #include "lib/global.h"
  4. #include "lib/mcconfig.h"
  5. #include "lib/tty/color.h"
  6. /*** typedefs(not structures) and defined constants **********************************************/
  7. /* Beware! When using Slang with color, not all the indexes are free.
  8. See color-slang.h (A_*) */
  9. /* cache often used colors */
  10. #define DEFAULT_COLOR mc_skin_color__cache[0]
  11. #define NORMAL_COLOR mc_skin_color__cache[1]
  12. #define MARKED_COLOR mc_skin_color__cache[2]
  13. #define SELECTED_COLOR mc_skin_color__cache[3]
  14. #define MARKED_SELECTED_COLOR mc_skin_color__cache[4]
  15. #define DISABLED_COLOR mc_skin_color__cache[5]
  16. #define REVERSE_COLOR mc_skin_color__cache[6]
  17. #define COMMAND_MARK_COLOR mc_skin_color__cache[7]
  18. #define HEADER_COLOR mc_skin_color__cache[8]
  19. /* Dialog colors */
  20. #define COLOR_NORMAL mc_skin_color__cache[9]
  21. #define COLOR_FOCUS mc_skin_color__cache[10]
  22. #define COLOR_HOT_NORMAL mc_skin_color__cache[11]
  23. #define COLOR_HOT_FOCUS mc_skin_color__cache[12]
  24. #define COLOR_TITLE mc_skin_color__cache[13]
  25. /* Error dialog colors */
  26. #define ERROR_COLOR mc_skin_color__cache[14]
  27. #define ERROR_FOCUS mc_skin_color__cache[15]
  28. #define ERROR_HOT_NORMAL mc_skin_color__cache[16]
  29. #define ERROR_HOT_FOCUS mc_skin_color__cache[17]
  30. #define ERROR_TITLE mc_skin_color__cache[18]
  31. /* Menu colors */
  32. #define MENU_ENTRY_COLOR mc_skin_color__cache[19]
  33. #define MENU_SELECTED_COLOR mc_skin_color__cache[20]
  34. #define MENU_HOT_COLOR mc_skin_color__cache[21]
  35. #define MENU_HOTSEL_COLOR mc_skin_color__cache[22]
  36. #define MENU_INACTIVE_COLOR mc_skin_color__cache[23]
  37. #define BUTTONBAR_HOTKEY_COLOR mc_skin_color__cache[24]
  38. #define BUTTONBAR_BUTTON_COLOR mc_skin_color__cache[25]
  39. #define STATUSBAR_COLOR mc_skin_color__cache[26]
  40. /*
  41. * This should be selectable independently. Default has to be black background
  42. * foreground does not matter at all.
  43. */
  44. #define GAUGE_COLOR mc_skin_color__cache[27]
  45. #define INPUT_COLOR mc_skin_color__cache[28]
  46. #define INPUT_UNCHANGED_COLOR mc_skin_color__cache[29]
  47. #define INPUT_MARK_COLOR mc_skin_color__cache[30]
  48. #define INPUT_HISTORY_COLOR mc_skin_color__cache[31]
  49. #define COMMAND_HISTORY_COLOR mc_skin_color__cache[32]
  50. #define HELP_NORMAL_COLOR mc_skin_color__cache[33]
  51. #define HELP_ITALIC_COLOR mc_skin_color__cache[34]
  52. #define HELP_BOLD_COLOR mc_skin_color__cache[35]
  53. #define HELP_LINK_COLOR mc_skin_color__cache[36]
  54. #define HELP_SLINK_COLOR mc_skin_color__cache[37]
  55. #define HELP_TITLE_COLOR mc_skin_color__cache[38]
  56. #define VIEW_BOLD_COLOR mc_skin_color__cache[39]
  57. #define VIEW_UNDERLINED_COLOR mc_skin_color__cache[40]
  58. #define VIEW_SELECTED_COLOR mc_skin_color__cache[41]
  59. /*
  60. * editor colors - only 4 for normal, search->found, select, and whitespace
  61. * respectively
  62. * Last is defined to view color.
  63. */
  64. #define EDITOR_NORMAL_COLOR mc_skin_color__cache[42]
  65. #define EDITOR_BOLD_COLOR mc_skin_color__cache[43]
  66. #define EDITOR_MARKED_COLOR mc_skin_color__cache[44]
  67. #define EDITOR_WHITESPACE_COLOR mc_skin_color__cache[45]
  68. #define EDITOR_RIGHT_MARGIN_COLOR mc_skin_color__cache[46]
  69. /* color of left 8 char status per line */
  70. #define LINE_STATE_COLOR mc_skin_color__cache[47]
  71. #define BOOK_MARK_COLOR mc_skin_color__cache[48]
  72. #define BOOK_MARK_FOUND_COLOR mc_skin_color__cache[49]
  73. /* Diff colors */
  74. #define DFF_ADD_COLOR mc_skin_color__cache[50]
  75. #define DFF_CHG_COLOR mc_skin_color__cache[51]
  76. #define DFF_CHH_COLOR mc_skin_color__cache[52]
  77. #define DFF_CHD_COLOR mc_skin_color__cache[53]
  78. #define DFF_DEL_COLOR mc_skin_color__cache[54]
  79. #define DFF_FOLDER_COLOR mc_skin_color__cache[55]
  80. #define DFF_ERROR_COLOR mc_skin_color__cache[56]
  81. #define MC_SKIN_COLOR_CACHE_COUNT 57
  82. /*** enums ***************************************************************************************/
  83. /*** structures declarations (and typedefs of structures)*****************************************/
  84. typedef struct mc_skin_struct
  85. {
  86. gchar *name;
  87. gchar *description;
  88. mc_config_t *config;
  89. GHashTable *colors;
  90. } mc_skin_t;
  91. /*** global variables defined in .c file *********************************************************/
  92. extern int mc_skin_color__cache[];
  93. extern mc_skin_t mc_skin__default;
  94. /*** declarations of public functions ************************************************************/
  95. gboolean mc_skin_init (GError **);
  96. void mc_skin_deinit (void);
  97. int mc_skin_color_get (const gchar *, const gchar *);
  98. void mc_skin_lines_parse_ini_file (mc_skin_t *);
  99. gchar *mc_skin_get (const gchar *, const gchar *, const gchar *);
  100. #endif /* MC_SKIN_H */