Audacity  2.2.0
Track Panel Refactor

Planned refactoring of TrackPanel.cpp

  • Move menus from current TrackPanel into TrackInfo.
  • Convert TrackInfo from 'flyweight' to heavyweight.
  • Split GuiStereoTrack and GuiWaveTrack out from TrackPanel.

    JKC: Incremental refactoring started April/2003

    Possibly aiming for Gui classes something like this - it's under discussion:

   +----------------------------------------------------+
   |      AdornedRulerPanel                             |
   +----------------------------------------------------+
   +----------------------------------------------------+
   |+------------+ +-----------------------------------+|
   ||            | | (L)  GuiWaveTrack                 ||
   || TrackInfo  | +-----------------------------------+|
   ||            | +-----------------------------------+|
   ||            | | (R)  GuiWaveTrack                 ||
   |+------------+ +-----------------------------------+|
   +-------- GuiStereoTrack ----------------------------+
   +----------------------------------------------------+
   |+------------+ +-----------------------------------+|
   ||            | | (L)  GuiWaveTrack                 ||
   || TrackInfo  | +-----------------------------------+|
   ||            | +-----------------------------------+|
   ||            | | (R)  GuiWaveTrack                 ||
   |+------------+ +-----------------------------------+|
   +-------- GuiStereoTrack ----------------------------+

With the whole lot sitting in a TrackPanel which forwards events to the sub objects.

The GuiStereoTrack class will do the special logic for Stereo channel grouping.

The precise names of the classes are subject to revision. Have deliberately not created NEW files for the NEW classes such as AdornedRulerPanel and TrackInfo - yet.