Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windowing System(s) Master Ticket #1757

Closed
12 tasks
aeschylus opened this issue Jan 30, 2019 · 1 comment
Closed
12 tasks

Windowing System(s) Master Ticket #1757

aeschylus opened this issue Jan 30, 2019 · 1 comment

Comments

@aeschylus
Copy link
Collaborator

aeschylus commented Jan 30, 2019

We had a longer discussion today about some of the outstanding design, implementation, and sequencing concerns pertaining to the windowing system(s). We uncovered areas of remaining design and implementation fuzziness, as well as sequencing questions. Some aspects were clarified enough to conclude that we should continue with the "roll our own" spike in support of an overlapping windowing system, and leave the react-grid-layout PR open for consideration for now.

High-level Non-design-specific Requirements

This list represents tasks or scenarios that need to be addressed by the windowing system. They should be stated in such a way that, as far as possible, they make no reference to a particular system or implementation unless the user(s) specifically asked for them in interviews.

  • (a.) Add windows to the workspace
  • (b.) Compare window content to content of other windows
  • (c.) Provide reasonable responsive behaviour ("mobile friendly")
  • (d.) Remove Windows from the workspace
  • (e.) Find a specific open window and focus it
  • (f.) Full-screen a window
  • (g.) Resize windows (note that this can happen in any of the different paradigms we've described, the difference being the behaviour of surrounding windows in response to resizing a window)
  • (h.) Move windows in relation to each other
  • (i.) Synchronize behaviour between selected windows
  • others...

High-level prioritization

  • Implementation scenario that handles an embedded view 1-up (relative full workspace "layout")
  • Implementation scenario that handles an embedded two-up (relative full workspace "layout")

Existing Tickets and Resources

Areas of Clarity

Free-form Workspace

Spike PR (Demo)

React-grid-layout Affordances

Spike PR (Demo)

Areas Needing Further Design

"Mosaic" mode

Spike demo

Getting In and Out of Workspace Modes

Relationship between "Arrange in columns" free-form mode option and "Column grid" mode

Slot-based Comparison Builder (? is this just "Mosaic mode behaviour"?)

Implementable Plan

Explicitly Out of Scope (until further review)

Minimizing windows ProjectMirador/mirador-design#36

@jvine
Copy link
Collaborator

jvine commented Feb 1, 2019

Proposed approach is to provide 3 user-selectable workspace modes:

  1. free-form: elastic workspace beyond the Mirador viewport; windows can be overlapped
  2. grid: workspace is horizontally constrained but scrolls vertically; windows can be positioned with some flexibility within a grid layout.
  3. mosaic: workspace is constrained to the Mirador viewport; windows are tiled to fill the space completely.

screen shot 2019-02-01 at 12 59 04 pm

Mockup

These frameworks will provide the default behaviour in each mode:

  1. our own free-form implementation
  2. react grid
  3. react mosaic

Design tasks:

  • Modify workspace tools menu to provide affordance to select modes and mode-specific features
  • Determine default settings for grid mode
  • Design transitions from one mode to another

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants