Commit graph

2407 commits

Author SHA1 Message Date
bunnie
d1563aa0ab add docs and screenshots 2022-01-25 03:11:50 +08:00
bunnie
b5faa1eb55 minor tweaks to the repl demo 2022-01-25 02:31:54 +08:00
bunnie
1449f7cb7f ignore the locales build directory 2022-01-25 02:04:45 +08:00
bunnie
50064895f0 add the locales Cargo.lock file 2022-01-25 02:04:12 +08:00
bunnie
fcb27919d4 change name of the repl demo command to be more general 2022-01-25 02:03:38 +08:00
bunnie
617fc3b8f6 bug fixes in the REPL demo 2022-01-25 01:57:16 +08:00
bunnie
0557caf9be fix livelock problem in app context switching
the re-regsitration is a "send" not a "lend" now, because
the imef can't block during the context switch.

Not sure why I made it a lend in the first place, probably just
wasn't thinking...
2022-01-25 01:55:49 +08:00
bunnie
0f4743fc0b only one connection is allowed to the imef: remove multi-callback support
only cone connection is allowed to the IMEF anyways, because
the GAM does traffic control on who has authorization to access it.
So, no need for multi-callback support. Saves a tiny bit of RAM.
2022-01-25 01:05:31 +08:00
bunnie
02b2e4a6e7 deprecate request_focus api and make initial focus setting within the GAM
request_focus is "dangerous" because any random server could
request a UX context to pop up. There is a checked version
that requires a GAM token that should be used, but, this leaves
the question of how does the initial app that's supposed to be
focused gets set.

A small mod to the UxRegistration call is made to check for
the name of the default focus app, and when it is seen, a thread
is fired off to request focus for that app. That allows us
to deprecate this otherwise dangerous call.
2022-01-25 00:55:14 +08:00
bunnie
583c2e172b add a demo REPL app to help users get started with something more interactive 2022-01-24 19:06:58 +08:00
bunnie
a52f498edb change the menu order to make apps a bit easier to access 2022-01-24 17:38:02 +08:00
bunnie
7193f7003e some tweaks to improve the UX rendering quality 2022-01-24 17:07:45 +08:00
bunnie
8e13d6bcdf add drawlists to the GAM and gfx abstractions
this helps to prevent race conditions and improves performance
2022-01-24 16:33:01 +08:00
bunnie
6089672960 add localization to the demo app 2022-01-24 04:42:35 +08:00
bunnie
35fd307dbf major refactoring around how initializations are done for canvases
trust levels now default to a mid-level, with the password
modals explicitly tested for by the Context logic (the idea
being to deny any untrusted canvases the ability to render
inverted text).

