Commit Graph

359 Commits

Author SHA1 Message Date
Michael Kirk
014bd56379 CR: clarify swap_inner_content method 2021-03-19 11:56:22 -07:00
Michael Kirk
8b685fd746 increase contrast of panel_bg vs the panel_section
Currently the color was only via transparency - so depending on what was
behind the panel, there was sometimes not enough contrast.
2021-03-19 11:56:22 -07:00
Michael Kirk
e493c02d83 convert trip tables to new tabs
The GenericTable machinery lost a lot of it's utility now that we have
proper tabs. I've left a couple of free functions to be shared, and
inlined the remaining simple functionality.
2021-03-19 11:56:22 -07:00
Michael Kirk
e39059644c fixup! wip apply tabs to TimeWarp 2021-03-19 11:56:22 -07:00
Michael Kirk
02d08fa262 fixup! style tabs 2021-03-19 11:56:22 -07:00
Michael Kirk
1d57bb5f25 wip apply tabs to TimeWarp 2021-03-19 11:56:22 -07:00
Michael Kirk
7f00154ae6 style tabs 2021-03-19 11:56:22 -07:00
Michael Kirk
ab787a5cd1 WIP: spiked tabs implementation for widgetry demo
TODO:
- tooltips (or is that just a responsibility of the button builder?)
- widgetry color scheme should use day-theme
- pick nice tab colors
- start applying!
  - jump in time
  - info panel
  - "more data"
  - fix width to match widest? Or maybe width modes?
2021-03-19 11:56:22 -07:00
Michael Kirk
a0ad4bd762 fixup! Replace ButtonImage with Image
Apply default tint to icons unless specified as untinted
2021-03-18 11:02:41 -07:00
Michael Kirk
546599e4f9 Replace ButtonImage with Image 2021-03-17 19:06:43 -07:00
Dustin Carlino
1773782975 Place layer panels and info panels in the same place, on the left side of the screen. Simplify layer code, now that we don't need to align relative to the minimap. 2021-03-17 14:15:13 -07:00
Michael Kirk
4418c94fd6 fixup! minimap controls: agent toggles and meters into one row 2021-03-16 18:28:50 -07:00
Michael Kirk
264f1f939f minimap controls: agent toggles and meters into one row
Some ancillary changes:

