Interfaces.docu 5.94 KB
 Mike Kremer committed Apr 22, 2009 1 2 /** \page interfaces Plugin Interfaces *  Jan Möbius committed Feb 22, 2011 3 4 5 6  * \section pluginInterfacesIntro Introduction * * OpenFlipper provides a flexible plugin interface. Plugins can implement various interfaces.\n *  Mike Kremer committed Apr 22, 2009 7 8 9  * 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  Jan Möbius committed Feb 22, 2011 10 11  * and basic communication regarding object changes or view updates ( See BaseInterface for further details).\n *  Mike Kremer committed Apr 22, 2009 12 13 14  * 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 *  Jan Möbius committed Feb 22, 2011 15 16 17  * 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.  Mike Kremer committed Apr 22, 2009 18  *  Jan Möbius committed Feb 22, 2011 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39  * \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  Mike Kremer committed Apr 22, 2009 40 41 42 43  * 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. *  Jan Möbius committed Feb 22, 2011 44  * \subsection KeyPlugin Keyboard Interface  Mike Kremer committed Apr 22, 2009 45 46 47 48  * \image html keyInterface.png * You have to provide this interface if you want to get key events in your plugin ( KeyInterface ).\n * *  Jan Möbius committed Feb 22, 2011 49  * \subsection MousePlugin Mouse Interface  Mike Kremer committed Apr 22, 2009 50 51 52 53  * \image html mouseInterface.png * This interface is used to deliver mouse events to a plugin ( MouseInterface ).\n * *  Jan Möbius committed Feb 22, 2011 54  * \subsection LoadSavePlugin Load / Save Interface  Mike Kremer committed Apr 22, 2009 55 56 57 58 59  * \image html loadSaveInterface.png * Provides functions to handle mesh files and load / unload geometry * objects into the scene graph ( LoadSaveInterface ). * *  Jan Möbius committed Feb 22, 2011 60  * \subsection ToolbarPlugin Toolbar Interface  Mike Kremer committed Apr 22, 2009 61 62 63 64  * \image html ToolbarInterface.png * Provides a function to add toolbar buttons. ( ToolbarInterface ) * *  Jan Möbius committed Feb 22, 2011 65  * \subsection ContextMenu Context Menu Interface  Mike Kremer committed Sep 29, 2009 66 67 68 69  * \image html ContextMenuInterface.png * Add context menu entries in your plugin. ( ContextMenuInterface ) * *  Jan Möbius committed Feb 23, 2011 70 71 72  * \subpage menuInterfacePage * \image html MenuInterface.png * Provides a function to create entries in the menubar ( \ref menuInterfacePage ).  Mike Kremer committed Apr 22, 2009 73  *  Jan Möbius committed Feb 22, 2011 74 75  * * \subpage toolboxInterfacePage  Mike Kremer committed Apr 22, 2009 76  * \image html ToolboxInterface.png  Jan Möbius committed Feb 23, 2011 77  * Provides functions to create a separate widget in the toolbox on the right ( \ref toolboxInterfacePage ).  Jan Möbius committed Feb 22, 2011 78  * \n  Mike Kremer committed Apr 22, 2009 79  *  Jan Möbius committed Feb 22, 2011 80  * \subpage loggingInterfacePage  Mike Kremer committed Apr 22, 2009 81  * \image html LoggingInterface.png  Jan Möbius committed Feb 22, 2011 82  * This is an Interface for Logging to the included log widget. You can log to different levels  Jan Möbius committed Feb 23, 2011 83  * (LOGOUT,LOGWARN,LOGERR,LOGINFO) ( \ref loggingInterfacePage ).  Jan Möbius committed Feb 22, 2011 84  * \n  Mike Kremer committed Apr 22, 2009 85  *  Jan Möbius committed Feb 22, 2011 86  * \subsection TexturePlugin Texture Interface  Mike Kremer committed Apr 22, 2009 87 88 89 90  * \image html TextureInterface.png * Allows your plugin to provide a texture. ( TextureInterface ) * *  Jan Möbius committed Feb 22, 2011 91  * \subsection PickingPlugin Mouse Picking / Pick Modes  Mike Kremer committed Apr 22, 2009 92 93 94 95  * \image html PickingInterface.png * Handle mouse picking in your plugin ( PickingInterface ) * *  Jan Möbius committed Feb 22, 2011 96  * \subsection RPCPlugin RPC Interface  Mike Kremer committed Apr 22, 2009 97 98 99 100  * \image html RPCInterface.png * This interface is used to call functions across different plugins ( RPCInterface ). * *  Jan Möbius committed Feb 22, 2011 101  * \subsection FilePlugin File Interface  Mike Kremer committed Apr 22, 2009 102 103 104 105  * \image html FileInterface.png * Provides functions to read and write custom filetypes ( FileInterface ) * *  Jan Möbius committed Feb 22, 2011 106  * \subsection TypePlugin Type Interface  107 108 109 110 111  * \image html FileInterface.png * Allows plugins to specify custom data types and makes them available * to other plugins ( TypeInterface ) * *  Jan Möbius committed Feb 22, 2011 112  * \subsection ViewModePlugin View Mode Interface  113 114 115 116  * \image html FileInterface.png * Specify own view modes ( ViewModeInterface ) * *  Jan Möbius committed Feb 22, 2011 117  * \subsection ViewPlugin View Interface  Mike Kremer committed Apr 22, 2009 118 119 120 121  * \image html ViewInterface.png * This interface is used to add additional view widgets ( ViewInterface ). * *  Jan Möbius committed Feb 22, 2011 122  * \subsection ScriptPlugin Script Interface  Mike Kremer committed Apr 22, 2009 123 124 125 126  * \image html ScriptInterface.png * For plugins who provide scriptable functions ( ScriptInterface ) * *  Jan Möbius committed Feb 22, 2011 127  * \subsection StatusPlugin Status Bar Interface  Mike Kremer committed Apr 22, 2009 128 129 130 131  * \image html StatusbarInterface.png * This interface is used to display messages in the status bar ( StatusbarInterface ) * *  Jan Möbius committed Feb 22, 2011 132  * \subsection OptionsPlugin Options Interface  Mike Kremer committed Apr 22, 2009 133 134 135 136 137  * \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 ) * *  Jan Möbius committed Feb 22, 2011 138  * \subsection BackupPlugin Backup Interface  Mike Kremer committed Apr 22, 2009 139 140 141 142  * \image html BackupInterface.png * Use this interface to backup data ( BackupInterface ) * *  Jan Möbius committed Feb 22, 2011 143  * \subsection INIPlugin Use Inifiles to store information  Mike Kremer committed Apr 22, 2009 144 145 146  * \image html INIInterface.png * Receive an event if an ini file is opened by the application. ( INIInterface )\n */