Skip to content

Canvas mode system (legacy)

This page documents the pre-activity design. Runtime graph, drawing, and board workflows have migrated to Activities Architecture.

Summary

Pluggable virtual surfaces that own their behavior per mode. Three modes exist: graph-surface (graph browsing), drawing (stylus/raster), and board (semantic connectors). Canvas modes are owned by the canvas widget and can be activated/deactivated, with panel transfer between them.

Motivation

Different interaction surfaces (graph browsing, freehand drawing, structured boards) needed different input handling, rendering, and widget lifecycles. Rather than special-casing each inside the canvas widget, make them pluggable behaviors with a clean interface.

Design

  • Mode interface: each mode exposes activate, deactivate, and handles its own input routing, widget tree, and render state
  • Graph-surface mode: graph nodes with force layout, selection, LOD, keyboard navigation
  • Drawing mode: stylus input with pressure-sensitive strokes, vector + raster layers
  • Board mode: semantic connectors, item selection, directed edges, resizable items
  • Panel transfer: panels move between canvas modes and HUD via a receiver-registry protocol with rollback

Tasks