CRT.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. #ifndef HEADER_CRT
  2. #define HEADER_CRT
  3. /*
  4. htop - CRT.h
  5. (C) 2004-2011 Hisham H. Muhammad
  6. Released under the GNU GPLv2+, see the COPYING file
  7. in the source distribution for its full text.
  8. */
  9. #include <stdbool.h>
  10. #include "Macros.h"
  11. #include "ProvideCurses.h"
  12. #include "Settings.h"
  13. typedef enum TreeStr_ {
  14. TREE_STR_VERT,
  15. TREE_STR_RTEE,
  16. TREE_STR_BEND,
  17. TREE_STR_TEND,
  18. TREE_STR_OPEN,
  19. TREE_STR_SHUT,
  20. TREE_STR_ASC,
  21. TREE_STR_DESC,
  22. LAST_TREE_STR
  23. } TreeStr;
  24. typedef enum ColorScheme_ {
  25. COLORSCHEME_DEFAULT,
  26. COLORSCHEME_MONOCHROME,
  27. COLORSCHEME_BLACKONWHITE,
  28. COLORSCHEME_LIGHTTERMINAL,
  29. COLORSCHEME_MIDNIGHT,
  30. COLORSCHEME_BLACKNIGHT,
  31. COLORSCHEME_BROKENGRAY,
  32. LAST_COLORSCHEME
  33. } ColorScheme;
  34. typedef enum ColorElements_ {
  35. RESET_COLOR,
  36. DEFAULT_COLOR,
  37. FUNCTION_BAR,
  38. FUNCTION_KEY,
  39. FAILED_SEARCH,
  40. FAILED_READ,
  41. PAUSED,
  42. PANEL_HEADER_FOCUS,
  43. PANEL_HEADER_UNFOCUS,
  44. PANEL_SELECTION_FOCUS,
  45. PANEL_SELECTION_FOLLOW,
  46. PANEL_SELECTION_UNFOCUS,
  47. LARGE_NUMBER,
  48. METER_SHADOW,
  49. METER_TEXT,
  50. METER_VALUE,
  51. METER_VALUE_ERROR,
  52. METER_VALUE_IOREAD,
  53. METER_VALUE_IOWRITE,
  54. METER_VALUE_NOTICE,
  55. METER_VALUE_OK,
  56. METER_VALUE_WARN,
  57. LED_COLOR,
  58. UPTIME,
  59. BATTERY,
  60. TASKS_RUNNING,
  61. SWAP,
  62. SWAP_CACHE,
  63. SWAP_FRONTSWAP,
  64. PROCESS,
  65. PROCESS_SHADOW,
  66. PROCESS_TAG,
  67. PROCESS_MEGABYTES,
  68. PROCESS_GIGABYTES,
  69. PROCESS_TREE,
  70. PROCESS_RUN_STATE,
  71. PROCESS_D_STATE,
  72. PROCESS_BASENAME,
  73. PROCESS_HIGH_PRIORITY,
  74. PROCESS_LOW_PRIORITY,
  75. PROCESS_NEW,
  76. PROCESS_TOMB,
  77. PROCESS_THREAD,
  78. PROCESS_THREAD_BASENAME,
  79. PROCESS_COMM,
  80. PROCESS_THREAD_COMM,
  81. PROCESS_PRIV,
  82. BAR_BORDER,
  83. BAR_SHADOW,
  84. GRAPH_1,
  85. GRAPH_2,
  86. MEMORY_USED,
  87. MEMORY_BUFFERS,
  88. MEMORY_BUFFERS_TEXT,
  89. MEMORY_CACHE,
  90. MEMORY_SHARED,
  91. MEMORY_COMPRESSED,
  92. HUGEPAGE_1,
  93. HUGEPAGE_2,
  94. HUGEPAGE_3,
  95. HUGEPAGE_4,
  96. LOAD,
  97. LOAD_AVERAGE_FIFTEEN,
  98. LOAD_AVERAGE_FIVE,
  99. LOAD_AVERAGE_ONE,
  100. CHECK_BOX,
  101. CHECK_MARK,
  102. CHECK_TEXT,
  103. CLOCK,
  104. DATE,
  105. DATETIME,
  106. HELP_BOLD,
  107. HELP_SHADOW,
  108. HOSTNAME,
  109. CPU_NICE,
  110. CPU_NICE_TEXT,
  111. CPU_NORMAL,
  112. CPU_SYSTEM,
  113. CPU_IOWAIT,
  114. CPU_IRQ,
  115. CPU_SOFTIRQ,
  116. CPU_STEAL,
  117. CPU_GUEST,
  118. GPU_ENGINE_1,
  119. GPU_ENGINE_2,
  120. GPU_ENGINE_3,
  121. GPU_ENGINE_4,
  122. GPU_RESIDUE,
  123. PANEL_EDIT,
  124. SCREENS_OTH_BORDER,
  125. SCREENS_OTH_TEXT,
  126. SCREENS_CUR_BORDER,
  127. SCREENS_CUR_TEXT,
  128. PRESSURE_STALL_TEN,
  129. PRESSURE_STALL_SIXTY,
  130. PRESSURE_STALL_THREEHUNDRED,
  131. FILE_DESCRIPTOR_USED,
  132. FILE_DESCRIPTOR_MAX,
  133. ZFS_MFU,
  134. ZFS_MRU,
  135. ZFS_ANON,
  136. ZFS_HEADER,
  137. ZFS_OTHER,
  138. ZFS_COMPRESSED,
  139. ZFS_RATIO,
  140. ZRAM_COMPRESSED,
  141. ZRAM_UNCOMPRESSED,
  142. DYNAMIC_GRAY,
  143. DYNAMIC_DARKGRAY,
  144. DYNAMIC_RED,
  145. DYNAMIC_GREEN,
  146. DYNAMIC_BLUE,
  147. DYNAMIC_CYAN,
  148. DYNAMIC_MAGENTA,
  149. DYNAMIC_YELLOW,
  150. DYNAMIC_WHITE,
  151. LAST_COLORELEMENT
  152. } ColorElements;
  153. void CRT_fatalError(const char* note) ATTR_NORETURN;
  154. #ifdef NDEBUG
  155. # define CRT_debug(...)
  156. #else
  157. void CRT_debug_impl(const char* file, size_t lineno, const char* func, const char* fmt, ...) ATTR_FORMAT(printf, 4, 5);
  158. # define CRT_debug(...) CRT_debug_impl(__FILE__, __LINE__, __func__, __VA_ARGS__)
  159. #endif
  160. void CRT_handleSIGSEGV(int signal) ATTR_NORETURN;
  161. #define KEY_WHEELUP KEY_F(30)
  162. #define KEY_WHEELDOWN KEY_F(31)
  163. #define KEY_RECLICK KEY_F(32)
  164. #define KEY_SHIFT_TAB KEY_F(33)
  165. #define KEY_ALT(x) (KEY_F(64 - 26) + ((x) - 'A'))
  166. #define KEY_FOCUS_IN (KEY_MAX + 'I')
  167. #define KEY_FOCUS_OUT (KEY_MAX + 'O')
  168. extern const char* CRT_degreeSign;
  169. #ifdef HAVE_LIBNCURSESW
  170. extern bool CRT_utf8;
  171. #endif
  172. extern const char* const* CRT_treeStr;
  173. extern const int* CRT_colors;
  174. extern int CRT_cursorX;
  175. extern int CRT_scrollHAmount;
  176. extern int CRT_scrollWheelVAmount;
  177. extern ColorScheme CRT_colorScheme;
  178. #ifdef HAVE_GETMOUSE
  179. void CRT_setMouse(bool enabled);
  180. #else
  181. #define CRT_setMouse(enabled)
  182. #endif
  183. void CRT_init(const Settings* settings, bool allowUnicode, bool retainScreenOnExit);
  184. void CRT_done(void);
  185. void CRT_resetSignalHandlers(void);
  186. int CRT_readKey(void);
  187. void CRT_disableDelay(void);
  188. void CRT_enableDelay(void);
  189. static inline void CRT_updateDelay(void) {
  190. CRT_enableDelay(); // pushes new delay setting into halfdelay(3X)
  191. }
  192. void CRT_setColors(int colorScheme);
  193. #endif