Splitting and tabbing interface

From Buzztard

Jump to: navigation, search

The ideas is to have a flexible multiview user interface.

Contents

Idea

Right now we have a fixed tab-based layout. This especialy works well on small window sizes or small screens. Ideally we'd like to have different layouts and maybee even multiple views (or same pages). Next we would like to allow the user to split the GUI into arbitratry segments vertically and horizontally. Each segment will contain a notebook widget with views.

It would be useful to have a way to make snapshots of layouts.

Layouts

An easy approach would be to only allow one view for each page and offer layout variants:

  • tabbed: this is what we have
  • multiview: a table

The table based multiview could be e.g.:

sequence machines info
patterns waves

Maybe the user could even select different views for windowed/fullscreen mode.

Implementation

Idea 1

Programatically each notebook headline will have a menu-widget. This has actions like:

  • split horizontally
  • split vertically
  • add new tab with ...
    • machine view
    • pattern view
    • and so on
  • close current tab

Idea 2

Have a component toolbar with one icon for each view and split/unsplit icons. After splitting new views are empty. Dragging an icon to an empty view puts such a view in there. Dragging to a non-empty view adds a tab with the new view. Holding Shift while dragging replaces the existing view.

Problems

jumping between views

right now one can press enter in the pattern view to go to the sequence view.

  • we need to check if the view we would jump to is already shown.
  • if it is shown twice we need to jump to the one that has been used last.
  • if it is not show we could replace the sequence view with the pattern view

jump to a new view

  • what do we do if the view we want to jump to isn't open yet. (e.g. one presses F1 to get help and there is no help view yet).

open a new window

  • we can't the move it back into a tab

One idea for the above problems is to have a (hierachical) menu on the tabs to select an open view to show. Whenever a new view is opened it gets added to the menu. The menu first shows view types (machine view, pattern view) and then the view types. Selecting a view will show this one in the current tab.

Support Us

Collaboration

SourceForge Logo
GStreamer Logo
Become a Friend of GNOME
Linux Sound Logo
MediaWiki
Valgrind
GNU Library Public Licence
GNU Free Documentation License 1.2