1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-16 03:42:06 +00:00
serenity/Userland/Applications/Piano/ProcessorParameterWidget/Toggle.h
kleines Filmröllchen 6389384882 Piano: Add Toggle parameter widget
This is for enum widgets; though positioning is not correct as
checkboxes need more options for text-less layout.
2022-07-25 15:25:13 +02:00

39 lines
1 KiB
C++

/*
* Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibCore/Object.h>
#include <LibDSP/ProcessorParameter.h>
#include <LibGUI/CheckBox.h>
#include <LibGUI/Widget.h>
class ProcessorParameterToggle : public GUI::CheckBox {
C_OBJECT(ProcessorParameterToggle)
public:
ProcessorParameterToggle(DSP::ProcessorBooleanParameter& parameter)
: CheckBox("")
, m_parameter(parameter)
{
on_checked = [this](auto checked) {
if (m_currently_setting_from_ui)
return;
m_currently_setting_from_ui = true;
m_parameter.set_value(checked);
m_currently_setting_from_ui = false;
};
m_parameter.register_change_listener([this](auto muted) {
set_checked(muted, GUI::AllowCallback::No);
});
set_checked(parameter.value());
}
private:
DSP::ProcessorBooleanParameter& m_parameter;
bool m_currently_setting_from_ui { false };
};