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

Wyświetl plik

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

Wyświetl plik

@ -253,11 +253,23 @@ private:
class SettingsWindow : public juce::DocumentWindow { class SettingsWindow : public juce::DocumentWindow {
public: 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); setResizable(false, false);
viewport.setViewedComponent(&component, false);
viewport.setScrollBarsShown(false, false, true, false);
setAlwaysOnTop(true);
} }
void closeButtonPressed() override { void closeButtonPressed() override {
setVisible(false); setVisible(false);
} }
void resized() override {
viewport.setBounds(getLocalBounds());
}
private:
juce::Viewport viewport;
juce::Component& component;
}; };