mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-24 10:09:01 -06:00
File → Print… (⌘P) opens the Print module as a dialog: settings on the left, the page drawn to scale on the right with the photos as they will print (fit or Zoom to Fill, turned by Rotate to Fit, Photo Border, Inner Stroke, page background). Settings column: templates (save, apply, delete), layout style, image settings, grid / package cell controls (standard and custom cell sizes, Auto Layout, New Page, Clear Layout), rulers and guides (units in/cm/mm/pt, snap off/cells/grid, grid size, margins, bleed, page grid, image cells, dimensions), page setup (paper, orientation, margins), page background and the print job. Preview: rulers in the chosen unit, dashed margins and bleed, page grid, dimension labels, page navigation. In the package styles cells are selected, dragged (print.cell.move) and resized from a corner handle (print.cell.resize) with the guides' snapping, arranged from the inspector row or a context menu, and given a photo (Custom Package). Every change is a print.* command; the drag is measured from where the pointer went down so the click-versus-drag slop is not lost. Print to PDF… picks a file and renders on a background thread with an activity-stack row, cancellation and original protection, like the contact sheet, which keeps working unchanged. Headless tests drive the dialog with real pointer input through the control channel (print:cell:N, print:resize:N, button:print*): styles and checkboxes, add / drag / resize / arrange / delete, snapping to a neighbour, Auto Layout and pages, templates, the PDF, the activity row, and that the dialog and its buttons fit the window.