-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.cpp
More file actions
69 lines (57 loc) · 1.99 KB
/
Main.cpp
File metadata and controls
69 lines (57 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <JuceHeader.h>
#include "MainContentComponent.h"
#include "ServiceLocator.h"
#include "BigBuffer.h"
#include "AppState.h"
class Application : public juce::JUCEApplication
{
public:
//==============================================================================
Application() = default;
const juce::String getApplicationName() override { return "Snag"; }
const juce::String getApplicationVersion() override { return "1.0.0"; }
void initialise(const juce::String &) override
{
// Initialize services
ServiceLocator::registerService(std::make_shared<BigBuffer>());
ServiceLocator::registerService(std::make_shared<AppState>());
mainWindow.reset(new MainWindow("Snag", new MainContentComponent, *this));
}
void shutdown() override
{
mainWindow = nullptr;
ServiceLocator::clear();
}
private:
class MainWindow : public juce::DocumentWindow
{
public:
MainWindow(const juce::String &name, juce::Component *c, JUCEApplication &a)
: DocumentWindow(name, juce::Desktop::getInstance().getDefaultLookAndFeel().findColour(ResizableWindow::backgroundColourId),
juce::DocumentWindow::allButtons),
app(a)
{
setUsingNativeTitleBar(true);
setContentOwned(c, true);
#if JUCE_ANDROID || JUCE_IOS
setFullScreen(true);
#else
setResizable(true, false);
setResizeLimits(300, 150, 10000, 10000);
centreWithSize(getWidth(), getHeight());
#endif
setSize(1140, 170);
setVisible(true);
}
void closeButtonPressed() override
{
app.systemRequestedQuit();
}
private:
JUCEApplication &app;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MainWindow)
};
std::unique_ptr<MainWindow> mainWindow;
};
//==============================================================================
START_JUCE_APPLICATION(Application)