Skip to content

ui: application shell — menus, file dialog, status bar, scrollbars, theme (fleet UI standard) #3

Description

@InauguralPhysicist

The app is missing its UI. edit.run opens a window that is a bare text area — raw gfx_text + caret on a dark background. No menu bar, no file open/save surface, no status bar (line/col, filename, dirty flag), no scrollbars for files taller than the window, no theme. The buffer core is the interesting part and it's done; the shell around it never got built.

Scope — bring it to the fleet UI standard (the DeslanStudio train, see Tidepool#43 for the pattern):

  1. Toolkit shell: lib/ui menu_bar (File: New/Open/Save/Save As/Quit; Edit: basics), status bar, vertical scrollbar + viewport for large files, file dialog. The pure-core + run() split stays — the shell lives in the front-end layer so EigenOS still consumes edit.eigs unmodified; anything the shell needs that the OS surface can't provide gets flagged, not baked in.
  2. Theme layer: named palette applied in-place onto lib/ui's active theme BEFORE widget construction (DeslanStudio src/client/theme.eigs pattern; set_theme wholesale nulls the sizing keys — use the field-by-field loop).
  3. Oracles extend with the UI (the #599 lesson — a stubbed-gfx suite stays green while every real interaction is broken): render-decode assertions for the new chrome, mouse-oracle coverage for menu/scrollbar/dialog interaction, real-flow verification via desktop-gui-qa with before/after screenshots.

Toolkit gaps surfaced (e.g. a file-picker widget if lib/ui lacks one) go upstream to EigenScript and get banked — no local forks.

Owner: eigenscript-app-fleet-engineer; upstream lib/ui gaps to eigenscript-ui-toolkit-engineer.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions