Add a date and datetime meter (#159)

Add a date meter and sort header and source files in Makefile

Change the lists of header and source files sorted alphabetical and one
file per line. This way diffs become better readable and merges easier.
This commit is contained in:
Michael F. Schönitzer 2020-10-05 13:52:58 +02:00 committed by GitHub
parent ffd90c28ab
commit d93cac12be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 266 additions and 18 deletions

10
CRT.c
View File

@ -122,6 +122,8 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[LOAD] = A_BOLD, [LOAD] = A_BOLD,
[HELP_BOLD] = A_BOLD | ColorPair(Cyan,Black), [HELP_BOLD] = A_BOLD | ColorPair(Cyan,Black),
[CLOCK] = A_BOLD, [CLOCK] = A_BOLD,
[DATE] = A_BOLD,
[DATETIME] = A_BOLD,
[CHECK_BOX] = ColorPair(Cyan,Black), [CHECK_BOX] = ColorPair(Cyan,Black),
[CHECK_MARK] = A_BOLD, [CHECK_MARK] = A_BOLD,
[CHECK_TEXT] = A_NORMAL, [CHECK_TEXT] = A_NORMAL,
@ -195,6 +197,8 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[LOAD] = A_BOLD, [LOAD] = A_BOLD,
[HELP_BOLD] = A_BOLD, [HELP_BOLD] = A_BOLD,
[CLOCK] = A_BOLD, [CLOCK] = A_BOLD,
[DATE] = A_BOLD,
[DATETIME] = A_BOLD,
[CHECK_BOX] = A_BOLD, [CHECK_BOX] = A_BOLD,
[CHECK_MARK] = A_NORMAL, [CHECK_MARK] = A_NORMAL,
[CHECK_TEXT] = A_NORMAL, [CHECK_TEXT] = A_NORMAL,
@ -268,6 +272,8 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[LOAD] = ColorPair(Black,White), [LOAD] = ColorPair(Black,White),
[HELP_BOLD] = ColorPair(Blue,White), [HELP_BOLD] = ColorPair(Blue,White),
[CLOCK] = ColorPair(Black,White), [CLOCK] = ColorPair(Black,White),
[DATE] = ColorPair(Black,White),
[DATETIME] = ColorPair(Black,White),
[CHECK_BOX] = ColorPair(Blue,White), [CHECK_BOX] = ColorPair(Blue,White),
[CHECK_MARK] = ColorPair(Black,White), [CHECK_MARK] = ColorPair(Black,White),
[CHECK_TEXT] = ColorPair(Black,White), [CHECK_TEXT] = ColorPair(Black,White),
@ -341,6 +347,8 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[LOAD] = ColorPair(Yellow,Black), [LOAD] = ColorPair(Yellow,Black),
[HELP_BOLD] = ColorPair(Blue,Black), [HELP_BOLD] = ColorPair(Blue,Black),
[CLOCK] = ColorPair(Yellow,Black), [CLOCK] = ColorPair(Yellow,Black),
[DATE] = ColorPair(White,Black),
[DATETIME] = ColorPair(White,Black),
[CHECK_BOX] = ColorPair(Blue,Black), [CHECK_BOX] = ColorPair(Blue,Black),
[CHECK_MARK] = ColorPair(Blue,Black), [CHECK_MARK] = ColorPair(Blue,Black),
[CHECK_TEXT] = ColorPair(Blue,Black), [CHECK_TEXT] = ColorPair(Blue,Black),
@ -414,6 +422,8 @@ int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
[LOAD] = A_BOLD | ColorPair(White,Blue), [LOAD] = A_BOLD | ColorPair(White,Blue),
[HELP_BOLD] = A_BOLD | ColorPair(Cyan,Blue), [HELP_BOLD] = A_BOLD | ColorPair(Cyan,Blue),
[CLOCK] = ColorPair(White,Blue), [CLOCK] = ColorPair(White,Blue),
[DATE] = ColorPair(White,Blue),
[DATETIME] = ColorPair(White,Blue),
[CHECK_BOX] = ColorPair(Cyan,Blue), [CHECK_BOX] = ColorPair(Cyan,Blue),
[CHECK_MARK] = A_BOLD | ColorPair(White,Blue), [CHECK_MARK] = A_BOLD | ColorPair(White,Blue),
[CHECK_TEXT] = A_NORMAL | ColorPair(White,Blue), [CHECK_TEXT] = A_NORMAL | ColorPair(White,Blue),

2
CRT.h
View File

@ -85,6 +85,8 @@ typedef enum ColorElements_ {
CHECK_MARK, CHECK_MARK,
CHECK_TEXT, CHECK_TEXT,
CLOCK, CLOCK,
DATE,
DATETIME,
HELP_BOLD, HELP_BOLD,
HOSTNAME, HOSTNAME,
CPU_NICE, CPU_NICE,

47
DateMeter.c Normal file
View File

@ -0,0 +1,47 @@
/*
htop - DateMeter.c
(C) 2004-2020 Hisham H. Muhammad, Michael Schönitzer
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
#include "DateMeter.h"
#include "CRT.h"
#include <time.h>
int DateMeter_attributes[] = {
DATE
};
static void DateMeter_updateValues(Meter* this, char* buffer, int size) {
time_t t = time(NULL);
struct tm result;
struct tm *lt = localtime_r(&t, &result);
this->values[0] = lt->tm_yday;
int year = lt->tm_year + 1900;
if (((year % 4 == 0) && (year % 100!= 0)) || (year%400 == 0)) {
this->total = 366;
}
else {
this->total = 365;
}
strftime(buffer, size, "%F", lt);
}
MeterClass DateMeter_class = {
.super = {
.extends = Class(Meter),
.delete = Meter_delete
},
.updateValues = DateMeter_updateValues,
.defaultMode = TEXT_METERMODE,
.maxItems = 1,
.total = 365,
.attributes = DateMeter_attributes,
.name = "Date",
.uiName = "Date",
.caption = "Date: ",
};

16
DateMeter.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef HEADER_DateMeter
#define HEADER_DateMeter
/*
htop - DateMeter.h
(C) 2004-2011 Hisham H. Muhammad
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
#include "Meter.h"
extern int DateMeter_attributes[];
extern MeterClass DateMeter_class;
#endif

47
DateTimeMeter.c Normal file
View File

@ -0,0 +1,47 @@
/*
htop - DateTimeMeter.c
(C) 2004-2020 Hisham H. Muhammad, Michael Schönitzer
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
#include "DateTimeMeter.h"
#include "CRT.h"
#include <time.h>
int DateTimeMeter_attributes[] = {
DATETIME
};
static void DateTimeMeter_updateValues(Meter* this, char* buffer, int size) {
time_t t = time(NULL);
struct tm result;
struct tm *lt = localtime_r(&t, &result);
int year = lt->tm_year + 1900;
if (((year % 4 == 0) && (year % 100!= 0)) || (year%400 == 0)) {
this->total = 366;
}
else {
this->total = 365;
}
this->values[0] = lt->tm_yday;
strftime(buffer, size, "%F %H:%M:%S", lt);
}
MeterClass DateTimeMeter_class = {
.super = {
.extends = Class(Meter),
.delete = Meter_delete
},
.updateValues = DateTimeMeter_updateValues,
.defaultMode = TEXT_METERMODE,
.maxItems = 1,
.total = 365,
.attributes = DateTimeMeter_attributes,
.name = "DateTime",
.uiName = "Date and Time",
.caption = "Date & Time: ",
};

16
DateTimeMeter.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef HEADER_DateTimeMeter
#define HEADER_DateTimeMeter
/*
htop - DateTimeMeter.h
(C) 2004-2011 Hisham H. Muhammad
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
#include "Meter.h"
extern int DateTimeMeter_attributes[];
extern MeterClass DateTimeMeter_class;
#endif

View File

@ -13,25 +13,107 @@ pixmap_DATA = htop.png
AM_CFLAGS += -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"$(sysconfdir)\" -I"$(top_srcdir)/$(my_htop_platform)" AM_CFLAGS += -pedantic -std=c99 -D_XOPEN_SOURCE_EXTENDED -DSYSCONFDIR=\"$(sysconfdir)\" -I"$(top_srcdir)/$(my_htop_platform)"
AM_LDFLAGS = AM_LDFLAGS =
myhtopsources = AvailableMetersPanel.c CategoriesPanel.c CheckItem.c \ myhtopsources = \
ClockMeter.c ColorsPanel.c ColumnsPanel.c CPUMeter.c CRT.c DiskIOMeter.c DiskIOMeter.h \ Action.c \
MainPanel.c DisplayOptionsPanel.c FunctionBar.c Hashtable.c Header.c htop.c ListItem.c \ Affinity.c \
LoadAverageMeter.c MemoryMeter.c Meter.c MetersPanel.c Object.c Panel.c \ AffinityPanel.c \
BatteryMeter.c Process.c ProcessList.c RichString.c ScreenManager.c Settings.c \ AvailableColumnsPanel.c \
SignalsPanel.c StringUtils.c SwapMeter.c TasksMeter.c UptimeMeter.c \ AvailableMetersPanel.c \
TraceScreen.c UsersTable.c Vector.c AvailableColumnsPanel.c AffinityPanel.c \ BatteryMeter.c \
HostnameMeter.c OpenFilesScreen.c Affinity.c IncSet.c Action.c EnvScreen.c \ CategoriesPanel.c \
InfoScreen.c CommandScreen.c XAlloc.c CheckItem.c \
ClockMeter.c \
ColorsPanel.c \
ColumnsPanel.c \
CommandScreen.c \
CPUMeter.c \
CRT.c \
DateMeter.c \
DateTimeMeter.c \
DiskIOMeter.c \
DiskIOMeter.h \
DisplayOptionsPanel.c \
EnvScreen.c \
FunctionBar.c \
Hashtable.c \
Header.c \
HostnameMeter.c \
htop.c \
IncSet.c \
InfoScreen.c \
ListItem.c \
LoadAverageMeter.c \
MainPanel.c \
MemoryMeter.c \
Meter.c \
MetersPanel.c \
Object.c \
OpenFilesScreen.c \
Panel.c \
Process.c \
ProcessList.c \
RichString.c \
ScreenManager.c \
Settings.c \
SignalsPanel.c \
StringUtils.c \
SwapMeter.c \
TasksMeter.c \
TraceScreen.c \
UptimeMeter.c \
UsersTable.c \
Vector.c \
XAlloc.c
myhtopheaders = AvailableColumnsPanel.h AvailableMetersPanel.h \ myhtopheaders = \
CategoriesPanel.h CheckItem.h ClockMeter.h ColorsPanel.h ColumnsPanel.h \ Action.h \
CPUMeter.h CRT.h MainPanel.h DisplayOptionsPanel.h FunctionBar.h \ Affinity.h \
Hashtable.h Header.h ListItem.h LoadAverageMeter.h MemoryMeter.h \ AffinityPanel.h \
BatteryMeter.h Meter.h MetersPanel.h Object.h Panel.h ProcessList.h RichString.h \ AvailableColumnsPanel.h \
ScreenManager.h Settings.h SignalsPanel.h StringUtils.h SwapMeter.h \ AvailableMetersPanel.h \
TasksMeter.h UptimeMeter.h TraceScreen.h UsersTable.h Vector.h Process.h \ BatteryMeter.h \
AffinityPanel.h HostnameMeter.h OpenFilesScreen.h Affinity.h IncSet.h Action.h \ CPUMeter.h \
EnvScreen.h InfoScreen.h CommandScreen.h XAlloc.h Macros.h CRT.h \
CategoriesPanel.h \
CheckItem.h \
ClockMeter.h \
ColorsPanel.h \
ColumnsPanel.h \
CommandScreen.h \
DateMeter.h \
DateTimeMeter.h \
DisplayOptionsPanel.h \
EnvScreen.h \
FunctionBar.h \
Hashtable.h \
Header.h \
HostnameMeter.h \
IncSet.h \
InfoScreen.h \
ListItem.h \
LoadAverageMeter.h \
Macros.h \
MainPanel.h \
MemoryMeter.h \
Meter.h \
MetersPanel.h \
Object.h \
OpenFilesScreen.h \
Panel.h \
Process.h \
ProcessList.h \
RichString.h \
ScreenManager.h \
Settings.h \
SignalsPanel.h \
StringUtils.h \
SwapMeter.h \
TasksMeter.h \
TraceScreen.h \
UptimeMeter.h \
UsersTable.h \
Vector.h \
XAlloc.h
# Linux # Linux
# ----- # -----

View File

@ -13,6 +13,8 @@ in the source distribution for its full text.
#include "TasksMeter.h" #include "TasksMeter.h"
#include "LoadAverageMeter.h" #include "LoadAverageMeter.h"
#include "ClockMeter.h" #include "ClockMeter.h"
#include "DateMeter.h"
#include "DateTimeMeter.h"
#include "HostnameMeter.h" #include "HostnameMeter.h"
#include "UptimeMeter.h" #include "UptimeMeter.h"
#include "zfs/ZfsArcMeter.h" #include "zfs/ZfsArcMeter.h"
@ -95,6 +97,8 @@ ProcessFieldData Process_fields[] = {
MeterClass* Platform_meterTypes[] = { MeterClass* Platform_meterTypes[] = {
&CPUMeter_class, &CPUMeter_class,
&ClockMeter_class, &ClockMeter_class,
&DateMeter_class,
&DateTimeMeter_class,
&LoadAverageMeter_class, &LoadAverageMeter_class,
&LoadMeter_class, &LoadMeter_class,
&MemoryMeter_class, &MemoryMeter_class,

View File

@ -15,6 +15,8 @@ in the source distribution for its full text.
#include "LoadAverageMeter.h" #include "LoadAverageMeter.h"
#include "UptimeMeter.h" #include "UptimeMeter.h"
#include "ClockMeter.h" #include "ClockMeter.h"
#include "DateMeter.h"
#include "DateTimeMeter.h"
#include "HostnameMeter.h" #include "HostnameMeter.h"
#include "DragonFlyBSDProcess.h" #include "DragonFlyBSDProcess.h"
#include "DragonFlyBSDProcessList.h" #include "DragonFlyBSDProcessList.h"
@ -78,6 +80,8 @@ void Platform_setBindings(Htop_Action* keys) {
MeterClass* Platform_meterTypes[] = { MeterClass* Platform_meterTypes[] = {
&CPUMeter_class, &CPUMeter_class,
&ClockMeter_class, &ClockMeter_class,
&DateMeter_class,
&DateTimeMeter_class,
&LoadAverageMeter_class, &LoadAverageMeter_class,
&LoadMeter_class, &LoadMeter_class,
&MemoryMeter_class, &MemoryMeter_class,

View File

@ -14,6 +14,8 @@ in the source distribution for its full text.
#include "LoadAverageMeter.h" #include "LoadAverageMeter.h"
#include "UptimeMeter.h" #include "UptimeMeter.h"
#include "ClockMeter.h" #include "ClockMeter.h"
#include "DateMeter.h"
#include "DateTimeMeter.h"
#include "HostnameMeter.h" #include "HostnameMeter.h"
#include "zfs/ZfsArcMeter.h" #include "zfs/ZfsArcMeter.h"
#include "zfs/ZfsCompressedArcMeter.h" #include "zfs/ZfsCompressedArcMeter.h"
@ -79,6 +81,8 @@ void Platform_setBindings(Htop_Action* keys) {
MeterClass* Platform_meterTypes[] = { MeterClass* Platform_meterTypes[] = {
&CPUMeter_class, &CPUMeter_class,
&ClockMeter_class, &ClockMeter_class,
&DateMeter_class,
&DateTimeMeter_class,
&LoadAverageMeter_class, &LoadAverageMeter_class,
&LoadMeter_class, &LoadMeter_class,
&MemoryMeter_class, &MemoryMeter_class,

View File

@ -22,6 +22,8 @@ in the source distribution for its full text.
#include "UptimeMeter.h" #include "UptimeMeter.h"
#include "PressureStallMeter.h" #include "PressureStallMeter.h"
#include "ClockMeter.h" #include "ClockMeter.h"
#include "DateMeter.h"
#include "DateTimeMeter.h"
#include "HostnameMeter.h" #include "HostnameMeter.h"
#include "zfs/ZfsArcMeter.h" #include "zfs/ZfsArcMeter.h"
#include "zfs/ZfsCompressedArcMeter.h" #include "zfs/ZfsCompressedArcMeter.h"
@ -106,6 +108,8 @@ void Platform_setBindings(Htop_Action* keys) {
MeterClass* Platform_meterTypes[] = { MeterClass* Platform_meterTypes[] = {
&CPUMeter_class, &CPUMeter_class,
&ClockMeter_class, &ClockMeter_class,
&DateMeter_class,
&DateTimeMeter_class,
&LoadAverageMeter_class, &LoadAverageMeter_class,
&LoadMeter_class, &LoadMeter_class,
&MemoryMeter_class, &MemoryMeter_class,

View File

@ -15,6 +15,8 @@ in the source distribution for its full text.
#include "LoadAverageMeter.h" #include "LoadAverageMeter.h"
#include "UptimeMeter.h" #include "UptimeMeter.h"
#include "ClockMeter.h" #include "ClockMeter.h"
#include "DateMeter.h"
#include "DateTimeMeter.h"
#include "HostnameMeter.h" #include "HostnameMeter.h"
#include "SignalsPanel.h" #include "SignalsPanel.h"
#include "OpenBSDProcess.h" #include "OpenBSDProcess.h"
@ -91,6 +93,8 @@ void Platform_setBindings(Htop_Action* keys) {
MeterClass* Platform_meterTypes[] = { MeterClass* Platform_meterTypes[] = {
&CPUMeter_class, &CPUMeter_class,
&ClockMeter_class, &ClockMeter_class,
&DateMeter_class,
&DateTimeMeter_class,
&LoadAverageMeter_class, &LoadAverageMeter_class,
&LoadMeter_class, &LoadMeter_class,
&MemoryMeter_class, &MemoryMeter_class,

View File

@ -15,6 +15,8 @@ in the source distribution for its full text.
#include "TasksMeter.h" #include "TasksMeter.h"
#include "LoadAverageMeter.h" #include "LoadAverageMeter.h"
#include "ClockMeter.h" #include "ClockMeter.h"
#include "DateMeter.h"
#include "DateTimeMeter.h"
#include "HostnameMeter.h" #include "HostnameMeter.h"
#include "UptimeMeter.h" #include "UptimeMeter.h"
#include "zfs/ZfsArcMeter.h" #include "zfs/ZfsArcMeter.h"
@ -88,6 +90,8 @@ ProcessField Platform_defaultFields[] = { PID, LWPID, USER, PRIORITY, NICE, M_SI
MeterClass* Platform_meterTypes[] = { MeterClass* Platform_meterTypes[] = {
&CPUMeter_class, &CPUMeter_class,
&ClockMeter_class, &ClockMeter_class,
&DateMeter_class,
&DateTimeMeter_class,
&LoadAverageMeter_class, &LoadAverageMeter_class,
&LoadMeter_class, &LoadMeter_class,
&MemoryMeter_class, &MemoryMeter_class,

View File

@ -15,6 +15,8 @@ in the source distribution for its full text.
#include "TasksMeter.h" #include "TasksMeter.h"
#include "LoadAverageMeter.h" #include "LoadAverageMeter.h"
#include "ClockMeter.h" #include "ClockMeter.h"
#include "DateMeter.h"
#include "DateTimeMeter.h"
#include "HostnameMeter.h" #include "HostnameMeter.h"
#include "UptimeMeter.h" #include "UptimeMeter.h"
@ -59,6 +61,8 @@ ProcessFieldData Process_fields[] = {
MeterClass* Platform_meterTypes[] = { MeterClass* Platform_meterTypes[] = {
&CPUMeter_class, &CPUMeter_class,
&ClockMeter_class, &ClockMeter_class,
&DateMeter_class,
&DateTimeMeter_class,
&LoadAverageMeter_class, &LoadAverageMeter_class,
&LoadMeter_class, &LoadMeter_class,
&MemoryMeter_class, &MemoryMeter_class,