class:: ApplicationStart
summary:: register functions to be evaluated on Application start
related:: Classes/StartUp, Classes/ServerBoot
categories:: Control, Platform>macOS

description::

Available in macOS SuperCollider.app only.

ApplicationStart allows you to register functions or objects to perform an action only  on application start.
The functions will be evaluated last; After the library has been compiled, the startup file has run and StartUp actions have been evaluated.

See also link::Classes/StartUp:: for functions that are evaluated emphasis::every:: time the ClassLibrary is recompiled.

ClassMethods::

method::add
Registers an object or function. Objects will be receive a strong::doOnApplcationStart:: message on application start. Functions will be evaluated.

method::remove
Removes a function that was previously registered.

method::run
Evaluates the functions or objects in order.

Examples::

code::
SomeStartClass {
	*initClass {
		ApplicationStart.add {
			// something to do when the app has been launched...
		}
	}
}

// or...
SomeStartClass {
	*initClass {
		ApplicationStart.add(this);
	}
	*doOnApplicationStart { "something started".postln }
}
::
