summaryrefslogtreecommitdiffstats
path: root/AvailableMetersPanel.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2020-12-25 16:42:35 +0100
committerBenny Baumann <BenBE@geshi.org>2021-08-22 16:15:59 +0200
commit9060a4179da07c82e73142b2b2afab5e6efaa8b0 (patch)
tree1451b10537097d248c9fee671f3eb01af808fdb8 /AvailableMetersPanel.c
parent7269faf651cbb789156113df0a540943a24ded27 (diff)
Add option to change Header layout
Diffstat (limited to 'AvailableMetersPanel.c')
-rw-r--r--AvailableMetersPanel.c19
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");

© 2014-2024 Faster IT GmbH | imprint | privacy policy