| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 1 | #ifndef HEADER_ScreensPanel |
| 2 | #define HEADER_ScreensPanel |
| 3 | /* |
| 4 | htop - ScreensPanel.h |
| 5 | (C) 2004-2011 Hisham H. Muhammad |
| Daniel Lange | 469ae7a | 2022-03-14 07:33:40 +0100 | [diff] [blame] | 6 | (C) 2020-2022 htop dev team |
| 7 | Released under the GNU GPLv2+, see the COPYING file |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 8 | in the source distribution for its full text. |
| 9 | */ |
| 10 | |
| Sohaib Mohamed | ba3a1df | 2021-10-26 13:07:24 +0200 | [diff] [blame] | 11 | #include <stdbool.h> |
| 12 | |
| Sohaib Mohamed | 53bdcab | 2023-08-22 16:46:59 +1000 | [diff] [blame] | 13 | #include "AvailableColumnsPanel.h" |
| Sohaib Mohamed | ba3a1df | 2021-10-26 13:07:24 +0200 | [diff] [blame] | 14 | #include "ColumnsPanel.h" |
| Sohaib Mohamed | 53bdcab | 2023-08-22 16:46:59 +1000 | [diff] [blame] | 15 | #include "DynamicScreen.h" |
| Sohaib Mohamed | ba3a1df | 2021-10-26 13:07:24 +0200 | [diff] [blame] | 16 | #include "ListItem.h" |
| 17 | #include "Object.h" |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 18 | #include "Panel.h" |
| 19 | #include "ScreenManager.h" |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 20 | #include "Settings.h" |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 21 | |
| 22 | #ifndef SCREEN_NAME_LEN |
| 23 | #define SCREEN_NAME_LEN 20 |
| 24 | #endif |
| 25 | |
| 26 | typedef struct ScreensPanel_ { |
| 27 | Panel super; |
| 28 | |
| 29 | ScreenManager* scr; |
| 30 | Settings* settings; |
| 31 | ColumnsPanel* columns; |
| Sohaib Mohamed | 53bdcab | 2023-08-22 16:46:59 +1000 | [diff] [blame] | 32 | AvailableColumnsPanel* availableColumns; |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 33 | char buffer[SCREEN_NAME_LEN + 1]; |
| 34 | char* saved; |
| 35 | int cursor; |
| 36 | bool moving; |
| Benny Baumann | da255cb | 2023-04-11 22:49:39 +0200 | [diff] [blame] | 37 | ListItem* renamingItem; |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 38 | } ScreensPanel; |
| 39 | |
| 40 | typedef struct ScreenListItem_ { |
| 41 | ListItem super; |
| Sohaib Mohamed | 53bdcab | 2023-08-22 16:46:59 +1000 | [diff] [blame] | 42 | DynamicScreen* ds; |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 43 | ScreenSettings* ss; |
| 44 | } ScreenListItem; |
| 45 | |
| 46 | |
| 47 | extern ObjectClass ScreenListItem_class; |
| 48 | |
| 49 | ScreenListItem* ScreenListItem_new(const char* value, ScreenSettings* ss); |
| 50 | |
| Hisham Muhammad | 72ba20f | 2021-08-31 15:38:52 +1000 | [diff] [blame] | 51 | ScreensPanel* ScreensPanel_new(Settings* settings); |
| 52 | |
| 53 | void ScreensPanel_update(Panel* super); |
| 54 | |
| 55 | #endif |