Interfaces.docu 7.38 KB
 Mike Kremer committed Apr 22, 2009 1 /** \page interfaces Plugin Interfaces  Jan Möbius committed Feb 23, 2011 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34  \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 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 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 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  35 36 37 38 39 40 41 \section pluginInterfacesBaseInterface OpenFlipper Base Interface \subpage baseInterfacePage All plugins in OpenFlipper have to implement some basic functions from BaseInterface. They are used to integrate and manage the plugins by the core application. See \ref baseInterfacePage for details.  Jan Möbius committed Feb 23, 2011 42   Jan Möbius committed Feb 25, 2011 43 44 \section pluginInterfacesGroups Interfaces The following groups of Interfaces are available:  Jan Möbius committed Feb 23, 2011 45   Jan Möbius committed Feb 25, 2011 46 \subpage pluginInterfacesUIOverview  Jan Möbius committed Feb 23, 2011 47   Jan Möbius committed Feb 25, 2011 48 \subpage pluginInterfacesDataHandling  Jan Möbius committed Feb 23, 2011 49   Jan Möbius committed Feb 25, 2011 50 \subpage pluginInterfacesInputDevices  Jan Möbius committed Feb 23, 2011 51   Jan Möbius committed Mar 01, 2011 52 53 \subpage pluginInterfacesOtherInterfaces  Jan Möbius committed Feb 25, 2011 54 55   Jan Möbius committed Feb 25, 2011 56 57 58 59 60 61 62 \section todoInterfaces Interfaces todos for documentation: BackupInterface FileInterface IniInterface ProcessInterface TextureInterface ViewInterface  Jan Möbius committed Feb 25, 2011 63   Jan Möbius committed Feb 23, 2011 64 65 \section pluginInterfacesOtherOverview Available Interfaces for controlling other functions  Jan Möbius committed Feb 25, 2011 66 This page gives an overview over the available interfaces which control other parts of OpenFlipper.  Jan Möbius committed Feb 23, 2011 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89  \subsection TexturePlugin Texture Interface \image html TextureInterface.png Allows your plugin to provide a texture. ( TextureInterface ) \subsection FilePlugin File Interface \image html FileInterface.png Provides functions to read and write custom filetypes ( FileInterface ) \subsection ViewPlugin View Interface \image html ViewInterface.png This interface is used to add additional view widgets ( ViewInterface ). \subsection BackupPlugin Backup Interface \image html BackupInterface.png Use this interface to backup data ( BackupInterface ) \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  Jan Möbius committed Feb 25, 2011 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113  */ /** \page pluginInterfacesUIOverview User Interface control This page gives an overview over the available interfaces which control OpenFlippers User interface. \subpage contextmenuInterfacePage \image html ContextMenuInterface.png Add context menu entries in your plugin. ( \ref contextmenuInterfacePage ) \n \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) ( \ref loggingInterfacePage ). \n \subpage menuInterfacePage \image html MenuInterface.png Provides a function to create entries in the menubar ( \ref menuInterfacePage ). \n  Jan Möbius committed Mar 14, 2011 114 115 116 117 118 119 \subpage optionsInterfacePage \image html OptionsInterface.png This Interface is used by plugins which will provide their own options by integrating an options widget into OpenFlipper's options window ( \ref optionsInterfacePage ). \n  Jan Möbius committed Mar 16, 2011 120 121 122 123 124 125 126 \subpage pickingInterfacePage \n \image html PickingInterface.png \n Handle pick modes in your plugin ( \ref pickingInterfacePage ) \n  Jan Möbius committed Feb 25, 2011 127 128 129 130 131 132 133 134 135 136 137 138 139 140 \subpage statusbarInterfacePage \image html StatusbarInterface.png This interface is used to display messages in the status bar or adding widgets to it ( \ref statusbarInterfacePage ). \n \subpage toolboxInterfacePage \image html ToolboxInterface.png Provides functions to create a separate widget in the toolbox on the right ( \ref toolboxInterfacePage ). \n \subpage toolbarInterfacePage \image html ToolbarInterface.png Provides a function to add toolbar buttons. ( \ref toolbarInterfacePage ) \n  Jan Möbius committed Mar 16, 2011 141 142 143 144 145 146  \subpage viewModeInterfacePage \image html ViewModeInterface.png Specify own view modes setting which toolboxes/toolbars/context menus will be visible( \ref viewModeInterfacePage )  Jan Möbius committed Feb 25, 2011 147 148 149 150 */ /** \page pluginInterfacesDataHandling Object and Data Handling This page shows interfaces for controlling and adding Objects.  Jan Möbius committed Mar 01, 2011 151   Jan Möbius committed Mar 16, 2011 152 153 154 155 156 157 158 \subpage loadSaveInterfacePage \image html loadSaveInterface.png Provides functions to control loading/saving of files and generate new objects. Additionally this interface informs plugins, when objects get added or removed( \ref loadSaveInterfacePage ).  Jan Möbius committed Mar 01, 2011 159 160 161 162 163 \subpage typeInterfacePage \image html TypeInterface.png Allows plugins to specify custom data types and makes them available to other plugins ( \ref typeInterfacePage ).  Jan Möbius committed Feb 25, 2011 164 165 166 167 168 */ /** \page pluginInterfacesInputDevices Input Devices This page shows interfaces which could be used to get data from input devices.  Jan Möbius committed Mar 01, 2011 169 170 171 172 173 174 175 176 177  \subpage mouseInterfacePage \n \image html mouseInterface.png \n This interface is used to deliver mouse events to a plugin ( \ref mouseInterfacePage ).\n \n  Jan Möbius committed Mar 16, 2011 178 179 180 181 182 183 184 \subpage pickingInterfacePage \n \image html PickingInterface.png \n Handle pick modes in your plugin ( \ref pickingInterfacePage ) \n  Jan Möbius committed Mar 15, 2011 185 \subpage keyInterfacePage  Jan Möbius committed Mar 16, 2011 186 \n  Jan Möbius committed Mar 15, 2011 187 \image html keyInterface.png  Jan Möbius committed Mar 16, 2011 188 \n  Jan Möbius committed Mar 15, 2011 189 You have to implement this interface if you want to get key events in your plugin ( \ref keyInterfacePage ).\n  Jan Möbius committed Mar 16, 2011 190 \n  Jan Möbius committed Mar 15, 2011 191   Jan Möbius committed Feb 23, 2011 192 */  Jan Möbius committed Feb 25, 2011 193   Jan Möbius committed Mar 01, 2011 194 195 196 /** \page pluginInterfacesOtherInterfaces Other Interfaces This page shows interfaces for other operations.  Jan Möbius committed Mar 01, 2011 197 198 199 200 201 202 203 \subpage RPCInterfacePage \n \image html RPCInterface.png \n Interface to call functions across plugins ( \ref RPCInterfacePage ) \n  Jan Möbius committed Mar 01, 2011 204 \subpage scriptInterfacePage  Jan Möbius committed Mar 01, 2011 205 \n  Jan Möbius committed Mar 01, 2011 206 \image html ScriptInterface.png  Jan Möbius committed Mar 01, 2011 207 \n  Jan Möbius committed Mar 01, 2011 208 For plugins which provide scriptable functions ( \ref scriptInterfacePage )  Jan Möbius committed Mar 01, 2011 209 \n  Jan Möbius committed Mar 01, 2011 210   Jan Möbius committed Mar 01, 2011 211 \subpage pluginConnectionInterfacePage  Jan Möbius committed Mar 01, 2011 212 \n  Jan Möbius committed Mar 01, 2011 213 \image html PluginConnectionInterface.png  Jan Möbius committed Mar 01, 2011 214 \n  Jan Möbius committed Mar 01, 2011 215 Enables the developer to connect signals and slots across plugins. ( \ref pluginConnectionInterfacePage )  Jan Möbius committed Mar 01, 2011 216 \n  Jan Möbius committed Mar 01, 2011 217   Jan Möbius committed Mar 16, 2011 218 219 220 221 222 223 224 225 226 \subpage securityInterfacePage \n \image html SecurityInterface.png \n The security Interface can be used to add a license management to your plugin. When it is used, plugins will only start, if a valid license is available. The license is bound to a machine (Processor,network,...) and expires after a specified date. ( \ref securityInterfacePage ) \n  Jan Möbius committed Mar 01, 2011 227 228 229 */  Jan Möbius committed Feb 25, 2011 230 231 232 233 234