Put settings windows always on top and scrollable if they are not sized correctly

pre-release-3
James H Ball 2025-01-01 16:38:58 +00:00
rodzic 9e25afd3e1
commit 587e82e7a6
3 zmienionych plików z 17 dodań i 7 usunięć

Wyświetl plik

@ -47,8 +47,7 @@ CommonPluginEditor::CommonPluginEditor(CommonAudioProcessor& p, juce::String app
};
visualiserSettings.setLookAndFeel(&getLookAndFeel());
visualiserSettings.setSize(550, 450);
visualiserSettingsWindow.setContentNonOwned(&visualiserSettings, true);
visualiserSettings.setSize(550, 600);
visualiserSettingsWindow.centreWithSize(550, 450);
#if JUCE_WINDOWS
// if not standalone, use native title bar for compatibility with DAWs
@ -58,8 +57,7 @@ CommonPluginEditor::CommonPluginEditor(CommonAudioProcessor& p, juce::String app
#endif
recordingSettings.setLookAndFeel(&getLookAndFeel());
recordingSettings.setSize(300, 200);
recordingSettingsWindow.setContentNonOwned(&recordingSettings, true);
recordingSettings.setSize(300, 300);
recordingSettingsWindow.centreWithSize(300, 200);
#if JUCE_WINDOWS
// if not standalone, use native title bar for compatibility with DAWs

Wyświetl plik

@ -45,9 +45,9 @@ public:
juce::String projectFileType;
VisualiserSettings visualiserSettings = VisualiserSettings(audioProcessor.visualiserParameters, 3);
SettingsWindow visualiserSettingsWindow = SettingsWindow("Visualiser Settings");
SettingsWindow visualiserSettingsWindow = SettingsWindow("Visualiser Settings", visualiserSettings);
RecordingSettings recordingSettings = RecordingSettings(audioProcessor.recordingParameters);
SettingsWindow recordingSettingsWindow = SettingsWindow("Recording Settings");
SettingsWindow recordingSettingsWindow = SettingsWindow("Recording Settings", recordingSettings);
VisualiserComponent visualiser{audioProcessor.lastOpenedDirectory, applicationFolder.getChildFile(ffmpegFileName), audioProcessor.haltRecording, audioProcessor.threadManager, visualiserSettings, audioProcessor.recordingParameters, nullptr, appName == "sosci"};
std::unique_ptr<juce::FileChooser> chooser;

Wyświetl plik

@ -253,11 +253,23 @@ private:
class SettingsWindow : public juce::DocumentWindow {
public:
SettingsWindow(juce::String name) : juce::DocumentWindow(name, Colours::darker, juce::DocumentWindow::TitleBarButtons::closeButton) {
SettingsWindow(juce::String name, juce::Component& component) : juce::DocumentWindow(name, Colours::darker, juce::DocumentWindow::TitleBarButtons::closeButton), component(component) {
juce::Component::addAndMakeVisible(viewport);
setResizable(false, false);
viewport.setViewedComponent(&component, false);
viewport.setScrollBarsShown(false, false, true, false);
setAlwaysOnTop(true);
}
void closeButtonPressed() override {
setVisible(false);
}
void resized() override {
viewport.setBounds(getLocalBounds());
}
private:
juce::Viewport viewport;
juce::Component& component;
};