Made the GeomBatchStack public and extracted the ImageSource
functionality from ButtonBuilder to Image.
2021-03-16 18:28:50 -07:00
Michael Kirk
810c89eeb1
meter shows "finished trips vs baseline" instead of time (#565) 2021-03-15 17:10:08 -07:00
Dustin Carlino
59e9735318 Force actdev top panels to have the same height. #551 2021-03-12 17:48:35 -08:00
Dustin Carlino
8ac62fed47 Trying out some UI changes suggested by Martin:
- Increase day mode panel opacity to 95% to help text legibility
- Combine the time/speed panels, and remove the sunrise/sunset icons
- 4 mode colors matching actdev, also changing night mode residential
  buildings
2021-03-12 17:48:35 -08:00
Dustin Carlino
522b902453 Improve the traffic signal timing UI. There's a choice between fixed and
variable timing, but currently you have to remember to toggle it; the
two extra spinners get ignored otherwise. The new version is still
confusing, but I think it's an improvement.
2021-03-11 11:39:58 -08:00
Dustin Carlino
8be24bf007 Use AsRef<str> in more widgetry methods, getting rid of &format at many
call-sites. #253

To make some of these work, changed Label to store a String. Ultimately
it gets transformed into Text, so we need to allocate eventually.
2021-03-11 11:29:18 -08:00
Dustin Carlino
9c2c8bbd8f Change some uses of Into<String> to AsRef<str>, to avoid allocations. #253
I manually audited all uses. I kept Into<String> when we really do wind
up storing a String.
2021-03-11 11:29:18 -08:00
Dustin Carlino
f5eca6ff02
Seemingly fix squished loading screens at startup by always using inner_size. (#561) 2021-03-11 09:48:39 -08:00
Dustin Carlino
65d7bc5c8e Rename {Text,TextSpan}::draw to into_widget, for consistency. #253 2021-03-09 09:59:30 -08:00
Dustin Carlino
a4a20ce1e5 draw_text renamed to text_widget, for consistency. #253 2021-03-09 09:56:41 -08:00
Dustin Carlino
b0bcdb2115
Replace Widget::draw_batch with batch.into_widget, for consistency. #253 (#554) 2021-03-09 08:55:12 -08:00
Dustin Carlino
42bd63e79b Lift URL and viewport code from game to map_gui. Also use it for OSM viewer and the 15min tool. 2021-03-04 13:22:09 -08:00
Dustin Carlino
4d048d83bd A few misc fixes after the grand button/color refactor:
- Always draw traffic signal stage numbers as white, even in day mode
- Always draw loading screen text as white, in any theme
- Double the scrollbar thickness from 4px to 8px (still way thinner than
  the original design)

[rebuild] [release]
2021-02-28 10:31:00 -08:00
Michael Kirk
09c98b99c7
better contrast for primary button when disabled (#548) 2021-02-27 21:11:03 -08:00
Michael Kirk
86799e2832 Remove StyledButtons - instead implement everything on the individual
ButtonStyle
2021-02-27 21:08:26 -08:00
Michael Kirk
703ab1a0e8 inline dark style since we were assigning most of the props via overrides anyway 2021-02-27 21:08:26 -08:00
Michael Kirk
11a904a4da WIP: separate style for plain 2021-02-27 21:08:26 -08:00
Michael Kirk
6b35060dbb inline more functionality into ButtonStyle 2021-02-27 21:08:26 -08:00
Michael Kirk
c3985ffdd1 btn_solid -> btn_tab and replace inappropriate uses 2021-02-27 21:08:26 -08:00
Michael Kirk
7fe0e521ee Use btn_destructive.* methods instead of btn_destructive_* 2021-02-27 21:08:26 -08:00
Michael Kirk
cee0e5dbbd Use btn_primary.* methods instead of btn_primary_* 2021-02-27 21:08:26 -08:00
Michael Kirk
87a1a3f027 fix outline for spinner (without crashing!) and cache drawable 2021-02-27 15:29:03 -08:00
Michael Kirk
088e434a0a Revert "Fix too-thin outline of Spinner"
This reverts commit 9dc2b365c8.
2021-02-27 15:29:03 -08:00
Michael Kirk
27b20c45c8 make EdgeInset f64, like other layout
Remove unnecessary casts to f64
2021-02-27 13:14:37 -08:00
Michael Kirk
9dc2b365c8 Fix too-thin outline of Spinner 2021-02-27 13:13:41 -08:00
Michael Kirk
1e75352ce0 Theme section bg
`Widget::outline` takes OutlineStyle
2021-02-27 13:13:41 -08:00
Michael Kirk
73280bc114 consolidate OutlineStyle
We had a lot of constants sprinkled around. This consolidates the
constants and packages the outline thickness and color into a tuple,
making for a (usually) cleaner callsite.
2021-02-27 13:13:41 -08:00
Michael Kirk
300172282b disabled outline/plain buttons should not gain a background 2021-02-27 13:13:41 -08:00
Michael Kirk
2378da9731 theme signal editor bg 2021-02-27 10:30:41 -08:00
Michael Kirk
5f3c914e28 Pad SliderArea so it doesn't overlap neighboring elements
and shrink it down just a bit to be more in scale with other UI
2021-02-26 18:59:19 -08:00
Michael Kirk
bee4989a5d make area slider wider than scrollbars 2021-02-26 18:59:19 -08:00
Michael Kirk
cae7f55ba4 theme slider/scrollbars 2021-02-26 18:59:19 -08:00
Michael Kirk
cf69dd0370 slightly better approach to get the cut-scene looking better 2021-02-26 16:30:14 -08:00
Michael Kirk
bcba72cddf enable new day theme, but retain legacy theme for pregame 2021-02-26 16:30:14 -08:00
Michael Kirk
4b2f3888ed replace btn_solid w/ primary/outline as appropriate 2021-02-26 14:05:19 -08:00
Michael Kirk
6156311576 add btn_primary style 2021-02-26 14:05:19 -08:00
Michael Kirk
143fdc3fd5 label_underlined_text for "link" buttons 2021-02-26 14:05:19 -08:00
Michael Kirk
7e3d8bded9 per design: outline style for dropdowns 2021-02-26 14:05:19 -08:00
Michael Kirk
f5b52073fc shade dropdown/text-fields in night mode
Consistent with other themes, fields in night mode should be distinct
from the panel color, a shade darker.
2021-02-26 14:05:19 -08:00
Michael Kirk
3019a6fff1
Introduce Image component to handle themed icons (#537) 2021-02-25 18:06:19 -08:00
Michael Kirk
46593b01ed theme text field (and fixup layout) 2021-02-25 17:42:04 -08:00
Michael Kirk
6b8211c3ba theme dividers 2021-02-25 17:42:04 -08:00
Dustin Carlino
357ba15afe Add back the zcool font so the Taipei map renders names. But this time, asynchronously load the font instead of bundling it in system assets and increasing the .wasm size. #535
Temporarily take on some technical debt with the new RawFileLoader...
2021-02-25 15:25:47 -08:00
Dustin Carlino
6bfa569923
Support changing fonts in the middle of a line. Use this to draw numeric (#533)
IDs in the status bar as bold, not red.
2021-02-25 08:57:42 -08:00
Michael Kirk
5d7875d5be theme spinner 2021-02-24 20:17:18 -08:00
Michael Kirk
fc4a4d1071 Fix loading screen legibility
long-term we should probably get all the colors from Style, but until
then just hardcode White text since all other colors are hardcoded.
2021-02-24 20:17:18 -08:00
Michael Kirk
ac30774b06 theme dropdowns and menus 2021-02-24 18:10:06 -08:00
Michael Kirk
c6d361c4b0 remove take_menu 2021-02-24 18:10:06 -08:00
Michael Kirk
9533c10137 Theme switches
The main button API only allows re-writing one color of the image.

Since we need to rewrite multiple colors for the switch, I introduced a
`image_batch` for buttons which lets you do all kinds of manual
fanciness, and pass the result into the button API.
2021-02-24 14:59:47 -08:00
Michael Kirk
f34f6ab315 theme checkbox 2021-02-24 14:59:47 -08:00
Michael Kirk
d774aeae44 rename toggle/checkbox 2021-02-24 14:59:47 -08:00
Michael Kirk
3ab7fc4361
Fix tooltips and hotkey for day-theme (#528) 2021-02-24 10:52:57 -08:00
Michael Kirk
1387a8c11f
Text gets default color from Style (#526) 2021-02-23 19:30:50 -08:00
Dustin Carlino
0344e51170
Merge pull request #525 from a-b-street/prefetch
Make a web loader that can 'prefetch' abst in the background. cyipt/a…
2021-02-23 13:34:55 -08:00
Dustin Carlino
316dcd7d06
themed buttons (#524)
* cargo fmt

* rename ButtonStyle to ButtonTheme to avoid ambiguity

widgetry::styles::button:ButtonStyle -> ButtonTheme is a collection of
colors

vs. widgetry::widgets::button::ButtonStyle which is a per-state styling
(hover vs. disabled etc.)

* Collapse button styles to be theme specified (no visible changes).

Button colors are now determined by the color scheme, but for now all
schemes are hardcoded to use the same "night" button colors. Read on for
rationale...

Previously, which button colors to use (dark/light) was specified inline
while building the UI.

Eventually we want to live in a world where color scheme determines:
- panel colors
- button colors
- text colors

The theme could already choose panel colors easily enough, but because
the buttons and text were not determined by theme, choosing anything
other than a black or dark grey panel color makes the buttons and text
unreadable.

This PR tackled the themeable "button colors" portion, but all themes
continue to use the "night" colors for now, because using the actual
"day" colors would still make the text unreadable.

next up: themeable text!

The one intentional regression is within the pregame tutorial,
which has always been styled differently from the rest of the app. An
expeditious hack has caused the prev/next/continue buttons to lose their
visible hover state. I'll restore this upon completing the day theme
work.

* rethink rename... keep Style.ButtonStyle, rename button::ButtonStyle->ButtonStateStyle

* btn_solid_panel is the same as btn_solid
2021-02-23 11:49:28 -08:00
Dustin Carlino
4c97687a5b Make a web loader that can 'prefetch' abst in the background. cyipt/actdev-ui#15 2021-02-23 11:45:39 -08:00
Michael Kirk
657887e90f stray mut 2021-02-23 11:32:20 -08:00
Dustin Carlino
8bee003808 Fix a few stray warnings from rustc, and improve a panic error message when data/system gets unexpected directory names 2021-02-23 11:16:43 -08:00
Michael Kirk
62a433ed8d btn_solid_panel is the same as btn_solid 2021-02-23 10:17:49 -08:00
Michael Kirk
dde3ca9f67 rethink rename... keep Style.ButtonStyle, rename button::ButtonStyle->ButtonStateStyle 2021-02-23 09:56:58 -08:00
Michael Kirk
e6ed2e67de Collapse button styles to be theme specified (no visible changes).
Button colors are now determined by the color scheme, but for now all
schemes are hardcoded to use the same "night" button colors. Read on for
rationale...

Previously, which button colors to use (dark/light) was specified inline
while building the UI.

Eventually we want to live in a world where color scheme determines:
- panel colors
- button colors
- text colors

The theme could already choose panel colors easily enough, but because
the buttons and text were not determined by theme, choosing anything
other than a black or dark grey panel color makes the buttons and text
unreadable.

This PR tackled the themeable "button colors" portion, but all themes
continue to use the "night" colors for now, because using the actual
"day" colors would still make the text unreadable.

next up: themeable text!

The one intentional regression is within the pregame tutorial,
which has always been styled differently from the rest of the app. An
expeditious hack has caused the prev/next/continue buttons to lose their
visible hover state. I'll restore this upon completing the day theme
work.
2021-02-23 09:52:33 -08:00
Michael Kirk
cfaf441b89 rename ButtonStyle to ButtonTheme to avoid ambiguity
widgetry::styles::button:ButtonStyle -> ButtonTheme is a collection of
colors

vs. widgetry::widgets::button::ButtonStyle which is a per-state styling
(hover vs. disabled etc.)
2021-02-23 07:24:48 -08:00
Dustin Carlino
ecf7c0c836
On HiDPI screens with low resolution, allow widgetry applications to (#521)
* On HiDPI screens with low resolution, allow widgetry applications to
override the default scale factor in order to achieve a minimum width.
2021-02-22 15:59:57 -08:00
Dustin Carlino
b11cd48fb3 On the web, constantly update the --cam param in the URL with the current viewport. 2021-02-20 11:10:14 -08:00
Dustin Carlino
3f23a3c57c Remove hotkey buttons entirely, to get closer to Yuwen's button spec. 2021-02-15 13:02:29 -08:00
Dustin Carlino
0f1c30a889 Exclude collisions.bin from KML viewer; it's not KML anymore.
And fix a crash on the challenges screen by not considering the actions
of inactive buttons to count as duplicates.
2021-02-13 17:06:06 -08:00
Dustin Carlino
6e7a91ada1 Upgrade to Rust 1.50. Use the new f64 clamp instead of our own. [rebuild] 2021-02-11 10:32:13 -08:00
Michael Kirk
4b665c871d
update geo related deps. (#508)
geo-types to 0.7
geo to 0.17 which removes redundant old geo used by polylabel
geojson to 0.22
2021-02-08 16:34:56 -08:00
Michael Kirk
3449d49b6d
WebGL 1.0 support, with automatic fallback for Safari/iOS (#504)
#506
2021-02-06 19:04:43 -08:00
Dustin Carlino
3a7f39a6da Downsample points on a line-series plot for drawing. Otherwise, the arrivals plot on a border intersection in downtown winds up with more than 2^16 points. 2021-02-04 11:27:57 -08:00
Dustin Carlino
fd423439b8 Upgrade tokio, hyper, and lru 2021-02-03 18:33:06 -08:00
Dustin Carlino
73e405e382 Upgrade most dependencies 2021-02-03 18:13:06 -08:00
Dustin Carlino
eebe7a098a Start a UI with some sliders for tuning existing params of route cost functions. No effect yet. #494 2021-02-02 14:39:39 -08:00
Michael Kirk
38dc60fbea
Add method to GeomBatch to prefer cached flavor of loading svg. (#493)
It was my intention when introducing the cached vs uncached flavors that
we'd prefer the cached flavor for anything referencing bytes from a
file, like icons and UI glyphs, and that we'd only use the uncached
flavor for dynamic things like "face" generation.
2021-02-01 16:24:56 -08:00
Dustin Carlino
3e40686a6b Fix a bunch of links after the repository renaming. 2021-01-31 15:50:48 -08:00
Dustin Carlino
8f0c027bb0 Fix critical bug causing a crash only in the .zip releases, where widgetry icons aren't present relative to the data/ directory. 2021-01-30 14:20:28 -08:00
Dustin Carlino
16124f3f3b Include the vertical scrollbar when calculating panel size for horizontal alignment. Fixes #484 2021-01-28 10:31:47 -08:00
Dustin Carlino
e306a48994 Fix prev/next buttons on the trip table; the keybindings got inverted during the refactor. 2021-01-27 08:57:47 -08:00
Dustin Carlino
cbf0763327 Move 3 SVGs into widgetry icons, bundling them into the build. Discovered these missing by updating https://github.com/dabreegster/streetcad 2021-01-26 14:18:41 -08:00
Dustin Carlino
56101addcf Remove the zcool font and Xi'an import. #377
The Xi'an map isn't being regularly used, and it has some issues
(boundary is too large, OSM is missing buildings in most of the area).

The zcool font enables Chinese characters to render, but costs 6MB in
the binary files, slowing down wasm loading time. Eventually, we can
support async loading fonts and passing them to widgetry when loading a
map requiring them. For now, cutting down wasm size is a bigger
priority.

game wasm from 18MB to 12MB. Not bad!
2021-01-24 20:30:20 -08:00
Michael Kirk
07738d2cef
popup and persistent split to spec (#480)
* introduce "pill" to be explicit about fully rounded, vs a "None" radius

* no-op transition to CornerRadii

* popup button to spec

* restore "fully rounded" layout behavior

* use plain light to better show highlight

* persistent split to spec (for day theme anyway)

* remove night-theme colors for speed panel

* fixup docs for pill

* CR: remove unnecessary `row`

* CR: remove outdated doc

* import order
2021-01-24 15:32:28 -08:00
Dustin Carlino
ab801b8ae1 Vertically line up the header for layer panels. 2021-01-24 13:23:30 -08:00
Dustin Carlino
7d8c818eea Remove the last traces of the old orange hovering color. 2021-01-24 13:09:37 -08:00
Michael Kirk
f71176578f stroke for non-colored checkboxes 2021-01-24 10:32:41 -08:00
Michael Kirk
8211329c6f more contrast in hotkey color 2021-01-24 10:32:41 -08:00
Michael Kirk
1a3d1b4cdb
reconcile new button styles w/ dark theme (#475) 2021-01-22 21:21:38 -08:00
Dustin Carlino
4446d99fad Merge branch 'mkirk/btn-fix' of https://github.com/michaelkirk/abstreet into michaelkirk-mkirk/btn-fix 2021-01-22 21:13:13 -08:00
Michael Kirk
3855f284b8 Fix hotkey conflict
Even though we *usually* want these hotkeys for next/prev, sometimes we
don't, and the damage of forgetting to add them to a new pager is less
than the damage done if we forget to remove them and clobber something
important like the speedup/slowdown controls.
2021-01-22 15:31:33 -06:00
Michael Kirk
1990642dee More conventional button names
This was all done by search/replace, and should not affect
functionality.

Goals:

- be consistent with the figma terminology.
- consistently order:
  "btn_{solid|outline|plain}_{dark|light}_{text|image|dropdown|back|etc}"
2021-01-22 13:11:42 -06:00
Michael Kirk
8579add567 better docs 2021-01-22 10:23:50 -06:00
Michael Kirk
1325c115a1 cache SVG's when reasonable. Clarify when they aren't cached. 2021-01-22 09:54:50 -06:00
Michael Kirk
202aec77cf cleanup with include_labeled_bytes! 2021-01-22 09:54:50 -06:00
Michael Kirk
4e48de6185 compile in asset bytes for widgetry assets 2021-01-22 09:54:50 -06:00
Michael Kirk
7bc9145ce9 bake-in widgetry assets: image_path -> image_source::{Path, Bytes} 2021-01-22 09:54:50 -06:00
Dustin Carlino
dc19d11f64 Make the file management menu in edit mode occupy the center of the screen. 2021-01-21 15:36:21 -08:00
Michael Kirk
79b9d9f961 fix checkbox color for Info > Traffic > "Show before {}" 2021-01-21 15:25:46 -08:00
Michael Kirk
882de86661 Maybe fix weird toggle background 2021-01-21 15:25:46 -08:00
Michael Kirk
e10a8bd2a3 proper its 2021-01-21 15:25:46 -08:00
Michael Kirk
f9fdce9637 replace arrow text with arrow image 2021-01-21 15:25:46 -08:00
Michael Kirk
f218d72390 docs 2021-01-21 15:25:46 -08:00
Michael Kirk
4989887117 remove final references to Btn 2021-01-21 15:25:46 -08:00
Michael Kirk
de527bc9d8 remove unused imports 2021-01-21 15:25:46 -08:00
Michael Kirk
1f75145a8a introduce btn_next/btn_prev, parameterize disabled to simplify common usage 2021-01-21 15:25:46 -08:00
Michael Kirk
bfb190a730 manually update remaining Btn::text_bg2 2021-01-21 15:25:46 -08:00
Michael Kirk
a5b6dca62a replace Btn::text_bg2 w/ regex
In case I have to revisit, here's the regex I used:
    Btn::text_bg2\(([^)]*)\)*.build_def\(ctx, ([^()]*)\)
    ctx.style().btn_primary_dark_text($1).hotkey($2).build_def(ctx)

And something like this for the "no hotkey" case
    Btn::text_bg2\(([^)]*)\)*.build_def\(ctx, None\)
    ctx.style().btn_primary_dark_text($1).build_def(ctx)
2021-01-21 15:25:46 -08:00
Michael Kirk
652c35b220 replace Btn::text_bg 2021-01-21 15:25:46 -08:00
Michael Kirk
54e937408a remove remaining Btn::plaintext 2021-01-21 15:25:46 -08:00
Michael Kirk
3febbf2f81 destructive primary for destructive action 2021-01-21 15:25:46 -08:00
Michael Kirk
0f476b6a36 pagination uses icon button 2021-01-21 15:25:46 -08:00
Michael Kirk
fc6c18e608 replace Btn::SVG 2021-01-21 15:25:46 -08:00
Michael Kirk
69e31029ac replace Btn::svg_def 2021-01-21 15:25:46 -08:00
Michael Kirk
ea39fecf03 replace Btn::pop_up 2021-01-21 15:25:46 -08:00
Michael Kirk
4e5443683b CR: remove unused method 2021-01-21 09:08:41 -08:00
Michael Kirk
0a612601ca icon buttons should be same height as text buttons 2021-01-21 09:08:41 -08:00
Michael Kirk
c013c8d342 replace remaining Btn::custom 2021-01-21 09:08:41 -08:00
Michael Kirk
52880c68d8 replace Btn::custom in switch and checkboxes
(also add SVG checkboxes!)
2021-01-21 09:08:41 -08:00
Michael Kirk
5b6c88d3b4
more button progress and fixups (#465)
* replace Btn::txt with new ButtonBuilder styles

* fixup! replace Btn::text_bg1 with ButtonBuilder (btn_primary_light)
2021-01-20 14:11:28 -08:00
Michael Kirk
11ffef5716 replace Btn::text_bg1 with ButtonBuilder (btn_primary_light) 2021-01-19 17:40:35 -08:00
Michael Kirk
e1ec69f9f7 Replace Btn::plaintext_custom with new ButtonBuilder 2021-01-19 17:40:35 -08:00
Michael Kirk
def3644eca add "destructive" (red) button styles 2021-01-19 17:40:35 -08:00
Michael Kirk
743b74510d
replace Btn::close with new style (#463) 2021-01-19 16:17:11 -08:00
Michael Kirk
d7445d889e
button revamp groundwork (#459) 2021-01-19 10:10:18 -08:00
Michael Kirk
356a64ec87 rename INVISIBLE -> CLEAR
easier to type name
2021-01-16 21:16:14 -08:00
Michael Kirk
bbe94537ef impl Debug for GeomBatch 2021-01-16 21:16:14 -08:00
Michael Kirk
a8cbda24e3 Copy/Clone/Debug/PartialEq for EdgeInsets
At the moment I just needed Debug, but these others seem likely.
2021-01-16 21:16:14 -08:00
Dustin Carlino
92423ef932 Fix previous change -- forgot to move a draw call into the conditional. For some reason, the problem is only reproducible in release mode on S3, not when serving locally.
Ahhh typo in the URL -- it happens when specifying a bad map name.
2021-01-11 16:02:50 -08:00
Dustin Carlino
556a8345bf Sometimes loading a map on the web tries to draw the previous state when the stack only has one. Not totally sure why, but avoid crashing. 2021-01-11 15:21:27 -08:00
Dustin Carlino
fea3ebbe5b Change the city picker UI to show cities on the left. After clicking one, open up the overview for that city. 2021-01-08 15:51:22 -08:00
Dustin Carlino
82c1495cc4 Seemingly fix the first screenshot of some maps by double drawing the first tile. Not sure what the problem is or why this appears to fix it. 2021-01-07 20:22:27 -08:00
Dustin Carlino
65b2b581fa Attempt to take many screenshots of one map at different zoom levels for Leaflet. Various bugs, but progress. #440 2021-01-06 16:33:53 -08:00
Dustin Carlino
5b4a689125 Initial steps to internally refactor buttons. Name action/label/tooltip
consistently.
2021-01-06 11:07:24 -08:00
Dustin Carlino
92be9c57ed Optionally tile screenshots at smaller dimensions than the window. #440 2021-01-06 10:52:22 -08:00
Dustin Carlino
4cf133cc32 Make the new screencaps preserve alpha properly by switching to
premultiplied alpha. See option 1 of
https://stackoverflow.com/a/24380226

Upload the "new" screenshots (and lakeslice map)!
2021-01-05 18:28:30 -08:00
Dustin Carlino
7f0cdace5a Use OpenGL to take screenshots instead of scrot. Benefits:
- Simple -- one OpenGL call and feeding to the awesome image crate
- Faster -- seemingly don't need the sleep() for whatever vsync problems
- Portable -- doesn't use the Linux scrot tool
- I can switch windows and wiggle the cursor with impunity while this runs

One disadvantage: screencaps in S3 are now slightly larger PNGs, because
for some reason, the image/gif feature is super slow, even in release
mode.

For now, this makes the process of screenshot diffing map changes
easier. But it also might help with producing raster tiles for Leaflet. #440

Also, had to regenerate lakeslice because of the previous change --
it had an old adaptive signal baked in.
2021-01-05 14:58:31 -08:00
Dustin Carlino
dedb041bdb Move CameraState to map_gui. Now widgetry has no dependency on abstio! #253 2021-01-04 10:39:15 -08:00
Dustin Carlino
bfa208ce6a Parameterize widgetry on a way to read SVG files. This is one of the last steps to remove the dependency on abstio. #253 2021-01-04 09:53:24 -08:00
Dustin Carlino
d529ae2e5c Upgrade usvg and rand 2021-01-04 09:19:54 -08:00
Dustin Carlino
965d999199 Upgrade misc other dependencies 2021-01-03 20:01:27 -08:00