diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2020-12-25 16:42:35 +0100 |
---|---|---|
committer | Benny Baumann <BenBE@geshi.org> | 2021-08-22 16:15:59 +0200 |
commit | 9060a4179da07c82e73142b2b2afab5e6efaa8b0 (patch) | |
tree | 1451b10537097d248c9fee671f3eb01af808fdb8 /AvailableMetersPanel.c | |
parent | 7269faf651cbb789156113df0a540943a24ded27 (diff) |
Add option to change Header layout
Diffstat (limited to 'AvailableMetersPanel.c')
-rw-r--r-- | AvailableMetersPanel.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/AvailableMetersPanel.c b/AvailableMetersPanel.c index a8af8d0a..c00aec18 100644 --- a/AvailableMetersPanel.c +++ b/AvailableMetersPanel.c @@ -30,14 +30,15 @@ static void AvailableMetersPanel_delete(Object* object) { Panel* super = (Panel*) object; AvailableMetersPanel* this = (AvailableMetersPanel*) object; Panel_done(super); + free(this->meterPanels); free(this); } -static inline void AvailableMetersPanel_addMeter(Header* header, Panel* panel, const MeterClass* type, unsigned int param, int column) { +static inline void AvailableMetersPanel_addMeter(Header* header, MetersPanel* panel, const MeterClass* type, unsigned int param, size_t column) { const Meter* meter = Header_addMeterByClass(header, type, param, column); - Panel_add(panel, (Object*) Meter_toListItem(meter, false)); - Panel_setSelected(panel, Panel_size(panel) - 1); - MetersPanel_setMoving((MetersPanel*)panel, true); + Panel_add((Panel*)panel, (Object*) Meter_toListItem(meter, false)); + Panel_setSelected((Panel*)panel, Panel_size((Panel*)panel) - 1); + MetersPanel_setMoving(panel, true); } static HandlerResult AvailableMetersPanel_eventHandler(Panel* super, int ch) { @@ -58,7 +59,7 @@ static HandlerResult AvailableMetersPanel_eventHandler(Panel* super, int ch) { case 'l': case 'L': { - AvailableMetersPanel_addMeter(header, this->leftPanel, Platform_meterTypes[type], param, 0); + AvailableMetersPanel_addMeter(header, this->meterPanels[0], Platform_meterTypes[type], param, 0); result = HANDLED; update = true; break; @@ -70,7 +71,7 @@ static HandlerResult AvailableMetersPanel_eventHandler(Panel* super, int ch) { case 'r': case 'R': { - AvailableMetersPanel_addMeter(header, this->rightPanel, Platform_meterTypes[type], param, 1); + AvailableMetersPanel_addMeter(header, this->meterPanels[this->columns - 1], Platform_meterTypes[type], param, this->columns - 1); result = (KEY_LEFT << 16) | SYNTH_KEY; update = true; break; @@ -138,7 +139,7 @@ static void AvailableMetersPanel_addPlatformMeter(Panel* super, const MeterClass Panel_add(super, (Object*) ListItem_new(label, offset << 16)); } -AvailableMetersPanel* AvailableMetersPanel_new(Settings* settings, Header* header, Panel* leftMeters, Panel* rightMeters, ScreenManager* scr, const ProcessList* pl) { +AvailableMetersPanel* AvailableMetersPanel_new(Settings* settings, Header* header, size_t columns, MetersPanel** meterPanels, ScreenManager* scr, const ProcessList* pl) { AvailableMetersPanel* this = AllocThis(AvailableMetersPanel); Panel* super = (Panel*) this; FunctionBar* fuBar = FunctionBar_newEnterEsc("Add ", "Done "); @@ -146,8 +147,8 @@ AvailableMetersPanel* AvailableMetersPanel_new(Settings* settings, Header* heade this->settings = settings; this->header = header; - this->leftPanel = leftMeters; - this->rightPanel = rightMeters; + this->columns = columns; + this->meterPanels = meterPanels; this->scr = scr; Panel_setHeader(super, "Available meters"); |