#ifdef tb_generate_documentation #error This file should not be included in any project. It is for generating TurtleBrains documentation using Doxygen. //-------------------------------------------------------------------------------------------------------------------// /// /// @page pageApplicationDevelopment Developing Applications /// More info can be found about this on the following pages: /// - @subpage pageApplicationOverview /// //-------------------------------------------------------------------------------------------------------------------// /// /// @page pageApplicationOverview HowTo: Start a Real-time Application /// @brief Provides a high level look at creating a Real-time Application using %TurtleBrains. /// /// @details Creating an application with %TurtleBrains is as easy as counting to three. /// -# Derive a custom class from @ref TurtleBrains::Application::ApplicationHandlerInterface "ApplicationHandlerInterface" and create an instance. /// -# Create an instance of the @ref TurtleBrains::Application::RealtimeApplication "RealtimeApplication" and get the window Open and running. /// -# Customize the application by adding a window menu, context menu, status bar, and, if desired, dialog prompts. /// /// @section sectionApplicationStepOne Create your application handler. /// The most important part of creating an application is handling events, either from the operating system or from /// user interactions with your application. The ApplicationHandlerInterface provides a way for you to handle any /// of these events and actions. The following code demonstrates creating a custom subclass of /// @ref TurtleBrains::Application::ApplicationHandlerInterface "ApplicationHandlerInterface" for your applications. /// /// my_application_handler.h /// @snippet tb_application_example.cpp exampleApplicationHandlerHeader /// my_application_handler.cpp /// @snippet tb_application_example.cpp exampleApplicationHandlerSource /// /// That is all it takes to handle different events for the application. Of course this is only an example handler and /// there are many other events and actions that can be handled. To see a full list of the possibilities look at the /// TurtleBrains::Application::ApplicationHandlerInterface documentation. /// /// @section sectionApplicationStepTwo Create and open the application. /// With the application handler created and ready for use, it is time to create the application and get it running. /// The application takes a handler as a parameter, and expects the handler to remain in scope at least as long as /// the application itself. /// /// main.cpp /// @snippet tb_application_example.cpp exampleApplicationMainSource /// /// That was short and simple, and should result in a real-time window with a blank, black screen. /// /// @section sectionApplicationStepThree Customize your application. /// Since it is likely your application will need more than a blank, black screen here are links to guides on adding a /// status bar, menus and dialog prompts. /// The following steps are the same basic steps taken to add a Status Bar, /// Menu, or Dialog Prompt to your application. /// -# Create the necessary identifiers. (ex. MenuIdentifier / MenuItemIdentifier) /// -# Create and customized the object as desired, setting up everything as needed. (ex. ApplicationMenu / /// AddMenuItem) /// -# Handle events in the ApplicationHandler when the user interacts with the object. (ex. OnMenuAction). /// /// For more information about adding these customizations to your application see the following: /// - @subpage pageApplicationMenuOverview "Adding Menus" /// - @subpage pageApplicationDialogOverview "Adding Dialogs" /// - @subpage pageApplicationStatusOverview "Adding a Status Bar" /// //-------------------------------------------------------------------------------------------------------------------// /// /// @page pageApplicationMenuOverview HowTo: Add a Window Menu /// @brief Add a custom Window Menu to your Real-time Application in %TurtleBrains. /// /// @details The following guide is a continuation of @ref pageApplicationOverview which provides a great way to start /// an application if you haven't already. /// /// The following steps are the same basic steps taken to add a Status Bar, Menu, or Dialog Prompt to your application. /// -# Create the necessary identifiers for the menu and menu items. (ex. MenuIdentifier / MenuItemIdentifier) /// -# Create and customized the menu as desired, setting up everything as needed. (ex. ApplicationMenu / /// AddMenuItem) /// -# Handle events in the ApplicationHandler when the user interacts with the menu. (ex. OnMenuAction). /// /// This is fairly straight forward, so the following code snippets will speak for themselves. Adding a window menu is /// a reasonably high priority for most applications so we start there. /// /// @b MyApplicationValues.h /// @snippet tb_application_example.cpp exampleApplicationMenuValuesHeader /// @b MyApplicationHandler.cpp (modify to add window menu) /// @snippet tb_application_example.cpp exampleApplicationMenuCreateSource /// @b MyApplicationHandler.cpp (modify to add window menu) /// @snippet tb_application_example.cpp exampleApplicationMenuHandlerSource /// //-------------------------------------------------------------------------------------------------------------------// /// /// @page pageApplicationDialogOverview HowTo: Add a Dialog Prompt /// @brief Add an custom Dialog Prompt to your Real-time Application in %TurtleBrains. /// /// @details The following guide is a continuation of @ref pageApplicationOverview which provides a great way to start /// an application if you haven't already. /// /// The following steps are the same basic steps taken to add a Status Bar, Menu, or Dialog Prompt to your application. /// -# Create the necessary identifiers for the dialog and dialog controls. (ex. DialogIdentifier / DialogControlIdentifier) /// -# Create and customized the dialog prompt as desired, setting up everything as needed. (ex. ApplicationDialog / /// AddDialogControl) /// -# Handle events in the ApplicationHandler when the user interacts with the dialog prompt. (ex. OnDialogAction). /// /// Creating a dialog prompt, is not so different from creating a Menu, first create the /// identifiers, then customize the dialog and finally handle the events from user interaction. /// /// @b MyApplicationValues.h (modify to add dialog values) /// @snippet tb_application_example.cpp exampleApplicationDialogValuesHeader /// @b MyApplicationHandler.cpp (modify to add dialog prompt) /// @snippet tb_application_example.cpp exampleApplicationDialogCreateSource /// @b MyApplicationHandler.cpp (modify to add dialog prompt) /// @snippet tb_application_example.cpp exampleApplicationDialogHandlerSource /// //-------------------------------------------------------------------------------------------------------------------// /// /// @page pageApplicationStatusOverview HowTo: Add a Status Bar /// @brief Add an custom Status Bar to your Realt-ime Application in %TurtleBrains. /// /// @details The following guide is a continuation of @ref pageApplicationOverview which provides a great way to start /// an application if you haven't already. /// /// The following steps are the same basic steps taken to add a Status Bar, Menu, or Dialog Prompt to your application. /// -# Create the necessary identifiers for the status bar and status items. (ex. StatusIdentifier / StatusItemIdentifier) /// -# Create and customized the status bar as desired, setting up everything as needed. (ex. ApplicationStatus / /// AddStatusItem) /// -# Handle events in the ApplicationHandler when the user interacts with the object. /// /// Creating a status bar, is not so different from creating a Menu or Dialog, first create the identifiers, then /// customize the status bar. With a status bar there is no user interaction to handle, so it is even easier! /// /// @b MyApplicationValues.h (modify to add status bar values) /// @snippet tb_application_example.cpp exampleApplicationStatusValuesHeader /// @b MyApplicationHandler.cpp (modify to add status bar) /// @snippet tb_application_example.cpp exampleApplicationStatusCreateSource /// @b MyApplicationHandler.cpp (modify to add status bar) /// @snippet tb_application_example.cpp exampleApplicationStatusHandlerSource /// /// @note The status bar currently only works on Windows, no Mac support at this time. Also there is no way to remove /// a status bar once added to the application, although the status items can be changed easily as shown above. /// //-------------------------------------------------------------------------------------------------------------------// #endif /* tb_generate_documentation */