/* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2019-2020, William McPherson * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include class TrackManager; class MainWidget; class KnobsWidget final : public GUI::Frame { C_OBJECT(KnobsWidget) public: virtual ~KnobsWidget() override; void update_knobs(); private: KnobsWidget(TrackManager&, MainWidget&); TrackManager& m_track_manager; MainWidget& m_main_widget; RefPtr m_labels_container; RefPtr m_volume_label; RefPtr m_octave_label; RefPtr m_wave_label; RefPtr m_attack_label; RefPtr m_decay_label; RefPtr m_sustain_label; RefPtr m_release_label; RefPtr m_delay_label; RefPtr m_values_container; RefPtr m_volume_value; RefPtr m_octave_value; RefPtr m_wave_value; RefPtr m_attack_value; RefPtr m_decay_value; RefPtr m_sustain_value; RefPtr m_release_value; RefPtr m_delay_value; RefPtr m_knobs_container; RefPtr m_volume_knob; RefPtr m_octave_knob; RefPtr m_wave_knob; RefPtr m_attack_knob; RefPtr m_decay_knob; RefPtr m_sustain_knob; RefPtr m_release_knob; RefPtr m_delay_knob; bool m_change_underlying { true }; };