Interfaces.docu 4.64 KB
Newer Older
Mike Kremer's avatar
Mike Kremer committed
1 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 35 36 37 38 39 40
/** \page interfaces Plugin Interfaces
 *
 * OpenFlipper provides a flexible plugin interface. Plugins can implement various interfaces.
 * 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
 * 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.
 *
 *
 * \section 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
 * \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
 * \image html mouseInterface.png
 * This interface is used to deliver mouse events to a plugin ( MouseInterface ).\n
 *
 *
 * \section 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
 * \image html ToolbarInterface.png
 * Provides a function to add toolbar buttons. ( ToolbarInterface )
 *
 *
41 42 43 44 45
 * \section ContextMenu Context Menu Interface
 * \image html ContextMenuInterface.png
 * Add context menu entries in your plugin. ( ContextMenuInterface )
 *
 *
Mike Kremer's avatar
Mike Kremer committed
46 47 48 49 50 51 52 53 54 55
 * \section MenubarPlugin Menubar Interface
 * \image html MenubarInterface.png
 * Provides a function to create an entry in the menubar ( MenuInterface ).
 *
 *
 * \section ToolboxPlugin Toolbox Interface
 * \image html ToolboxInterface.png
 * Provides functions to create a separate widget in the toolbox on the right ( ToolboxInterface ).
 *
 *
56
 * \section LoggingInterface Logging Interface
Mike Kremer's avatar
Mike Kremer committed
57
 * \image html LoggingInterface.png
58 59
 * This is an Interface for Logging to the included log widget. You can log to different levels
 * (LOGOUT,LOGWARN,LOGERR,LOGINFO) ( \subpage loggingInterfacePage ).
Mike Kremer's avatar
Mike Kremer committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
 *
 *
 * \section TexturePlugin Texture Interface
 * \image html TextureInterface.png
 * Allows your plugin to provide a texture. ( TextureInterface )
 *
 *
 * \section PickingPlugin Mouse Picking / Pick Modes
 * \image html PickingInterface.png
 * Handle mouse picking in your plugin ( PickingInterface )
 *
 *
 * \section RPCPlugin RPC Interface
 * \image html RPCInterface.png
 * This interface is used to call functions across different plugins ( RPCInterface ).
 *
 *
 * \section FilePlugin File Interface
 * \image html FileInterface.png
 * Provides functions to read and write custom filetypes ( FileInterface )
 *
 *
82 83 84 85 86 87 88 89 90 91 92
 * \section 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
 * \image html FileInterface.png
 * Specify own view modes ( ViewModeInterface )
 *
 *
Mike Kremer's avatar
Mike Kremer committed
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
 * \section ViewPlugin View Interface
 * \image html ViewInterface.png
 * This interface is used to add additional view widgets ( ViewInterface ).
 *
 *
 * \section ScriptPlugin Script Interface
 * \image html ScriptInterface.png
 * For plugins who provide scriptable functions ( ScriptInterface )
 *
 *
 * \section StatusPlugin Status Bar Interface
 * \image html StatusbarInterface.png
 * This interface is used to display messages in the status bar ( StatusbarInterface )
 *
 *
 * \section 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
 * \image html BackupInterface.png
 * Use this interface to backup data ( BackupInterface )
 *
 *
 * \section INIPlugin Use Inifiles to store information
 * \image html INIInterface.png
 * Receive an event if an ini file is opened by the application. ( INIInterface )\n
 */