diff --git a/Documentation/DeveloperHelpSources/Interfaces.docu b/Documentation/DeveloperHelpSources/Interfaces.docu index 6bbddefa6aa222ef3cffe19c2f12f0d9db8a960e..296df219e86b132ae016e3cecc6d499b8d07a0ab 100644 --- a/Documentation/DeveloperHelpSources/Interfaces.docu +++ b/Documentation/DeveloperHelpSources/Interfaces.docu @@ -1,122 +1,147 @@ /** \page interfaces Plugin Interfaces * - * OpenFlipper provides a flexible plugin interface. Plugins can implement various interfaces. + * \section pluginInterfacesIntro Introduction + * + * OpenFlipper provides a flexible plugin interface. Plugins can implement various interfaces.\n + * * Each interface provides special signals/slots or functions to communicate with the core or * to react on special events. The most important interface is the BaseInterface. This Interface * provides the core functionality for the plugin. E.g. loading the plugin, specifying its name - * and basic communication regrading object changes or view updates ( See BaseInterface for further details).\n + * and basic communication regarding object changes or view updates ( See BaseInterface for further details).\n + * * Additional functionality is provided by the other interfaces. For user interaction one typically uses the * MouseInterface or KeyInterface which will provide events based on mouse or keyboard interaction.\n - * The interface of OpenFlipper can also be used by plugins. The MenubarInterface provides functions to - * add additional icons to the menubar. Using the ToolboxInterface one can add widgets to the toolbox on - * the right of the OpenFlipper screen. * + * The user interface of OpenFlipper can also be used by plugins. The MenubarInterface provides functions to + * add additional icons to the menubar while the ToolboxInterface can add widgets to the toolbox on + * the right of the OpenFlipper screen. * - * \section BasePlugin Base Interface + * \section pluginInterfacesUsage Usage of plugin interfaces + * + * To use functions from one of the interfaces you have to do the following steps: + * + * It is not necessary to implement all signals or slots from one of the interfaces (Except some functions from BaseInterface). + * The core application will only use the slots you define in the plugins header file and ignore all other functions.\n + * + * If you recognize that an interface function of your plugin is not called, check if it is defined correctly in your plugin + * class and the signature is the same as in the interface.\n + * + * \section pluginInterfacesOverview Available Interfaces + * + * This section gives an overview over the available interfaces in OpenFlipper. + * + * \subsection BasePlugin Base Interface * This is the Basic plugin Interface. All Plugins have to provide at least this interface. It offers plugin * name and some important Signals and slots which will be called by the main application. See BaseInterface * for details. * - * \section KeyPlugin Keyboard Interface + * \subsection KeyPlugin Keyboard Interface * \image html keyInterface.png * You have to provide this interface if you want to get key events in your plugin ( KeyInterface ).\n * * - * \section MousePlugin Mouse Interface + * \subsection MousePlugin Mouse Interface * \image html mouseInterface.png * This interface is used to deliver mouse events to a plugin ( MouseInterface ).\n * * - * \section LoadSavePlugin Load / Save Interface + * \subsection LoadSavePlugin Load / Save Interface * \image html loadSaveInterface.png * Provides functions to handle mesh files and load / unload geometry * objects into the scene graph ( LoadSaveInterface ). * * - * \section ToolbarPlugin Toolbar Interface + * \subsection ToolbarPlugin Toolbar Interface * \image html ToolbarInterface.png * Provides a function to add toolbar buttons. ( ToolbarInterface ) * * - * \section ContextMenu Context Menu Interface + * \subsection ContextMenu Context Menu Interface * \image html ContextMenuInterface.png * Add context menu entries in your plugin. ( ContextMenuInterface ) * * - * \section MenubarPlugin Menubar Interface + * \subsection MenubarPlugin Menubar Interface * \image html MenubarInterface.png * Provides a function to create an entry in the menubar ( MenuInterface ). * * - * \section ToolboxInterface Toolbox Interface + * + * \subpage toolboxInterfacePage * \image html ToolboxInterface.png * Provides functions to create a separate widget in the toolbox on the right ( \subpage toolboxInterfacePage ). + * \n * - * - * \section LoggingInterface Logging Interface + * \subpage loggingInterfacePage * \image html LoggingInterface.png * This is an Interface for Logging to the included log widget. You can log to different levels * (LOGOUT,LOGWARN,LOGERR,LOGINFO) ( \subpage loggingInterfacePage ). + * \n * - * - * \section TexturePlugin Texture Interface + * \subsection TexturePlugin Texture Interface * \image html TextureInterface.png * Allows your plugin to provide a texture. ( TextureInterface ) * * - * \section PickingPlugin Mouse Picking / Pick Modes + * \subsection PickingPlugin Mouse Picking / Pick Modes * \image html PickingInterface.png * Handle mouse picking in your plugin ( PickingInterface ) * * - * \section RPCPlugin RPC Interface + * \subsection RPCPlugin RPC Interface * \image html RPCInterface.png * This interface is used to call functions across different plugins ( RPCInterface ). * * - * \section FilePlugin File Interface + * \subsection FilePlugin File Interface * \image html FileInterface.png * Provides functions to read and write custom filetypes ( FileInterface ) * * - * \section TypePlugin Type Interface + * \subsection TypePlugin Type Interface * \image html FileInterface.png * Allows plugins to specify custom data types and makes them available * to other plugins ( TypeInterface ) * * - * \section ViewModePlugin View Mode Interface + * \subsection ViewModePlugin View Mode Interface * \image html FileInterface.png * Specify own view modes ( ViewModeInterface ) * * - * \section ViewPlugin View Interface + * \subsection ViewPlugin View Interface * \image html ViewInterface.png * This interface is used to add additional view widgets ( ViewInterface ). * * - * \section ScriptPlugin Script Interface + * \subsection ScriptPlugin Script Interface * \image html ScriptInterface.png * For plugins who provide scriptable functions ( ScriptInterface ) * * - * \section StatusPlugin Status Bar Interface + * \subsection StatusPlugin Status Bar Interface * \image html StatusbarInterface.png * This interface is used to display messages in the status bar ( StatusbarInterface ) * * - * \section OptionsPlugin Options Interface + * \subsection OptionsPlugin Options Interface * \image html OptionsInterface.png * This Interface is used by plugins which will provide their own options by * integrating its own options widget into OpenFlipper's options window. ( OptionsInterface ) * * - * \section BackupPlugin Backup Interface + * \subsection BackupPlugin Backup Interface * \image html BackupInterface.png * Use this interface to backup data ( BackupInterface ) * * - * \section INIPlugin Use Inifiles to store information + * \subsection INIPlugin Use Inifiles to store information * \image html INIInterface.png * Receive an event if an ini file is opened by the application. ( INIInterface )\n */