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

Layout widget #192

Open
8 of 19 tasks
Tracked by #130 ...
nexushoratio opened this issue Nov 8, 2023 · 0 comments
Open
8 of 19 tasks
Tracked by #130 ...

Layout widget #192

nexushoratio opened this issue Nov 8, 2023 · 0 comments
Labels
enhancement New feature or request library For libraries

Comments

@nexushoratio
Copy link
Owner

nexushoratio commented Nov 8, 2023

Stealing ideas from w2ui.

Five panels:

+--------------+
|     TOP      |
+---+------+---+
| L | MAIN | R |
|   |      |   |
+---+------+---+
|    BOTTOM    |
+--------------+
<div id=container>
  <div id=top>
  </div>
  <div>
    <div id=left>...</div>
    <div id=main>...</div>
    <div id=right>...</div>
  </div>
 <div id=bottom>
 </div>
</div>
  • Widget enhancements #190
  • widget adapters for common types #191
  • ARIA roles of concern
    • Window splitter
      • Splitters are associated with a Primary pane, which in our case here, would probably be TOP/BOTTOM/LEFT/RIGHT
      • Support arrow keys when have focus
      • Draggable
      • Role is separator
      • aria-orientation (horizontal, vertical)
      • aria-valuenow is (roughly) %age open (resizable only)
      • Needs one of aria-label, aria-labelledby (resizable-only)
      • Needs aria-controls that points to primary pane element (that is, what it controls)
  • Generate divs appropriately (all always present, even if empty or disabled)
  • Each panel accessible via name property
  • Simplify code by always initializing panels in the constructor
  • Support destroy()
  • Export
  • Address this: If a variable holding a widget is set to a new value, the previous widget should be explicitly destroyed.
  • Each exterior pane needs a way to specify the min/max/natural size and whether resizable or not (some of this can be done with installStyle(), but not all)
@nexushoratio nexushoratio added enhancement New feature or request library For libraries labels Nov 8, 2023
@nexushoratio nexushoratio changed the title Implement Layout widget Layout widget Nov 8, 2023
@nexushoratio nexushoratio self-assigned this Nov 26, 2023
nexushoratio pushed a commit that referenced this issue Jan 2, 2024
nexushoratio pushed a commit that referenced this issue Jan 3, 2024
nexushoratio pushed a commit that referenced this issue Jan 3, 2024
nexushoratio pushed a commit that referenced this issue Jan 4, 2024
Simplifies the code in *#onBuild()* quite a bit.

Issue #192.

␄
nexushoratio pushed a commit that referenced this issue Jan 5, 2024
nexushoratio pushed a commit that referenced this issue Jan 6, 2024
nexushoratio pushed a commit that referenced this issue Jan 6, 2024
By no means complete, but, good enough for experimentation.

Issue #192.

␄
@nexushoratio nexushoratio removed their assignment Jan 11, 2024
nexushoratio pushed a commit that referenced this issue Jan 17, 2024
nexushoratio pushed a commit that referenced this issue Jan 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request library For libraries
Projects
None yet
Development

No branches or pull requests

1 participant