Difference between revisions of "GSoC 2008 - Transitioning To wxAUI"

From Audacity Wiki
Jump to: navigation, search
Line 11: Line 11:
  
  
 +
 +
[[Image:wxAUI1.png|thumb|wxAUI: docked toolbars]]
 
===Global differences===
 
===Global differences===
 
The main difference to normal wxWidgets programs is that you need a framemanager (wxAuiMan-  
 
The main difference to normal wxWidgets programs is that you need a framemanager (wxAuiMan-  
Line 23: Line 25:
 
is well done, as most of the wxWidgets docs.  
 
is well done, as most of the wxWidgets docs.  
  
[[Image:wxAUI1.png|thumb|wxAUI: docked toolbars]]
 
  
 +
[[Image:wxAUI3.png|thumb|wxAUI: docking of toolbars]]
 
===Look and Feel===
 
===Look and Feel===
The major benefit from using wxAUI is the native look of the floating windows as well as the docked toolbars.
+
A major benefit from using wxAUI is the native look of the floating windows as well as the docked toolbars.
 
wxAUI uses native widgets to show the windows and therefore adapt very well into the native look and feel of the
 
wxAUI uses native widgets to show the windows and therefore adapt very well into the native look and feel of the
platforms. Compared to the user-drawn toolbars of Audacity this would be much more common to the end-users.
+
platforms. Compared to the user-drawn toolbars of Audacity this would be much more common to the end-user.
  
 +
The docking of panels is not native and even not as nice as Audacitys way.
 +
 +
[[Image:wxAUI2.png|thumb|wxAUI: named floating toolbars]]
 
===Accessibility===  
 
===Accessibility===  
 
One important thing is the compliance of wxAUI with accessibility features in Audacity. wxAUI  
 
One important thing is the compliance of wxAUI with accessibility features in Audacity. wxAUI  
uses normal wxWindows for showing the pane's content all accessibility features controlled by the wxWindow
+
uses normal wxWindows for showing the pane's content, so all accessibility features controlled by the wxWindow
will work without any major changes.
+
will work without any major changes. Most of them will even work without any change at all.
 +
 
 
Screen reader functionality in fact will benefit from the use of wxAUI, since control-panels can be named,
 
Screen reader functionality in fact will benefit from the use of wxAUI, since control-panels can be named,
 
which is read by screen readers.
 
which is read by screen readers.
 +
 +
===Flexibility===
 +
When transition to a new framework this should give you more flexibility than your old implementation.
 +
 +
There are big impairments of wxAUI. There is no simple way to create multiple-row panes. When ever you drag a
 +
smaler pane beneath a multiple-row pane it is expanded to the height of the biggest pane in the row.

Revision as of 23:42, 26 June 2008

Summer of Code 2008 logo
wxAUI (Advanced User Interface) is an addition to the wxWidgets GUI framework, which

gives the user a more modern and user-customizable interface with floatable windows. It is also themeable and specific configurations of controls can be saved. Since the workflow of an audio editor like Audacity is largely dependent on the task the user is performing Audacity could benefit a lot from having a customizable user interface. The natural way of achieving this is using the usual framework and since wxAUI is integrated into wxWidgets in its newer versions wxAUI is the natural way. Today Audacity uses its own implemtation of floatable windows and toolbars. This document should discuss the pros and cons of transitioning Audacity to the wxAUI framework and should show problems which may occur while doing it.


wxAUI: docked toolbars

Global differences

The main difference to normal wxWidgets programs is that you need a framemanager (wxAuiMan- ager) which manages all frames and toolbars. Though you can recursively add managed windows in Audacity one global wxAuiManager should do the job. After creating a wxAuiManager you have to add panes to it. This is a similar concept to sizers, which are widely used in Audacity. A pane is simply a wxWindow or a derived class. Though you can recursively add managed windows in Audacity one global wxAuiManager should do the job. Each Pane can have a lot of attributes, which are defined in a special wxAuiPaneInfo Object.

All this is a very perspicuous concept, which is easy to use. Its documentation is well done, as most of the wxWidgets docs.


wxAUI: docking of toolbars

Look and Feel

A major benefit from using wxAUI is the native look of the floating windows as well as the docked toolbars. wxAUI uses native widgets to show the windows and therefore adapt very well into the native look and feel of the platforms. Compared to the user-drawn toolbars of Audacity this would be much more common to the end-user.

The docking of panels is not native and even not as nice as Audacitys way.

wxAUI: named floating toolbars

Accessibility

One important thing is the compliance of wxAUI with accessibility features in Audacity. wxAUI uses normal wxWindows for showing the pane's content, so all accessibility features controlled by the wxWindow will work without any major changes. Most of them will even work without any change at all.

Screen reader functionality in fact will benefit from the use of wxAUI, since control-panels can be named, which is read by screen readers.

Flexibility

When transition to a new framework this should give you more flexibility than your old implementation.

There are big impairments of wxAUI. There is no simple way to create multiple-row panes. When ever you drag a smaler pane beneath a multiple-row pane it is expanded to the height of the biggest pane in the row.