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 10 #include "config.h" 11 12 #include <stdbool.h> 13 14 #include "Macros.h" 15 #include "ProvideCurses.h" 16 #include "Settings.h" 17 18 19 typedef enum TreeStr_ { 20 TREE_STR_VERT, 21 TREE_STR_RTEE, 22 TREE_STR_BEND, 23 TREE_STR_TEND, 24 TREE_STR_OPEN, 25 TREE_STR_SHUT, 26 TREE_STR_ASC, 27 TREE_STR_DESC, 28 LAST_TREE_STR 29 } TreeStr; 30 31 typedef enum ColorScheme_ { 32 COLORSCHEME_DEFAULT, 33 COLORSCHEME_MONOCHROME, 34 COLORSCHEME_BLACKONWHITE, 35 COLORSCHEME_LIGHTTERMINAL, 36 COLORSCHEME_MIDNIGHT, 37 COLORSCHEME_BLACKNIGHT, 38 COLORSCHEME_BROKENGRAY, 39 LAST_COLORSCHEME 40 } ColorScheme; 41 42 typedef enum ColorElements_ { 43 RESET_COLOR, 44 DEFAULT_COLOR, 45 FUNCTION_BAR, 46 FUNCTION_KEY, 47 FAILED_SEARCH, 48 FAILED_READ, 49 PAUSED, 50 PANEL_HEADER_FOCUS, 51 PANEL_HEADER_UNFOCUS, 52 PANEL_SELECTION_FOCUS, 53 PANEL_SELECTION_FOLLOW, 54 PANEL_SELECTION_UNFOCUS, 55 LARGE_NUMBER, 56 METER_SHADOW, 57 METER_TEXT, 58 METER_VALUE, 59 METER_VALUE_ERROR, 60 METER_VALUE_IOREAD, 61 METER_VALUE_IOWRITE, 62 METER_VALUE_NOTICE, 63 METER_VALUE_OK, 64 METER_VALUE_WARN, 65 LED_COLOR, 66 UPTIME, 67 BATTERY, 68 TASKS_RUNNING, 69 SWAP, 70 SWAP_CACHE, 71 PROCESS, 72 PROCESS_SHADOW, 73 PROCESS_TAG, 74 PROCESS_MEGABYTES, 75 PROCESS_GIGABYTES, 76 PROCESS_TREE, 77 PROCESS_RUN_STATE, 78 PROCESS_D_STATE, 79 PROCESS_BASENAME, 80 PROCESS_HIGH_PRIORITY, 81 PROCESS_LOW_PRIORITY, 82 PROCESS_NEW, 83 PROCESS_TOMB, 84 PROCESS_THREAD, 85 PROCESS_THREAD_BASENAME, 86 PROCESS_COMM, 87 PROCESS_THREAD_COMM, 88 BAR_BORDER, 89 BAR_SHADOW, 90 GRAPH_1, 91 GRAPH_2, 92 MEMORY_USED, 93 MEMORY_BUFFERS, 94 MEMORY_BUFFERS_TEXT, 95 MEMORY_CACHE, 96 MEMORY_SHARED, 97 HUGEPAGE_1, 98 HUGEPAGE_2, 99 HUGEPAGE_3, 100 HUGEPAGE_4, 101 LOAD, 102 LOAD_AVERAGE_FIFTEEN, 103 LOAD_AVERAGE_FIVE, 104 LOAD_AVERAGE_ONE, 105 CHECK_BOX, 106 CHECK_MARK, 107 CHECK_TEXT, 108 CLOCK, 109 DATE, 110 DATETIME, 111 HELP_BOLD, 112 HELP_SHADOW, 113 HOSTNAME, 114 CPU_NICE, 115 CPU_NICE_TEXT, 116 CPU_NORMAL, 117 CPU_SYSTEM, 118 CPU_IOWAIT, 119 CPU_IRQ, 120 CPU_SOFTIRQ, 121 CPU_STEAL, 122 CPU_GUEST, 123 PRESSURE_STALL_TEN, 124 PRESSURE_STALL_SIXTY, 125 PRESSURE_STALL_THREEHUNDRED, 126 ZFS_MFU, 127 ZFS_MRU, 128 ZFS_ANON, 129 ZFS_HEADER, 130 ZFS_OTHER, 131 ZFS_COMPRESSED, 132 ZFS_RATIO, 133 ZRAM, 134 DYNAMIC_GRAY, 135 DYNAMIC_DARKGRAY, 136 DYNAMIC_RED, 137 DYNAMIC_GREEN, 138 DYNAMIC_BLUE, 139 DYNAMIC_CYAN, 140 DYNAMIC_MAGENTA, 141 DYNAMIC_YELLOW, 142 DYNAMIC_WHITE, 143 LAST_COLORELEMENT 144 } ColorElements; 145 146 void CRT_fatalError(const char* note) ATTR_NORETURN; 147 148 void CRT_handleSIGSEGV(int signal) ATTR_NORETURN; 149 150 #define KEY_WHEELUP KEY_F(30) 151 #define KEY_WHEELDOWN KEY_F(31) 152 #define KEY_RECLICK KEY_F(32) 153 #define KEY_ALT(x) (KEY_F(64 - 26) + ((x) - 'A')) 154 155 extern const char* CRT_degreeSign; 156 157 #ifdef HAVE_LIBNCURSESW 158 159 extern bool CRT_utf8; 160 161 #endif 162 163 extern const char* const* CRT_treeStr; 164 165 extern const int* CRT_colors; 166 167 extern int CRT_cursorX; 168 169 extern int CRT_scrollHAmount; 170 171 extern int CRT_scrollWheelVAmount; 172 173 extern ColorScheme CRT_colorScheme; 174 175 void CRT_init(const Settings* settings, bool allowUnicode); 176 177 void CRT_done(void); 178 179 void CRT_resetSignalHandlers(void); 180 181 int CRT_readKey(void); 182 183 void CRT_disableDelay(void); 184 185 void CRT_enableDelay(void); 186 187 void CRT_setColors(int colorScheme); 188 189 #endif 190