Skip to content

Window

Purpose

Owns the main editor-window shell, editor lifecycle coordination, navigation helpers, window layout systems, maintenance windows, and editor-facing utility windows used throughout Snap Studio Pro.

This territory contains the application-shell layer of Snap Studio Pro.

Owns

  • Main editor window lifecycle
  • Window layout orchestration
  • Workspace tab routing
  • Window repaint coordination
  • Editor window startup/shutdown behaviour
  • Window navigation helpers
  • Editor popup/dialog windows
  • Editor maintenance windows
  • Window-specific preferences
  • Window-level hotkey handling

Does NOT Own

  • Rendering implementation
  • Preview scene lifecycle ownership
  • Export execution
  • Feature-domain workflows
  • Thumbnail rendering implementation
  • Rendering pipeline ownership

Allowed Dependencies

Window may depend on:

  • Panels
  • Preview facades
  • Feature services/controllers
  • Infrastructure services
  • Diagnostics/logging
  • Thumbnail infrastructure
  • Unity Editor window APIs

Window should avoid depending directly on:

  • low-level rendering implementation systems
  • pipeline-specific rendering internals
  • feature implementation internals where avoidable

Notes

Window is intentionally orchestration-heavy.

It owns: - application-shell coordination - layout routing - window lifecycle management - tab selection - repaint coordination - editor navigation flow

PrefabPreviewWindow intentionally acts as the editor application shell for Snap Studio Pro.

That means it is expected to: - create panels - route UI - coordinate layout - manage editor-window lifecycle - connect major editor systems together

This is acceptable because Window is composition territory, not feature-domain territory.

Future Candidates

  • Keep editor-window orchestration explicit and readable.
  • Continue separating feature implementation from window lifecycle behaviour.
  • Avoid hiding window composition behind reflection or service-locator patterns.
  • Maintain clear ownership boundaries between Window, Panels, Preview, and Features.