blob: 2cc78ab72c06245470d01829cde87dc11f9591e7 [file] [log] [blame]
Hisham Muhammadd6231ba2006-03-04 18:16:49 +00001#ifndef HEADER_Header
2#define HEADER_Header
3/*
Hisham Muhammadf6e0b7d2006-06-06 20:28:42 +00004htop - Header.h
Hisham Muhammad300caa02011-05-26 16:35:07 +00005(C) 2004-2011 Hisham H. Muhammad
Daniel Lange94ad1112021-09-22 11:33:00 +02006Released under the GNU GPLv2+, see the COPYING file
Hisham Muhammadd6231ba2006-03-04 18:16:49 +00007in the source distribution for its full text.
8*/
9
Benny Baumanne56089e2023-11-28 15:15:03 +010010#include <stddef.h>
11
Christian Göttsche2bf626c2021-08-24 17:27:43 +020012#include "HeaderLayout.h"
Nathan Scott0bdade12023-05-02 09:02:22 +100013#include "Machine.h"
Hisham Muhammad33113fe2006-04-10 20:40:38 +000014#include "Meter.h"
Hisham Muhammad3383d8e2015-01-21 23:27:31 -020015#include "Vector.h"
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000016
mayurdahibhate3f86a012021-04-29 23:43:36 +053017
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000018typedef struct Header_ {
Hisham Muhammad3383d8e2015-01-21 23:27:31 -020019 Vector** columns;
Nathan Scott0bdade12023-05-02 09:02:22 +100020 Machine* host;
Christian Göttsche9060a412020-12-25 16:42:35 +010021 HeaderLayout headerLayout;
Hisham Muhammadc2108e52015-01-23 03:08:21 -020022 int pad;
23 int height;
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000024} Header;
25
Christian Göttsche68c00b92021-09-10 16:34:20 +020026#define Header_forEachColumn(this_, i_) for (size_t (i_)=0, H_fEC_numColumns_ = HeaderLayout_getColumns((this_)->headerLayout); (i_) < H_fEC_numColumns_; ++(i_))
Hisham Muhammad3383d8e2015-01-21 23:27:31 -020027
Benny Baumann6aa9ef22023-11-23 12:22:02 +010028Header* Header_new(Machine* host, HeaderLayout hLayout);
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000029
Zev Weiss7b7822b2020-09-02 02:38:44 -050030void Header_delete(Header* this);
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000031
Christian Göttsche9060a412020-12-25 16:42:35 +010032void Header_setLayout(Header* this, HeaderLayout hLayout);
33
Zev Weiss7b7822b2020-09-02 02:38:44 -050034void Header_populateFromSettings(Header* this);
Hisham Muhammadc2108e52015-01-23 03:08:21 -020035
Zev Weiss7b7822b2020-09-02 02:38:44 -050036void Header_writeBackToSettings(const Header* this);
Hisham Muhammad9ff5d2b2015-03-16 23:01:21 -030037
Christian Göttsche9060a412020-12-25 16:42:35 +010038Meter* Header_addMeterByClass(Header* this, const MeterClass* type, unsigned int param, unsigned int column);
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000039
Zev Weiss7b7822b2020-09-02 02:38:44 -050040void Header_reinit(Header* this);
Hisham Muhammada9c0ea32011-03-22 20:37:08 +000041
Zev Weiss7b7822b2020-09-02 02:38:44 -050042void Header_draw(const Header* this);
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000043
Christian Göttscheb862e362021-02-08 16:38:49 +010044void Header_updateData(Header* this);
45
Zev Weiss7b7822b2020-09-02 02:38:44 -050046int Header_calculateHeight(Header* this);
Hisham Muhammadd6231ba2006-03-04 18:16:49 +000047
48#endif