Interfaces.docu 4.16 KB
Newer Older
Jan Möbius's avatar
 
Jan Möbius committed
1
/** \page interfaces Plugin Interfaces
Jan Möbius's avatar
Jan Möbius committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 *
 * 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
Jan Möbius's avatar
 
Jan Möbius committed
18
 * for details.
Jan Möbius's avatar
Jan Möbius committed
19 20 21 22 23 24 25 26 27 28 29
 *
 * \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
 *
 *
Mike Kremer's avatar
Mike Kremer committed
30
 * \section LoadSavePlugin Load / Save Interface
31
 * \image html loadSaveInterface.png
Mike Kremer's avatar
Mike Kremer committed
32 33 34 35
 * Provides functions to handle mesh files and load / unload geometry
 * objects into the scene graph ( LoadSaveInterface ).
 *
 *
36 37 38 39 40
 * \section ToolbarPlugin Toolbar Interface
 * \image html ToolbarInterface.png
 * Provides a function to add toolbar buttons. ( ToolbarInterface )
 *
 *
Jan Möbius's avatar
Jan Möbius committed
41
 * \section MenubarPlugin Menubar Interface
42
 * \image html MenubarInterface.png
Jan Möbius's avatar
 
Jan Möbius committed
43
 * Provides a function to create an entry in the menubar ( MenuInterface ).
Jan Möbius's avatar
Jan Möbius committed
44 45 46
 *
 *
 * \section ToolboxPlugin Toolbox Interface
47
 * \image html ToolboxInterface.png
48
 * Provides functions to create a separate widget in the toolbox on the right ( ToolboxInterface ).
Jan Möbius's avatar
Jan Möbius committed
49 50 51
 *
 *
 * \section LoggingPlugin Logging Interface
52
 * \image html LoggingInterface.png
Jan Möbius's avatar
Jan Möbius committed
53 54 55 56 57
 * This is an Interface for Logging to the included textedit widget. You can log to different levels
 * (LOGOUT,LOGWARN,LOGERR,LOGINFO) ( LoggingInterface ).
 *
 *
 * \section TexturePlugin Texture Interface
58
 * \image html TextureInterface.png
Jan Möbius's avatar
 
Jan Möbius committed
59
 * Allows your plugin to provide a texture. ( TextureInterface )
Jan Möbius's avatar
Jan Möbius committed
60
 *
Mike Kremer's avatar
Mike Kremer committed
61
 *
Jan Möbius's avatar
 
Jan Möbius committed
62
 * \section PickingPlugin Mouse Picking / Pick Modes
63
 * \image html PickingInterface.png
Jan Möbius's avatar
 
Jan Möbius committed
64
 * Handle mouse picking in your plugin ( PickingInterface )
Jan Möbius's avatar
Jan Möbius committed
65
 *
Mike Kremer's avatar
Mike Kremer committed
66
 *
Jan Möbius's avatar
Jan Möbius committed
67
 * \section RPCPlugin RPC Interface
68
 * \image html RPCInterface.png
Jan Möbius's avatar
Jan Möbius committed
69 70
 * This interface is used to call functions across different plugins ( RPCInterface ).
 *
Mike Kremer's avatar
Mike Kremer committed
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
 *
 * \section FilePlugin File Interface
 * \image html FileInterface.png
 * Provides functions to read and write custom filetypes ( FileInterface )
 *
 *
 * \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 )
 *
 *
Jan Möbius's avatar
 
Jan Möbius committed
103
 * \section INIPlugin Use Inifiles to store information
104
 * \image html INIInterface.png
Mike Kremer's avatar
Mike Kremer committed
105
 * Receive an event if an ini file is opened by the application. ( INIInterface )\n
Jan Möbius's avatar
 
Jan Möbius committed
106
 */