104 virtual const String getApplicationName() = 0;
107 virtual const String getApplicationVersion() = 0;
120 virtual bool moreThanOneInstanceAllowed() = 0;
141 virtual void initialise (
const String& commandLineParameters) = 0;
155 virtual void shutdown() = 0;
164 virtual void anotherInstanceStarted (
const String& commandLine) = 0;
178 virtual void systemRequestedQuit() = 0;
183 virtual void suspended() = 0;
188 virtual void resumed() = 0;
198 virtual void unhandledException (
const std::exception*,
199 const String& sourceFilename,
238 static StringArray JUCE_CALLTYPE getCommandLineParameterArray();
243 static String JUCE_CALLTYPE getCommandLineParameters();
254 void setApplicationReturnValue (
int newReturnValue) noexcept;
279 static int main (
int argc,
const char* argv[]);
281 static void appWillTerminateByForce();
283 static CreateInstanceFunction createInstance;
286 static void* iOSCustomDelegate;
289 virtual bool initialiseApp();
291 static void JUCE_CALLTYPE sendUnhandledException (
const std::exception*,
const char* sourceFile,
int lineNumber);
292 bool sendCommandLineToPreexistingInstance();
298 int appReturnValue = 0;
299 bool stillInitialising =
true;
301 struct MultipleInstanceHandler;
302 std::unique_ptr<MultipleInstanceHandler> multipleInstanceHandler;
309 #if JUCE_CATCH_UNHANDLED_EXCEPTIONS || defined (DOXYGEN)
321 #define JUCE_CATCH_EXCEPTION \
322 catch (const std::exception& e) { juce::JUCEApplicationBase::sendUnhandledException (&e, __FILE__, __LINE__); } \
323 catch (...) { juce::JUCEApplicationBase::sendUnhandledException (nullptr, __FILE__, __LINE__); }
327 #define JUCE_CATCH_EXCEPTION