1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-21 01:24:21 +00:00

Fixed some layout issues when using an AudioDeviceSelectorComponent with the "advanced" settings hidden

This commit is contained in:
ed 2019-03-07 11:07:05 +00:00
parent e6ea529902
commit 91ef9e2b85

View file

@ -210,7 +210,8 @@ public:
{
showAdvancedSettingsButton.reset (new TextButton (TRANS("Show advanced settings...")));
addAndMakeVisible (showAdvancedSettingsButton.get());
showAdvancedSettingsButton->onClick = [this] { showAdvanced(); };
showAdvancedSettingsButton->setClickingTogglesState (true);
showAdvancedSettingsButton->onClick = [this] { toggleAdvancedSettings(); };
}
type.scanForDevices();
@ -276,27 +277,37 @@ public:
r.removeFromTop (space * 2);
if (showAdvancedSettingsButton != nullptr)
if (showAdvancedSettingsButton != nullptr
&& sampleRateDropDown != nullptr && bufferSizeDropDown != nullptr)
{
showAdvancedSettingsButton->setBounds (r.withHeight (h));
showAdvancedSettingsButton->setBounds (r.removeFromTop (h));
r.removeFromTop (space);
showAdvancedSettingsButton->changeWidthToFitText();
}
const bool advancedSettingsVisible = showAdvancedSettingsButton == nullptr
|| ! showAdvancedSettingsButton->isVisible();
auto advancedSettingsVisible = showAdvancedSettingsButton == nullptr
|| showAdvancedSettingsButton->getToggleState();
if (sampleRateDropDown != nullptr)
{
sampleRateDropDown->setVisible (advancedSettingsVisible);
sampleRateDropDown->setBounds (r.removeFromTop (h));
r.removeFromTop (space);
if (advancedSettingsVisible)
{
sampleRateDropDown->setBounds (r.removeFromTop (h));
r.removeFromTop (space);
}
}
if (bufferSizeDropDown != nullptr)
{
bufferSizeDropDown->setVisible (advancedSettingsVisible);
bufferSizeDropDown->setBounds (r.removeFromTop (h));
r.removeFromTop (space);
if (advancedSettingsVisible)
{
bufferSizeDropDown->setBounds (r.removeFromTop (h));
r.removeFromTop (space);
}
}
r.removeFromTop (space);
@ -400,9 +411,10 @@ public:
return false;
}
void showAdvanced()
void toggleAdvancedSettings()
{
showAdvancedSettingsButton->setVisible (false);
showAdvancedSettingsButton->setButtonText ((showAdvancedSettingsButton->getToggleState() ? "Hide " : "Show ")
+ String ("advanced settings..."));
resized();
}