Implement form control rendering (Phase 16)
Paint native-style form controls into the rendering pipeline. Each form
control type gets a distinguishable visual appearance rendered using
existing FillRect and DrawGlyphs paint commands.
Layout crate changes:
- Add FormControlInfo struct and FormControlType enum to carry control
type, value text, checked/disabled state through the layout tree
- Populate form_control field during layout tree construction from DOM
attributes (tag name, type, value, checked, disabled, selected)
- Fix inline replaced element positioning: update child rects after
inline layout so atomic inline boxes (images, form controls) have
correct positions and dimensions
Render crate changes:
- Paint text inputs with inset border, white background, value text
- Paint password fields with bullet character masking
- Paint checkboxes as bordered squares with diagonal checkmark when checked
- Paint radio buttons as circles (scanline approximation) with filled
dot when selected
- Paint buttons (submit/reset/button) with raised border and centered
label text
- Paint select dropdowns with border, selected option text, and
triangular dropdown arrow indicator
- Paint textarea with same style as text input
- Render disabled controls with dimmed background and text colors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>