Browse Source

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

tags/2021-05-28
ed 6 years ago
parent
commit
91ef9e2b85
1 changed files with 23 additions and 11 deletions
  1. +23
    -11
      modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp

+ 23
- 11
modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp 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();
}


Loading…
Cancel
Save