Just for a heads up. I implemented (In VisualOgreCore.Panes.OgrePane) an ISceneEditor interface class to hook into the main Ogre Window (where scene files et al are loaded) via the OgrePane.SceneEditor property. Of course, other plugins may override the currently active editor, in which case they will be notified via the EditorReplaced() f the interface.
If they are replaced, they should just stand idle until they are reactivated. The way I imagine activation (and hence, the ISceneEditor soe register with OgrePane) is via a View -> Plugin Windows -> yourEditorname - check the SceneViewer plugin for how to do so. Currently, that is the only file menu you can really hook into.
Anyway, this interface does not encorporate a load/close/save type of interfaces, because a scene editor plugin in my view does not directly save or load anythinng related to a scene (that is handled by abstracted out file classes). Instead, it just manipulates what is already in the scene, adds more to it, removes stuff, etc etc.
But, with this new interface, commands (such as undo, redo, paste, delete, copy) are passed through to the active scene editor (if any). Of course, this doesn't handle mouse/keyboard type of movements. However, I think that those events could either be passed through, or handled internally in the OgrePane class (as, picking and dragging, etc are esentil in any scene editor, and the way they are done does not really differ). however, I am very receptive and open to ideas and suggestions. Maybe passing theough the events would be better, I'm not positive.