78 MainWindow(
const juce::String& name,
const juce::String& commandLine) : juce::DocumentWindow(name,
79 juce::Desktop::getInstance().getDefaultLookAndFeel()
80 .findColour(juce::ResizableWindow::backgroundColourId),
81 juce::DocumentWindow::allButtons)
83 ignoreUnused(commandLine);
85 setUsingNativeTitleBar(
true);
86 auto mainComponent = std::make_unique<MainComponent>();
87 mainComponent->onPaletteStyleChange = [=](
int paletteStyle,
bool followLocalStyle) {
88 m_followLocalStyle = followLocalStyle;
89 applyPaletteStyle(
static_cast<JUCEAppBasics::CustomLookAndFeel::PaletteStyle
>(paletteStyle));
91 mainComponent->onSetFullscreenWindow = [=](
bool fullscreenWindow) {
setFullscreenWindow(fullscreenWindow); };
92 setContentOwned(mainComponent.release(),
true);
94#if JUCE_IOS || JUCE_ANDROID
96 juce::Desktop::getInstance().setScreenSaverEnabled(
false);
98 juce::Desktop::getInstance().setKioskModeComponent(getTopLevelComponent(),
false);
100 setResizable(
true,
true);
101 centreWithSize(getWidth(), getHeight());
106 juce::Desktop::getInstance().addDarkModeSettingListener(
this);
110 if (
auto mc =
dynamic_cast<MainComponent*
>(getContentComponent()))
111 mc->applySettingsOption(MainComponent::MemaMoSettingsOption::LookAndFeel_Dark);
113 JUCEAppBasics::AppConfigurationBase::getInstance()->triggerWatcherUpdate();
149 if (fullscreenWindow)
150 juce::Desktop::getInstance().setKioskModeComponent(getTopLevelComponent(),
false);
152 juce::Desktop::getInstance().setKioskModeComponent(
nullptr,
false);
154 if (
auto* topLevel = getTopLevelComponent())
156 if (
auto* peer = topLevel->getPeer())
158 peer->setFullScreen(fullscreenWindow);