48 void paint(Graphics& g)
override
50 auto bounds = getLocalBounds().reduced(2).toFloat();
51 g.setColour(getLookAndFeel().findColour(juce::TextButton::ColourIds::textColourOnId));
54 auto circleBounds = bounds.reduced(2);
55 auto centre = circleBounds.getCentre();
57 p.addCentredArc(centre.getX(),
59 0.25f * circleBounds.getWidth(),
60 0.25f * circleBounds.getHeight(),
63 arcStartRad + 2.0f *
pi * (m_isDragging ? m_tempFactorWhileDragging : m_factor),
65 g.strokePath(p, { 0.5f * circleBounds.getWidth(), juce::PathStrokeType::mitered });
68 g.drawEllipse(bounds, 1.0f);
70#if !funktioniertnochtnicht
73 g.setColour(getLookAndFeel().findColour(JUCEAppBasics::CustomLookAndFeel::ColourIds::MeteringRmsColourId));
74 g.setFont(g.getCurrentFont().withStyle(juce::Font::FontStyleFlags::bold).withHeight(0.4f * getHeight()));
75 g.drawFittedText(juce::String(juce::Decibels::gainToDecibels(m_factor,
static_cast<float>(
ProcessorDataAnalyzer::getGlobalMindB())), 1) +
" dB", getLocalBounds(), juce::Justification::centred, 1);
128 auto offset = e.getOffsetFromDragStart();
129 if (std::abs(offset.getY()) > 1)
133 m_tempFactorWhileDragging = jlimit(0.0f, 1.0f, m_factor - (offset.getY() / 800.0f));
135#if funktioniertnochnicht
136 if (
auto claf =
dynamic_cast<JUCEAppBasics::CustomLookAndFeel*
>(&getLookAndFeel()))
138 juce::Image cursorImage(juce::Image::PixelFormat::ARGB, 35, 15,
true);
139 juce::Graphics g(cursorImage);
140 g.setColour(getLookAndFeel().findColour(juce::TextButton::ColourIds::textColourOnId));
142 claf->setMouseCursor(juce::MouseCursor(cursorImage, 0, 0));
146 DBG(juce::String(__FUNCTION__) <<
" " <<
int(m_ident.first) <<
"/" <<
int(m_ident.second) <<
" new factor: " << m_tempFactorWhileDragging);