[Feature]: Detect tool change and state to enable better overlay-UI integration
Opened this issue · 1 comments
melek commented
Describe the Problem
Some tools overlay the Map View with different user interface elements:
| Palette | Tool | Map View overlay |
|---|---|---|
| Interaction | Pointer | Layer selector |
| Interaction | Tape measure | None |
| Drawing | Delete, Text | None |
| Drawing | Freehand, Polygon, Shape tools | Draw options |
| Template | All tools | Draw options |
| Fog | All tools | None |
| Topology | Walls | Wall BL options |
| Topology | Polygon, Shape tools | None |
This means that overlays meant to integrate with the top-right corner of the Map View may interfere with the default UI. In this example, a library overlay sits under the Wall BL options:

The Solution you'd like
If I could watch an event emitted when the active tool changes, and then check the active tool, I could then update any overlays to dynamically hide or adjust it for a more seamless experience.
Alternatives that you've considered.
- I could design around a different edge since all the MapTool tools add panels only to the top-right corner. I don't favor this, since embedding under the layer selector is a natural location for additional UI.
- Users can always disable overlays when they are in the way from the Window > Overlays menu.
Additional Context
- This would be useful for my Lib:Elevation project so I could position the elevation selection based on the selected tool and add contextual information for GMs who are setting up blocking layers regarding tips, compatibility, etc.
- This was originally discussed in Discord.
bubblobill commented
- Elevation is supposedly working its way into the code, so stop working so hard.
- Stat-sheets can be set by the user to display on any edge and in any corner.
Upshot: No matter what you do, you will be interfering with the UI for someone,
somewhere.
Add close button, make it draggable, or implement a button to change screen location like I did on motion tracker.
@cwisniew Oh look, another event for your list