Warning: Can't synchronize with the repository (Couldn't open Subversion repository /home/crystal/scm/crystal: SubversionException: ("Expected FS format between '1' and '3'; found format '4'", 160043)). Look in the Trac log for more information.

This page collects development information on cseditor, the new editor framework for CS. This framework would be compatible with Project Ares (and Peragro Tempus editors?).

The editor is based on editor components. These components implements iPanel (see ieditor/panelmanager.h) when they have a dependency on wxWidgets, and simply iComponent in the other case.

Maybe we would need a component type dedicated for editors, something more specific than iComponent, but not depending on wxWidgets like iPanel does. There may be:

  • iEditorComponent: with mode management, other functionalities?
  • iEditorComponentGUI: specific to wxWidgets and cseditor (and managing several iPanel's). Many iEditorComponent would have a iEditorComponentGUI mapping their functionalities for cseditor.

Tasks for cseditor

  • The wxMenuBar and wxToolBar should be accessible from iEditor so that editor components can add and remove entries by themselves
  • cssVFSFileDlg should be put in a separate tool/plugin
  • The Undo/Redo system should be switched to the one from Peragro and pluginized without dependency on wxWidgets
  • iPanel is limited to exactly one wxWindow, however complex plugins might have to be split in several panels. A solution would be to introduce a new class eg iEditorComponent(GUI), that can have zero or any number of iPanel's.
  • Introduce a new class eg iEditorProject, with methods to add/remove editor components, mount/unmount paths, add/remove libraries/world files, add/remove iComponent's. The iEditor would be able to load/save/create iEditorProject's.
  • The events reported by CS should be catched by a log system using  http://docs.wxwidgets.org/trunk/overview_log.html
  • A iModeManager managing context-sensitive modes
  • Editor components may be configured eg using iPluginConfig. The configuration of a component can be part of a user mode.
  • Some editor components might want to be opened in a separate window or dialog. iPanelManager might need to be extended for that, iEditor maybe too so that several iEditor can co-exist at the same time.
  • iPanelManager should be extended with layouts: a set of editor components to be visible on the GUI, plus their disposition in wxAUI. So the user can simply define new layouts by loading components, placing them, then using a menu option to save the new layout.

Ideas of editor components

  • Scene browser component: split the list in sectors; add scene nodes, portals; zoom on the object when it is double-clicked.
  • Assets browser component: add materials, textures; fix the user draging objects onto the scene; have a preview window/image, or instead have a dummy sector, and switch to this sector for the visualization of the assets.
  • Browser components: add menus when RMB on an object, with actions for renaming/reparenting/editing/cut/copy/paste/delete. A generic iMenuManager may be useful in order to be reused in any other component.
  • Remove the mesh positioning tool from CS 3D view component and iEditor and place it in a separate editor component
  • Many components from Aresed? are probably generic enough to be integrated in cseditor.

Tasks assigned

  • kickvb: use iCameraManager in the CS 3D view component, merge it with the camera management from Ares