The base class for every single instance application. The #UniqueApp structure contains only private data and should be manipulated only with the provided functions. Base class for every single instance application. The #UniqueBackend structure contains only private data and should only be accessed using the provided functions. The class that should be implemented by every backend for #UniqueApp. Command to send to a currently active instance. User defined commands should be positive integers, and should be added using the unique_app_add_command() function after creating a #UniqueApp instance #UniqueMessageData contains the data passed between instances of a #UniqueApp. The #UniqueMessageData structure received inside the signal handlers for UniqueApp::message-received is guaranteed to contain the #GdkScreen, the workspace and the startup notification id of the instance sending the message. Response that a currently active instance of the application should return to the caller which sent a command.