https://github.com/ximion/multiwindow-pattern-demo
Small application to demonstrate some multiwindow SDI UX patterns all at once
https://github.com/ximion/multiwindow-pattern-demo
Last synced: 3 months ago
JSON representation
Small application to demonstrate some multiwindow SDI UX patterns all at once
- Host: GitHub
- URL: https://github.com/ximion/multiwindow-pattern-demo
- Owner: ximion
- License: mit
- Created: 2024-04-27T01:32:40.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-07T02:13:36.000Z (about 1 year ago)
- Last Synced: 2025-01-04T17:46:15.315Z (5 months ago)
- Language: C++
- Size: 1.79 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Multiwindow Pattern Demo
This is a small application that was quickly thrown together to demonstrate some multiwindow
SDI UX patterns all at once.It highlights some X11 deficiencies (including ugly workarounds) and serves as a playground
to check if an implementation of `ext-positioning` in Wayland works correctly (provided Qt implements
the necessary protocol).
It has originally been used to mock protocol interaction and test Wayland protocol viability
using a small, hackable application instead of relying on actual applications.In reality, no application will likely use all of these multiwindow paradigms all at once.
## Implemented Paradigms
### Initial Window Placement
Upon launching the application, windows should appear correctly placed in a certain arrangement,
occupying about 90% of the space designated for the application.### Layout Profiles
Window layouts can be created in arbitrary amounts and restored at any time.
The layouts may be made by the user, or defined by the developer of the application
in a fixed list.
This is a very common pattern in many scientific applications.### Floating Windows
A window can be set to float permanently on top of all other windows of the same application.
This is usually done for toolboxes and palettes and heavily used in DAW applications.### Window creation at coordinates
A window is created at the current cursor position, or at the position of any other
UI element of the application, with a defined offset.### Window snapping / attachment
This pattern has been popular in older mediaplayer applications and has fallen a bit
out of favour in many modern applications.
It is a useful testcase though. A window permanently attaches to the side of another window
and can be dragged around with it. The windows also minimize together and orient
each other in relation to each other when their states change.
The secondary window is usually some kind of toolbox with content that is strongly related
to the primary window.## Compiling the demo application
Ensure Qt6 and Meson are installed, then use the following commands:
```bash
# build
mkdir build && cd build
meson setup ..
ninja
# run
./multiwindow-pattern-demo
```