Contextual toolbars with SWS

From CockosWiki

(Difference between revisions)
Jump to: navigation, search
(Understanding context hierarchy)
Line 40: Line 40:
Top entry, ''Track control panel'' represents whole TCP, including track panels, envelope panels and empty TCP space.
Top entry, ''Track control panel'' represents whole TCP, including track panels, envelope panels and empty TCP space.
-
<br>
+
It functions as the parent for it's 3 subgroups:
-
It functions as a parent for it's subgroups:
+
* Empty
* Empty
* Track panel
* Track panel
* Envelope panel
* Envelope panel
-
<br>
 
-
Each subgroup can be set to 3 different states. For example, ''Envelope panel'' can be set up in the following way:
+
 
 +
<u>Each subgroup can be set to 3 different states. For example, ''Envelope panel'' can be set up in the following way:</u>
* Do nothing - if mouse is over ''Envelope panel'' nothing will happen, even if ''Track control panel'' has toolbar assigned to it
* Do nothing - if mouse is over ''Envelope panel'' nothing will happen, even if ''Track control panel'' has toolbar assigned to it
* Inherit parent - ''Envelope panel'' will follow whatever is set up under ''Track control panel''
* Inherit parent - ''Envelope panel'' will follow whatever is set up under ''Track control panel''
* Override it's parent by setting up a corresponding toolbar for it - ''Envelope panel'' will load one toolbar, and it's parent ''Track control panel'' the other
* Override it's parent by setting up a corresponding toolbar for it - ''Envelope panel'' will load one toolbar, and it's parent ''Track control panel'' the other
 +
This hierarchy repeats every time a group get's divided into subgroups.
This hierarchy repeats every time a group get's divided into subgroups.
This way, ''Envelope panel'' functions as a parent for ''Volume envelope'', ''Pan envelope'' etc...
This way, ''Envelope panel'' functions as a parent for ''Volume envelope'', ''Pan envelope'' etc...

Revision as of 17:28, 20 October 2014

Contents

About

This is part of Reaper documentation on SWS features regarding contextual toolbars. You need to have SWS extension installed, version 2.4.0.11 or later. You can get it here.
All coding by Breeder.

Basic concepts

Feature relies heavily on existing REAPER toolbars. The basic concept is fairly simple. User assigns different toolbars to different contexts (things like TCP, item, piano roll, etc...) and loads them under mouse cursor by calling a single action. The action will then load an appropriate toolbar for a thing under the mouse cursor.

Contextual toolbars example.gif

There are multiple advantages to this kind of workflow:

  • There is only one shortcut to remember
  • Since toolbar is loaded under mouse cursor, user doesn't have to do a lot of mouse movement
  • High number of contexts allows for a smaller toolbars, making toolbar buttons easier to find and click

Setting up

Contextual toolbars dialog


To open contextual toolbars dialog, either run the action SWS/BR: Contextual toolbars... or go to Main menu > Extensions > Contextual toolbars...

Contextual toolbars dialog.png

Dialog is divided into 3 parts:

  • Preset selector at the top. There are 8 presets. Each preset is tied to corresponding action that will load toolbars based on how things are set up here for each preset
  • Contexts list view on the left. Here we set which toolbar is loaded for each context
  • Various options on the right. These are executed on toolbar load.

Understanding context hierarchy


There are multiple context groups, separated by an empty space. They are:

  • Transport
  • Ruler
  • Track control panel
  • Mixer control panel
  • Arrange
  • MIDI editor
  • Inline MIDI editor


To explain how these work, we'll have a look at Track control panel group:
Contextual toolbars tcp contexts.png

Top entry, Track control panel represents whole TCP, including track panels, envelope panels and empty TCP space. It functions as the parent for it's 3 subgroups:

  • Empty
  • Track panel
  • Envelope panel


Each subgroup can be set to 3 different states. For example, Envelope panel can be set up in the following way:

  • Do nothing - if mouse is over Envelope panel nothing will happen, even if Track control panel has toolbar assigned to it
  • Inherit parent - Envelope panel will follow whatever is set up under Track control panel
  • Override it's parent by setting up a corresponding toolbar for it - Envelope panel will load one toolbar, and it's parent Track control panel the other


This hierarchy repeats every time a group get's divided into subgroups. This way, Envelope panel functions as a parent for Volume envelope, Pan envelope etc...

Personal tools