Commit Graph

991 Commits

Author SHA1 Message Date
Dustin Carlino
2c0e77b1f5 Add a simplified Chinese font. Fixes #226 2020-08-17 20:30:07 -07:00
Dustin Carlino
b75867f0c2 Implement Yuwen's interactive signal demand UI, fixing #277 2020-08-17 15:31:36 -07:00
Michael Kirk
3ed8b9cf81 Fix glium build, which was broken with: 85ad194d
85ad194d introduced a patched winit.

In the glium build, we were pulling in a second version of winit (the
unpatched version, via glutin). This caused conflicts between the data
types, breaking the build.

Apparently the proper way to specify a patch like this, usable by
transitive dependencies, is via cargo's "patch" specifiers
2020-08-14 15:11:49 -07:00
Dustin Carlino
377e154a1c Refactor the Transition enum, collapsing enum variants that were
combining primitive transitions into sequences.

Brief context on the state/transition system: The game crate is
organized as a stack of states, with the topmost one being active.
Transitions manipulate this stack. For example, the stack might look
like: [main menu, sandbox mode, edit mode, traffic signal editor, signal
picker]
2020-08-14 14:38:50 -07:00
Michael Kirk
e5b08c71c0 Fix HiDPI screens for wasm
Fixes upstream winit bug
2020-08-14 14:13:18 -07:00
Dustin Carlino
bc858fdbb3 Work around a crash on the intersection demand panel, reproducible by
watching https://www.openstreetmap.org/node/53214134 on the weekday
scenario. At some point, an arrow polygon with an inner ring is scaled
down, collapsing its points so much that the ring becomes invalid.
2020-08-14 12:09:06 -07:00
Michael Kirk
535ebe127c fixup to 1d46845d 2020-08-13 14:18:47 -07:00
Dustin Carlino
1d46845dc9 Upgrade glow. No noticeable change on Linux, might help on Mac. 2020-08-13 08:26:49 -07:00
Dustin Carlino
eca71d27c9 tiny cleanup: use ScreenPt for canvas cursor 2020-08-12 17:53:17 -07:00
Dustin Carlino
ae18b09b3b refactor separators 2020-08-12 16:46:11 -07:00
Dustin Carlino
9af8aafb44 now that we're drawing lots in the multi-sig editor, cache it 2020-08-12 15:50:23 -07:00
Dustin Carlino
c08e244d23 tiny start to a new multi-intersection traffic signal editor. just get
the left panel to display some kind of merged view
2020-08-12 15:50:23 -07:00
Michael Kirk
62828e1ffa revert wasm shader changes. unfixes DPI2 devices, but fixes DPI1 devices 2020-08-12 15:44:48 -07:00
Michael Kirk
abe1f051eb code review: make more things private, remove unused method 2020-08-12 15:44:48 -07:00
Michael Kirk
4d3194c362 Revert "DO NOT MERGE: web logging"
This reverts commit fecfad72806b095e8477d983dc69f1275422a90f.
2020-08-12 15:44:48 -07:00
Michael Kirk
5c8ccef970 DO NOT MERGE: web logging 2020-08-12 15:44:48 -07:00
Michael Kirk
05f1a0332b glow backend compiles, but untested
These are my best guess at the changes to get glow working with the DPI changes.

Currently on master, on macos at least, building the glow backend
launches a blank screen. That's not resolved by this PR, so all these
changes are untested.
2020-08-12 15:44:48 -07:00
Michael Kirk
32a92c0d76 wasm backend 2020-08-12 15:44:48 -07:00
Michael Kirk
f7f4fd889e consolidate screenspace and mapspace methods since they now behave the
same.

rg -l screenspace_svg | xargs sed -i .bak 's/screenspace_svg/load_svg/'
rg -l mapspace_svg | xargs sed -i .bak 's/mapspace_svg/load_svg/'
2020-08-12 15:44:48 -07:00
Michael Kirk
f42b7c003c layout uses logical pixels, not physical
Previously it was not clear (to me at least) when a value used
in layout was in units of logical pixels vs physical pixels.

This lead to some ambiguity about where to scale values, and lead to
some values being scaled more than once or sometimes not at all, leading
to inconsistent layouts across DPI's.

The intent of this change is to solve this ambiguity by having the ui
clients work *exlusively* with logical pixels.

To achieve this, we consolidate all scaling to the graphics backend.
We translate all PhysicalPositions from the windowing libraries to
LogicalPixles.

Our own types: ScreenPt, ScreenDim, etc. are all in logical units.

