This is pretty much just working with what I have on hand,
ideally I would draw custom backgrounds for all the sections, using
jspaint, but this at least makes the animated GIFs feel more at home.
- Needs layout and UX work, to integrate this better.
Maybe the bin should start in a specific location, and you should
click to drag it? That would open the door to sound effects, since
sound requires a user gesture these days.
- The teaser text would ideally use the Junkbot font, on a sign,
along with other background elements.
- This is kinda weird. Is this weird? Is Junkbot in a zoo?
🚧 Under Construction 🚧
- Basic scaffolding.
- Minimal prose, some copied from the About window. Needs elaboration.
- Tons of GIFs!
- All GIFs were sourced from http://gifcities.org/
meaning they're ✅ Guaranteed Retro.
- Iframe embed of jspaint, with maximize button as a link that opens
the app, keeping the current document (assuming storage is allowed),
but losing undo history (for now).
- This doesn't cause much issue, since only once you open it does the iPad treat long presses ANYWHERE as selecting the text.
- This will be important for bug reports.
The mode is nice for having big controls and a floating undo button,
I should really separate the options for coarse input optimized UI (large buttons) and dwell clicking (for hands-free usage).
I should probably bite the bullet and make a settings screen.
In fullscreen, the iPad shows the system bar as an overlay at the top, making the top of the page inaccessible.
It also adds a floating exit fullscreen (X) button.
This workaround shifts elements around to avoid these overlays.
It adds a spacer element to the top of the page to account for the system bar,
and styles it thematically as a titlebar. It looks great (very legit and intentional), at least on this one model of iPad,
but will probably break on other models. It's a very fragile thing, working around system overlays.
Previously, long-pressing would select the canvas, the selection, or in some cases, the entire page!
Not all of these prefixes are needed, but I can deal with that later.
Hopefully this doesn't interfere with anything!
- Fixes dragging windows with Eye Gaze Mode with special pointerId === 1234567890 logic for jspaint
- Improves performance with zooming/panning by reducing unnecessary DOM updates (specifically with the code for closing menus when you click outside of them)
- Fixes random key misinterpretation like F6 as 'u' in the menus, due to keyCode being interpreted as ASCII (case-insensitively); it now uses key instead of keyCode
- Menu item checkboxes and submenu indicators are now done in CSS, so need to be included in the Modern theme.
Currently it considers non-integer values for Width/Height "invalid", which isn't good for Cm/Inches.
Plus, it looks very aggressive, and validation in Windows 98 is normally done with dialogs on submit.
I had put this off for a long time because I wanted to get it exactly correct, but some is better than none!
And some dialogs are custom anyways, so there's no "right" answer.
- Fix icons disappearing in Winter theme when SVG would normally be shown (when zoomed in or at odd DPIs)
- Now that icons can change between SVG and raster in Winter theme, prevent background-position transition on that pseudo element. (Transition background-position only for gradient of the flap.)
- The tool box component no longer has to track which themes support SVG.
- Themes can now have metrically different sprite sheet layouts, or do their own thing for icons more easily. This may or may not be useful in the future.
- There's a lot more repetition of sprite sheet handling code though.