Roadmap 0.10, Interface roadmap — wave 1

UI.2 One tear-off: every bar, menu, palette and panel moves to its own window the same way

  • Platform
  • Planned
  • CadCraft
  • BimCraft
  • ModelCraft
  • MarkupCraft
  • TakeoffCraft
  • CivilCraft
  • DetailCraft
  • PartCraft
  • SuperCad Studio

Today there are four ways to put a piece of the interface in a window: the ribbon has its own tearOff()/dockRibbon() in app-workspace.js (window.open, stylesheet copy, key forwarding, about 60 lines), the toolbox, tool rows and status bar use app-workspace-popout.js popout(), the app panels use app-panels.js (its own ONE "panels window", adoptNode, Window Management API), and the classic toolbar and SuperCad walls use app-toolbar-tear.js and api.tearable(). Each copies stylesheets and theme differently, forwards keys differently and remembers (or does not remember) its window differently; closing behaviour differs too. Change: one window service in the shell (app-windows.js, grown from popout.js) that every piece uses: open from a click, move the nodes (handlers and state go along), mirror <html>/<body> attributes, stylesheets, interface size and icon style, forward keys that are not typing, give the window a title and the app's icon, dock back on close, on "Put it back" or by dragging the grip back over a drop target (UI.5). The ribbon, panels, toolbar and SuperCad code become callers of it. One "…" menu (shell-panel-menu) for all of them with the same entries in the same order: Move to a new window / Put it back / Float / Dock left / right / bottom / Hide. Test: the conformance test tears off every block that allows it and brings it back, in every layout.

Add a comment

Community comments

No comments yet

Add detail as we go: how you would use it, files or steps that show the problem, what other programs do. The team reads every comment.

Sign in or create a free account to add a comment.