diff options
author | Nathan Scott <nathans@redhat.com> | 2021-09-20 16:30:18 +1000 |
---|---|---|
committer | Nathan Scott <nathans@redhat.com> | 2021-09-20 16:30:18 +1000 |
commit | a8d0f2a7fe9e742a7367c986888fab065e2ee223 (patch) | |
tree | 744547c620d5a47a2c40f333f8cb5c08c4bc5d4b | |
parent | 40c9f899719c88acc06406b192f1a2e7601cc694 (diff) | |
parent | e6596cbd6924db5355e0413e466ab1ece6b023e4 (diff) |
Merge branch 'cgzones-multicolumn'
-rw-r--r-- | CPUMeter.c | 11 | ||||
-rw-r--r-- | Header.c | 5 | ||||
-rw-r--r-- | MemorySwapMeter.c | 1 | ||||
-rw-r--r-- | Meter.h | 2 |
4 files changed, 18 insertions, 1 deletions
@@ -381,6 +381,7 @@ const MeterClass AllCPUs2Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "AllCPUs2", @@ -401,6 +402,7 @@ const MeterClass LeftCPUsMeter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "LeftCPUs", @@ -421,6 +423,7 @@ const MeterClass RightCPUsMeter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "RightCPUs", @@ -441,6 +444,7 @@ const MeterClass LeftCPUs2Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "LeftCPUs2", @@ -461,6 +465,7 @@ const MeterClass RightCPUs2Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "RightCPUs2", @@ -481,6 +486,7 @@ const MeterClass AllCPUs4Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "AllCPUs4", @@ -501,6 +507,7 @@ const MeterClass LeftCPUs4Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "LeftCPUs4", @@ -521,6 +528,7 @@ const MeterClass RightCPUs4Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "RightCPUs4", @@ -541,6 +549,7 @@ const MeterClass AllCPUs8Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "AllCPUs8", @@ -561,6 +570,7 @@ const MeterClass LeftCPUs8Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "LeftCPUs8", @@ -581,6 +591,7 @@ const MeterClass RightCPUs8Meter_class = { }, .updateValues = AllCPUsMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, .name = "RightCPUs8", @@ -212,7 +212,10 @@ void Header_draw(const Header* this) { Meter* meter = (Meter*) Vector_get(meters, i); float actualWidth = colWidth; - if (meter->mode == TEXT_METERMODE) { + + /* Let meters in text mode expand to the right on empty neighbors; + except for multi column meters. */ + if (meter->mode == TEXT_METERMODE && !Meter_isMultiColumn(meter)) { for (int j = 1; j < meter->columnWidthCount; j++) { actualWidth += (float)width * HeaderLayout_layouts[this->headerLayout].widths[col + j] / 100.0F; } diff --git a/MemorySwapMeter.c b/MemorySwapMeter.c index ffd57331..612549d1 100644 --- a/MemorySwapMeter.c +++ b/MemorySwapMeter.c @@ -95,6 +95,7 @@ const MeterClass MemorySwapMeter_class = { }, .updateValues = MemorySwapMeter_updateValues, .defaultMode = CUSTOM_METERMODE, + .isMultiColumn = true, .name = "MemorySwap", .uiName = "Memory & Swap", .description = "Combined memory and swap usage", @@ -73,6 +73,7 @@ typedef struct MeterClass_ { const char* const caption; /* prefix in the actual header */ const char* const description; /* optional meter description in header setup menu */ const uint8_t maxItems; + const bool isMultiColumn; /* whether the meter draws multiple sub-columns (defaults to false) */ } MeterClass; #define As_Meter(this_) ((const MeterClass*)((this_)->super.klass)) @@ -92,6 +93,7 @@ typedef struct MeterClass_ { #define Meter_attributes(this_) As_Meter(this_)->attributes #define Meter_name(this_) As_Meter(this_)->name #define Meter_uiName(this_) As_Meter(this_)->uiName +#define Meter_isMultiColumn(this_) As_Meter(this_)->isMultiColumn typedef struct GraphData_ { struct timeval time; |