In some places, I replaced passing raw floats with a corresponding
Screen* type to clarify that the units are in logical pixels.
2020-08-12 15:44:48 -07:00
Dustin Carlino
df3cd30081 click to cancel out of dropdowns 2020-08-12 07:08:09 -07:00
Dustin Carlino
bc4c1eaea6 make Filler responsive to window resizing 2020-08-11 17:28:27 -07:00
Dustin Carlino
7443f4ba98 detangle the way Menus communicate results, removing the Clone
requirement and finishing off InputResult
2020-08-11 09:10:16 -07:00
Dustin Carlino
74426aaf94 get ezgui demo running in wasm 2020-08-07 19:49:43 -07:00
Dustin Carlino
139affebd6 make ezgui build on wasm again, after fontdb changes. not running though... 2020-08-07 14:41:09 -07:00
Dustin Carlino
e35c69f6f3 ezgui Wizard (and its pet Cloneable)
Here lies a weird coroutine experiment
09/20/2018 - 08/07/2020
2020-08-07 14:04:41 -07:00
Dustin Carlino
f61881f6fa move more UIs away from wizards. editing signal offset broke, because
the perma format doesn't encode offset yet
2020-08-07 13:33:58 -07:00
Dustin Carlino
ec756b5167 fix z-level spinner 2020-08-07 11:28:00 -07:00
Dustin Carlino
480156c7c6 convert more Wizards to ChooseSomethings 2020-08-06 10:21:01 -07:00
Dustin Carlino
c41c998301 make a way simpler, one-choice version of Wizard. use it in two
different places to flesh out how it works
2020-08-06 09:46:57 -07:00
Dustin Carlino
5eefdaef18 still import maps with badly broken OSM geometry. warn loudly, don't
attempt to trim the roads, put a funny circle there instead.
2020-08-06 08:29:08 -07:00
Dustin Carlino
4ce2ffbad8 improve kml viewer
- clear sim after title screen
- move the file loader into the viewer
- add a key/value filter
2020-08-05 15:49:14 -07:00
Dustin Carlino
e82fe996ad reduce GfxCtx surface area 2020-08-05 07:56:57 -07:00
Dustin Carlino
225abcd112 clean up old UserInput APIs from long, long ago 2020-08-04 12:00:07 -07:00
Dustin Carlino
5fe3cc5f8a slowly whittle down public surface of ezgui
- stop referencing Prerender when easy
- default_font_size hasn't been used since the great typography refactor

some of this harms the usability of map_editor, but that's fine, because
the UX is awful anyway, and nobody should be using this except for me
very occasionally. long-term fate of it is to go away.
2020-08-04 11:36:47 -07:00
Dustin Carlino
f0ecd914b5 emit Outcome::Changed for dropdowns, checkboxes, spinners. simplify client code 2020-08-03 14:27:44 -07:00
Dustin Carlino
41f4cfff6d tool-assisted refactor of ezgui Outcome 2020-08-03 13:42:59 -07:00
Dustin Carlino
af26e8d143 cut over more button internals to use flexbox. almost at the point of collapsing some of the internal representation 2020-07-30 08:59:50 -07:00
Dustin Carlino
40cb4c4bfa simplify TextFG button 2020-07-29 19:13:20 -07:00
Dustin Carlino
b57f5081cf bit more, with pad. these hacks were put in before i understood you had
to wrap a widget in a container to make things like padding() work.
2020-07-29 18:51:28 -07:00
Dustin Carlino
a5928d204d whittle down the weird BtnBuilder API 2020-07-29 18:36:41 -07:00
Dustin Carlino
de45fb5c07 better Checkbox::colored 2020-07-29 15:11:10 -07:00
Dustin Carlino
28c3d0ef8e fix some double-DPI scaling bugs with Btn::custom. this change makes
some things simpler, some more complex, but it at least fixes some
stuff without breaking anything.
2020-07-29 11:28:05 -07:00
Dustin Carlino
0e5dd551cd construct switch checkboxes using the new trick 2020-07-29 10:56:38 -07:00
Dustin Carlino
e543b34799 use existing widget layout/style stuff to produce larger batches, for
crazy custom buttons. use to finally make a nice big trip button.
2020-07-29 10:45:24 -07:00
Michael Kirk
3879753cd2
revert some switches back to checkboxes (#252)
* revert some switches back to checkboxes

partial revert of 90bb4ac0

In many ways switches and checkboxes seem interchangeable, but in certain
contexts one may be more appropriate.

For an overview that I mostly agree with:
https://uxplanet.org/checkbox-vs-toggle-switch-7fc6e83f10b8
2020-07-28 13:58:20 -07:00
Michael Kirk
5f9e94cfcc
use monospace font to avoid clock layout jitter (#250)
* use monospace font to avoid clock layout jitter

* conventional naming
2020-07-28 10:39:18 -07:00
Dustin Carlino
e1e265db14 tighten up Polygon constructors to enforce an outer ring... in most
cases now.
2020-07-27 14:03:55 -07:00
Dustin Carlino
90291777fd somehow dropdown and persistent split widgets also broke. be more careful about letting inner menus populate outcome. 2020-07-27 09:07:19 -07:00
Dustin Carlino
24740e9852 somehow autocomplete broke and I didnt notice till now, right after a
release :(
2020-07-26 20:49:16 -07:00