24 m_appIcon = std::make_unique<juce::DrawableButton>(
"App Icon", juce::DrawableButton::ButtonStyle::ImageFitted);
25 m_appIcon->setColour(juce::DrawableButton::ColourIds::backgroundColourId, juce::Colours::transparentBlack);
26 m_appIcon->setColour(juce::DrawableButton::ColourIds::backgroundOnColourId, juce::Colours::transparentBlack);
27 m_appIcon->setImages(juce::Drawable::createFromImageData(imageData, imageDataSize).get());
28 addAndMakeVisible(m_appIcon.get());
30 m_appInfoLabel = std::make_unique<juce::Label>(
"Version", juce::JUCEApplication::getInstance()->getApplicationName() +
" " + juce::JUCEApplication::getInstance()->getApplicationVersion());
31 m_appInfoLabel->setJustificationType(juce::Justification::centredBottom);
32 m_appInfoLabel->setFont(juce::Font(juce::FontOptions(16.0, juce::Font::plain)));
33 addAndMakeVisible(m_appInfoLabel.get());
35 m_appRepoLink = std::make_unique<juce::HyperlinkButton>(juce::JUCEApplication::getInstance()->getApplicationName() + juce::String(
" on GitHub"), URL(
"https://www.github.com/ChristianAhrens/Mema"));
36 m_appRepoLink->setFont(juce::Font(juce::FontOptions(16.0, juce::Font::plain)),
false );
37 m_appRepoLink->setJustificationType(juce::Justification::centredTop);
38 addAndMakeVisible(m_appRepoLink.get());
54 auto bounds = getLocalBounds();
55 auto margin = bounds.getHeight() / 8;
56 bounds.reduce(margin, margin);
57 auto iconBounds = bounds.removeFromTop(bounds.getHeight() / 2);
58 auto infoBounds = bounds.removeFromTop(bounds.getHeight() / 2);
59 auto& repoLinkBounds = bounds;
61 m_appIcon->setBounds(iconBounds);
62 m_appInfoLabel->setBounds(infoBounds);
63 m_appRepoLink->setBounds(repoLinkBounds);