ball bounce app also basically works, and context
switching between the bounce app and the main menu
is working too.
2022-01-24 01:58:48 +08:00
bunnie
0fadaf3546 trust level is stored on a per-canvas basis, removing duplicate record 2022-01-23 18:34:17 +08:00
bunnie
7addcf5f72 update a comment 2022-01-23 18:26:34 +08:00
bunnie
f2b49f39d3 add a white line under the status bar so black user backgrounds have a border 2022-01-23 18:26:20 +08:00
bunnie
0a885671ba refactor contexts into a separate file, improves manageability of GAM 2022-01-23 18:19:07 +08:00
bunnie
a0c4304d29 add focus/defocus messages to the GAM
this allows animation-heavy apps to be backgrounded and not
continue to run their animation while backgrounded.
2022-01-23 17:12:14 +08:00
bunnie
d2a054ec33 laying in some framework for user applications
The first "app" is just going to be a whole-framebuffer
demo that gets raw keys and does some stuff on the screen.
It's the starting point if you wanted to eg. write a simple
video game or something for the device, but you didn't care
about much of the other UX sugar.
2022-01-23 15:52:17 +08:00
bunnie
6653d42114 cleanup UX context registry
it's now a much smaller nightmare to maintain the registry, as all
the items are concentrated into a single location
2022-01-23 14:31:21 +08:00
bunnie
ce12d96e16 some documentation and maintenance notes 2022-01-23 13:21:36 +08:00
bunnie
2b46f21ae8 remove dependency on blitstr v1 entirely 2022-01-23 04:08:32 +08:00
bunnie
afd525002d initial attempt to move the font resources into the loader 2022-01-23 03:23:06 +08:00
bunnie
94a8a4736f make wlan status checks asynchronous
the synchronous method would lead to stutter in the animation
of the status bar during netork congestion.
2022-01-23 00:24:45 +08:00
bunnie
0cafd10e28 refactor status bar to take advantage of the new fonts 2022-01-22 18:25:39 +08:00
bunnie
747891eaad clean up some minor details on UX formatting 2022-01-22 01:51:02 +08:00
bunnie
001b07ac74 clean up password modal box 2022-01-22 01:41:55 +08:00
bunnie
2642e6c075 various UX fixes that take advantage of the new font rendering engine 2022-01-22 00:10:31 +08:00
bunnie
481cf81824 insertion points working, commit test case 2022-01-21 18:50:34 +08:00
bunnie
c999576afd debug insertion point failures 2022-01-21 18:16:02 +08:00
bunnie
1ba7a2d0c1 cleanup debug cases 2022-01-21 18:06:55 +08:00
bunnie
9455f11ff1 incorporate 2x blitstr fonts and sizes; fix some corner cases 2022-01-21 17:28:23 +08:00
bunnie
7277b7bc1d start to refactor out the old blitstr v1 apis 2022-01-21 15:01:56 +08:00
bunnie
0677753680 it's not a flaming mess anymore, but still a lot more tuning to do 2022-01-21 02:35:46 +08:00
bunnie
13b7d73ce9 word wrapping seems to work and is tested now. 2022-01-21 02:30:58 +08:00
bunnie
7961dbddee word wrapping take 2 - this time with ~~tests~~ 2022-01-21 00:34:12 +08:00
bunnie
356d95a266 yet another refactor of the word wrapping
Really clear up the roles and structures of word wrapping.

Significantly, we have now figured out that the word wrapper
should be the word wrapper, and that the text bounds should
be computed by a text bounds computation.

Conflating flexible text bounds with word wrapping makes
the math really hard.

So, the word wrapper always works with a bounding area starting
at 0,0, and will wrap until it hits a Point designated as its
absolute max bounds.

The returned typeset block is referenced to 0,0, and then it
is shifted to the correct location by the rendering function.

This externalizes the computation of the final location plus
the rendering bounds to the outer functions that need to care
about this, thus simplifying the word wrapper significantly.
2022-01-20 18:30:13 +08:00
bunnie
083ef6a804 it's not totally lolfailing but needs a lot of cleanup still 2022-01-19 03:50:40 +08:00
bunnie
a46c07b4be initial attempt to integrate blitstr2
this just grafts in the new crate, while leaving the old crate
unscathed. once this is somewhat functional we'll excise the old
crate and reformat the loader for the "hard binary" image of
the fonts.
2022-01-19 03:29:53 +08:00
bunnie
a4a7f4af69 fix hosted build 2022-01-18 00:32:12 +08:00
bunnie
797e5bd7c4 follow-on set of commits related to the previous revert 2022-01-17 23:52:58 +08:00
bunnie
0d4ab0eb47 Revert "loader: move loader into main workspace"
This reverts commit 0d72454776.
2022-01-17 22:55:39 +08:00
bunnie
18130cddae fix suspend/resume regression
had to pin down the correct order of events to avoid lockups on suspend
2022-01-17 22:46:18 +08:00
bunnie
ac873e16ee comment to remind myself on how to re-enable policy menus 2022-01-17 04:37:33 +08:00
bunnie
3c87091565 cleanup the policy token straggler 2022-01-17 04:36:40 +08:00
bunnie
11162860a8 suppress codegen for unused policy menu (save RAM/disk space) 2022-01-17 04:26:49 +08:00
bunnie
d719360a4d fix a minor UX glitch 2022-01-17 03:36:28 +08:00
bunnie
f10827c037 clean up rootkeys to use the new modals dialog box facility 2022-01-17 03:30:09 +08:00