mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-19 02:10:15 -05:00
* Draw Table and Eraser: draw tables and split or merge cells with a pen (#303) Insert › Tables › Draw Table and Table Layout › Draw › Draw Table / Eraser. table.draw takes a pen stroke in page points: a rectangle outside a table inserts a one-cell table of that size at the paragraph under its start; a straight vertical or horizontal line inside a table splits the cells it crosses (new grid column or row; untouched cells span it). table.eraser merges the two cells beside the border nearest a point. Each stroke is one undo step. In the app the buttons toggle pen and eraser modes with a live preview, a crosshair with the tool's icon, and Esc to stop; canvas clicks don't move the caret while a tool is on. Splitting through part of a vertically merged cell and erasing beside one are refused with a clear error. Catalog 384/430 -> 387/430. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw tab: pen, pencil and highlighter ink, stroke eraser and Hide Ink (#307) Ink strokes are floating freeform shapes: a new Freeform geometry (paths in shape-local coordinates, opacity, and the pen that drew it) on InlineObject::Shape with ShapeKind::Freeform. draw.stroke inserts one anchored to the paragraph under the first point (one undo step; points capped per stroke, strokes capped per page, NaN dropped); draw.erase / draw.eraser with a point deletes the stroke under it; draw.pen, draw.pencil, draw.highlighter, draw.eraser and draw.select set the Draw tab's tool in the session view state; review.hideInk toggles showing ink on screen. The canvas draws a live stroke while a pen is dragged and commits it on release; the eraser deletes strokes it passes over (one undo step per drag); Esc or Select goes back to selecting. Draw tab buttons show the tool in use, with colour and thickness menus; Review gets an Ink group with Hide Ink. Ink renders with round caps and joins on screen and in PDF; highlighters are translucent and behind the text. DOCX writes freeforms as wps:wsp with a:custGeom (moveTo/lnTo) in a wp:anchor and reads them back, along with simple custom-geometry freeforms from other files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * #315 review fixes: eraser undo test, sanitized tap dots, custGeom path cap, ink docs - draw.eraser with a point erases through draw.erase: test that it is one undo step (undo/redo) and marks the document dirty. - Render and PDF: a single-point stroke's dot is drawn at the sanitized point, not the raw first one. - DOCX custGeom reading stops once MAX_PATHS paths (subpaths included) are collected, across a:path elements. - docs/file-format-parity.md: ink is saved as custom geometry, not InkML, so Word shows it as a freeform. - widgets test: theme::apply takes an Appearance (#317). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fmt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Draw tab: pen, pencil and highlighter ink, stroke eraser and Hide Ink (#307) Ink strokes are floating freeform shapes: a new Freeform geometry (paths in shape-local coordinates, opacity, and the pen that drew it) on InlineObject::Shape with ShapeKind::Freeform. draw.stroke inserts one anchored to the paragraph under the first point (one undo step; points capped per stroke, strokes capped per page, NaN dropped); draw.erase / draw.eraser with a point deletes the stroke under it; draw.pen, draw.pencil, draw.highlighter, draw.eraser and draw.select set the Draw tab's tool in the session view state; review.hideInk toggles showing ink on screen. The canvas draws a live stroke while a pen is dragged and commits it on release; the eraser deletes strokes it passes over (one undo step per drag); Esc or Select goes back to selecting. Draw tab buttons show the tool in use, with colour and thickness menus; Review gets an Ink group with Hide Ink. Ink renders with round caps and joins on screen and in PDF; highlighters are translucent and behind the text. DOCX writes freeforms as wps:wsp with a:custGeom (moveTo/lnTo) in a wp:anchor and reads them back, along with simple custom-geometry freeforms from other files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>
2.3 KiB
2.3 KiB
WordCraft feature parity
Generated by cargo xtask parity (wordcraft-cli parity --markdown): the word-processor feature catalog (crates/engine/src/catalog.rs) compared with the live command registry.
402 of 434 catalog features have commands (92.6%).
| Tab | Live | Total |
|---|---|---|
| File | 20 | 20 |
| Quick Access | 4 | 4 |
| Home | 99 | 102 |
| Insert | 43 | 53 |
| Draw | 5 | 11 |
| Design | 10 | 10 |
| Layout | 19 | 19 |
| References | 24 | 24 |
| Mailings | 17 | 17 |
| Review | 28 | 30 |
| View | 25 | 29 |
| Table Design | 8 | 8 |
| Table Layout | 30 | 30 |
| Equation | 21 | 22 |
| Picture Format | 14 | 14 |
| Shape Format | 3 | 6 |
| Header & Footer | 5 | 5 |
| Editing | 24 | 24 |
| Tools | 3 | 6 |
Missing
Home
- Font › Phonetic Guide (
format.phonetic) - Font › Enclose Characters (
format.enclose) - Voice › Dictate (
tools.dictate)
Insert
- Illustrations › Online Pictures (
insert.onlinePicture) - Illustrations › Icons (
insert.icon) - Illustrations › 3D Models (
insert.model3d) - Illustrations › SmartArt (
insert.smartArt) - Illustrations › Chart (
insert.chart) - Illustrations › Screenshot (
insert.screenshot) - Illustrations › Drawing Canvas (
insert.canvas) - Add-ins › Get Add-ins (
addins.get) - Media › Online Video (
insert.video) - Symbols › Ink Equation (
insert.inkEquation)
Draw
- Tools › Lasso Select (
draw.lasso) - Pens › Add Pen (
draw.addPen) - Convert › Ink to Shape (
draw.inkToShape) - Convert › Ink to Math (
draw.inkToMath) - Insert › Drawing Canvas (
insert.canvas) - Replay › Ink Replay (
draw.replay)
Review
- Language › Translate (
review.translate) - Protect › Block Authors (
review.blockAuthors)
View
- Window › Arrange All (
view.arrangeAll) - Window › View Side by Side (
view.sideBySide) - Window › Synchronous Scrolling (
view.syncScroll) - Window › Switch Windows (
view.switchWindows)
Equation
- Tools › Ink Equation (
insert.inkEquation)
Shape Format
- Text › Text Direction (
shape.textDirection) - Text › Align Text (
shape.alignText) - Text › Create Link (
shape.link)
Tools
- Customize › Customize Ribbon (
tools.customizeRibbon) - Customize › Customize Keyboard (
tools.customizeKeyboard) - Templates › Templates and Add-ins (
tools.templates)