blob: 0be0b82446d070f795573d8d23692ba04afd3faf [file] [log] [blame]
Hisham Muhammad72ba20f2021-08-31 15:38:52 +10001#ifndef HEADER_ScreensPanel
2#define HEADER_ScreensPanel
3/*
4htop - ScreensPanel.h
5(C) 2004-2011 Hisham H. Muhammad
Daniel Lange469ae7a2022-03-14 07:33:40 +01006(C) 2020-2022 htop dev team
7Released under the GNU GPLv2+, see the COPYING file
Hisham Muhammad72ba20f2021-08-31 15:38:52 +10008in the source distribution for its full text.
9*/
10
Sohaib Mohamedba3a1df2021-10-26 13:07:24 +020011#include <stdbool.h>
12
Sohaib Mohamed53bdcab2023-08-22 16:46:59 +100013#include "AvailableColumnsPanel.h"
Sohaib Mohamedba3a1df2021-10-26 13:07:24 +020014#include "ColumnsPanel.h"
Sohaib Mohamed53bdcab2023-08-22 16:46:59 +100015#include "DynamicScreen.h"
Sohaib Mohamedba3a1df2021-10-26 13:07:24 +020016#include "ListItem.h"
17#include "Object.h"
Hisham Muhammad72ba20f2021-08-31 15:38:52 +100018#include "Panel.h"
19#include "ScreenManager.h"
Hisham Muhammad72ba20f2021-08-31 15:38:52 +100020#include "Settings.h"
Hisham Muhammad72ba20f2021-08-31 15:38:52 +100021
22#ifndef SCREEN_NAME_LEN
23#define SCREEN_NAME_LEN 20
24#endif
25
26typedef struct ScreensPanel_ {
27 Panel super;
28
29 ScreenManager* scr;
30 Settings* settings;
31 ColumnsPanel* columns;
Sohaib Mohamed53bdcab2023-08-22 16:46:59 +100032 AvailableColumnsPanel* availableColumns;
Hisham Muhammad72ba20f2021-08-31 15:38:52 +100033 char buffer[SCREEN_NAME_LEN + 1];
34 char* saved;
35 int cursor;
36 bool moving;
Benny Baumannda255cb2023-04-11 22:49:39 +020037 ListItem* renamingItem;
Hisham Muhammad72ba20f2021-08-31 15:38:52 +100038} ScreensPanel;
39
40typedef struct ScreenListItem_ {
41 ListItem super;
Sohaib Mohamed53bdcab2023-08-22 16:46:59 +100042 DynamicScreen* ds;
Hisham Muhammad72ba20f2021-08-31 15:38:52 +100043 ScreenSettings* ss;
44} ScreenListItem;
45
46
47extern ObjectClass ScreenListItem_class;
48
49ScreenListItem* ScreenListItem_new(const char* value, ScreenSettings* ss);
50
Hisham Muhammad72ba20f2021-08-31 15:38:52 +100051ScreensPanel* ScreensPanel_new(Settings* settings);
52
53void ScreensPanel_update(Panel* super);
54
55#endif