diff options
author | Explorer09 <explorer09@gmail.com> | 2024-04-18 21:08:54 +0800 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2024-04-20 19:36:00 +0200 |
commit | faaf6dd25e064f4e6e73061b15547b965b353ae5 (patch) | |
tree | 28f8e3a6e958302a29f75999039675264b9d5163 | |
parent | 52486dbc0f056c37b8cc81bf2f8c2830d77c7d52 (diff) |
Obsolete the CUSTOM_METERMODE use in default mode
The use of CUSTOM_METERMODE value in meter default mode was a bad
design. There are no meter that really has a "custom" mode to work with
and currently that value serves as a useless placeholder that hides the
real default mode for a meter.
Replace CUSTOM_METERMODE in `defaultMode` of all meters with the real
intended default modes. Currently only CPU meters and MemorySwapMeter
used this, and their real defaults are BAR_METERMODE.
In Meter_setMode(), remove the special treatment of `defaultMode ==
CUSTOM_METERMODE`, Meter_setMode() still calls the `updateMode` function
for custom treatment when it's present for a meter class.
As CUSTOM_METERMODE is obsolete from `defaultMode`, the init functions
of CPU meters and MemorySwapMeter need to be adjusted to avoid
incomplete initialization (Meter.draw function bring NULL).
Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
-rw-r--r-- | CPUMeter.c | 28 | ||||
-rw-r--r-- | MemorySwapMeter.c | 6 | ||||
-rw-r--r-- | Meter.c | 7 | ||||
-rw-r--r-- | Meter.h | 1 |
4 files changed, 22 insertions, 20 deletions
@@ -251,8 +251,10 @@ static void CPUMeterCommonInit(Meter* this, int ncol) { Meter_init(meters[i]); } - if (this->mode == 0) + if (this->mode == 0) { this->mode = BAR_METERMODE; + this->draw = Meter_drawFn(this); + } int h = Meter_modes[this->mode]->h; this->h = h * ((count + ncol - 1) / ncol); @@ -380,7 +382,7 @@ const MeterClass AllCPUsMeter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .total = 100.0, .attributes = CPUMeter_attributes, .name = "AllCPUs", @@ -400,7 +402,7 @@ const MeterClass AllCPUs2Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -421,7 +423,7 @@ const MeterClass LeftCPUsMeter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -442,7 +444,7 @@ const MeterClass RightCPUsMeter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -463,7 +465,7 @@ const MeterClass LeftCPUs2Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -484,7 +486,7 @@ const MeterClass RightCPUs2Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -505,7 +507,7 @@ const MeterClass AllCPUs4Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -526,7 +528,7 @@ const MeterClass LeftCPUs4Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -547,7 +549,7 @@ const MeterClass RightCPUs4Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -568,7 +570,7 @@ const MeterClass AllCPUs8Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -589,7 +591,7 @@ const MeterClass LeftCPUs8Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, @@ -610,7 +612,7 @@ const MeterClass RightCPUs8Meter_class = { .display = CPUMeter_display }, .updateValues = AllCPUsMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .total = 100.0, .attributes = CPUMeter_attributes, diff --git a/MemorySwapMeter.c b/MemorySwapMeter.c index 82eddee2..6aea784f 100644 --- a/MemorySwapMeter.c +++ b/MemorySwapMeter.c @@ -65,8 +65,10 @@ static void MemorySwapMeter_init(Meter* this) { if (Meter_initFn(data->swapMeter)) Meter_init(data->swapMeter); - if (this->mode == 0) + if (this->mode == 0) { this->mode = BAR_METERMODE; + this->draw = Meter_drawFn(this); + } this->h = MAXIMUM(Meter_modes[data->memoryMeter->mode]->h, Meter_modes[data->swapMeter->mode]->h); } @@ -97,7 +99,7 @@ const MeterClass MemorySwapMeter_class = { .delete = Meter_delete, }, .updateValues = MemorySwapMeter_updateValues, - .defaultMode = CUSTOM_METERMODE, + .defaultMode = BAR_METERMODE, .isMultiColumn = true, .name = "MemorySwap", .uiName = "Memory & Swap", @@ -122,11 +122,10 @@ void Meter_setMode(Meter* this, int modeIndex) { } assert(modeIndex < LAST_METERMODE); - if (Meter_defaultMode(this) == CUSTOM_METERMODE) { + if (Meter_updateModeFn(this)) { + assert(Meter_drawFn(this)); this->draw = Meter_drawFn(this); - if (Meter_updateModeFn(this)) { - Meter_updateMode(this, modeIndex); - } + Meter_updateMode(this, modeIndex); } else { assert(modeIndex >= 1); free(this->drawData.values); @@ -87,7 +87,6 @@ typedef struct MeterClass_ { #define Meter_getUiName(this_,n_,l_) As_Meter(this_)->getUiName((const Meter*)(this_),n_,l_) #define Meter_getCaptionFn(this_) As_Meter(this_)->getCaption #define Meter_getCaption(this_) (Meter_getCaptionFn(this_) ? As_Meter(this_)->getCaption((const Meter*)(this_)) : (this_)->caption) -#define Meter_defaultMode(this_) As_Meter(this_)->defaultMode #define Meter_attributes(this_) As_Meter(this_)->attributes #define Meter_name(this_) As_Meter(this_)->name #define Meter_uiName(this_) As_Meter(this_)->uiName |