Almost finished Slope Slider, still need to remove Value from slider textbox.
This commit is contained in:
parent
e18377af9f
commit
6f2fd49107
@ -5,7 +5,7 @@
|
||||
#include <corecrt_math_defines.h>
|
||||
|
||||
#include "JuceLibraryCode/BinaryData.h"
|
||||
#include "PluginEditor.h"
|
||||
|
||||
|
||||
namespace AXIOM {
|
||||
class DesignSystem : public juce::LookAndFeel_V4 {
|
||||
@ -655,6 +655,7 @@ class PresetMenuButtonLookAndFeel : public juce::LookAndFeel_V4 {
|
||||
const bool isToggled = button.getToggleState();
|
||||
auto bounds = button.getLocalBounds().toFloat();
|
||||
auto iconSize = juce::jmin(bounds.getWidth(), bounds.getHeight()) * 0.5f;
|
||||
|
||||
auto hoverFactor = isHovered ? 1.05f : 1.0f;
|
||||
|
||||
auto iconBounds = juce::Rectangle<float>(iconSize * hoverFactor, iconSize * hoverFactor)
|
||||
@ -671,8 +672,6 @@ class PresetMenuButtonLookAndFeel : public juce::LookAndFeel_V4 {
|
||||
juce::RectanglePlacement::centred, passiveIconOpacity);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
@ -872,11 +871,10 @@ class PresetMenuButtonLookAndFeel : public juce::LookAndFeel_V4 {
|
||||
|
||||
label->setColour(juce::Label::backgroundColourId, juce::Colours::transparentBlack);
|
||||
label->setColour(juce::Label::outlineColourId, juce::Colours::transparentBlack);
|
||||
label->setColour(juce::Label::textColourId, juce::Colours::white);
|
||||
label->setColour(juce::Label::textColourId, Colours::FOREGROUNDCOLOUR);
|
||||
label->setJustificationType(juce::Justification::centred);
|
||||
label->setInterceptsMouseClicks (false, false);
|
||||
Typography::applyToLabel(*label, Typography::Style::Mono, 1.f);
|
||||
|
||||
return label;
|
||||
}
|
||||
juce::Slider::SliderLayout getSliderLayout (juce::Slider& slider) override
|
||||
@ -921,8 +919,6 @@ class PresetMenuButtonLookAndFeel : public juce::LookAndFeel_V4 {
|
||||
|
||||
g.setColour(Colours::ACCENTCOLOUR);
|
||||
g.fillPath(p);
|
||||
|
||||
//TODO: ON BYPASS SET TO RING TO SURFACEHOVER, ACCENT TO WEAKACCENTHOVER
|
||||
}
|
||||
};
|
||||
class GainSliderLookAndFeel : public BaseSliderLookAndFeel
|
||||
@ -1025,6 +1021,103 @@ class PresetMenuButtonLookAndFeel : public juce::LookAndFeel_V4 {
|
||||
g.fillPath(p);
|
||||
}
|
||||
};
|
||||
|
||||
class SlopeSliderLookAndFeel : public BaseSliderLookAndFeel {
|
||||
public:
|
||||
static constexpr float labelPadding = 20.0f;
|
||||
juce::Slider::SliderLayout getSliderLayout(juce::Slider& slider) override
|
||||
{
|
||||
juce::Slider::SliderLayout layout;
|
||||
auto bounds = slider.getLocalBounds();
|
||||
|
||||
// TextBox in der Mitte (wie bei BaseSliderLookAndFeel)
|
||||
layout.textBoxBounds = juce::Rectangle<int>(
|
||||
bounds.getCentreX() - bounds.getWidth() / 2,
|
||||
bounds.getCentreY() - bounds.getHeight() / 2,
|
||||
bounds.getWidth(),
|
||||
bounds.getHeight()
|
||||
);
|
||||
|
||||
// HIER IST DER TRICK: Knob-Bereich kleiner als Slider-Bounds!
|
||||
// So bleibt Platz für die Labels außerhalb
|
||||
layout.sliderBounds = bounds.reduced(labelPadding);
|
||||
|
||||
return layout;
|
||||
}
|
||||
|
||||
void drawRotarySlider(juce::Graphics& g, int x, int y, int width, int height,
|
||||
float sliderPos, float rotaryStartAngle, float rotaryEndAngle,
|
||||
juce::Slider& slider) override
|
||||
{
|
||||
// Basis-Implementation - wird in Subklassen überschrieben
|
||||
auto radius = juce::jmin(width / 2, height / 2) - 4.0f;
|
||||
auto centreX = x + width * 0.5f;
|
||||
auto centreY = y + height * 0.5f;
|
||||
auto angle = rotaryStartAngle + sliderPos * (rotaryEndAngle - rotaryStartAngle);
|
||||
bool isEnabled = slider.isEnabled();
|
||||
bool isHovered = slider.isMouseOverOrDragging();
|
||||
|
||||
// Outer ring
|
||||
g.setColour(Colours::BACKGROUNDCOLOUR);
|
||||
g.fillEllipse(centreX - radius, centreY - radius, radius * 2.0f, radius * 2.0f);
|
||||
|
||||
juce::Colour accentCol = isEnabled ? Colours::ACCENTCOLOUR : Colours::ACCENTWEAKCOLOUR;
|
||||
|
||||
// Indicator
|
||||
juce::Path p;
|
||||
auto pointerLength = radius * 0.6f;
|
||||
auto pointerThickness = 2.0f;
|
||||
p.addRectangle(-pointerThickness * 0.5f, -radius, pointerThickness, pointerLength);
|
||||
p.applyTransform(juce::AffineTransform::rotation(angle).translated(centreX, centreY));
|
||||
|
||||
g.setColour(accentCol);
|
||||
g.fillPath(p);
|
||||
|
||||
|
||||
// Dann zeichne die Labels
|
||||
const auto bounds = juce::Rectangle<int>(x, y, width, height);
|
||||
const auto centre = bounds.getCentre().toFloat();
|
||||
const float textRadius = std::min(width, height) * 0.5f + 5.0f;
|
||||
|
||||
const juce::StringArray labels = {"12", "24", "36", "48"};
|
||||
|
||||
g.setFont(12.0f);
|
||||
auto value = slider.getValue();
|
||||
|
||||
for (int i = 0; i < labels.size(); ++i)
|
||||
{
|
||||
const double labelVal = labels[i].getDoubleValue(); // "12" -> 12.0 usw.
|
||||
const bool isMatch = value == i; // Toleranz: 0.5
|
||||
|
||||
juce::Colour colour;
|
||||
if (!isEnabled) {
|
||||
colour = isMatch ? Colours::ACCENTWEAKCOLOUR : Colours::FOREGROUNDCOLOUR.withMultipliedAlpha (0.4f);
|
||||
}
|
||||
else {
|
||||
colour = isMatch
|
||||
? Colours::ACCENTCOLOUR
|
||||
: Colours::FOREGROUNDCOLOUR;
|
||||
}
|
||||
g.setColour(colour);
|
||||
|
||||
|
||||
const double position = (double)i / 3.0;
|
||||
const float ang = rotaryStartAngle + position * (rotaryEndAngle - rotaryStartAngle);
|
||||
|
||||
juce::Point<float> pos(
|
||||
centre.x + textRadius * std::cos(ang - juce::MathConstants<float>::halfPi),
|
||||
centre.y + textRadius * std::sin(ang - juce::MathConstants<float>::halfPi)
|
||||
);
|
||||
|
||||
juce::Rectangle<float> textRect(30.0f, 16.0f);
|
||||
textRect.setCentre(pos);
|
||||
|
||||
g.drawText(labels[i], textRect, juce::Justification::centred);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
class GlobalSliderLookAndFeel : public BaseSliderLookAndFeel
|
||||
{
|
||||
public:
|
||||
|
||||
@ -11471,43 +11471,80 @@ const char* preset_menu_icon_svg = (const char*) temp_binary_data_12;
|
||||
//================== crystalize_button_active_icon.svg ==================
|
||||
static const unsigned char temp_binary_data_13[] =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 32.45\">\n"
|
||||
" <defs>\n"
|
||||
" <linearGradient id=\"Unbenannter_Verlauf_16\" data-name=\"Unbenannter Verlauf 16\" x1=\"8.69\" y1=\"31.46\" x2=\"70.94\" y2=\"1.29\" gradientUnits=\"userSpaceOnUse\">\n"
|
||||
" <stop offset=\"0\" stop-color=\"#fff\" stop-opacity=\".1\"/>\n"
|
||||
" <stop offset=\".48\" stop-color=\"#fff\" stop-opacity=\".3\"/>\n"
|
||||
" <stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\".5\"/>\n"
|
||||
" </linearGradient>\n"
|
||||
" </defs>\n"
|
||||
"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 32\">\n"
|
||||
" <g id=\"Ebene_6\" data-name=\"Ebene 6\">\n"
|
||||
" <rect x=\"0\" y=\"0\" width=\"64\" height=\"32\" fill=\"#171a1a\"/>\n"
|
||||
" <polygon points=\"0 32 2 30 32 16 62 2 64 0 64 32 0 32\" fill=\"#262b2b\"/>\n"
|
||||
" </g>\n"
|
||||
" <g id=\"Ebene_2\" data-name=\"Ebene 2\">\n"
|
||||
" <rect x=\"8\" y=\".22\" width=\"64\" height=\"32\" rx=\"5.96\" ry=\"5.96\" fill=\"#3db7b7\"/>\n"
|
||||
" <rect x=\"8\" y=\".22\" width=\"64\" height=\"32\" rx=\"5.96\" ry=\"5.96\" fill=\"#56feff\"/>\n"
|
||||
" <rect x=\"2\" y=\"2\" width=\"60\" height=\"28\" fill=\"#3db7b7\"/>\n"
|
||||
" <rect x=\"2\" y=\"2\" width=\"60\" height=\"28\" fill=\"#56feff\"/>\n"
|
||||
" </g>\n"
|
||||
" <g id=\"Ebene_1\" data-name=\"Ebene 1\">\n"
|
||||
" <g id=\"Ebene_7\" data-name=\"Ebene 7\">\n"
|
||||
" <g>\n"
|
||||
" <path d=\"M11.73,19.11c-.18,0-.34-.04-.48-.13-.15-.09-.26-.2-.35-.35-.09-.15-.13-.31-.13-.48v-3.84c0-.18.04-.34.13-.48.08-.15.2-.26.35-.35.15-.09.31-.13.48-.13h4.78v.65h-4.78c-.09,0-.16.03-.22.09s-.09.13-.09.22v3.84c0,.09.03.16.09.22.06.06.13.0"
|
||||
"9.22.09h4.78v.65h-4.78Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M17.34,19.11v-5.75h4.8c.18,0,.34.04.48.13s.26.2.35.35c.08.14.13.3.13.48v1.69c0,.18-.04.34-.13.48-.09.14-.2.26-.35.35s-.31.13-.48.13h-4.15v2.14h-.65ZM18.3,16.31h3.84c.08,0,.16-.03.22-.09.06-.06.09-.13.09-.22v-1.69c0-.09-.03-.16-.09-.22"
|
||||
"s-.13-.09-.22-.09h-3.84c-.09,0-.16.03-.22.09s-.09.13-.09.22v1.69c0,.09.03.16.09.22.06.06.13.09.22.09ZM22.21,19.11l-1.88-2.24h.85l1.89,2.23h0s-.86,0-.86,0Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M26.4,19.11v-2.17l-2.65-3.59h.74l2.23,2.82,2.21-2.82h.76l-2.65,3.59v2.17h-.65Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M31.03,19.11c-.18,0-.34-.04-.48-.13s-.26-.2-.35-.35c-.09-.15-.13-.31-.13-.48v-.22h.65v.22c0,.09.03.16.09.22.06.06.13.09.22.09h3.84c.08,0,.16-.03.22-.09.06-.06.09-.13.09-.22v-1.29c0-.08-.03-.16-.09-.22-.06-.06-.13-.09-.22-.09h-3.84c-.1"
|
||||
"8,0-.34-.04-.48-.13s-.26-.2-.35-.35c-.09-.14-.13-.3-.13-.48v-1.29c0-.18.04-.34.13-.48.08-.15.2-.26.35-.35s.31-.13.48-.13h3.84c.18,0,.34.04.48.13.15.09.26.2.35.35.08.15.13.31.13.48v.22h-.65v-.22c0-.09-.03-.16-.09-.22-.06-.06-.13-.09-.22-.09h-3.84c-.09"
|
||||
",0-.16.03-.22.09-.06.06-.09.13-.09.22v1.29c0,.09.03.16.09.22s.13.09.22.09h3.84c.18,0,.34.04.48.13.15.09.26.2.35.35.08.14.13.3.13.48v1.29c0,.18-.04.34-.13.48-.09.15-.2.26-.35.35-.15.09-.31.13-.48.13h-3.84Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M38.96,19.11v-5.11h-2.56v-.65h5.76v.65h-2.55v5.11h-.65Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M42.78,14.31c0-.18.04-.34.13-.48.09-.15.2-.26.35-.35.15-.09.31-.13.48-.13h3.84c.18,0,.34.04.48.13s.26.2.35.35c.09.15.13.31.13.48v4.8h-.65v-2.1h-4.46v2.1h-.65v-4.8ZM47.89,16.36v-2.05c0-.09-.03-.16-.09-.22-.06-.06-.13-.09-.22-.09h-3.84c"
|
||||
"-.08,0-.16.03-.22.09-.06.06-.09.13-.09.22v2.05h4.46Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M49.46,19.11v-5.77h.65v5.12h5.11v.65h-5.76Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M55.76,19.11v-5.76h.66v5.76h-.66Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M57.35,19.11v-.89l5.02-4.22h-5.02v-.65h5.76v.89l-5.02,4.22h5.02v.65h-5.76Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M63.98,19.11v-5.76h5.26v.65h-4.61v1.9h3.7v.66h-3.7v1.9h4.61v.65h-5.26Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M12.39,18c-.12,0-.23-.03-.34-.09-.1-.06-.18-.14-.24-.24-.06-.1-.09-.21-.09-.34v-2.66c0-.12.03-.23.09-.34.06-.1.14-.18.24-.24.1-.06.21-.09.34-.09h3.32v.45h-3.32c-.06,0-.11.02-.15.06s-.06.09-.06.15v2.66c0,.06.02.11.06.15.04.04.09.06.15."
|
||||
"06h3.32v.45h-3.32Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M16.29,18v-3.99h3.33c.12,0,.23.03.34.09s.18.14.24.24c.06.1.09.21.09.33v1.17c0,.12-.03.23-.09.33-.06.1-.14.18-.24.24s-.21.09-.34.09h-2.88v1.49h-.45ZM16.95,16.06h2.66c.06,0,.11-.02.15-.06.04-.04.06-.09.06-.15v-1.17c0-.06-.02-.11-.06-.15"
|
||||
"s-.09-.06-.15-.06h-2.66c-.06,0-.11.02-.15.06s-.06.09-.06.15v1.17c0,.06.02.11.06.15.04.04.09.06.15.06ZM19.66,18l-1.3-1.55h.59l1.31,1.55h0s-.59,0-.59,0Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M22.57,18v-1.5l-1.84-2.49h.52l1.55,1.95,1.53-1.95h.53l-1.84,2.49v1.5h-.45Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M25.78,18c-.12,0-.23-.03-.34-.09s-.18-.14-.24-.24c-.06-.1-.09-.21-.09-.34v-.16h.45v.16c0,.06.02.11.06.15.04.04.09.06.15.06h2.66c.06,0,.11-.02.15-.06.04-.04.06-.09.06-.15v-.89c0-.06-.02-.11-.06-.15-.04-.04-.09-.06-.15-.06h-2.66c-.12,0-"
|
||||
".23-.03-.34-.09s-.18-.14-.24-.24c-.06-.1-.09-.21-.09-.33v-.89c0-.12.03-.23.09-.34.06-.1.14-.18.24-.24s.21-.09.34-.09h2.66c.12,0,.23.03.34.09.1.06.18.14.24.24.06.1.09.21.09.34v.16h-.45v-.16c0-.06-.02-.11-.06-.15-.04-.04-.09-.06-.15-.06h-2.66c-.06,0-.1"
|
||||
"1.02-.15.06-.04.04-.06.09-.06.15v.89c0,.06.02.11.06.15s.09.06.15.06h2.66c.12,0,.23.03.34.09.1.06.18.14.24.24.06.1.09.21.09.33v.89c0,.12-.03.23-.09.34-.06.1-.14.18-.24.24-.1.06-.21.09-.34.09h-2.66Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M31.28,18v-3.54h-1.77v-.45h3.99v.45h-1.77v3.54h-.45Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M33.92,14.67c0-.12.03-.23.09-.34.06-.1.14-.18.24-.24.1-.06.21-.09.34-.09h2.66c.12,0,.23.03.34.09s.18.14.24.24c.06.1.09.21.09.34v3.33h-.45v-1.46h-3.1v1.46h-.45v-3.33ZM37.47,16.09v-1.42c0-.06-.02-.11-.06-.15-.04-.04-.09-.06-.15-.06h-2.6"
|
||||
"6c-.06,0-.11.02-.15.06-.04.04-.06.09-.06.15v1.42h3.1Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M38.56,18v-4h.45v3.55h3.55v.45h-3.99Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M42.93,18v-3.99h.45v3.99h-.45Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M44.03,18v-.62l3.48-2.93h-3.48v-.45h3.99v.62l-3.48,2.93h3.48v.45h-3.99Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M48.63,18v-3.99h3.64v.45h-3.2v1.32h2.57v.46h-2.57v1.32h3.2v.45h-3.64Z\" fill=\"#fff\"/>\n"
|
||||
" </g>\n"
|
||||
" </g>\n"
|
||||
" <g id=\"Ebene_3_Kopie_Kopie_Kopie\" data-name=\"Ebene 3 Kopie Kopie Kopie\">\n"
|
||||
" <path d=\"M56,24.22l8-4,8,4h-16ZM48,20.22h16l-8-4-8,4ZM72,12.22v-4l-8,4h8ZM72,16.22l-8-4-8,4h16ZM69.61,1.42l-5.61,2.81h7.66c-.39-1.13-1.12-2.1-2.05-2.81ZM72,8.22l-8-4-8,4h16ZM48,12.22h16l-8-4-8,4ZM56,.22l-8,4h16L56,.22ZM48,28.22h16l-8-4-8,4ZM72,2"
|
||||
"0.22v-4l-8,4h8ZM56,24.22l-8-4-8,4h16ZM40,8.22l-8,4h16l-8-4ZM32,12.22l-8,4h16l-8-4ZM40,16.22l-8,4h16l-8-4ZM32,20.22l-8,4h16l-8-4ZM71.66,28.22c.21-.61.34-1.27.34-1.96v-2.04l-8,4h7.66ZM56,16.22l-8-4-8,4h16ZM32,28.22h16l-8-4-8,4ZM56,8.22l-8-4-8,4h16ZM8,2"
|
||||
"0.22h8l-8-4v4ZM24,32.22h16l-8-4-8,4ZM24,24.22l-8,4h16l-8-4ZM8,12.22h8l-8-4v4ZM16,20.22l-8,4h16l-8-4ZM10.39,31.03c1,.75,2.23,1.19,3.57,1.19h10.04l-8-4-5.61,2.81ZM64,28.22l-8,4h10.04c1.34,0,2.57-.45,3.57-1.19l-5.61-2.81ZM8.34,4.22h7.66l-5.61-2.81c-.94."
|
||||
"7-1.66,1.68-2.05,2.81ZM40,32.22h16l-8-4-8,4ZM8,26.27c0,.69.12,1.34.34,1.96h7.66l-8-4v2.04ZM40,.22l-8,4h16L40,.22ZM16,4.22l-8,4h16l-8-4ZM24,8.22l-8,4h16l-8-4ZM40,8.22l-8-4-8,4h16ZM16,12.22l-8,4h16l-8-4ZM24,.22l-8,4h16L24,.22ZM24,16.22l-8,4h16l-8-4Z\" "
|
||||
"fill=\"url(#Unbenannter_Verlauf_16)\"/>\n"
|
||||
" <g id=\"Ebene_3_Kopie\" data-name=\"Ebene 3 Kopie\">\n"
|
||||
" <rect x=\"8\" y=\"8\" width=\"48\" height=\"16\" fill=\"#fffcfc\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"2 30 8 24 56 24 62 30 2 30\" fill=\"#fffcfc\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"62 2 56 8 8 8 2 2 62 2\" fill=\"#fffcfc\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 24 56 8 62 2 62 30 56 24\" fill=\"#fffcfc\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 8 8 24 2 30 2 2 8 8\" fill=\"#fffcfc\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 24 5 27 2 30 2 24 8 24\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"2 30 5 27 8 24 8 30 2 30\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 30 8 24 14 27 20 30 8 30\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"2 8 5 12 8 16 2 16 2 8\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"20 30 26 27 32 24 32 30 20 30\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 24 26 27 20 30 20 24 32 24\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 16 5 12 2 8 8 8 8 16\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 16 5 20 2 24 2 16 8 16\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"20 24 20 30 14 27 8 24 20 24\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 30 56 24 50 27 44 30 56 30\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"44 30 38 27 32 24 32 30 44 30\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 24 38 27 44 30 44 24 32 24\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"44 24 44 30 50 27 56 24 44 24\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 2 32 8 26 5 20 2 32 2\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"20 2 14 5 8 8 8 2 20 2\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"2 24 5 20 8 16 8 24 2 24\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 8 14 5 20 2 20 8 8 8\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 24 20 20 32 16 32 24 8 24\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 24 44 20 32 16 32 24 56 24\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 8 44 12 32 16 32 8 56 8\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 8 20 12 32 16 32 8 8 8\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 16 20 12 8 8 8 16 32 16\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 16 44 12 56 8 56 16 32 16\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 16 20 20 8 24 8 16 32 16\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 16 44 20 56 24 56 16 32 16\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"20 8 20 2 26 5 32 8 20 8\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"32 2 32 8 38 5 44 2 32 2\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"44 2 50 5 56 8 56 2 44 2\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 8 50 5 44 2 44 8 56 8\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"44 8 44 2 38 5 32 8 44 8\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"8 2 8 8 5 5 2 2 8 2\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"2 8 2 2 5 5 8 8 2 8\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 24 59 27 62 30 62 24 56 24\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"62 8 59 12 56 16 62 16 62 8\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 16 59 12 62 8 56 8 56 16\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 16 59 20 62 24 56 24 56 16\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"62 30 59 27 56 24 56 30 62 30\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 16 59 20 62 24 62 16 56 16\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"56 2 56 8 59 5 62 2 56 2\" fill=\"#fff\" opacity=\".21\"/>\n"
|
||||
" <polygon points=\"62 8 62 2 59 5 56 8 62 8\" fill=\"#d1d1d1\" opacity=\".21\"/>\n"
|
||||
" </g>\n"
|
||||
"</svg>";
|
||||
|
||||
@ -11516,42 +11553,79 @@ const char* crystalize_button_active_icon_svg = (const char*) temp_binary_data_1
|
||||
//================== crystalize_button_passive_icon.svg ==================
|
||||
static const unsigned char temp_binary_data_14[] =
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 32.45\">\n"
|
||||
" <defs>\n"
|
||||
" <linearGradient id=\"Unbenannter_Verlauf_16\" data-name=\"Unbenannter Verlauf 16\" x1=\"8.69\" y1=\"31.46\" x2=\"70.94\" y2=\"1.29\" gradientUnits=\"userSpaceOnUse\">\n"
|
||||
" <stop offset=\"0\" stop-color=\"#fff\" stop-opacity=\".1\"/>\n"
|
||||
" <stop offset=\".48\" stop-color=\"#fff\" stop-opacity=\".3\"/>\n"
|
||||
" <stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\".5\"/>\n"
|
||||
" </linearGradient>\n"
|
||||
" </defs>\n"
|
||||
"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 32\">\n"
|
||||
" <g id=\"Ebene_6\" data-name=\"Ebene 6\">\n"
|
||||
" <rect x=\"0\" y=\"0\" width=\"64\" height=\"32\" fill=\"#171a1a\"/>\n"
|
||||
" <polygon points=\"64 0 62 2 32 16 2 30 0 32 0 0 64 0\" fill=\"#262b2b\"/>\n"
|
||||
" </g>\n"
|
||||
" <g id=\"Ebene_2\" data-name=\"Ebene 2\">\n"
|
||||
" <rect x=\"8\" y=\".22\" width=\"64\" height=\"32\" rx=\"5.96\" ry=\"5.96\" fill=\"#3db7b7\"/>\n"
|
||||
" <rect x=\"2\" y=\"2\" width=\"60\" height=\"28\" fill=\"#3db7b7\"/>\n"
|
||||
" </g>\n"
|
||||
" <g id=\"Ebene_1\" data-name=\"Ebene 1\">\n"
|
||||
" <g id=\"Ebene_7\" data-name=\"Ebene 7\">\n"
|
||||
" <g>\n"
|
||||
" <path d=\"M11.73,19.11c-.18,0-.34-.04-.48-.13-.15-.09-.26-.2-.35-.35-.09-.15-.13-.31-.13-.48v-3.84c0-.18.04-.34.13-.48.08-.15.2-.26.35-.35.15-.09.31-.13.48-.13h4.78v.65h-4.78c-.09,0-.16.03-.22.09s-.09.13-.09.22v3.84c0,.09.03.16.09.22.06.06.13.0"
|
||||
"9.22.09h4.78v.65h-4.78Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M17.34,19.11v-5.75h4.8c.18,0,.34.04.48.13s.26.2.35.35c.08.14.13.3.13.48v1.69c0,.18-.04.34-.13.48-.09.14-.2.26-.35.35s-.31.13-.48.13h-4.15v2.14h-.65ZM18.3,16.31h3.84c.08,0,.16-.03.22-.09.06-.06.09-.13.09-.22v-1.69c0-.09-.03-.16-.09-.22"
|
||||
"s-.13-.09-.22-.09h-3.84c-.09,0-.16.03-.22.09s-.09.13-.09.22v1.69c0,.09.03.16.09.22.06.06.13.09.22.09ZM22.21,19.11l-1.88-2.24h.85l1.89,2.23h0s-.86,0-.86,0Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M26.4,19.11v-2.17l-2.65-3.59h.74l2.23,2.82,2.21-2.82h.76l-2.65,3.59v2.17h-.65Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M31.03,19.11c-.18,0-.34-.04-.48-.13s-.26-.2-.35-.35c-.09-.15-.13-.31-.13-.48v-.22h.65v.22c0,.09.03.16.09.22.06.06.13.09.22.09h3.84c.08,0,.16-.03.22-.09.06-.06.09-.13.09-.22v-1.29c0-.08-.03-.16-.09-.22-.06-.06-.13-.09-.22-.09h-3.84c-.1"
|
||||
"8,0-.34-.04-.48-.13s-.26-.2-.35-.35c-.09-.14-.13-.3-.13-.48v-1.29c0-.18.04-.34.13-.48.08-.15.2-.26.35-.35s.31-.13.48-.13h3.84c.18,0,.34.04.48.13.15.09.26.2.35.35.08.15.13.31.13.48v.22h-.65v-.22c0-.09-.03-.16-.09-.22-.06-.06-.13-.09-.22-.09h-3.84c-.09"
|
||||
",0-.16.03-.22.09-.06.06-.09.13-.09.22v1.29c0,.09.03.16.09.22s.13.09.22.09h3.84c.18,0,.34.04.48.13.15.09.26.2.35.35.08.14.13.3.13.48v1.29c0,.18-.04.34-.13.48-.09.15-.2.26-.35.35-.15.09-.31.13-.48.13h-3.84Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M38.96,19.11v-5.11h-2.56v-.65h5.76v.65h-2.55v5.11h-.65Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M42.78,14.31c0-.18.04-.34.13-.48.09-.15.2-.26.35-.35.15-.09.31-.13.48-.13h3.84c.18,0,.34.04.48.13s.26.2.35.35c.09.15.13.31.13.48v4.8h-.65v-2.1h-4.46v2.1h-.65v-4.8ZM47.89,16.36v-2.05c0-.09-.03-.16-.09-.22-.06-.06-.13-.09-.22-.09h-3.84c"
|
||||
"-.08,0-.16.03-.22.09-.06.06-.09.13-.09.22v2.05h4.46Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M49.46,19.11v-5.77h.65v5.12h5.11v.65h-5.76Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M55.76,19.11v-5.76h.66v5.76h-.66Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M57.35,19.11v-.89l5.02-4.22h-5.02v-.65h5.76v.89l-5.02,4.22h5.02v.65h-5.76Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M63.98,19.11v-5.76h5.26v.65h-4.61v1.9h3.7v.66h-3.7v1.9h4.61v.65h-5.26Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M12.39,18c-.12,0-.23-.03-.34-.09-.1-.06-.18-.14-.24-.24-.06-.1-.09-.21-.09-.34v-2.66c0-.12.03-.23.09-.34.06-.1.14-.18.24-.24.1-.06.21-.09.34-.09h3.32v.45h-3.32c-.06,0-.11.02-.15.06s-.06.09-.06.15v2.66c0,.06.02.11.06.15.04.04.09.06.15."
|
||||
"06h3.32v.45h-3.32Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M16.29,18v-3.99h3.33c.12,0,.23.03.34.09s.18.14.24.24c.06.1.09.21.09.33v1.17c0,.12-.03.23-.09.33-.06.1-.14.18-.24.24s-.21.09-.34.09h-2.88v1.49h-.45ZM16.95,16.06h2.66c.06,0,.11-.02.15-.06.04-.04.06-.09.06-.15v-1.17c0-.06-.02-.11-.06-.15"
|
||||
"s-.09-.06-.15-.06h-2.66c-.06,0-.11.02-.15.06s-.06.09-.06.15v1.17c0,.06.02.11.06.15.04.04.09.06.15.06ZM19.66,18l-1.3-1.55h.59l1.31,1.55h0s-.59,0-.59,0Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M22.57,18v-1.5l-1.84-2.49h.52l1.55,1.95,1.53-1.95h.53l-1.84,2.49v1.5h-.45Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M25.78,18c-.12,0-.23-.03-.34-.09s-.18-.14-.24-.24c-.06-.1-.09-.21-.09-.34v-.16h.45v.16c0,.06.02.11.06.15.04.04.09.06.15.06h2.66c.06,0,.11-.02.15-.06.04-.04.06-.09.06-.15v-.89c0-.06-.02-.11-.06-.15-.04-.04-.09-.06-.15-.06h-2.66c-.12,0-"
|
||||
".23-.03-.34-.09s-.18-.14-.24-.24c-.06-.1-.09-.21-.09-.33v-.89c0-.12.03-.23.09-.34.06-.1.14-.18.24-.24s.21-.09.34-.09h2.66c.12,0,.23.03.34.09.1.06.18.14.24.24.06.1.09.21.09.34v.16h-.45v-.16c0-.06-.02-.11-.06-.15-.04-.04-.09-.06-.15-.06h-2.66c-.06,0-.1"
|
||||
"1.02-.15.06-.04.04-.06.09-.06.15v.89c0,.06.02.11.06.15s.09.06.15.06h2.66c.12,0,.23.03.34.09.1.06.18.14.24.24.06.1.09.21.09.33v.89c0,.12-.03.23-.09.34-.06.1-.14.18-.24.24-.1.06-.21.09-.34.09h-2.66Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M31.28,18v-3.54h-1.77v-.45h3.99v.45h-1.77v3.54h-.45Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M33.92,14.67c0-.12.03-.23.09-.34.06-.1.14-.18.24-.24.1-.06.21-.09.34-.09h2.66c.12,0,.23.03.34.09s.18.14.24.24c.06.1.09.21.09.34v3.33h-.45v-1.46h-3.1v1.46h-.45v-3.33ZM37.47,16.09v-1.42c0-.06-.02-.11-.06-.15-.04-.04-.09-.06-.15-.06h-2.6"
|
||||
"6c-.06,0-.11.02-.15.06-.04.04-.06.09-.06.15v1.42h3.1Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M38.56,18v-4h.45v3.55h3.55v.45h-3.99Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M42.93,18v-3.99h.45v3.99h-.45Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M44.03,18v-.62l3.48-2.93h-3.48v-.45h3.99v.62l-3.48,2.93h3.48v.45h-3.99Z\" fill=\"#fff\"/>\n"
|
||||
" <path d=\"M48.63,18v-3.99h3.64v.45h-3.2v1.32h2.57v.46h-2.57v1.32h3.2v.45h-3.64Z\" fill=\"#fff\"/>\n"
|
||||
" </g>\n"
|
||||
" </g>\n"
|
||||
" <g id=\"Ebene_3_Kopie_Kopie_Kopie\" data-name=\"Ebene 3 Kopie Kopie Kopie\">\n"
|
||||
" <path d=\"M56,24.22l8-4,8,4h-16ZM48,20.22h16l-8-4-8,4ZM72,12.22v-4l-8,4h8ZM72,16.22l-8-4-8,4h16ZM69.61,1.42l-5.61,2.81h7.66c-.39-1.13-1.12-2.1-2.05-2.81ZM72,8.22l-8-4-8,4h16ZM48,12.22h16l-8-4-8,4ZM56,.22l-8,4h16L56,.22ZM48,28.22h16l-8-4-8,4ZM72,2"
|
||||
"0.22v-4l-8,4h8ZM56,24.22l-8-4-8,4h16ZM40,8.22l-8,4h16l-8-4ZM32,12.22l-8,4h16l-8-4ZM40,16.22l-8,4h16l-8-4ZM32,20.22l-8,4h16l-8-4ZM71.66,28.22c.21-.61.34-1.27.34-1.96v-2.04l-8,4h7.66ZM56,16.22l-8-4-8,4h16ZM32,28.22h16l-8-4-8,4ZM56,8.22l-8-4-8,4h16ZM8,2"
|
||||
"0.22h8l-8-4v4ZM24,32.22h16l-8-4-8,4ZM24,24.22l-8,4h16l-8-4ZM8,12.22h8l-8-4v4ZM16,20.22l-8,4h16l-8-4ZM10.39,31.03c1,.75,2.23,1.19,3.57,1.19h10.04l-8-4-5.61,2.81ZM64,28.22l-8,4h10.04c1.34,0,2.57-.45,3.57-1.19l-5.61-2.81ZM8.34,4.22h7.66l-5.61-2.81c-.94."
|
||||
"7-1.66,1.68-2.05,2.81ZM40,32.22h16l-8-4-8,4ZM8,26.27c0,.69.12,1.34.34,1.96h7.66l-8-4v2.04ZM40,.22l-8,4h16L40,.22ZM16,4.22l-8,4h16l-8-4ZM24,8.22l-8,4h16l-8-4ZM40,8.22l-8-4-8,4h16ZM16,12.22l-8,4h16l-8-4ZM24,.22l-8,4h16L24,.22ZM24,16.22l-8,4h16l-8-4Z\" "
|
||||
"fill=\"url(#Unbenannter_Verlauf_16)\" opacity=\".5\"/>\n"
|
||||
" <g id=\"Ebene_3_Kopie\" data-name=\"Ebene 3 Kopie\">\n"
|
||||
" <rect x=\"8\" y=\"8\" width=\"48\" height=\"16\" fill=\"#fffcfc\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"2 30 8 24 56 24 62 30 2 30\" fill=\"#fffcfc\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"62 2 56 8 8 8 2 2 62 2\" fill=\"#fffcfc\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 24 56 8 62 2 62 30 56 24\" fill=\"#fffcfc\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 8 8 24 2 30 2 2 8 8\" fill=\"#fffcfc\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 24 5 27 2 30 2 24 8 24\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"2 30 5 27 8 24 8 30 2 30\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 30 8 24 14 27 20 30 8 30\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"2 8 5 12 8 16 2 16 2 8\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"20 30 26 27 32 24 32 30 20 30\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 24 26 27 20 30 20 24 32 24\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 16 5 12 2 8 8 8 8 16\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 16 5 20 2 24 2 16 8 16\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"20 24 20 30 14 27 8 24 20 24\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 30 56 24 50 27 44 30 56 30\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"44 30 38 27 32 24 32 30 44 30\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 24 38 27 44 30 44 24 32 24\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"44 24 44 30 50 27 56 24 44 24\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 2 32 8 26 5 20 2 32 2\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"20 2 14 5 8 8 8 2 20 2\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"2 24 5 20 8 16 8 24 2 24\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 8 14 5 20 2 20 8 8 8\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 24 20 20 32 16 32 24 8 24\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 24 44 20 32 16 32 24 56 24\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 8 44 12 32 16 32 8 56 8\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 8 20 12 32 16 32 8 8 8\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 16 20 12 8 8 8 16 32 16\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 16 44 12 56 8 56 16 32 16\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 16 20 20 8 24 8 16 32 16\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 16 44 20 56 24 56 16 32 16\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"20 8 20 2 26 5 32 8 20 8\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"32 2 32 8 38 5 44 2 32 2\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"44 2 50 5 56 8 56 2 44 2\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 8 50 5 44 2 44 8 56 8\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"44 8 44 2 38 5 32 8 44 8\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"8 2 8 8 5 5 2 2 8 2\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"2 8 2 2 5 5 8 8 2 8\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 24 59 27 62 30 62 24 56 24\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"62 8 59 12 56 16 62 16 62 8\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 16 59 12 62 8 56 8 56 16\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 16 59 20 62 24 56 24 56 16\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"62 30 59 27 56 24 56 30 62 30\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 16 59 20 62 24 62 16 56 16\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"56 2 56 8 59 5 62 2 56 2\" fill=\"#fff\" opacity=\".17\"/>\n"
|
||||
" <polygon points=\"62 8 62 2 59 5 56 8 62 8\" fill=\"#d1d1d1\" opacity=\".17\"/>\n"
|
||||
" </g>\n"
|
||||
"</svg>";
|
||||
|
||||
@ -11592,8 +11666,8 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes)
|
||||
case 0x31532e06: numBytes = 317; return low_cut_icon_svg;
|
||||
case 0x7e8ca05e: numBytes = 410; return low_shelf_icon_svg;
|
||||
case 0x4df4bf1e: numBytes = 350; return preset_menu_icon_svg;
|
||||
case 0xd842aaab: numBytes = 4212; return crystalize_button_active_icon_svg;
|
||||
case 0x885a7642: numBytes = 4141; return crystalize_button_passive_icon_svg;
|
||||
case 0xd842aaab: numBytes = 6343; return crystalize_button_active_icon_svg;
|
||||
case 0x885a7642: numBytes = 6279; return crystalize_button_passive_icon_svg;
|
||||
case 0xe49e0f15: numBytes = 406; return bypass_icon_svg;
|
||||
default: break;
|
||||
}
|
||||
|
||||
@ -48,10 +48,10 @@ namespace BinaryData
|
||||
const int preset_menu_icon_svgSize = 350;
|
||||
|
||||
extern const char* crystalize_button_active_icon_svg;
|
||||
const int crystalize_button_active_icon_svgSize = 4212;
|
||||
const int crystalize_button_active_icon_svgSize = 6343;
|
||||
|
||||
extern const char* crystalize_button_passive_icon_svg;
|
||||
const int crystalize_button_passive_icon_svgSize = 4141;
|
||||
const int crystalize_button_passive_icon_svgSize = 6279;
|
||||
|
||||
extern const char* bypass_icon_svg;
|
||||
const int bypass_icon_svgSize = 406;
|
||||
|
||||
@ -32,6 +32,7 @@ void CrystalizerEQAudioProcessorEditor::setupSliders() {
|
||||
}
|
||||
gainLookAndFeel = std::make_unique<DesignSystem::Components::GainSliderLookAndFeel>();
|
||||
freqQLookAndFeel = std::make_unique<DesignSystem::Components::FreqQSliderLookAndFeel>();
|
||||
slopeLookAndFeel = std::make_unique<DesignSystem::Components::SlopeSliderLookAndFeel>();
|
||||
globalLookAndFeel = std::make_unique<DesignSystem::Components::GlobalSliderLookAndFeel>();
|
||||
|
||||
lowBandGainSlider.setLookAndFeel(gainLookAndFeel.get());
|
||||
@ -40,6 +41,9 @@ void CrystalizerEQAudioProcessorEditor::setupSliders() {
|
||||
peak3GainSlider.setLookAndFeel(gainLookAndFeel.get());
|
||||
highBandGainSlider.setLookAndFeel(gainLookAndFeel.get());
|
||||
|
||||
lowBandSlopeSlider.setLookAndFeel(slopeLookAndFeel.get());
|
||||
highBandSlopeSlider.setLookAndFeel(slopeLookAndFeel.get());
|
||||
|
||||
inputSlider.setLookAndFeel(globalLookAndFeel.get());
|
||||
outputSlider.setLookAndFeel(globalLookAndFeel.get());
|
||||
|
||||
@ -268,6 +272,7 @@ void CrystalizerEQAudioProcessorEditor::disableLowBand(const float target) {
|
||||
lowBandGainLabel .setEnabled(isToggled);
|
||||
lowBandQSlider .setEnabled(isToggled);
|
||||
lowBandQLabel .setEnabled(isToggled);
|
||||
|
||||
};
|
||||
//endregion disableLowBand
|
||||
|
||||
@ -392,6 +397,7 @@ void CrystalizerEQAudioProcessorEditor::addComponentsToLayout() {
|
||||
{
|
||||
filterArea.addAndMakeVisible(lowFilterArea);
|
||||
|
||||
lowBandModeBox.addAndMakeVisible(lowBandModeLabel);
|
||||
lowBandModeBox.addAndMakeVisible(lowBypass);
|
||||
lowBandModeBox.addAndMakeVisible(lowCut);
|
||||
lowBandModeBox.addAndMakeVisible(lowBell);
|
||||
@ -405,7 +411,13 @@ void CrystalizerEQAudioProcessorEditor::addComponentsToLayout() {
|
||||
lowFilterArea.addAndMakeVisible(lowBandGainLabel);
|
||||
lowFilterArea.addAndMakeVisible(lowBandQLabel);
|
||||
lowFilterArea.addAndMakeVisible(lowBandFreqLabel);
|
||||
|
||||
lowBandSlopeSlider.addAndMakeVisible(low12);
|
||||
lowBandSlopeSlider.addAndMakeVisible(low24);
|
||||
lowBandSlopeSlider.addAndMakeVisible(low36);
|
||||
lowBandSlopeSlider.addAndMakeVisible(low48);
|
||||
lowFilterArea.addAndMakeVisible(lowBandSlopeSlider);
|
||||
|
||||
lowFilterArea.addAndMakeVisible(lowBandGainSlider);
|
||||
lowFilterArea.addAndMakeVisible(lowBandQSlider);
|
||||
lowFilterArea.addAndMakeVisible(lowBandFreqSlider);
|
||||
@ -447,6 +459,7 @@ void CrystalizerEQAudioProcessorEditor::addComponentsToLayout() {
|
||||
{
|
||||
filterArea.addAndMakeVisible(highFilterArea);
|
||||
|
||||
highBandModeBox.addAndMakeVisible(highBandModeLabel);
|
||||
highBandModeBox.addAndMakeVisible(highBypass);
|
||||
highBandModeBox.addAndMakeVisible(highCut);
|
||||
highBandModeBox.addAndMakeVisible(highBell);
|
||||
@ -459,7 +472,13 @@ void CrystalizerEQAudioProcessorEditor::addComponentsToLayout() {
|
||||
highFilterArea.addAndMakeVisible(highBandGainLabel);
|
||||
highFilterArea.addAndMakeVisible(highBandQLabel);
|
||||
highFilterArea.addAndMakeVisible(highBandFreqLabel);
|
||||
|
||||
highBandSlopeSlider.addAndMakeVisible(high12);
|
||||
highBandSlopeSlider.addAndMakeVisible(high24);
|
||||
highBandSlopeSlider.addAndMakeVisible(high36);
|
||||
highBandSlopeSlider.addAndMakeVisible(high48);
|
||||
highFilterArea.addAndMakeVisible(highBandSlopeSlider);
|
||||
|
||||
highFilterArea.addAndMakeVisible(highBandGainSlider);
|
||||
highFilterArea.addAndMakeVisible(highBandQSlider);
|
||||
highFilterArea.addAndMakeVisible(highBandFreqSlider);
|
||||
@ -494,6 +513,11 @@ void CrystalizerEQAudioProcessorEditor::setupLabels() {
|
||||
setupLabel (lowBandSlopeLabel, "Slope");
|
||||
setupLabel (lowBandGainLabel, "Low\nGain");
|
||||
setupLabel(lowBandQLabel, "Low\nQ");
|
||||
setupLabel(lowBandModeLabel, "Band Mode");
|
||||
setupLabel(low12, "12");
|
||||
setupLabel(low24, "24");
|
||||
setupLabel(low36, "36");
|
||||
setupLabel(low48, "48");
|
||||
|
||||
//PEAK 1
|
||||
setupLabel (peak1FreqLabel,"Low-Mid\nHz");
|
||||
@ -515,6 +539,11 @@ void CrystalizerEQAudioProcessorEditor::setupLabels() {
|
||||
setupLabel (highBandSlopeLabel, "Slope");
|
||||
setupLabel (highBandGainLabel, "High\nGain");
|
||||
setupLabel(highBandQLabel, "High\nQ");
|
||||
setupLabel(highBandModeLabel, "Band Mode");
|
||||
setupLabel(high12, "12");
|
||||
setupLabel(high24, "24");
|
||||
setupLabel(high36, "36");
|
||||
setupLabel(high48, "48");
|
||||
|
||||
setupLabel(presetBoxLabel, "Presets");
|
||||
|
||||
@ -725,7 +754,6 @@ CrystalizerEQAudioProcessorEditor::CrystalizerEQAudioProcessorEditor (Crystalize
|
||||
setupSliders();
|
||||
initPresetSystem();
|
||||
|
||||
|
||||
addAndMakeVisible (testNoiseButton);
|
||||
|
||||
testNoiseButton.onClick = [this]() {
|
||||
@ -748,7 +776,6 @@ CrystalizerEQAudioProcessorEditor::CrystalizerEQAudioProcessorEditor (Crystalize
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
CrystalizerEQAudioProcessorEditor::~CrystalizerEQAudioProcessorEditor() {
|
||||
@ -834,7 +861,7 @@ void CrystalizerEQAudioProcessorEditor::paint (juce::Graphics& g)
|
||||
auto hBH = hB.getHeight();
|
||||
auto hBPad = ((hBY + mPY) - hBH) / 2;
|
||||
g.fillRect(hBX, hBY, hBW, mPY - hBPad);
|
||||
paintBorderLines(g);
|
||||
//paintBorderLines(g);
|
||||
|
||||
|
||||
g.setColour(Colours::SURFACECOLOUR);
|
||||
@ -844,7 +871,7 @@ void CrystalizerEQAudioProcessorEditor::paint (juce::Graphics& g)
|
||||
auto pAWidth = pA.getWidth();
|
||||
auto pAHeight = pA.getHeight();
|
||||
g.fillRoundedRectangle(pAX, pAY - 10.f, pAWidth, pAHeight + 10.f, 10.0f);
|
||||
paintBorderLines(g);
|
||||
//paintBorderLines(g);
|
||||
|
||||
const auto fA = getLocalArea(&filterArea, filterArea.getLocalBounds());
|
||||
const int fABorderWidth = 3;
|
||||
@ -863,12 +890,13 @@ void CrystalizerEQAudioProcessorEditor::paint (juce::Graphics& g)
|
||||
g.fillRect(fA);
|
||||
paintBorderLines(g);
|
||||
|
||||
paintModeBoxBorders(g);
|
||||
//paintModeBoxBorders(g);
|
||||
|
||||
g.setColour(Colours::SURFACEBYPASS);
|
||||
const auto fB = getLocalArea(&footerBar, footerBar.getLocalBounds());
|
||||
g.fillRect(fB);
|
||||
|
||||
|
||||
if constexpr (false) // -> auf false setzen, wenn nicht gebraucht
|
||||
{
|
||||
for (auto* c : getChildren()) // headerBar, mainPanel, footerBar
|
||||
@ -1006,7 +1034,6 @@ void CrystalizerEQAudioProcessorEditor::paint (juce::Graphics& g)
|
||||
|
||||
//region paintBorderLines
|
||||
void CrystalizerEQAudioProcessorEditor::paintBorderLines(juce::Graphics &g) {
|
||||
//TODO: BRODER LINES DONT ALIGN WITH MARGIN FROM ANALYZERAREA AND FILTERAREA
|
||||
g.setColour(DesignSystem::Colours::BACKGROUNDCOLOUR);
|
||||
auto prevRight = (float) lowFilterArea.getRight();
|
||||
|
||||
@ -1015,7 +1042,7 @@ void CrystalizerEQAudioProcessorEditor::paintBorderLines(juce::Graphics &g) {
|
||||
|
||||
const auto area = getLocalArea(c, c->getLocalBounds());
|
||||
const float xAvg = ((float) area.getX() - prevRight) / 2;
|
||||
const int x = area.getX() - xAvg;
|
||||
const int x = area.getX() - xAvg + (filterAreaMargin / 2);
|
||||
prevRight = (float) c->getRight();
|
||||
|
||||
const auto top = (float) area.getY();
|
||||
@ -1050,6 +1077,7 @@ void CrystalizerEQAudioProcessorEditor::setKnobVisibility() {
|
||||
lowBandGainLabel .setEnabled(lowMode >= 2);
|
||||
lowBandQSlider .setEnabled(lowMode >= 1);
|
||||
lowBandQLabel .setEnabled(lowMode >= 1);
|
||||
lowBandModeLabel.setEnabled (lowMode >= 1);
|
||||
|
||||
int highMode = (int) audioProcessor.apvts
|
||||
.getRawParameterValue("HighBandModes")->load(); // 0..3
|
||||
@ -1066,6 +1094,7 @@ void CrystalizerEQAudioProcessorEditor::setKnobVisibility() {
|
||||
highBandGainLabel .setEnabled(highMode >= 2);
|
||||
highBandQSlider .setEnabled(highMode >= 1);
|
||||
highBandQLabel .setEnabled(highMode >= 1);
|
||||
highBandModeLabel.setEnabled (highMode >= 1);
|
||||
}
|
||||
//endregion setKnobVisibility
|
||||
|
||||
@ -1126,6 +1155,8 @@ void CrystalizerEQAudioProcessorEditor::resized()
|
||||
setupFooter();
|
||||
//setSliderSizes();
|
||||
|
||||
|
||||
|
||||
const auto testBounds = mainPanel.getLocalBounds();
|
||||
const auto testWidth = testBounds.getWidth();
|
||||
const auto testHeight = testBounds.getHeight();
|
||||
@ -1252,7 +1283,6 @@ void CrystalizerEQAudioProcessorEditor::setupBody() {
|
||||
const auto bodyHeight = static_cast<float>(bounds.getHeight());
|
||||
const auto bodyWidth = static_cast<float>(bounds.getWidth());
|
||||
const auto bodyColWidth = bodyWidth / 5.0f;
|
||||
const int margin = 15;
|
||||
|
||||
Layout::GridSpec bodySpec{
|
||||
/* cols */ { Layout::fr(1), Layout::pxTrack(bodyColWidth), Layout::pxTrack(bodyColWidth), Layout::pxTrack(bodyColWidth), Layout::fr(1) },
|
||||
@ -1263,10 +1293,10 @@ void CrystalizerEQAudioProcessorEditor::setupBody() {
|
||||
};
|
||||
Layout::grid(bounds, bodySpec, {
|
||||
Layout::area(analyzerArea, 1, 2, 2, 5)
|
||||
.withMargin(juce::GridItem::Margin(margin, 0, margin, 0)),
|
||||
.withMargin(juce::GridItem::Margin(filterAreaMargin, 0, filterAreaMargin, 0)),
|
||||
Layout::area(crystalizeButton, 1, 5, 2, 6),
|
||||
Layout::area(filterArea, 2, 1, 3, 6)
|
||||
.withMargin(juce::GridItem::Margin(0, margin, 0, margin))
|
||||
.withMargin(juce::GridItem::Margin(0, filterAreaMargin, 0, filterAreaMargin))
|
||||
|
||||
});
|
||||
|
||||
@ -1318,6 +1348,7 @@ void CrystalizerEQAudioProcessorEditor::setupLowBandLayout() {
|
||||
const auto refH = getReferenceCell()[1];
|
||||
const auto gainSize = refH * gainMod;
|
||||
const auto offSetToGainTop = gainSize;
|
||||
const float labelPadding = Components::SlopeSliderLookAndFeel::labelPadding * 2;
|
||||
|
||||
Layout::GridSpec lowBandSpec{
|
||||
/* cols */ { Layout::fr(1), Layout::pxTrack(knobColWidth), Layout::fr(1) },
|
||||
@ -1346,13 +1377,13 @@ void CrystalizerEQAudioProcessorEditor::setupLowBandLayout() {
|
||||
.withAlignSelf(juce::GridItem::AlignSelf::center)
|
||||
.withJustifySelf(juce::GridItem::JustifySelf::center),
|
||||
|
||||
Layout::area(lowBandSlopeSlider, 3, 3, 4, 4)
|
||||
.withWidth(refW * slopeMod)
|
||||
.withHeight(refH * slopeMod)
|
||||
Layout::area(lowBandSlopeSlider, 3, 1, 4, 2)
|
||||
.withWidth(refW * slopeMod + labelPadding)
|
||||
.withHeight(refH * slopeMod + labelPadding)
|
||||
.withAlignSelf(juce::GridItem::AlignSelf::center)
|
||||
.withJustifySelf(juce::GridItem::JustifySelf::center),
|
||||
|
||||
Layout::area(lowBandModeBox, 3, 1, 4, 3),
|
||||
Layout::area(lowBandModeBox, 3, 2, 4, 4),
|
||||
|
||||
|
||||
Layout::area(lowBandFreqLabel, 2, 1, 3, 2)
|
||||
@ -1360,8 +1391,8 @@ void CrystalizerEQAudioProcessorEditor::setupLowBandLayout() {
|
||||
Layout::area(lowBandGainLabel, 1, 2, 2, 3),
|
||||
Layout::area(lowBandQLabel, 2, 3, 3, 4)
|
||||
.withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)),
|
||||
Layout::area(lowBandSlopeLabel, 3, 3, 4, 4)
|
||||
.withMargin(juce::GridItem::Margin(-offSetToGainTop / 2, 0, 0, 0)),
|
||||
Layout::area(lowBandSlopeLabel, 3, 1, 4, 2)
|
||||
.withMargin(juce::GridItem::Margin(-offSetToGainTop / 1.5f, 0, 0, 0)),
|
||||
|
||||
|
||||
});
|
||||
@ -1370,20 +1401,23 @@ void CrystalizerEQAudioProcessorEditor::setupLowBandLayout() {
|
||||
const auto modeBoxAreaWidth = static_cast<float>(modeBoxBounds.getWidth());
|
||||
const auto modeBoxAreaHeight = static_cast<float>(modeBoxBounds.getHeight());
|
||||
const auto modeBoxButtonColWidth = modeBoxAreaWidth / 4.0f;
|
||||
const auto slopeH = lowBandSlopeSlider.getY() - lowBandModeBox.getY() + lowBandModeLabel.getFont().getHeight() / 2;
|
||||
|
||||
Layout::GridSpec lowBandModeBoxSpec{
|
||||
/* cols */ { Layout::fr(1), Layout::fr(1), Layout::fr(1), Layout::fr(1) },
|
||||
/* rows */ { Layout::fr(1)},
|
||||
/* rows */ { Layout::fr(1), Layout::fr(1)},
|
||||
/* colGap */ Spacing::SizeMode::XS,
|
||||
/* rowGap */ Spacing::SizeMode::XS,
|
||||
/* pad */ Layout::padding(Spacing::SizeMode::XS)
|
||||
};
|
||||
|
||||
Layout::grid(modeBoxBounds, lowBandModeBoxSpec, {
|
||||
Layout::area(lowBypass, 1, 1, 2, 2),
|
||||
Layout::area(lowCut, 1, 2, 2, 3),
|
||||
Layout::area(lowBell, 1, 3, 2, 4),
|
||||
Layout::area(lowShelf, 1, 4, 2, 5)
|
||||
Layout::area(lowBandModeLabel, 1, 2, 2, 4)
|
||||
.withMargin(juce::GridItem::Margin(slopeH , 0, 0, 0)),
|
||||
Layout::area(lowBypass, 1, 1, 3, 2),
|
||||
Layout::area(lowCut, 1, 2, 3, 3),
|
||||
Layout::area(lowBell, 1, 3, 3, 4),
|
||||
Layout::area(lowShelf, 1, 4, 3, 5)
|
||||
});
|
||||
}
|
||||
//endregion setupLowBandLayout
|
||||
@ -1549,6 +1583,8 @@ void CrystalizerEQAudioProcessorEditor::setupHighBandLayout() {
|
||||
const auto refH = getReferenceCell()[1];
|
||||
const auto gainSize = refH * gainMod;
|
||||
const auto offSetToGainTop = gainSize;
|
||||
const float labelPadding = Components::SlopeSliderLookAndFeel::labelPadding * 2;
|
||||
|
||||
|
||||
Layout::GridSpec highBandSpec{
|
||||
/* cols */ { Layout::fr(1), Layout::pxTrack(knobColWidth), Layout::fr(1) },
|
||||
@ -1577,12 +1613,12 @@ void CrystalizerEQAudioProcessorEditor::setupHighBandLayout() {
|
||||
.withAlignSelf(juce::GridItem::AlignSelf::center)
|
||||
.withJustifySelf(juce::GridItem::JustifySelf::center),
|
||||
|
||||
Layout::area(highBandModeBox, 3, 2, 4, 4),
|
||||
Layout::area(highBandModeBox, 3, 1, 4, 3),
|
||||
|
||||
|
||||
Layout::area(highBandSlopeSlider, 3, 1, 4, 2)
|
||||
.withWidth(refW * slopeMod)
|
||||
.withHeight(refH * slopeMod)
|
||||
Layout::area(highBandSlopeSlider, 3, 3, 4, 4)
|
||||
.withWidth(refW * slopeMod + labelPadding)
|
||||
.withHeight(refH * slopeMod + labelPadding)
|
||||
.withAlignSelf(juce::GridItem::AlignSelf::center)
|
||||
.withJustifySelf(juce::GridItem::JustifySelf::center),
|
||||
|
||||
@ -1591,8 +1627,8 @@ void CrystalizerEQAudioProcessorEditor::setupHighBandLayout() {
|
||||
Layout::area(highBandGainLabel, 1, 2, 2, 3),
|
||||
Layout::area(highBandQLabel, 2, 3, 3, 4)
|
||||
.withMargin(juce::GridItem::Margin(-offSetToGainTop, 0, 0, 0)),
|
||||
Layout::area(highBandSlopeLabel, 3, 1, 4, 2)
|
||||
.withMargin(juce::GridItem::Margin(-offSetToGainTop / 2, 0, 0, 0)),
|
||||
Layout::area(highBandSlopeLabel, 3, 3, 4, 4)
|
||||
.withMargin(juce::GridItem::Margin(-offSetToGainTop / 1.5f, 0, 0, 0)),
|
||||
|
||||
});
|
||||
|
||||
@ -1600,20 +1636,23 @@ void CrystalizerEQAudioProcessorEditor::setupHighBandLayout() {
|
||||
const auto modeBoxAreaWidth = static_cast<float>(modeBoxBounds.getWidth());
|
||||
const auto modeBoxAreaHeight = static_cast<float>(modeBoxBounds.getHeight());
|
||||
const auto modeBoxButtonColWidth = modeBoxAreaWidth / 4.0f;
|
||||
const auto slopeH = highBandSlopeSlider.getY() - highBandModeBox.getY() + highBandModeLabel.getFont().getHeight() / 2;
|
||||
|
||||
Layout::GridSpec highBandModeBoxSpec{
|
||||
/* cols */ { Layout::fr(1), Layout::fr(1), Layout::fr(1), Layout::fr(1) },
|
||||
/* rows */ { Layout::fr(1)},
|
||||
/* rows */ { Layout::fr(1), Layout::fr(1)},
|
||||
/* colGap */ Spacing::SizeMode::XS,
|
||||
/* rowGap */ Spacing::SizeMode::XS,
|
||||
/* pad */ Layout::padding(Spacing::SizeMode::XS)
|
||||
};
|
||||
|
||||
Layout::grid(modeBoxBounds, highBandModeBoxSpec, {
|
||||
Layout::area(highBypass, 1, 4, 2, 5),
|
||||
Layout::area(highCut, 1, 3, 2, 4),
|
||||
Layout::area(highBell, 1, 2, 2, 3),
|
||||
Layout::area(highShelf, 1, 1, 2, 2)
|
||||
Layout::area(highBandModeLabel, 1, 2, 2, 4)
|
||||
.withMargin(juce::GridItem::Margin(slopeH , 0, 0, 0)),
|
||||
Layout::area(highBypass, 1, 4, 3, 5),
|
||||
Layout::area(highCut, 1, 3, 3, 4),
|
||||
Layout::area(highBell, 1, 2, 3, 3),
|
||||
Layout::area(highShelf, 1, 1, 3, 2)
|
||||
});
|
||||
}
|
||||
//endregion setupHighBandLayout
|
||||
|
||||
@ -179,22 +179,28 @@ public:
|
||||
inputAttach, outputAttach;
|
||||
|
||||
juce::Label titleLabel, testNoiseLabel,
|
||||
lowBandFreqLabel, lowBandSlopeLabel, lowBandGainLabel, lowBandQLabel,
|
||||
lowBandFreqLabel, lowBandSlopeLabel, lowBandGainLabel, lowBandQLabel, lowBandModeLabel,
|
||||
low12, low24, low36, low48,
|
||||
peak1FreqLabel, peak1GainLabel, peak1QLabel,
|
||||
peak2FreqLabel, peak2GainLabel, peak2QLabel,
|
||||
peak3FreqLabel, peak3GainLabel, peak3QLabel,
|
||||
highBandFreqLabel, highBandSlopeLabel, highBandGainLabel, highBandQLabel,
|
||||
highBandFreqLabel, highBandSlopeLabel, highBandGainLabel, highBandQLabel, highBandModeLabel,
|
||||
high12, high24, high36, high48,
|
||||
inputLabel, outputLabel,
|
||||
presetBoxLabel;
|
||||
|
||||
const juce::Array<juce::Label*> sliderLabels = {
|
||||
&lowBandFreqLabel, &lowBandSlopeLabel, &lowBandGainLabel, &lowBandQLabel,
|
||||
&lowBandFreqLabel, &lowBandSlopeLabel, &lowBandGainLabel, &lowBandQLabel, &lowBandModeLabel,
|
||||
&peak1FreqLabel, &peak1GainLabel, &peak1QLabel,
|
||||
&peak2FreqLabel, &peak2GainLabel, &peak2QLabel,
|
||||
&peak3FreqLabel, &peak3GainLabel, &peak3QLabel,
|
||||
&highBandFreqLabel, &highBandSlopeLabel, &highBandGainLabel, &highBandQLabel,
|
||||
&highBandFreqLabel, &highBandSlopeLabel, &highBandGainLabel, &highBandQLabel, &highBandModeLabel,
|
||||
&inputLabel, &outputLabel
|
||||
};
|
||||
const juce::Array<juce::Label*> slopeLabels = {
|
||||
&low12, &low24, &low36, &low48,
|
||||
&high12, &high24, &high36, &high48
|
||||
};
|
||||
|
||||
juce::TextButton testNoiseButton, resetButton, savePresetButton, deletePresetButton;
|
||||
|
||||
@ -264,6 +270,7 @@ private:
|
||||
std::unique_ptr<AXIOM::DesignSystem::Components::BaseSliderLookAndFeel> baseLookAndFeel;
|
||||
std::unique_ptr<DesignSystem::Components::GainSliderLookAndFeel> gainLookAndFeel;
|
||||
std::unique_ptr<DesignSystem::Components::FreqQSliderLookAndFeel> freqQLookAndFeel;
|
||||
std::unique_ptr<DesignSystem::Components::SlopeSliderLookAndFeel> slopeLookAndFeel;
|
||||
std::unique_ptr<DesignSystem::Components::GlobalSliderLookAndFeel> globalLookAndFeel;
|
||||
std::unique_ptr<Components::BypassButtonLookAndFeel> bypassButtonLookAndFeel;
|
||||
std::unique_ptr<Components::PresetMenuButtonLookAndFeel> presetMenuButtonLookAndFeel;
|
||||
@ -326,6 +333,8 @@ private:
|
||||
const float slopeMod = SliderStyles::Size::getSliderSizeMod(SliderStyles::Size::SizeMode::Slope);
|
||||
const float globalMod = SliderStyles::Size::getSliderSizeMod(SliderStyles::Size::SizeMode::Global);
|
||||
|
||||
const float filterAreaMargin = 15.0f;
|
||||
|
||||
bool isAnimatingCrystalize = false;
|
||||
bool isFadingToActive = false;
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@ CrystalizerEQAudioProcessor::createParameterLayout() {
|
||||
|
||||
params.push_back (std::make_unique<juce::AudioParameterFloat>(
|
||||
"Peak2Gain", "Peak2 Gain (dB)",
|
||||
juce::NormalisableRange<float>(-48.f, 48.f, 0.1f), 0.f));
|
||||
juce::NormalisableRange<float>(-24.f, 24.f, 0.1f), 0.f));
|
||||
|
||||
params.push_back (std::make_unique<juce::AudioParameterFloat>(
|
||||
"Peak2Q", "Peak2 Q",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user