Splitting and tabbing interface

From Buzztard

Jump to: navigation, search

The ideas is to have a flexible multiview user interface.

Contents

[edit] Idea

At first we like to have multiple windows. 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.

[edit] Implementation

[edit] 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

[edit] 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.

[edit] Problems

[edit] 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

[edit] 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).

[edit] 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.

Personal tools
collaboration

SourceForge Logo

GStreamer Logo

Linux Sound Logo

MediaWiki

Valgrind

GNU Library Public Licence

GNU Free Documentation License 1.2