From d81faa72c96680a5d757fb5295725786ab6abe36 Mon Sep 17 00:00:00 2001
From: Jeff Young <jeff@rokeby.ie>
Date: Sat, 11 Aug 2018 17:04:46 +0100
Subject: [PATCH] Overhaul border drawing in all the Kicad frames.

Primary change is to replace most control/window borders with
AUI pane borders.  We implement our own AUI border drawing
routine which avoids the ugly one-pixel white frames around
dark canvasses.

Also increases the signal-to-noise ratio of all the pane
creation code in the various frames.
---
 3d-viewer/3d_viewer/eda_3d_viewer.cpp         |  11 +-
 common/CMakeLists.txt                         |   1 +
 common/colors_design_settings.cpp             |   2 +-
 common/dialogs/dialog_page_settings.cpp       |   2 +-
 common/draw_frame.cpp                         |   4 +-
 common/draw_panel.cpp                         |   4 +-
 common/eda_base_frame.cpp                     |  19 --
 common/eda_dockart.cpp                        |  95 ++++++++
 common/kiway.cpp                              |   2 +-
 cvpcb/cvpcb_mainframe.cpp                     |  34 +--
 cvpcb/display_footprints_frame.cpp            |  40 +---
 cvpcb/footprints_listbox.cpp                  |   2 +-
 cvpcb/listboxes.h                             |   2 +-
 eeschema/lib_edit_frame.cpp                   |  33 +--
 eeschema/sch_base_frame.cpp                   |   3 +
 eeschema/sch_edit_frame.cpp                   |  42 +---
 eeschema/viewlib_frame.cpp                    |  74 ++----
 gerbview/events_called_functions.cpp          |   2 +-
 gerbview/gerbview_frame.cpp                   |  62 +----
 include/eda_base_frame.h                      | 125 +++++-----
 include/eda_dockart.h                         |  59 +++++
 include/frame_type.h                          |   2 +-
 include/pcb_base_frame.h                      |   2 +
 kicad/mainframe.cpp                           |  30 +--
 .../dialogs/properties_frame_base.cpp         |  72 +++---
 .../dialogs/properties_frame_base.fbp         | 220 ++++++++++++------
 .../dialogs/properties_frame_base.h           |   3 +-
 pagelayout_editor/pl_editor_frame.cpp         |  56 +----
 pcbnew/footprint_edit_frame.cpp               |  64 ++---
 pcbnew/footprint_editor_utils.cpp             |   2 +-
 pcbnew/footprint_viewer_frame.cpp             |  70 ++----
 pcbnew/footprint_wizard_frame.cpp             |  63 ++---
 pcbnew/pcb_base_frame.cpp                     |   7 +
 pcbnew/pcb_edit_frame.cpp                     |  76 ++----
 pcbnew/pcb_layer_widget.cpp                   |   3 +
 pcbnew/pcbnew.cpp                             |   2 +-
 pcbnew/tool_pcb_editor.cpp                    |   4 +-
 pcbnew/toolbars_update_user_interface.cpp     |   4 +-
 38 files changed, 598 insertions(+), 700 deletions(-)
 create mode 100644 common/eda_dockart.cpp
 create mode 100644 include/eda_dockart.h

diff --git a/3d-viewer/3d_viewer/eda_3d_viewer.cpp b/3d-viewer/3d_viewer/eda_3d_viewer.cpp
index a1b33aa485..44e8e39fa7 100644
--- a/3d-viewer/3d_viewer/eda_3d_viewer.cpp
+++ b/3d-viewer/3d_viewer/eda_3d_viewer.cpp
@@ -181,15 +181,8 @@ EDA_3D_VIEWER::EDA_3D_VIEWER( KIWAY *aKiway, PCB_BASE_FRAME *aParent,
 
     m_auimgr.SetManagedWindow( this );
 
-    EDA_PANEINFO horiztb;
-    horiztb.HorizontalToolbarPane();
-
-    m_auimgr.AddPane( m_mainToolBar,
-                      wxAuiPaneInfo( horiztb ).Name( wxT( "m_mainToolBar" ) ).Top() );
-
-    if( m_canvas )
-        m_auimgr.AddPane( m_canvas,
-                          wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
 
     m_auimgr.Update();
 
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index ca31d61c29..8755bc1a89 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -264,6 +264,7 @@ set( COMMON_SRCS
     eda_base_frame.cpp
     eda_dde.cpp
     eda_doc.cpp
+    eda_dockart.cpp
     eda_pattern_match.cpp
     eda_size_ctrl.cpp
     env_paths.cpp
diff --git a/common/colors_design_settings.cpp b/common/colors_design_settings.cpp
index 4a34f7737c..36ab086d97 100644
--- a/common/colors_design_settings.cpp
+++ b/common/colors_design_settings.cpp
@@ -189,7 +189,7 @@ void COLORS_DESIGN_SETTINGS::setupConfigParams()
 
     case FRAME_PCB_MODULE_VIEWER:
     case FRAME_PCB_MODULE_VIEWER_MODAL:
-    case FRAME_PCB_FOOTPRINT_WIZARD_MODAL:
+    case FRAME_PCB_FOOTPRINT_WIZARD:
     case FRAME_PCB_FOOTPRINT_PREVIEW:
         SetConfigPrefix( "fpview_" );
         break;
diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp
index 57b9705478..d5a11e6a0f 100644
--- a/common/dialogs/dialog_page_settings.cpp
+++ b/common/dialogs/dialog_page_settings.cpp
@@ -84,7 +84,7 @@ void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event )
     FRAME_T smallSizeFrames[] =
     {
         FRAME_PCB, FRAME_PCB_MODULE_EDITOR, FRAME_PCB_MODULE_VIEWER,
-        FRAME_PCB_MODULE_VIEWER_MODAL, FRAME_PCB_FOOTPRINT_WIZARD_MODAL,
+        FRAME_PCB_MODULE_VIEWER_MODAL, FRAME_PCB_FOOTPRINT_WIZARD,
         FRAME_PCB_FOOTPRINT_PREVIEW,
         FRAME_CVPCB_DISPLAY
     };
diff --git a/common/draw_frame.cpp b/common/draw_frame.cpp
index b716a8db1b..8e2249ccb4 100644
--- a/common/draw_frame.cpp
+++ b/common/draw_frame.cpp
@@ -1232,8 +1232,8 @@ void EDA_DRAW_FRAME::UseGalCanvas( bool aEnable )
     GetGalCanvas()->SetEvtHandlerEnabled( aEnable );
 
     // Switch panes
-    m_auimgr.GetPane( wxT( "DrawFrame" ) ).Show( !aEnable );
-    m_auimgr.GetPane( wxT( "DrawFrameGal" ) ).Show( aEnable );
+    m_auimgr.GetPane( "DrawFrame" ).Show( !aEnable );
+    m_auimgr.GetPane( "DrawFrameGal" ).Show( aEnable );
     m_auimgr.Update();
 
     // Reset current tool on switch();
diff --git a/common/draw_panel.cpp b/common/draw_panel.cpp
index f6a8eae62d..8ffb1af044 100644
--- a/common/draw_panel.cpp
+++ b/common/draw_panel.cpp
@@ -79,9 +79,9 @@ END_EVENT_TABLE()
 /***********************************************************************/
 
 #ifdef __WXMAC__
-const int drawPanelStyle = wxBORDER | wxHSCROLL | wxVSCROLL | wxALWAYS_SHOW_SB;
+const int drawPanelStyle = wxHSCROLL | wxVSCROLL | wxALWAYS_SHOW_SB;
 #else
-const int drawPanelStyle = wxBORDER | wxHSCROLL | wxVSCROLL;
+const int drawPanelStyle = wxHSCROLL | wxVSCROLL;
 #endif
 
 EDA_DRAW_PANEL::EDA_DRAW_PANEL( EDA_DRAW_FRAME* parent, int id,
diff --git a/common/eda_base_frame.cpp b/common/eda_base_frame.cpp
index 82f13689d8..bdeb6a4a4a 100644
--- a/common/eda_base_frame.cpp
+++ b/common/eda_base_frame.cpp
@@ -95,9 +95,6 @@ EDA_BASE_FRAME::EDA_BASE_FRAME( wxWindow* aParent, FRAME_T aFrameType,
     // hook wxEVT_CLOSE_WINDOW so we can call SaveSettings().  This function seems
     // to be called before any other hook for wxCloseEvent, which is necessary.
     Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( EDA_BASE_FRAME::windowClosing ) );
-
-    // remove border from wxAui panes for all derived classes
-    Connect( wxEVT_SHOW, wxShowEventHandler( EDA_BASE_FRAME::removePaneBorder ) );
 }
 
 
@@ -148,22 +145,6 @@ void EDA_BASE_FRAME::windowClosing( wxCloseEvent& event )
 }
 
 
-void EDA_BASE_FRAME::removePaneBorder( wxShowEvent& event )
-{
-    // nothing to be set
-    if( !m_auimgr.GetManagedWindow() )
-        return;
-
-    // remove the ugly 1-pixel white border on AUI panes
-    wxAuiPaneInfoArray panes = m_auimgr.GetAllPanes();
-
-    for( size_t i = 0; i < panes.GetCount(); i++ )
-        m_auimgr.GetPane( panes.Item( i ).name ).PaneBorder( false );
-
-    m_auimgr.Update();
-}
-
-
 EDA_BASE_FRAME::~EDA_BASE_FRAME()
 {
     delete m_autoSaveTimer;
diff --git a/common/eda_dockart.cpp b/common/eda_dockart.cpp
new file mode 100644
index 0000000000..64e672dcda
--- /dev/null
+++ b/common/eda_dockart.cpp
@@ -0,0 +1,95 @@
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, you may find one here:
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * or you may search the http://www.gnu.org website for the version 2 license,
+ * or you may write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+
+#include <eda_dockart.h>
+#include <wx/aui/tabart.h>
+#include <wx/aui/auibook.h>
+#include <class_draw_panel_gal.h>
+#include <class_drawpanel.h>
+#include <draw_frame.h>
+
+void EDA_DOCKART::DrawBorder( wxDC& aDC, wxWindow* aWindow, const wxRect& aRect,
+                              wxAuiPaneInfo& aPane )
+{
+    const wxRect& r = aRect;
+    aDC.SetPen( m_borderPen );
+    aDC.SetBrush( *wxTRANSPARENT_BRUSH );
+
+    // notebooks draw the border themselves, so they can use native rendering (e.g. tabartgtk)
+    wxAuiTabArt* art = nullptr;
+    wxAuiNotebook* nb = wxDynamicCast( aWindow, wxAuiNotebook );
+
+    if( nb )
+        art = nb->GetArtProvider();
+
+    if( art )
+    {
+        art->DrawBorder( aDC, aWindow, r );
+    }
+    else if( aPane.name == "DrawFrame" || aPane.name == "DrawFrameGal" )
+    {
+        // We don't want to re-write the layout manager, so we give the canvas a single-pixel
+        // border and then fill in the top and left with the canvas background colour.
+        //
+        // This achieves a right-bottom-bordered canvas, which works reasonably well with
+        // wxWidgets right-bottom bordered toolbars.
+
+        wxWindow* window = m_frame->GetCanvas();
+        wxSize scrollbarSize = window->GetSize() - window->GetClientSize();
+        // Not sure why it takes a pen twice as wide as the border to fill it in, but it does.
+        int borderWidth = GetMetric( wxAUI_DOCKART_PANE_BORDER_SIZE ) * 2;
+        int borderAdjust = borderWidth;
+
+        aDC.SetPen( wxPen( m_frame->GetDrawBgColor().ToColour(), borderWidth ) );
+
+        // Yes, this leaves me scratching my head too.
+        if( m_frame->IsType( FRAME_PCB )
+         || m_frame->IsType( FRAME_PCB_MODULE_EDITOR )
+         || m_frame->IsType( FRAME_PCB_MODULE_VIEWER )
+         || m_frame->IsType( FRAME_PCB_MODULE_VIEWER_MODAL )
+         || m_frame->IsType( FRAME_GERBER ) )
+        {
+            borderAdjust += 1;
+        }
+
+        // left
+        aDC.DrawLine( r.x + 1, r.y, r.x + 1, r.y + r.height - borderAdjust - scrollbarSize.y );
+        // top
+        aDC.DrawLine( r.x + 1, r.y, r.x + r.width - borderAdjust - scrollbarSize.x, r.y );
+
+        aDC.SetPen( m_borderPen );
+
+        // finish off bottom of left side (at end of scrollbar)
+        aDC.DrawLine( r.x, r.y + r.height - 1 - scrollbarSize.y, r.x, r.y + r.height - 1 );
+        // right
+        aDC.DrawLine( r.x + r.width, r.y, r.x + r.width, r.y + r.height - 1 );
+        // bottom
+        aDC.DrawLine( r.x, r.y + r.height - 1, r.x + r.width - 1, r.y + r.height - 1 );
+    }
+    else
+    {
+        aDC.DrawRectangle( r );
+    }
+}
+
+
diff --git a/common/kiway.cpp b/common/kiway.cpp
index ad7423726a..b9805b1a13 100644
--- a/common/kiway.cpp
+++ b/common/kiway.cpp
@@ -262,7 +262,7 @@ KIWAY::FACE_T KIWAY::KifaceType( FRAME_T aFrameType )
     case FRAME_PCB_MODULE_EDITOR:
     case FRAME_PCB_MODULE_VIEWER:
     case FRAME_PCB_MODULE_VIEWER_MODAL:
-    case FRAME_PCB_FOOTPRINT_WIZARD_MODAL:
+    case FRAME_PCB_FOOTPRINT_WIZARD:
     case FRAME_PCB_DISPLAY3D:
         return FACE_PCB;
 
diff --git a/cvpcb/cvpcb_mainframe.cpp b/cvpcb/cvpcb_mainframe.cpp
index 2223914010..144f360a2b 100644
--- a/cvpcb/cvpcb_mainframe.cpp
+++ b/cvpcb/cvpcb_mainframe.cpp
@@ -148,32 +148,18 @@ CVPCB_MAINFRAME::CVPCB_MAINFRAME( KIWAY* aKiway, wxWindow* aParent ) :
 
     m_auimgr.SetManagedWindow( this );
 
-    EDA_PANEINFO horiz;
-    horiz.HorizontalToolbarPane();
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
 
-    EDA_PANEINFO layers;
-    layers.LayersToolbarPane();
+    m_auimgr.AddPane( m_libListBox, EDA_PANE().Palette().Name( "Libraries" ).Left().Layer(1)
+                      .Caption( _( "Footprint Libraries" ) )
+                      .BestSize( (int) ( m_FrameSize.x * 0.20 ), m_FrameSize.y ) );
 
-    if( m_mainToolBar )
-        m_auimgr.AddPane( m_mainToolBar,
-                          wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top() );
+    m_auimgr.AddPane( m_compListBox, EDA_PANE().Palette().Name( "Components" ).Center().Layer(0)
+                      .Caption( _( "Symbol : Footprint Assignments" ) ) );
 
-    if( m_compListBox )
-        m_auimgr.AddPane( m_compListBox,
-                          wxAuiPaneInfo( layers ).Name( wxT( "m_compListBox" ) )
-                          .Caption( _( "Symbol : Footprint Assignments" ) ).Center() );
-
-    if( m_libListBox)
-        m_auimgr.AddPane( m_libListBox,
-                          wxAuiPaneInfo( layers ).Name( wxT( "m_libListBox" ) )
-                          .Caption( _( "Footprint Libraries" ) )
-                          .Left().BestSize( (int) ( m_FrameSize.x * 0.20 ), m_FrameSize.y ) );
-
-    if( m_footprintListBox )
-        m_auimgr.AddPane( m_footprintListBox,
-                          wxAuiPaneInfo( layers ).Name( wxT( "m_footprintListBox" ) )
-                          .Caption( _( "Filtered Footprints" ) )
-                          .Right().BestSize( (int) ( m_FrameSize.x * 0.30 ), m_FrameSize.y ) );
+    m_auimgr.AddPane( m_footprintListBox, EDA_PANE().Palette().Name( "Footprints" ).Right().Layer(1)
+                      .Caption( _( "Filtered Footprints" ) )
+                      .BestSize( (int) ( m_FrameSize.x * 0.30 ), m_FrameSize.y ) );
 
     // Build the bottom panel, to display 2 status texts and the buttons:
     auto bottomPanel = new wxPanel( this );
@@ -221,7 +207,7 @@ CVPCB_MAINFRAME::CVPCB_MAINFRAME( KIWAY* aKiway, wxWindow* aParent ) :
 
     sdbSizerOK->SetDefault();
 
-    m_auimgr.AddPane( bottomPanel, wxAuiPaneInfo( horiz ).Name( wxT( "buttons" ) ).Bottom() );
+    m_auimgr.AddPane( bottomPanel, EDA_PANE().HToolbar().Name( "Buttons" ).Bottom().Layer(6) );
 
     m_auimgr.Update();
     m_initialized = true;
diff --git a/cvpcb/display_footprints_frame.cpp b/cvpcb/display_footprints_frame.cpp
index 50296b9add..dc023045e4 100644
--- a/cvpcb/display_footprints_frame.cpp
+++ b/cvpcb/display_footprints_frame.cpp
@@ -40,6 +40,7 @@
 #include <wildcards_and_files_ext.h>
 #include <lib_id.h>
 #include <fp_lib_table.h>
+#include <eda_dockart.h>
 
 #include <io_mgr.h>
 #include <class_module.h>
@@ -119,42 +120,20 @@ DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( KIWAY* aKiway, wxWindow* aPa
 
     // Create GAL canvas
     EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
-    //EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE;
-    PCB_DRAW_PANEL_GAL* gal_drawPanel = new PCB_DRAW_PANEL_GAL( this, -1, wxPoint( 0, 0 ), m_FrameSize,
-                                                            GetGalDisplayOptions(), backend );
+    auto* gal_drawPanel = new PCB_DRAW_PANEL_GAL( this, -1, wxPoint( 0, 0 ), m_FrameSize,
+                                                  GetGalDisplayOptions(), backend );
     SetGalCanvas( gal_drawPanel );
 
     m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    EDA_PANEINFO horiz;
-    horiz.HorizontalToolbarPane();
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    EDA_PANEINFO vert;
-    vert.VerticalToolbarPane();
+    m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
 
-    EDA_PANEINFO mesg;
-    mesg.MessageToolbarPane();
-
-    m_auimgr.AddPane( m_mainToolBar,
-                      wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top(). Row( 0 ) );
-
-    if( m_drawToolBar )    // Currently, no vertical right toolbar.
-        m_auimgr.AddPane( m_drawToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_drawToolBar" ) ).Right() );
-
-    if( m_canvas )
-        m_auimgr.AddPane( m_canvas,
-                      wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
-
-    if( GetGalCanvas() )
-        m_auimgr.AddPane( (wxWindow*) GetGalCanvas(),
-                          wxAuiPaneInfo().Name( wxT( "DrawFrameGal" ) ).CentrePane().Hide() );
-
-    m_auimgr.AddPane( m_messagePanel,
-                      wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(10) );
-
-    m_auimgr.AddPane( m_optionsToolBar,
-                      wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center().Hide() );
+    m_auimgr.AddPane( GetGalCanvas(), EDA_PANE().Canvas().Name( "DrawFrameGal" ).Center() );
 
     m_auimgr.Update();
 
@@ -180,7 +159,6 @@ DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( KIWAY* aKiway, wxWindow* aPa
     UseGalCanvas( backend != EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE );
     updateView();
 
-
     Show( true );
 }
 
diff --git a/cvpcb/footprints_listbox.cpp b/cvpcb/footprints_listbox.cpp
index 295b51d3fd..11b1df27b2 100644
--- a/cvpcb/footprints_listbox.cpp
+++ b/cvpcb/footprints_listbox.cpp
@@ -41,7 +41,7 @@
 FOOTPRINTS_LISTBOX::FOOTPRINTS_LISTBOX( CVPCB_MAINFRAME* parent,
                                         wxWindowID id, const wxPoint& loc,
                                         const wxSize& size ) :
-    ITEMS_LISTBOX_BASE( parent, id, loc, size, wxLC_SINGLE_SEL )
+    ITEMS_LISTBOX_BASE( parent, id, loc, size, wxLC_SINGLE_SEL | wxNO_BORDER )
 {
 }
 
diff --git a/cvpcb/listboxes.h b/cvpcb/listboxes.h
index 7f8c89d00a..5d7be68b2f 100644
--- a/cvpcb/listboxes.h
+++ b/cvpcb/listboxes.h
@@ -36,7 +36,7 @@ class CVPCB_MAINFRAME;
 class COMPONENT;
 class FOOTPRINT_LIST;
 
-#define LISTBOX_STYLE     ( wxBORDER_SIMPLE | wxLC_NO_HEADER | wxLC_REPORT | wxLC_VIRTUAL | \
+#define LISTBOX_STYLE     ( wxBORDER_NONE | wxLC_NO_HEADER | wxLC_REPORT | wxLC_VIRTUAL | \
                             wxVSCROLL | wxHSCROLL )
 
 /*********************************************************************/
diff --git a/eeschema/lib_edit_frame.cpp b/eeschema/lib_edit_frame.cpp
index e603dc4105..2ed40b7090 100644
--- a/eeschema/lib_edit_frame.cpp
+++ b/eeschema/lib_edit_frame.cpp
@@ -39,6 +39,7 @@
 #include <sch_edit_frame.h>
 #include <msgpanel.h>
 #include <confirm.h>
+#include <eda_dockart.h>
 
 #include <general.h>
 #include <eeschema_id.h>
@@ -276,34 +277,18 @@ LIB_EDIT_FRAME::LIB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
     UpdatePartSelectList();
 
     m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    EDA_PANEINFO horiz;
-    horiz.HorizontalToolbarPane();
 
-    EDA_PANEINFO vert;
-    vert.VerticalToolbarPane();
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    EDA_PANEINFO mesg;
-    mesg.MessageToolbarPane();
+    m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
+    m_auimgr.AddPane( m_treePane, EDA_PANE().Palette().Name( "ComponentTree" ).Left().Layer(1)
+                      .Caption( _( "Libraries" ) ).MinSize( 250, -1 ).Resizable() );
+    m_auimgr.AddPane( m_drawToolBar, EDA_PANE().VToolbar().Name( "ToolsToolbar" ).Right().Layer(1) );
 
-    m_auimgr.AddPane( m_mainToolBar,
-                      wxAuiPaneInfo( horiz ).Name( "m_mainToolBar" ).Top().Row( 0 ) );
-
-    m_auimgr.AddPane( m_drawToolBar,
-                      wxAuiPaneInfo( vert ).Name( "m_VToolBar" ).Right() );
-
-    m_auimgr.AddPane( m_optionsToolBar,
-                      wxAuiPaneInfo( vert ).Name( "m_optionsToolBar" ).Left().Row( 0 ) );
-
-    m_auimgr.AddPane( m_canvas,
-                      wxAuiPaneInfo().Name( "DrawFrame" ).CentrePane() );
-
-    m_auimgr.AddPane( m_messagePanel,
-                      wxAuiPaneInfo( mesg ).Name( "MsgPanel" ).Bottom().Layer( 10 ) );
-
-    m_auimgr.AddPane( m_treePane,
-                      wxAuiPaneInfo().Name( "ComponentTree" ).Caption( _( "Libraries" ) ).Left()
-                      .Row( 1 ).Resizable().MinSize( 250, 400 ).Dock().CloseButton( false ) );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
 
     m_auimgr.Update();
 
diff --git a/eeschema/sch_base_frame.cpp b/eeschema/sch_base_frame.cpp
index 95f56f5aa5..64159e59cb 100644
--- a/eeschema/sch_base_frame.cpp
+++ b/eeschema/sch_base_frame.cpp
@@ -128,6 +128,9 @@ void SCH_BASE_FRAME::SetDrawBgColor( COLOR4D aColor )
 {
     m_drawBgColor= aColor;
     SetLayerColor( aColor, LAYER_SCHEMATIC_BACKGROUND );
+
+    if( m_auimgr.GetManagedWindow() )
+        m_auimgr.Update();
 }
 
 
diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp
index 029fd48cd1..e08a167f60 100644
--- a/eeschema/sch_edit_frame.cpp
+++ b/eeschema/sch_edit_frame.cpp
@@ -37,6 +37,7 @@
 #include <msgpanel.h>
 #include <html_messagebox.h>
 #include <executable_names.h>
+#include <eda_dockart.h>
 
 #include <general.h>
 #include <eeschema_id.h>
@@ -394,8 +395,7 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ):
 
     SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
 
-    if( m_canvas )
-        m_canvas->SetEnableBlockCommands( true );
+    m_canvas->SetEnableBlockCommands( true );
 
     ReCreateMenuBar();
     ReCreateHToolbar();
@@ -409,33 +409,13 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ):
     m_pageSetupData.GetPrintData().SetNoCopies( 1 );
 
     m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    EDA_PANEINFO horiz;
-    horiz.HorizontalToolbarPane();
-
-    EDA_PANEINFO vert;
-    vert.VerticalToolbarPane();
-
-    EDA_PANEINFO mesg;
-    mesg.MessageToolbarPane();
-
-    if( m_mainToolBar )
-        m_auimgr.AddPane( m_mainToolBar,
-                          wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top().Row( 0 ) );
-
-    if( m_drawToolBar )
-        m_auimgr.AddPane( m_drawToolBar, wxAuiPaneInfo( vert ).Name( wxT( "m_drawToolBar" ) ).Right() );
-
-    if( m_optionsToolBar )
-        m_auimgr.AddPane( m_optionsToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() );
-
-    if( m_canvas )
-        m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
-
-    if( m_messagePanel )
-        m_auimgr.AddPane( m_messagePanel, wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().
-                          Layer(10) );
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
+    m_auimgr.AddPane( m_drawToolBar, EDA_PANE().VToolbar().Name( "ToolsToolbar" ).Right().Layer(1) );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
     m_auimgr.Update();
 
@@ -460,15 +440,11 @@ SCH_EDIT_FRAME::~SCH_EDIT_FRAME()
 
     delete m_CurrentSheet;          // a SCH_SHEET_PATH, on the heap.
     delete m_undoItem;
-    delete g_RootSheet;
     delete m_findReplaceData;
     delete m_findReplaceStatus;
 
-    m_CurrentSheet = NULL;
-    m_undoItem = NULL;
+    delete g_RootSheet;
     g_RootSheet = NULL;
-    m_findReplaceData = NULL;
-    m_findReplaceStatus = NULL;
 }
 
 
diff --git a/eeschema/viewlib_frame.cpp b/eeschema/viewlib_frame.cpp
index 3419c6eff0..19369f64de 100644
--- a/eeschema/viewlib_frame.cpp
+++ b/eeschema/viewlib_frame.cpp
@@ -33,7 +33,7 @@
 #include <class_drawpanel.h>
 #include <msgpanel.h>
 #include <bitmaps.h>
-
+#include <eda_dockart.h>
 #include <sch_edit_frame.h>
 #include <eeschema_id.h>
 #include <general.h>
@@ -141,8 +141,10 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrame
     SetIcon( icon );
 
     m_hotkeysDescrList = g_Viewlib_Hokeys_Descr;
-    m_cmpList   = NULL;
-    m_libList   = NULL;
+    m_libList = NULL;
+    m_cmpList = NULL;
+    m_libListWidth = 200;
+    m_cmpListWidth = 300;
     m_listPowerCmpOnly = false;
     SetShowElectricalType( true );
 
@@ -162,12 +164,15 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrame
     ReCreateHToolbar();
     ReCreateVToolbar();
 
+    m_libList = new wxListBox( this, ID_LIBVIEW_LIB_LIST, wxDefaultPosition, wxDefaultSize,
+                               0, NULL, wxLB_HSCROLL | wxNO_BORDER );
+
+    m_cmpList = new wxListBox( this, ID_LIBVIEW_CMP_LIST, wxDefaultPosition, wxDefaultSize,
+                               0, NULL, wxLB_HSCROLL | wxNO_BORDER );
+
     if( aLibraryName.empty() )
     {
-        // Creates the libraries window display
-        m_libList = new wxListBox( this, ID_LIBVIEW_LIB_LIST,
-                                   wxPoint( 0, 0 ), wxSize( m_libListWidth, -1 ),
-                                   0, NULL, wxLB_HSCROLL );
+        ReCreateListLib();
     }
     else
     {
@@ -175,64 +180,27 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrame
         m_entryName.Clear();
         m_unit = 1;
         m_convert = 1;
-        m_libListWidth = 0;
     }
 
     m_selection_changed = false;
 
-    // Creates the component window display
-    m_cmpList = new wxListBox( this, ID_LIBVIEW_CMP_LIST, wxPoint( 0, 0 ),
-                               wxSize( m_cmpListWidth, -1 ), 0, NULL, wxLB_HSCROLL );
-
-    if( m_libList )
-        ReCreateListLib();
-
     DisplayLibInfos();
 
     m_auimgr.SetManagedWindow( this );
-
-    EDA_PANEINFO horiz;
-    horiz.HorizontalToolbarPane();
-
-    EDA_PANEINFO vert;
-    vert.VerticalToolbarPane();
-
-    EDA_PANEINFO info;
-    info.InfoToolbarPane();
-
-    EDA_PANEINFO mesg;
-    mesg.MessageToolbarPane();
-
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
     // Manage main toolbar
-    m_auimgr.AddPane( m_mainToolBar,
-                      wxAuiPaneInfo( horiz ).Name( "m_mainToolBar" ).Top().Row( 0 ) );
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    // Manage the left window (list of libraries)
-    if( m_libList )
-        m_auimgr.AddPane( m_libList, wxAuiPaneInfo( info ).Name( "m_libList" ).Left().Row( 0 ) );
+    m_auimgr.AddPane( m_libList, EDA_PANE().Palette().Name( "Libraries" ).Left().Layer(3)
+                      .CaptionVisible( false ).MinSize( 80, -1 ).BestSize( m_libListWidth, -1 ) );
+    m_auimgr.AddPane( m_cmpList, EDA_PANE().Palette().Name( "Symbols" ).Left().Layer(1)
+                      .CaptionVisible( false ).MinSize( 80, -1 ).BestSize( m_cmpListWidth, -1 ) );
 
-    // Manage the list of components)
-    m_auimgr.AddPane( m_cmpList, wxAuiPaneInfo( info ).Name( "m_cmpList" ).Left().Row( 1 ) );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
 
-    // Manage the draw panel
-    m_auimgr.AddPane( m_canvas, wxAuiPaneInfo().Name( "DrawFrame" ).CentrePane() );
-
-    // Manage the message panel
-    m_auimgr.AddPane( m_messagePanel,
-                      wxAuiPaneInfo( mesg ).Name( "MsgPanel" ).Bottom().Layer( 10 ) );
-
-    /* Now the minimum windows are fixed, set library list
-     * and component list of the previous values from last viewlib use
-     */
-    if( m_libList )
-    {
-        m_auimgr.GetPane( m_libList ).MinSize( wxSize( 80, -1 ) );
-        m_auimgr.GetPane( m_libList ).BestSize( wxSize( m_libListWidth, -1 ) );
-    }
-
-    m_auimgr.GetPane( m_cmpList ).MinSize( wxSize( 80, -1) );
-    m_auimgr.GetPane( m_cmpList ).BestSize( wxSize( m_cmpListWidth, -1 ) );
+    m_auimgr.GetPane( m_libList ).Show( aLibraryName.empty() );
 
     m_auimgr.Update();
 
diff --git a/gerbview/events_called_functions.cpp b/gerbview/events_called_functions.cpp
index 5faa8369ef..29bbbdf24c 100644
--- a/gerbview/events_called_functions.cpp
+++ b/gerbview/events_called_functions.cpp
@@ -444,7 +444,7 @@ void GERBVIEW_FRAME::OnToggleShowLayerManager( wxCommandEvent& aEvent )
     m_show_layer_manager_tools = !m_show_layer_manager_tools;
 
     // show/hide auxiliary Vertical layers and visibility manager toolbar
-    m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );
+    m_auimgr.GetPane( "LayersManager" ).Show( m_show_layer_manager_tools );
     m_auimgr.Update();
 }
 
diff --git a/gerbview/gerbview_frame.cpp b/gerbview/gerbview_frame.cpp
index 61a1e69a9f..ec656a0df0 100644
--- a/gerbview/gerbview_frame.cpp
+++ b/gerbview/gerbview_frame.cpp
@@ -34,6 +34,7 @@
 #include <msgpanel.h>
 #include <bitmaps.h>
 #include <wildcards_and_files_ext.h>
+#include <eda_dockart.h>
 
 #include <gerbview.h>
 #include <gerbview_frame.h>
@@ -134,64 +135,25 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent ):
 
     GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId  );
 
-    m_auimgr.SetManagedWindow( this );
-
     ReCreateMenuBar();
     ReCreateHToolbar();
     ReCreateOptToolbar();
     ReCreateAuxiliaryToolbar();
 
-    EDA_PANEINFO    horiz;
-    horiz.HorizontalToolbarPane();
+    m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    EDA_PANEINFO    vert;
-    vert.VerticalToolbarPane();
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_auxiliaryToolBar, EDA_PANE().HToolbar().Name( "AuxToolbar" ).Top().Layer(4) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    EDA_PANEINFO    mesg;
-    mesg.MessageToolbarPane();
+    m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
+    m_auimgr.AddPane( m_LayersManager, EDA_PANE().Palette().Name( "LayersManager" ).Right().Layer(3)
+                      .Caption( _( "Layers Manager" ) ).PaneBorder( false )
+                      .MinSize( 80, -1 ).BestSize( m_LayersManager->GetBestSize() ) );
 
-    // Create a wxAuiPaneInfo for the Layers Manager, not derived from the template.
-    // the Layers Manager is floatable, but initially docked at far right
-    EDA_PANEINFO    lyrs;
-    lyrs.LayersToolbarPane();
-    lyrs.MinSize( m_LayersManager->GetBestSize() );
-    lyrs.BestSize( m_LayersManager->GetBestSize() );
-    lyrs.Caption( _( "Visibles" ) );
-    lyrs.TopDockable( false ).BottomDockable( false );
-
-
-    if( m_mainToolBar )
-        m_auimgr.AddPane( m_mainToolBar,
-                          wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top().Row( 0 ) );
-
-    if( m_auxiliaryToolBar )    // the auxiliary horizontal toolbar, that shows component and netname lists
-    {
-        m_auimgr.AddPane( m_auxiliaryToolBar,
-                          wxAuiPaneInfo( horiz ).Name( wxT( "m_auxiliaryToolBar" ) ).Top().Row( 1 ) );
-    }
-
-    if( m_drawToolBar )
-        m_auimgr.AddPane( m_drawToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_drawToolBar" ) ).Right().Row( 1 ) );
-
-    m_auimgr.AddPane( m_LayersManager,
-                      lyrs.Name( wxT( "m_LayersManagerToolBar" ) ).Right().Layer( 0 ) );
-
-    if( m_optionsToolBar )
-        m_auimgr.AddPane( m_optionsToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() );
-
-    if( m_canvas )
-        m_auimgr.AddPane( m_canvas,
-                          wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
-
-    if( GetGalCanvas() )
-        m_auimgr.AddPane( (wxWindow*) GetGalCanvas(),
-                          wxAuiPaneInfo().Name( wxT( "DrawFrameGal" ) ).CentrePane().Hide() );
-
-    if( m_messagePanel )
-        m_auimgr.AddPane( m_messagePanel,
-                          wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer( 10 ) );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center().Hide() );
+    m_auimgr.AddPane( GetGalCanvas(), EDA_PANE().Canvas().Name( "DrawFrameGal" ).Center() );
 
     ReFillLayerWidget();                // this is near end because contents establish size
     m_auimgr.Update();
diff --git a/include/eda_base_frame.h b/include/eda_base_frame.h
index 4d9a0797f4..8049f8924e 100644
--- a/include/eda_base_frame.h
+++ b/include/eda_base_frame.h
@@ -126,11 +126,6 @@ class EDA_BASE_FRAME : public wxFrame
 
     wxWindow* findQuasiModalDialog();
 
-    /**
-     * Removes border from wxAui panes.
-     */
-    void removePaneBorder( wxShowEvent& event );
-
 protected:
     FRAME_T      m_Ident;           ///< Id Type (pcb, schematic, library..)
     wxPoint      m_FramePos;
@@ -440,85 +435,81 @@ public:
  * then after a //==// break has additional calls to anchor toolbars in a way that matches
  * present functionality.
  */
-class EDA_PANEINFO : public wxAuiPaneInfo
+class EDA_PANE : public wxAuiPaneInfo
 {
-
 public:
-
-    /**
-     * Function HorizontalToolbarPane
-     * Change *this to a horizontal toolbar for KiCad.
-     */
-    EDA_PANEINFO& HorizontalToolbarPane()
+    EDA_PANE()
     {
-        ToolbarPane();
-        CloseButton( false );
-        LeftDockable( false );
-        RightDockable( false );
-        //====================  Remove calls below here for movable toolbars //
         Gripper( false );
-        DockFixed( true );
-        Movable( false );
-        Resizable( true );
-        return *this;
+        CloseButton( false );
+        PaneBorder( false );
     }
 
     /**
-     * Function VerticalToolbarPane
-     * Change *this to a vertical toolbar for KiCad.
+     * Function HToolbar
+     * Turn *this to a horizontal toolbar for KiCad.
      */
-    EDA_PANEINFO& VerticalToolbarPane()
+    EDA_PANE& HToolbar()
     {
-        ToolbarPane();
-        CloseButton( false );
-        TopDockable( false );
-        BottomDockable( false );
-        //====================  Remove calls below here for movable toolbars //
-        Gripper( false );
-        DockFixed( true );
-        Movable( false );
-        Resizable( true );
-        return *this;
-    }
-
-    /**
-     * Function MessageToolbarPane
-     * Change *this to a message pane for KiCad.
-     *
-     */
-    EDA_PANEINFO& MessageToolbarPane()
-    {
-        Gripper( false );
-        DockFixed( true );
-        Movable( false );
-        Floatable( false );
-        CloseButton( false );
+        SetFlag( optionToolbar, true );
         CaptionVisible( false );
+        TopDockable().BottomDockable();
+        DockFixed( true );
+        Movable( false );
+        Resizable( true );      // expand to fit available space
         return *this;
     }
 
     /**
-     * Function LayersToolbarPane
-     * Change *this to a layers toolbar for KiCad.
+     * Function VToolbar
+     * Turn *this into a vertical toolbar for KiCad.
      */
-    EDA_PANEINFO& LayersToolbarPane()
+    EDA_PANE& VToolbar()
     {
-        CloseButton( false );
-        return *this;
-    }
-
-    /**
-     * Function InfoToolbarPane
-     * Change *this to a information panel for for KiCad.
-     *
-     * Info panes are used for vertical display of information next to the center pane.
-     * Used in CvPcb and the library viewer primarily.
-     */
-    EDA_PANEINFO& InfoToolbarPane()
-    {
-        Gripper( false );
-        CloseButton( false );
+        SetFlag( optionToolbar, true );
         CaptionVisible( false );
+        LeftDockable().RightDockable();
+        DockFixed( true );
+        Movable( false );
+        Resizable( true );      // expand to fit available space
+        return *this;
+    }
+
+    /**
+     * Function Palette
+     * Turn *this into a captioned palette suitable for a symbol tree, layers manager, etc.
+     */
+    EDA_PANE& Palette()
+    {
+        CaptionVisible( true );
+        PaneBorder( true );
+        return *this;
+    }
+
+    /**
+     * Function Canvas
+     * Turn *this into an undecorated pane suitable for a drawing canvas.
+     */
+    EDA_PANE& Canvas()
+    {
+        CaptionVisible( false );
+        Layer( 0 );
+        PaneBorder( true );
+        Resizable( true );      // expand to fit available space
+        return *this;
+    }
+
+    /**
+     * Function Messages
+     * Turn *this into a messages pane for KiCad.
+     */
+    EDA_PANE& Messages()
+    {
+        CaptionVisible( false );
+        BottomDockable( true );
+        DockFixed( true );
+        Movable( false );
+        Resizable( true );      // expand to fit available space
         return *this;
     }
 };
diff --git a/include/eda_dockart.h b/include/eda_dockart.h
new file mode 100644
index 0000000000..a58ca54f60
--- /dev/null
+++ b/include/eda_dockart.h
@@ -0,0 +1,59 @@
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, you may find one here:
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ * or you may search the http://www.gnu.org website for the version 2 license,
+ * or you may write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+
+
+#ifndef EDA_DOCKART_H
+#define EDA_DOCKART_H
+
+#include <wx/aui/aui.h>
+#include <wx/aui/dockart.h>
+#include <wx/aui/framemanager.h>
+
+class EDA_DRAW_FRAME;
+
+
+class EDA_DOCKART : public wxAuiDefaultDockArt
+{
+private:
+    EDA_DRAW_FRAME* m_frame;
+
+public:
+    EDA_DOCKART( EDA_DRAW_FRAME* aParent ) :
+        m_frame( aParent )
+    {
+        SetMetric( wxAUI_DOCKART_PANE_BORDER_SIZE, 1 );
+    }
+
+    /**
+     * Draw borders for Kicad AUI panes.
+     *
+     * The principal specialization over wxWidgets' default borders is the absence of a
+     * white single-pixel frame (which looks particularly poor on canvasses with dark
+     * backgrounds).
+     */
+    void DrawBorder( wxDC& aDC, wxWindow* aWindow, const wxRect& r,
+                     wxAuiPaneInfo& aPane ) override;
+};
+
+
+#endif //EDA_DOCKART_H
diff --git a/include/frame_type.h b/include/frame_type.h
index 8aa8256d50..9aa151678f 100644
--- a/include/frame_type.h
+++ b/include/frame_type.h
@@ -43,7 +43,7 @@ enum FRAME_T
     FRAME_PCB_MODULE_EDITOR,
     FRAME_PCB_MODULE_VIEWER,
     FRAME_PCB_MODULE_VIEWER_MODAL,
-    FRAME_PCB_FOOTPRINT_WIZARD_MODAL,
+    FRAME_PCB_FOOTPRINT_WIZARD,
     FRAME_PCB_DISPLAY3D,
     FRAME_PCB_FOOTPRINT_PREVIEW,
 
diff --git a/include/pcb_base_frame.h b/include/pcb_base_frame.h
index b8e94ba5a7..43eff1ff50 100644
--- a/include/pcb_base_frame.h
+++ b/include/pcb_base_frame.h
@@ -154,6 +154,8 @@ public:
     virtual BOARD_DESIGN_SETTINGS& GetDesignSettings() const;
     virtual void SetDesignSettings( const BOARD_DESIGN_SETTINGS& aSettings );
 
+    void SetDrawBgColor( COLOR4D aColor ) override;
+
     /**
      * Function GetDisplayOptions
      * returns the display options current in use
diff --git a/kicad/mainframe.cpp b/kicad/mainframe.cpp
index e980e12b7b..6f06004bff 100644
--- a/kicad/mainframe.cpp
+++ b/kicad/mainframe.cpp
@@ -82,37 +82,23 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent,
     // Add the wxTextCtrl showing all messages from KiCad:
     m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString,
                                     wxDefaultPosition, wxDefaultSize,
-                                    wxTE_MULTILINE | wxTE_READONLY );
+                                    wxTE_MULTILINE | wxTE_READONLY | wxBORDER_NONE );
 
     RecreateBaseHToolbar();
     ReCreateMenuBar();
 
     m_auimgr.SetManagedWindow( this );
 
-    EDA_PANEINFO horiztb;
-    horiztb.HorizontalToolbarPane();
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
 
-    EDA_PANEINFO info;
-    info.InfoToolbarPane();
+    m_auimgr.AddPane( m_LeftWin, EDA_PANE().Palette().Name( "ProjectTree" ).Left().Layer(3)
+                      .CaptionVisible( false ).PaneBorder( false )
+                      .MinSize( 150, -1 ).BestSize( m_leftWinWidth, -1 ) );
 
-    m_auimgr.AddPane( m_mainToolBar,
-                      wxAuiPaneInfo( horiztb ).Name( wxT( "m_mainToolBar" ) ).Top() );
+    m_auimgr.AddPane( m_Launcher, EDA_PANE().HToolbar().Name( "Launcher" ).Top().Layer(1)
+                      .MinSize( m_Launcher->GetPanelWidth(), m_Launcher->GetPanelHeight() ) );
 
-    m_auimgr.AddPane( m_LeftWin,
-                      wxAuiPaneInfo(info).Name( wxT( "m_LeftWin" ) ).Left().
-                      BestSize( m_leftWinWidth, -1 ).
-                      Layer( 1 ) );
-
-    m_auimgr.AddPane( m_Launcher, wxTOP );
-    m_auimgr.GetPane( m_Launcher).CaptionVisible( false ).PaneBorder(false)
-            .MinSize( wxSize( m_Launcher->GetPanelWidth(), m_Launcher->GetPanelHeight() ) )
-            .Resizable( false );
-
-    m_auimgr.AddPane( m_MessagesBox,
-                      wxAuiPaneInfo().Name( wxT( "m_MessagesBox" ) ).CentrePane().Layer( 2 ) );
-
-    m_auimgr.GetPane( m_LeftWin ).MinSize( wxSize( 150, -1) );
-    m_auimgr.GetPane( m_LeftWin ).BestSize(wxSize(m_leftWinWidth, -1) );
+    m_auimgr.AddPane( m_MessagesBox, EDA_PANE().Messages().Name( "MsgPanel" ).Center() );
 
     m_auimgr.Update();
 
diff --git a/pagelayout_editor/dialogs/properties_frame_base.cpp b/pagelayout_editor/dialogs/properties_frame_base.cpp
index 67c94f0756..7b8d1b6d4d 100644
--- a/pagelayout_editor/dialogs/properties_frame_base.cpp
+++ b/pagelayout_editor/dialogs/properties_frame_base.cpp
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Apr 19 2018)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO *NOT* EDIT THIS FILE!
@@ -133,18 +133,18 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlTextSizeX = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer2->Add( m_textCtrlTextSizeX, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+	fgSizer2->Add( m_textCtrlTextSizeX, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units1 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units1->Wrap( -1 );
-	fgSizer2->Add( m_units1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer2->Add( m_units1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_textCtrlTextSizeY = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer2->Add( m_textCtrlTextSizeY, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+	fgSizer2->Add( m_textCtrlTextSizeY, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units11 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units11->Wrap( -1 );
-	fgSizer2->Add( m_units11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer2->Add( m_units11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_staticTextConstraints = new wxStaticText( m_swItemProperties, wxID_ANY, _("Constraints:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticTextConstraints->Wrap( -1 );
@@ -174,18 +174,18 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlConstraintX = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer2->Add( m_textCtrlConstraintX, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+	fgSizer2->Add( m_textCtrlConstraintX, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units111 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units111->Wrap( -1 );
-	fgSizer2->Add( m_units111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer2->Add( m_units111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_textCtrlConstraintY = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer2->Add( m_textCtrlConstraintY, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+	fgSizer2->Add( m_textCtrlConstraintY, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units1111 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units1111->Wrap( -1 );
-	fgSizer2->Add( m_units1111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer2->Add( m_units1111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	
 	m_SizerTextOptions->Add( fgSizer2, 1, wxEXPAND, 5 );
@@ -230,11 +230,11 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlPosX = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer3->Add( m_textCtrlPosX, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+	fgSizer3->Add( m_textCtrlPosX, 1, wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 	
 	m_units12 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units12->Wrap( -1 );
-	fgSizer3->Add( m_units12, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 5 );
+	fgSizer3->Add( m_units12, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM, 5 );
 	
 	m_staticTextPosY = new wxStaticText( m_swItemProperties, wxID_ANY, _("Start Y:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticTextPosY->Wrap( -1 );
@@ -244,7 +244,7 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer3->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlPosY = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer3->Add( m_textCtrlPosY, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+	fgSizer3->Add( m_textCtrlPosY, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 	
 	m_units121 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units121->Wrap( -1 );
@@ -290,11 +290,11 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer4->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlEndX = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer4->Add( m_textCtrlEndX, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer4->Add( m_textCtrlEndX, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units1211 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units1211->Wrap( -1 );
-	fgSizer4->Add( m_units1211, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 5 );
+	fgSizer4->Add( m_units1211, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM, 5 );
 	
 	m_staticTextEndY = new wxStaticText( m_swItemProperties, wxID_ANY, _("End Y:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticTextEndY->Wrap( -1 );
@@ -304,11 +304,11 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer4->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlEndY = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer4->Add( m_textCtrlEndY, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer4->Add( m_textCtrlEndY, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units12111 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units12111->Wrap( -1 );
-	fgSizer4->Add( m_units12111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 5 );
+	fgSizer4->Add( m_units12111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM, 5 );
 	
 	
 	m_SizerEndPosition->Add( fgSizer4, 1, wxEXPAND|wxRIGHT, 5 );
@@ -452,18 +452,18 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer8->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlStepX = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer8->Add( m_textCtrlStepX, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+	fgSizer8->Add( m_textCtrlStepX, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units121111 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units121111->Wrap( -1 );
-	fgSizer8->Add( m_units121111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer8->Add( m_units121111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_textCtrlStepY = new wxTextCtrl( m_swItemProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer8->Add( m_textCtrlStepY, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer8->Add( m_textCtrlStepY, 0, wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 	
 	m_units1211111 = new wxStaticText( m_swItemProperties, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units1211111->Wrap( -1 );
-	fgSizer8->Add( m_units1211111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer8->Add( m_units1211111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	
 	bSizerMain->Add( fgSizer8, 1, wxEXPAND, 5 );
@@ -507,18 +507,18 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer5->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlDefaultTextSizeX = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer5->Add( m_textCtrlDefaultTextSizeX, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+	fgSizer5->Add( m_textCtrlDefaultTextSizeX, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units14 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units14->Wrap( -1 );
-	fgSizer5->Add( m_units14, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer5->Add( m_units14, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_textCtrlDefaultTextSizeY = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer5->Add( m_textCtrlDefaultTextSizeY, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+	fgSizer5->Add( m_textCtrlDefaultTextSizeY, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units141 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units141->Wrap( -1 );
-	fgSizer5->Add( m_units141, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer5->Add( m_units141, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_staticTextDefLineW = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("Line thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticTextDefLineW->Wrap( -1 );
@@ -535,14 +535,18 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer5->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlDefaultLineWidth = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer5->Add( m_textCtrlDefaultLineWidth, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer5->Add( m_textCtrlDefaultLineWidth, 0, wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 	
 	m_staticText221 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticText221->Wrap( -1 );
-	fgSizer5->Add( m_staticText221, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer5->Add( m_staticText221, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_textCtrlDefaultTextThickness = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer5->Add( m_textCtrlDefaultTextThickness, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer5->Add( m_textCtrlDefaultTextThickness, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
+	
+	m_staticText2211 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText2211->Wrap( -1 );
+	fgSizer5->Add( m_staticText2211, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
 	
 	
 	fgSizer5->Add( 0, 0, 1, wxEXPAND, 5 );
@@ -588,14 +592,14 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer6->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlLeftMargin = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer6->Add( m_textCtrlLeftMargin, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer6->Add( m_textCtrlLeftMargin, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 	
 	m_units142 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units142->Wrap( -1 );
 	fgSizer6->Add( m_units142, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
 	
 	m_textCtrlRightMargin = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer6->Add( m_textCtrlRightMargin, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer6->Add( m_textCtrlRightMargin, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 	
 	m_units143 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units143->Wrap( -1 );
@@ -616,18 +620,18 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	fgSizer6->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_textCtrlTopMargin = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer6->Add( m_textCtrlTopMargin, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer6->Add( m_textCtrlTopMargin, 0, wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 	
 	m_units1431 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units1431->Wrap( -1 );
-	fgSizer6->Add( m_units1431, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer6->Add( m_units1431, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	m_textCtrlDefaultBottomMargin = new wxTextCtrl( m_swGeneralOpts, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	fgSizer6->Add( m_textCtrlDefaultBottomMargin, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+	fgSizer6->Add( m_textCtrlDefaultBottomMargin, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT, 5 );
 	
 	m_units1432 = new wxStaticText( m_swGeneralOpts, wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_units1432->Wrap( -1 );
-	fgSizer6->Add( m_units1432, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT, 5 );
+	fgSizer6->Add( m_units1432, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT, 5 );
 	
 	
 	bSizerGeneraMargins->Add( fgSizer6, 1, wxEXPAND, 5 );
@@ -645,7 +649,7 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c
 	bSizerGeneralOpts->Fit( m_swGeneralOpts );
 	m_notebook->AddPage( m_swGeneralOpts, _("General Options"), true );
 	
-	bSizerpanel->Add( m_notebook, 1, wxEXPAND | wxALL, 5 );
+	bSizerpanel->Add( m_notebook, 1, wxEXPAND, 5 );
 	
 	
 	this->SetSizer( bSizerpanel );
diff --git a/pagelayout_editor/dialogs/properties_frame_base.fbp b/pagelayout_editor/dialogs/properties_frame_base.fbp
index 8f719fb634..14e5dc2892 100644
--- a/pagelayout_editor/dialogs/properties_frame_base.fbp
+++ b/pagelayout_editor/dialogs/properties_frame_base.fbp
@@ -14,7 +14,6 @@
         <property name="file">properties_frame_base</property>
         <property name="first_id">1000</property>
         <property name="help_provider">none</property>
-        <property name="indent_with_spaces"></property>
         <property name="internationalize">1</property>
         <property name="name">properties_frame</property>
         <property name="namespace"></property>
@@ -86,7 +85,7 @@
                 <property name="permission">none</property>
                 <object class="sizeritem" expanded="1">
                     <property name="border">5</property>
-                    <property name="flag">wxEXPAND | wxALL</property>
+                    <property name="flag">wxEXPAND</property>
                     <property name="proportion">1</property>
                     <object class="wxNotebook" expanded="1">
                         <property name="BottomDockable">1</property>
@@ -251,20 +250,20 @@
                                     <property name="name">bSizerMain</property>
                                     <property name="orient">wxVERTICAL</property>
                                     <property name="permission">none</property>
-                                    <object class="sizeritem" expanded="0">
+                                    <object class="sizeritem" expanded="1">
                                         <property name="border">5</property>
                                         <property name="flag"></property>
                                         <property name="proportion">0</property>
-                                        <object class="wxBoxSizer" expanded="0">
+                                        <object class="wxBoxSizer" expanded="1">
                                             <property name="minimum_size"></property>
                                             <property name="name">bSizerButt</property>
                                             <property name="orient">wxHORIZONTAL</property>
                                             <property name="permission">none</property>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag"></property>
                                                 <property name="proportion">0</property>
-                                                <object class="wxBoxSizer" expanded="0">
+                                                <object class="wxBoxSizer" expanded="1">
                                                     <property name="minimum_size"></property>
                                                     <property name="name">bSizerType</property>
                                                     <property name="orient">wxVERTICAL</property>
@@ -445,11 +444,11 @@
                                                     </object>
                                                 </object>
                                             </object>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag"></property>
                                                 <property name="proportion">0</property>
-                                                <object class="wxBoxSizer" expanded="0">
+                                                <object class="wxBoxSizer" expanded="1">
                                                     <property name="minimum_size"></property>
                                                     <property name="name">bSizerPageOpt</property>
                                                     <property name="orient">wxVERTICAL</property>
@@ -893,20 +892,20 @@
                                                     <event name="OnUpdateUI"></event>
                                                 </object>
                                             </object>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND</property>
                                                 <property name="proportion">0</property>
-                                                <object class="wxBoxSizer" expanded="0">
+                                                <object class="wxBoxSizer" expanded="1">
                                                     <property name="minimum_size"></property>
                                                     <property name="name">bSizerFontOpt</property>
                                                     <property name="orient">wxVERTICAL</property>
                                                     <property name="permission">none</property>
-                                                    <object class="sizeritem" expanded="0">
+                                                    <object class="sizeritem" expanded="1">
                                                         <property name="border">5</property>
                                                         <property name="flag">wxEXPAND</property>
                                                         <property name="proportion">1</property>
-                                                        <object class="wxFlexGridSizer" expanded="0">
+                                                        <object class="wxFlexGridSizer" expanded="1">
                                                             <property name="cols">3</property>
                                                             <property name="flexible_direction">wxBOTH</property>
                                                             <property name="growablecols"></property>
@@ -1444,7 +1443,7 @@
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND</property>
                                                 <property name="proportion">1</property>
-                                                <object class="wxFlexGridSizer" expanded="0">
+                                                <object class="wxFlexGridSizer" expanded="1">
                                                     <property name="cols">4</property>
                                                     <property name="flexible_direction">wxBOTH</property>
                                                     <property name="growablecols">0,2</property>
@@ -1644,7 +1643,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -1735,7 +1734,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -1818,7 +1817,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -1909,7 +1908,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -2291,7 +2290,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -2382,7 +2381,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -2465,7 +2464,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -2556,7 +2555,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -3155,11 +3154,11 @@
                                             <property name="name">bSizerPos</property>
                                             <property name="orient">wxHORIZONTAL</property>
                                             <property name="permission">none</property>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND|wxRIGHT</property>
                                                 <property name="proportion">1</property>
-                                                <object class="wxFlexGridSizer" expanded="0">
+                                                <object class="wxFlexGridSizer" expanded="1">
                                                     <property name="cols">2</property>
                                                     <property name="flexible_direction">wxBOTH</property>
                                                     <property name="growablecols">0</property>
@@ -3266,7 +3265,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
+                                                        <property name="flag">wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
                                                         <property name="proportion">1</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -3357,7 +3356,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -3533,7 +3532,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -3905,11 +3904,11 @@
                                             <property name="name">m_SizerEndPosition</property>
                                             <property name="orient">wxHORIZONTAL</property>
                                             <property name="permission">protected</property>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND|wxRIGHT</property>
                                                 <property name="proportion">1</property>
-                                                <object class="wxFlexGridSizer" expanded="0">
+                                                <object class="wxFlexGridSizer" expanded="1">
                                                     <property name="cols">2</property>
                                                     <property name="flexible_direction">wxBOTH</property>
                                                     <property name="growablecols">0</property>
@@ -4016,7 +4015,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -4107,7 +4106,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -4283,7 +4282,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -4374,7 +4373,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -4457,11 +4456,11 @@
                                                     </object>
                                                 </object>
                                             </object>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxALIGN_CENTER_VERTICAL</property>
                                                 <property name="proportion">0</property>
-                                                <object class="wxBoxSizer" expanded="0">
+                                                <object class="wxBoxSizer" expanded="1">
                                                     <property name="minimum_size"></property>
                                                     <property name="name">bSizer61</property>
                                                     <property name="orient">wxVERTICAL</property>
@@ -4646,20 +4645,20 @@
                                             </object>
                                         </object>
                                     </object>
-                                    <object class="sizeritem" expanded="0">
+                                    <object class="sizeritem" expanded="1">
                                         <property name="border">5</property>
                                         <property name="flag"></property>
                                         <property name="proportion">0</property>
-                                        <object class="wxBoxSizer" expanded="0">
+                                        <object class="wxBoxSizer" expanded="1">
                                             <property name="minimum_size"></property>
                                             <property name="name">m_SizerLineThickness</property>
                                             <property name="orient">wxHORIZONTAL</property>
                                             <property name="permission">protected</property>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND</property>
                                                 <property name="proportion">0</property>
-                                                <object class="wxBoxSizer" expanded="0">
+                                                <object class="wxBoxSizer" expanded="1">
                                                     <property name="minimum_size"></property>
                                                     <property name="name">bSizerThickness</property>
                                                     <property name="orient">wxVERTICAL</property>
@@ -4929,7 +4928,7 @@
                                         <property name="border">5</property>
                                         <property name="flag">wxEXPAND</property>
                                         <property name="proportion">0</property>
-                                        <object class="wxBoxSizer" expanded="0">
+                                        <object class="wxBoxSizer" expanded="1">
                                             <property name="minimum_size"></property>
                                             <property name="name">m_SizerRotation</property>
                                             <property name="orient">wxVERTICAL</property>
@@ -5015,11 +5014,11 @@
                                                     <event name="OnUpdateUI"></event>
                                                 </object>
                                             </object>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND</property>
                                                 <property name="proportion">1</property>
-                                                <object class="wxFlexGridSizer" expanded="0">
+                                                <object class="wxFlexGridSizer" expanded="1">
                                                     <property name="cols">2</property>
                                                     <property name="flexible_direction">wxBOTH</property>
                                                     <property name="growablecols"></property>
@@ -5573,7 +5572,7 @@
                                         <property name="border">5</property>
                                         <property name="flag">wxEXPAND</property>
                                         <property name="proportion">1</property>
-                                        <object class="wxFlexGridSizer" expanded="0">
+                                        <object class="wxFlexGridSizer" expanded="1">
                                             <property name="cols">4</property>
                                             <property name="flexible_direction">wxBOTH</property>
                                             <property name="growablecols">0,2</property>
@@ -6161,7 +6160,7 @@
                                             </object>
                                             <object class="sizeritem" expanded="0">
                                                 <property name="border">5</property>
-                                                <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
+                                                <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                 <property name="proportion">0</property>
                                                 <object class="wxTextCtrl" expanded="0">
                                                     <property name="BottomDockable">1</property>
@@ -6252,7 +6251,7 @@
                                             </object>
                                             <object class="sizeritem" expanded="0">
                                                 <property name="border">5</property>
-                                                <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                 <property name="proportion">0</property>
                                                 <object class="wxStaticText" expanded="0">
                                                     <property name="BottomDockable">1</property>
@@ -6335,7 +6334,7 @@
                                             </object>
                                             <object class="sizeritem" expanded="0">
                                                 <property name="border">5</property>
-                                                <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                <property name="flag">wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
                                                 <property name="proportion">0</property>
                                                 <object class="wxTextCtrl" expanded="0">
                                                     <property name="BottomDockable">1</property>
@@ -6426,7 +6425,7 @@
                                             </object>
                                             <object class="sizeritem" expanded="0">
                                                 <property name="border">5</property>
-                                                <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                 <property name="proportion">0</property>
                                                 <object class="wxStaticText" expanded="0">
                                                     <property name="BottomDockable">1</property>
@@ -6516,7 +6515,7 @@
                             <property name="bitmap"></property>
                             <property name="label">General Options</property>
                             <property name="select">1</property>
-                            <object class="wxScrolledWindow" expanded="0">
+                            <object class="wxScrolledWindow" expanded="1">
                                 <property name="BottomDockable">1</property>
                                 <property name="LeftDockable">1</property>
                                 <property name="RightDockable">1</property>
@@ -6592,16 +6591,16 @@
                                 <event name="OnSetFocus"></event>
                                 <event name="OnSize"></event>
                                 <event name="OnUpdateUI"></event>
-                                <object class="wxBoxSizer" expanded="0">
+                                <object class="wxBoxSizer" expanded="1">
                                     <property name="minimum_size"></property>
                                     <property name="name">bSizerGeneralOpts</property>
                                     <property name="orient">wxVERTICAL</property>
                                     <property name="permission">none</property>
-                                    <object class="sizeritem" expanded="0">
+                                    <object class="sizeritem" expanded="1">
                                         <property name="border">5</property>
                                         <property name="flag">wxEXPAND</property>
                                         <property name="proportion">0</property>
-                                        <object class="wxBoxSizer" expanded="0">
+                                        <object class="wxBoxSizer" expanded="1">
                                             <property name="minimum_size"></property>
                                             <property name="name">bSizerGeneralOpts1</property>
                                             <property name="orient">wxVERTICAL</property>
@@ -6689,11 +6688,11 @@
                                                     <event name="OnUpdateUI"></event>
                                                 </object>
                                             </object>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND</property>
                                                 <property name="proportion">1</property>
-                                                <object class="wxFlexGridSizer" expanded="0">
+                                                <object class="wxFlexGridSizer" expanded="1">
                                                     <property name="cols">4</property>
                                                     <property name="flexible_direction">wxBOTH</property>
                                                     <property name="growablecols">0,2</property>
@@ -6893,7 +6892,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -6984,7 +6983,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -7067,7 +7066,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -7158,7 +7157,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -7427,7 +7426,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -7518,7 +7517,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -7601,7 +7600,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -7690,6 +7689,89 @@
                                                             <event name="OnUpdateUI"></event>
                                                         </object>
                                                     </object>
+                                                    <object class="sizeritem" expanded="1">
+                                                        <property name="border">5</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT</property>
+                                                        <property name="proportion">0</property>
+                                                        <object class="wxStaticText" expanded="1">
+                                                            <property name="BottomDockable">1</property>
+                                                            <property name="LeftDockable">1</property>
+                                                            <property name="RightDockable">1</property>
+                                                            <property name="TopDockable">1</property>
+                                                            <property name="aui_layer"></property>
+                                                            <property name="aui_name"></property>
+                                                            <property name="aui_position"></property>
+                                                            <property name="aui_row"></property>
+                                                            <property name="best_size"></property>
+                                                            <property name="bg"></property>
+                                                            <property name="caption"></property>
+                                                            <property name="caption_visible">1</property>
+                                                            <property name="center_pane">0</property>
+                                                            <property name="close_button">1</property>
+                                                            <property name="context_help"></property>
+                                                            <property name="context_menu">1</property>
+                                                            <property name="default_pane">0</property>
+                                                            <property name="dock">Dock</property>
+                                                            <property name="dock_fixed">0</property>
+                                                            <property name="docking">Left</property>
+                                                            <property name="enabled">1</property>
+                                                            <property name="fg"></property>
+                                                            <property name="floatable">1</property>
+                                                            <property name="font"></property>
+                                                            <property name="gripper">0</property>
+                                                            <property name="hidden">0</property>
+                                                            <property name="id">wxID_ANY</property>
+                                                            <property name="label">mm</property>
+                                                            <property name="max_size"></property>
+                                                            <property name="maximize_button">0</property>
+                                                            <property name="maximum_size"></property>
+                                                            <property name="min_size"></property>
+                                                            <property name="minimize_button">0</property>
+                                                            <property name="minimum_size"></property>
+                                                            <property name="moveable">1</property>
+                                                            <property name="name">m_staticText2211</property>
+                                                            <property name="pane_border">1</property>
+                                                            <property name="pane_position"></property>
+                                                            <property name="pane_size"></property>
+                                                            <property name="permission">protected</property>
+                                                            <property name="pin_button">1</property>
+                                                            <property name="pos"></property>
+                                                            <property name="resize">Resizable</property>
+                                                            <property name="show">1</property>
+                                                            <property name="size"></property>
+                                                            <property name="style"></property>
+                                                            <property name="subclass"></property>
+                                                            <property name="toolbar_pane">0</property>
+                                                            <property name="tooltip"></property>
+                                                            <property name="window_extra_style"></property>
+                                                            <property name="window_name"></property>
+                                                            <property name="window_style"></property>
+                                                            <property name="wrap">-1</property>
+                                                            <event name="OnChar"></event>
+                                                            <event name="OnEnterWindow"></event>
+                                                            <event name="OnEraseBackground"></event>
+                                                            <event name="OnKeyDown"></event>
+                                                            <event name="OnKeyUp"></event>
+                                                            <event name="OnKillFocus"></event>
+                                                            <event name="OnLeaveWindow"></event>
+                                                            <event name="OnLeftDClick"></event>
+                                                            <event name="OnLeftDown"></event>
+                                                            <event name="OnLeftUp"></event>
+                                                            <event name="OnMiddleDClick"></event>
+                                                            <event name="OnMiddleDown"></event>
+                                                            <event name="OnMiddleUp"></event>
+                                                            <event name="OnMotion"></event>
+                                                            <event name="OnMouseEvents"></event>
+                                                            <event name="OnMouseWheel"></event>
+                                                            <event name="OnPaint"></event>
+                                                            <event name="OnRightDClick"></event>
+                                                            <event name="OnRightDown"></event>
+                                                            <event name="OnRightUp"></event>
+                                                            <event name="OnSetFocus"></event>
+                                                            <event name="OnSize"></event>
+                                                            <event name="OnUpdateUI"></event>
+                                                        </object>
+                                                    </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
                                                         <property name="flag">wxEXPAND</property>
@@ -7873,11 +7955,11 @@
                                             <event name="OnUpdateUI"></event>
                                         </object>
                                     </object>
-                                    <object class="sizeritem" expanded="0">
+                                    <object class="sizeritem" expanded="1">
                                         <property name="border">5</property>
                                         <property name="flag">wxEXPAND</property>
                                         <property name="proportion">0</property>
-                                        <object class="wxBoxSizer" expanded="0">
+                                        <object class="wxBoxSizer" expanded="1">
                                             <property name="minimum_size"></property>
                                             <property name="name">bSizerGeneraMargins</property>
                                             <property name="orient">wxVERTICAL</property>
@@ -7965,11 +8047,11 @@
                                                     <event name="OnUpdateUI"></event>
                                                 </object>
                                             </object>
-                                            <object class="sizeritem" expanded="0">
+                                            <object class="sizeritem" expanded="1">
                                                 <property name="border">5</property>
                                                 <property name="flag">wxEXPAND</property>
                                                 <property name="proportion">1</property>
-                                                <object class="wxFlexGridSizer" expanded="0">
+                                                <object class="wxFlexGridSizer" expanded="1">
                                                     <property name="cols">4</property>
                                                     <property name="flexible_direction">wxBOTH</property>
                                                     <property name="growablecols">0,2</property>
@@ -8169,7 +8251,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -8343,7 +8425,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -8703,7 +8785,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -8794,7 +8876,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -8877,7 +8959,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+                                                        <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxTextCtrl" expanded="0">
                                                             <property name="BottomDockable">1</property>
@@ -8968,7 +9050,7 @@
                                                     </object>
                                                     <object class="sizeritem" expanded="0">
                                                         <property name="border">5</property>
-                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxRIGHT</property>
+                                                        <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxBOTTOM|wxRIGHT</property>
                                                         <property name="proportion">0</property>
                                                         <object class="wxStaticText" expanded="0">
                                                             <property name="BottomDockable">1</property>
diff --git a/pagelayout_editor/dialogs/properties_frame_base.h b/pagelayout_editor/dialogs/properties_frame_base.h
index 66d9b77821..8896f149b4 100644
--- a/pagelayout_editor/dialogs/properties_frame_base.h
+++ b/pagelayout_editor/dialogs/properties_frame_base.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Apr 19 2018)
+// C++ code generated with wxFormBuilder (version Dec 30 2017)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO *NOT* EDIT THIS FILE!
@@ -129,6 +129,7 @@ class PANEL_PROPERTIES_BASE : public wxPanel
 		wxTextCtrl* m_textCtrlDefaultLineWidth;
 		wxStaticText* m_staticText221;
 		wxTextCtrl* m_textCtrlDefaultTextThickness;
+		wxStaticText* m_staticText2211;
 		wxButton* m_buttonDefault;
 		wxStaticLine* m_staticline9;
 		wxStaticText* m_staticTextMargins;
diff --git a/pagelayout_editor/pl_editor_frame.cpp b/pagelayout_editor/pl_editor_frame.cpp
index 553a90d9f7..14d3f8e006 100644
--- a/pagelayout_editor/pl_editor_frame.cpp
+++ b/pagelayout_editor/pl_editor_frame.cpp
@@ -35,6 +35,7 @@
 #include <base_units.h>
 #include <msgpanel.h>
 #include <bitmaps.h>
+#include <eda_dockart.h>
 
 #include <pl_editor_frame.h>
 #include <pl_editor_id.h>
@@ -93,7 +94,6 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
 
     ReCreateMenuBar();
     ReCreateHToolbar();
-    ReCreateOptToolbar();
 
     wxWindow* stsbar = GetStatusBar();
     int dims[] = {
@@ -122,57 +122,23 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
 
     SetStatusWidths( DIM( dims ), dims );
 
-
     m_auimgr.SetManagedWindow( this );
-
-    EDA_PANEINFO    horiz;
-    horiz.HorizontalToolbarPane();
-
-    EDA_PANEINFO    vert;
-    vert.VerticalToolbarPane();
-
-    EDA_PANEINFO    mesg;
-    mesg.MessageToolbarPane();
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
     m_propertiesPagelayout = new PROPERTIES_FRAME( this );
-    EDA_PANEINFO    props;
-    props.LayersToolbarPane();
-    props.MinSize( m_propertiesPagelayout->GetMinSize() );
-    props.BestSize( m_propertiesFrameWidth, -1 );
-    props.Caption( _( "Properties" ) );
-
     m_treePagelayout = new DESIGN_TREE_FRAME( this );
-    EDA_PANEINFO    tree;
-    tree.LayersToolbarPane();
-    tree.MinSize( m_treePagelayout->GetMinSize() );
-    tree.BestSize( m_designTreeWidth, -1 );
-    tree.Caption( _( "Design" ) );
 
-    if( m_mainToolBar )
-        m_auimgr.AddPane( m_mainToolBar,
-                          wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top().Row( 0 ) );
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    if( m_drawToolBar )
-        m_auimgr.AddPane( m_drawToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_drawToolBar" ) ).Right().Row( 1 ) );
+    m_auimgr.AddPane( m_treePagelayout, EDA_PANE().Palette().Name( "Design" ).Left().Layer(1)
+                      .Caption( _( "Design" ) ).MinSize( m_treePagelayout->GetMinSize() )
+                      .BestSize( m_designTreeWidth, -1 ) );
+    m_auimgr.AddPane( m_propertiesPagelayout, EDA_PANE().Palette().Name( "Props" ).Right().Layer(1)
+                      .Caption( _( "Properties" ) ).MinSize( m_propertiesPagelayout->GetMinSize() )
+                      .BestSize( m_propertiesFrameWidth, -1 ) );
 
-    m_auimgr.AddPane( m_propertiesPagelayout,
-                      props.Name( wxT( "m_propertiesPagelayout" ) ).Right().Layer( 1 ) );
-
-    m_auimgr.AddPane( m_treePagelayout,
-                      tree.Name( wxT( "m_treePagelayout" ) ).Left().Layer( 0 ) );
-
-    if( m_optionsToolBar )
-        m_auimgr.AddPane( m_optionsToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left() );
-
-    if( m_canvas )
-        m_auimgr.AddPane( m_canvas,
-                          wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane().Layer( 5 ) );
-
-    if( m_messagePanel )
-        m_auimgr.AddPane( m_messagePanel,
-                          wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer( 10 ) );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
 
     m_auimgr.Update();
 
diff --git a/pcbnew/footprint_edit_frame.cpp b/pcbnew/footprint_edit_frame.cpp
index ea08afaea8..f7a31f1acf 100644
--- a/pcbnew/footprint_edit_frame.cpp
+++ b/pcbnew/footprint_edit_frame.cpp
@@ -40,6 +40,7 @@
 #include <fp_lib_table.h>
 #include <bitmaps.h>
 #include <gal/graphics_abstraction_layer.h>
+#include <eda_dockart.h>
 
 #include <class_board.h>
 #include <class_module.h>
@@ -287,54 +288,25 @@ FOOTPRINT_EDIT_FRAME::FOOTPRINT_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent,
         m_canvas->SetEnableBlockCommands( true );
 
     m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    EDA_PANEINFO horiz;
-    horiz.HorizontalToolbarPane();
+    // Horizontal items; layers 4 - 6
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_auxiliaryToolBar, EDA_PANE().HToolbar().Name( "AuxToolbar" ).Top().Layer(4) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    EDA_PANEINFO vert;
-    vert.VerticalToolbarPane();
+    // Vertical items; layers 1 - 3
+    m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
+    m_auimgr.AddPane( m_treePane, EDA_PANE().Palette().Name( "Footprints" ).Left().Layer(1)
+                      .Caption( _( "Libraries" ) ).MinSize( 250, 400 ) );
 
-    EDA_PANEINFO mesg_pane;
-    mesg_pane.MessageToolbarPane();
+    m_auimgr.AddPane( m_drawToolBar, EDA_PANE().VToolbar().Name( "ToolsToolbar" ).Right().Layer(1) );
+    m_auimgr.AddPane( m_Layers, EDA_PANE().Palette().Name( "LayersManager" ).Right().Layer(3)
+                      .Caption( _( "Layers Manager" ) ).PaneBorder( false )
+                      .MinSize( 80, -1 ).BestSize( m_Layers->GetBestSize() ) );
 
-    // Create a wxAuiPaneInfo for the Layers Manager, not derived from the template.
-    // LAYER_WIDGET is floatable, but initially docked at far right
-    EDA_PANEINFO   lyrs;
-    lyrs.LayersToolbarPane();
-    lyrs.MinSize( m_Layers->GetBestSize() );    // updated in ReFillLayerWidget
-    lyrs.BestSize( m_Layers->GetBestSize() );
-    lyrs.Caption( _( "Visibles" ) );
-
-    m_auimgr.AddPane( m_mainToolBar,
-                      wxAuiPaneInfo( horiz ).Name( "m_mainToolBar" ).Top(). Row( 0 ) );
-
-    m_auimgr.AddPane( m_auxiliaryToolBar,
-                      wxAuiPaneInfo( horiz ).Name( "m_auxiliaryToolBar" ).Top().Row( 1 ) );
-
-    // The main right vertical toolbar
-    m_auimgr.AddPane( m_drawToolBar,
-                      wxAuiPaneInfo( vert ).Name( "m_VToolBar" ).Right().Layer(1) );
-
-    // Add the layer manager ( most right side of pcbframe )
-    m_auimgr.AddPane( m_Layers, lyrs.Name( "m_LayersManagerToolBar" ).Right().Layer( 2 ) );
-    // Layers manager is visible
-    m_auimgr.GetPane( "m_LayersManagerToolBar" ).Show( true );
-
-    // The left vertical toolbar (fast acces to display options)
-    m_auimgr.AddPane( m_optionsToolBar,
-                      wxAuiPaneInfo( vert ).Name( "m_optionsToolBar" ). Left().Layer(1) );
-
-    m_auimgr.AddPane( m_canvas,
-                      wxAuiPaneInfo().Name( "DrawFrame" ).CentrePane() );
-    m_auimgr.AddPane( (wxWindow*) GetGalCanvas(),
-                      wxAuiPaneInfo().Name( "DrawFrameGal" ).CentrePane().Hide() );
-
-    m_auimgr.AddPane( m_messagePanel,
-                      wxAuiPaneInfo( mesg_pane ).Name( "MsgPanel" ).Bottom().Layer(10) );
-
-    m_auimgr.AddPane( m_treePane,
-                      wxAuiPaneInfo().Name( "FootprintTree" ).Caption( _( "Libraries" ) ).Left()
-                      .Row( 1 ).Resizable().MinSize( 250, 400 ).Dock().CloseButton( false ) );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center().Hide() );
+    m_auimgr.AddPane( GetGalCanvas(), EDA_PANE().Canvas().Name( "DrawFrameGal" ).Center() );
 
     // Create the manager and dispatcher & route draw panel events to the dispatcher
     setupTools();
@@ -715,11 +687,11 @@ void FOOTPRINT_EDIT_FRAME::ShowChangedLanguage()
     // So force show panes
     wxAuiPaneInfo& tree_pane_info = m_auimgr.GetPane( m_treePane );
     bool tree_shown = tree_pane_info.IsShown();
-    tree_pane_info.Caption( _( "Footprint Libraries" ) );
+    tree_pane_info.Caption( _( "Libraries" ) );
 
     wxAuiPaneInfo& lm_pane_info = m_auimgr.GetPane( m_Layers );
     bool lm_shown = lm_pane_info.IsShown();
-    lm_pane_info.Caption( _( "Visibles" ) );
+    lm_pane_info.Caption( _( "Layers Manager" ) );
 
     // update the layer manager
     m_Layers->SetLayersManagerTabsText();
diff --git a/pcbnew/footprint_editor_utils.cpp b/pcbnew/footprint_editor_utils.cpp
index 6f9759bafb..def1866c83 100644
--- a/pcbnew/footprint_editor_utils.cpp
+++ b/pcbnew/footprint_editor_utils.cpp
@@ -362,7 +362,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
             }
 
             FOOTPRINT_WIZARD_FRAME* wizard = (FOOTPRINT_WIZARD_FRAME*) Kiway().Player(
-                        FRAME_PCB_FOOTPRINT_WIZARD_MODAL, true, this );
+                        FRAME_PCB_FOOTPRINT_WIZARD, true, this );
 
             if( wizard->ShowModal( NULL, this ) )
             {
diff --git a/pcbnew/footprint_viewer_frame.cpp b/pcbnew/footprint_viewer_frame.cpp
index bc426c4dd5..424da28681 100644
--- a/pcbnew/footprint_viewer_frame.cpp
+++ b/pcbnew/footprint_viewer_frame.cpp
@@ -40,6 +40,7 @@
 #include <confirm.h>
 #include <bitmaps.h>
 #include <gal/graphics_abstraction_layer.h>
+#include <eda_dockart.h>
 
 #include <class_board.h>
 #include <class_module.h>
@@ -154,11 +155,11 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
 
     m_hotkeysDescrList = g_Module_Viewer_Hotkeys_Descr;
 
-    m_libList = new wxListBox( this, ID_MODVIEW_LIB_LIST,
-            wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL );
+    m_libList = new wxListBox( this, ID_MODVIEW_LIB_LIST, wxDefaultPosition, wxDefaultSize,
+                               0, NULL, wxLB_HSCROLL | wxNO_BORDER );
 
-    m_footprintList = new wxListBox( this, ID_MODVIEW_FOOTPRINT_LIST,
-            wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL );
+    m_footprintList = new wxListBox( this, ID_MODVIEW_FOOTPRINT_LIST, wxDefaultPosition, wxDefaultSize,
+                                     0, NULL, wxLB_HSCROLL | wxNO_BORDER );
 
     SetBoard( new BOARD() );
     // In viewer, the default net clearance is not known (it depends on the actual board).
@@ -219,59 +220,20 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
     drawPanel->DisplayBoard( m_Pcb );
 
     m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    wxSize minsize( 100, -1 );     // Min size of list boxes
+    // Horizontal items; layers 4 - 6
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().VToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    // Main toolbar is initially docked at the top of the main window and dockable on any side.
-    // The close button is disable because the footprint viewer has no main menu to re-enable it.
-    // The tool bar will only be dockable on the top or bottom of the main frame window.  This is
-    // most likely due to the fact that the other windows are not dockable and are preventing the
-    // tool bar from docking on the right and left.
-    wxAuiPaneInfo toolbarPaneInfo;
-    toolbarPaneInfo.Name( "m_mainToolBar" ).ToolbarPane().Top().CloseButton( false );
+    // Vertical items; layers 1 - 3
+    m_auimgr.AddPane( m_libList, EDA_PANE().Palette().Name( "Libraries" ).Left().Layer(2)
+                      .CaptionVisible( false ).MinSize( 100, -1 ).BestSize( 200, -1 ) );
+    m_auimgr.AddPane( m_footprintList, EDA_PANE().Palette().Name( "Footprints" ).Left().Layer(1)
+                      .CaptionVisible( false ).MinSize( 100, -1 ).BestSize( 300, -1 ) );
 
-    EDA_PANEINFO info;
-    info.InfoToolbarPane();
-
-    EDA_PANEINFO mesg;
-    mesg.MessageToolbarPane();
-
-    // Manage main toolbar, top pane
-    m_auimgr.AddPane( m_mainToolBar, toolbarPaneInfo );
-
-    // Manage the list of libraries, left pane.
-    m_auimgr.AddPane( m_libList,
-                      wxAuiPaneInfo( info ).Name( "m_libList" )
-                      .Left().Row( 1 ).MinSize( minsize ) );
-
-    // Manage the list of footprints, center pane.
-    m_auimgr.AddPane( m_footprintList,
-                      wxAuiPaneInfo( info ).Name( "m_footprintList" )
-                      .Left().Row( 2 ).MinSize( minsize ) );
-
-    // Manage the draw panel, right pane.
-    m_auimgr.AddPane( m_canvas,
-                      wxAuiPaneInfo().Name( "DrawFrame" ).CentrePane() );
-    m_auimgr.AddPane( (wxWindow*) GetGalCanvas(),
-                      wxAuiPaneInfo().Name( "DrawFrameGal" ).CentrePane().Hide() );
-
-    // Manage the message panel, bottom pane.
-    m_auimgr.AddPane( m_messagePanel,
-                      wxAuiPaneInfo( mesg ).Name( "MsgPanel" ).Bottom() );
-
-    if( !m_perspective.IsEmpty() )
-    {
-        // Restore last saved sizes, pos and other params
-        // However m_mainToolBar size cannot be set to its last saved size
-        // because the actual size change depending on the way modview was called:
-        // the tool to export the current footprint exist or not.
-        // and the saved size is not always OK
-        // the trick is to get the default toolbar size, and set the size after
-        // calling LoadPerspective
-        wxSize tbsize = m_mainToolBar->GetSize();
-        m_auimgr.LoadPerspective( m_perspective, false );
-        m_auimgr.GetPane( m_mainToolBar ).BestSize( tbsize );
-    }
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center().Hide() );
+    m_auimgr.AddPane( GetGalCanvas(), EDA_PANE().Canvas().Name( "DrawFrameGal" ).Center() );
 
     // after changing something to the aui manager,
     // call Update()() to reflect the changes
diff --git a/pcbnew/footprint_wizard_frame.cpp b/pcbnew/footprint_wizard_frame.cpp
index f8569304db..2ea5ccde7a 100644
--- a/pcbnew/footprint_wizard_frame.cpp
+++ b/pcbnew/footprint_wizard_frame.cpp
@@ -38,6 +38,7 @@
 #include <macros.h>
 #include <bitmaps.h>
 #include <grid_tricks.h>
+#include <eda_dockart.h>
 
 #include <class_board.h>
 #include <class_module.h>
@@ -49,12 +50,12 @@
 #include <wx/grid.h>
 #include <wx/tokenzr.h>
 #include <wx/numformatter.h>
+#include <wx/statline.h>
 
 #include <hotkeys.h>
 #include <wildcards_and_files_ext.h>
 #include <base_units.h>
 
-
 BEGIN_EVENT_TABLE( FOOTPRINT_WIZARD_FRAME, EDA_DRAW_FRAME )
 
     // Window events
@@ -113,7 +114,7 @@ FOOTPRINT_WIZARD_FRAME::FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway,
                           : KICAD_DEFAULT_DRAWFRAME_STYLE | wxSTAY_ON_TOP,
                 FOOTPRINT_WIZARD_FRAME_NAME )
 {
-    wxASSERT( aFrameType == FRAME_PCB_FOOTPRINT_WIZARD_MODAL );
+    wxASSERT( aFrameType == FRAME_PCB_FOOTPRINT_WIZARD );
 
     // This frame is always show modal:
     SetModal( true );
@@ -156,8 +157,11 @@ FOOTPRINT_WIZARD_FRAME::FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway,
     m_parametersPanel = new wxPanel( this, wxID_ANY );
 
     m_pageList = new wxListBox( m_parametersPanel, ID_FOOTPRINT_WIZARD_PAGE_LIST,
-                                wxDefaultPosition, wxDefaultSize,
-                                0, NULL, wxLB_HSCROLL );
+                                wxDefaultPosition, wxDefaultSize, 0, NULL,
+                                wxLB_HSCROLL | wxNO_BORDER );
+
+    auto divider = new wxStaticLine( m_parametersPanel, wxID_ANY,
+                                     wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
 
     m_parameterGrid = new wxGrid( m_parametersPanel, ID_FOOTPRINT_WIZARD_PARAMETER_LIST );
     initParameterGrid();
@@ -166,58 +170,31 @@ FOOTPRINT_WIZARD_FRAME::FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway,
     ReCreatePageList();
 
     wxBoxSizer* parametersSizer = new wxBoxSizer( wxHORIZONTAL );
-    parametersSizer->Add( m_pageList, 0, wxEXPAND|wxALL, 5 );
-    parametersSizer->Add( m_parameterGrid, 1, wxEXPAND|wxALL, 5 );
+    parametersSizer->Add( m_pageList, 0, wxEXPAND, 5 );
+    parametersSizer->Add( divider, 0, wxEXPAND, 5 );
+    parametersSizer->Add( m_parameterGrid, 1, wxEXPAND, 5 );
     m_parametersPanel->SetSizer( parametersSizer );
     m_parametersPanel->Layout();
 
     // Create the build message box
     m_buildMessageBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString,
                                         wxDefaultPosition, wxDefaultSize,
-                                        wxTE_MULTILINE|wxTE_READONLY );
+                                        wxTE_MULTILINE | wxTE_READONLY | wxNO_BORDER );
 
     DisplayWizardInfos();
 
     m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    EDA_PANEINFO horiztb;
-    horiztb.HorizontalToolbarPane();
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    EDA_PANEINFO    info;
-    info.InfoToolbarPane();
+    m_auimgr.AddPane( m_parametersPanel, EDA_PANE().Palette().Name( "Params" ).Left().Position(0)
+                      .Caption( _( "Parameters" ) ).MinSize( 360, 180 ) );
+    m_auimgr.AddPane( m_buildMessageBox, EDA_PANE().Palette().Name( "Output" ).Left().Position(1)
+                      .CaptionVisible( false ).MinSize( 360, -1 ) );
 
-    EDA_PANEINFO    mesg;
-    mesg.MessageToolbarPane();
-
-    // Manage main toolbal
-    m_auimgr.AddPane( m_mainToolBar, wxAuiPaneInfo( horiztb ).
-                      Name( wxT ("m_mainToolBar" ) ).Top().Row( 0 ) );
-
-    // Manage the parameters panel
-    EDA_PANEINFO parametersPaneInfo;
-    parametersPaneInfo.InfoToolbarPane().Name( wxT( "m_parametersPanel" ) ).Left().Position( 0 );
-    m_auimgr.AddPane( m_parametersPanel, wxAuiPaneInfo( parametersPaneInfo ) );
-
-    // Manage the build message box
-    EDA_PANEINFO buildMessageBoxInfo;
-    buildMessageBoxInfo.InfoToolbarPane().Name( wxT( "m_buildMessageBox" ) ).Left().Position( 1 );
-    m_auimgr.AddPane( m_buildMessageBox, wxAuiPaneInfo( buildMessageBoxInfo ) );
-
-    // Manage the draw panel
-    m_auimgr.AddPane( m_canvas,
-                      wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
-
-    // Manage the message panel
-    m_auimgr.AddPane( m_messagePanel,
-                      wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(1) );
-
-    // Give a min size to the parameters
-    m_auimgr.GetPane( m_parametersPanel ).MinSize( wxSize( 360, 180 ) );
-
-    m_auimgr.LoadPerspective( m_auiPerspective );
-
-    // Ensure the draw panel is shown, regardless the perspective config:
-    m_auimgr.GetPane( wxT( "DrawFrame" ) ).Show( true );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center() );
 
     // Now Drawpanel is sized, we can use BestZoom to show the component (if any)
 #ifdef USE_WX_GRAPHICS_CONTEXT
diff --git a/pcbnew/pcb_base_frame.cpp b/pcbnew/pcb_base_frame.cpp
index 5d762089ad..0ec4e5fbab 100644
--- a/pcbnew/pcb_base_frame.cpp
+++ b/pcbnew/pcb_base_frame.cpp
@@ -294,6 +294,13 @@ void PCB_BASE_FRAME::SetDesignSettings( const BOARD_DESIGN_SETTINGS& aSettings )
 }
 
 
+void PCB_BASE_FRAME::SetDrawBgColor( COLOR4D aColor )
+{
+    m_drawBgColor= aColor;
+    m_auimgr.Update();
+}
+
+
 const ZONE_SETTINGS& PCB_BASE_FRAME::GetZoneSettings() const
 {
     wxASSERT( m_Pcb );
diff --git a/pcbnew/pcb_edit_frame.cpp b/pcbnew/pcb_edit_frame.cpp
index 5eef5ebc99..91ab57c114 100644
--- a/pcbnew/pcb_edit_frame.cpp
+++ b/pcbnew/pcb_edit_frame.cpp
@@ -72,6 +72,7 @@
 #include <tools/pcb_actions.h>
 #include <gestfich.h>
 #include <executable_names.h>
+#include <eda_dockart.h>
 
 #if defined(KICAD_SCRIPTING) || defined(KICAD_SCRIPTING_WXPYTHON)
 #include <python_scripting.h>
@@ -359,73 +360,30 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
     ReCreateAuxiliaryToolbar();
     ReCreateVToolbar();
     ReCreateOptToolbar();
-
     ReCreateMicrowaveVToolbar();
 
     m_auimgr.SetManagedWindow( this );
+    m_auimgr.SetArtProvider( new EDA_DOCKART( this ) );
 
-    EDA_PANEINFO horiz;
-    horiz.HorizontalToolbarPane();
+    // Horizontal items; layers 4 - 6
+    m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" ).Top().Layer(6) );
+    m_auimgr.AddPane( m_auxiliaryToolBar, EDA_PANE().HToolbar().Name( "AuxToolbar" ).Top().Layer(4) );
+    m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
 
-    EDA_PANEINFO vert;
-    vert.VerticalToolbarPane();
+    // Vertical items; layers 1 - 3
+    m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
 
-    EDA_PANEINFO mesg;
-    mesg.MessageToolbarPane();
+    m_auimgr.AddPane( m_microWaveToolBar, EDA_PANE().VToolbar().Name( "MicrowaveToolbar" ).Right().Layer(1) );
+    m_auimgr.AddPane( m_drawToolBar, EDA_PANE().VToolbar().Name( "ToolsToolbar" ).Right().Layer(2) );
+    m_auimgr.AddPane( m_Layers, EDA_PANE().Palette().Name( "LayersManager" ).Right().Layer(3)
+                      .Caption( _( "Layers Manager" ) ).PaneBorder( false )
+                      .MinSize( 80, -1 ).BestSize( m_Layers->GetBestSize() ) );
 
-    // Create a wxAuiPaneInfo for the Layers Manager, not derived from the template.
-    // LAYER_WIDGET is floatable, but initially docked at far right
-    EDA_PANEINFO   lyrs;
-    lyrs.LayersToolbarPane();
-    lyrs.MinSize( m_Layers->GetBestSize() );    // updated in ReFillLayerWidget
-    lyrs.BestSize( m_Layers->GetBestSize() );
-    lyrs.Caption( _( "Layers Manager" ) );
-    lyrs.TopDockable( false ).BottomDockable( false );
+    m_auimgr.AddPane( m_canvas, EDA_PANE().Canvas().Name( "DrawFrame" ).Center().Hide() );
+    m_auimgr.AddPane( GetGalCanvas(), EDA_PANE().Canvas().Name( "DrawFrameGal" ).Center() );
 
-    if( m_mainToolBar )    // The main horizontal toolbar
-    {
-        m_auimgr.AddPane( m_mainToolBar,
-                          wxAuiPaneInfo( horiz ).Name( wxT( "m_mainToolBar" ) ).Top().Row( 0 ) );
-    }
-
-    if( m_auxiliaryToolBar )    // the auxiliary horizontal toolbar, that shows track and via sizes, zoom ...)
-    {
-        m_auimgr.AddPane( m_auxiliaryToolBar,
-                          wxAuiPaneInfo( horiz ).Name( wxT( "m_auxiliaryToolBar" ) ).Top().Row( 1 ) );
-    }
-
-    if( m_microWaveToolBar )    // The auxiliary vertical right toolbar (currently microwave tools)
-        m_auimgr.AddPane( m_microWaveToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_microWaveToolBar" ) ).
-                          Right().Layer( 1 ).Position(1).Hide() );
-
-    if( m_drawToolBar )    // The main right vertical toolbar
-        m_auimgr.AddPane( m_drawToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_VToolBar" ) ).Right().Layer( 2 ) );
-
-    // Add the layer manager ( most right side of pcbframe )
-    m_auimgr.AddPane( m_Layers, lyrs.Name( wxT( "m_LayersManagerToolBar" ) ).Right().Layer( 3 ) );
-
-    if( m_optionsToolBar )    // The left vertical toolbar (fast acces display options of Pcbnew)
-    {
-        m_auimgr.AddPane( m_optionsToolBar,
-                          wxAuiPaneInfo( vert ).Name( wxT( "m_optionsToolBar" ) ).Left().Layer(1) );
-
-        m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );
-        m_auimgr.GetPane( wxT( "m_microWaveToolBar" ) ).Show( m_show_microwave_tools );
-    }
-
-    if( m_canvas )
-        m_auimgr.AddPane( m_canvas,
-                          wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
-
-    if( GetGalCanvas() )
-        m_auimgr.AddPane( (wxWindow*) GetGalCanvas(),
-                          wxAuiPaneInfo().Name( wxT( "DrawFrameGal" ) ).CentrePane().Hide() );
-
-    if( m_messagePanel )
-        m_auimgr.AddPane( m_messagePanel,
-                          wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(10) );
+    m_auimgr.GetPane( "LayersManager" ).Show( m_show_layer_manager_tools );
+    m_auimgr.GetPane( "MicrowaveToolbar" ).Show( m_show_microwave_tools );
 
     ReFillLayerWidget();        // this is near end because contents establish size
     m_Layers->ReFillRender();   // Update colors in Render after the config is read
diff --git a/pcbnew/pcb_layer_widget.cpp b/pcbnew/pcb_layer_widget.cpp
index 826b1aa6d5..766b21a958 100644
--- a/pcbnew/pcb_layer_widget.cpp
+++ b/pcbnew/pcb_layer_widget.cpp
@@ -604,6 +604,9 @@ void PCB_LAYER_WIDGET::OnLayerColorChange( int aLayer, COLOR4D aColor )
     myframe->ReCreateHToolbar();
 
     myframe->GetCanvas()->Refresh();
+
+    if( aLayer == LAYER_PCB_BACKGROUND )
+        myframe->SetDrawBgColor( aColor );
 }
 
 
diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp
index 744f53dc91..ae98e67a6e 100644
--- a/pcbnew/pcbnew.cpp
+++ b/pcbnew/pcbnew.cpp
@@ -149,7 +149,7 @@ static struct IFACE : public KIFACE_I
             }
         }
 
-        case FRAME_PCB_FOOTPRINT_WIZARD_MODAL:
+        case FRAME_PCB_FOOTPRINT_WIZARD:
             return new FOOTPRINT_WIZARD_FRAME( aKiway, aParent, FRAME_T( aClassId ) );
 
         case FRAME_PCB_FOOTPRINT_PREVIEW:
diff --git a/pcbnew/tool_pcb_editor.cpp b/pcbnew/tool_pcb_editor.cpp
index 1aac4fc348..66b6223570 100644
--- a/pcbnew/tool_pcb_editor.cpp
+++ b/pcbnew/tool_pcb_editor.cpp
@@ -798,14 +798,14 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event )
 
     case ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR_MICROWAVE:
         m_show_microwave_tools = state;
-        m_auimgr.GetPane( wxT( "m_microWaveToolBar" ) ).Show( m_show_microwave_tools );
+        m_auimgr.GetPane( "MicrowaveToolbar" ).Show( m_show_microwave_tools );
         m_auimgr.Update();
         break;
 
     case ID_TB_OPTIONS_SHOW_MANAGE_LAYERS_VERTICAL_TOOLBAR:
         // show auxiliary Vertical layers and visibility manager toolbar
         m_show_layer_manager_tools = state;
-        m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).Show( m_show_layer_manager_tools );
+        m_auimgr.GetPane( "LayersManager" ).Show( m_show_layer_manager_tools );
         m_auimgr.Update();
         break;
 
diff --git a/pcbnew/toolbars_update_user_interface.cpp b/pcbnew/toolbars_update_user_interface.cpp
index 6161cbaa85..28b9ca0524 100644
--- a/pcbnew/toolbars_update_user_interface.cpp
+++ b/pcbnew/toolbars_update_user_interface.cpp
@@ -150,12 +150,12 @@ void PCB_EDIT_FRAME::OnUpdateHighContrastDisplayMode( wxUpdateUIEvent& aEvent )
 
 void PCB_EDIT_FRAME::OnUpdateShowLayerManager( wxUpdateUIEvent& aEvent )
 {
-    aEvent.Check( m_auimgr.GetPane( wxT( "m_LayersManagerToolBar" ) ).IsShown() );
+    aEvent.Check( m_auimgr.GetPane( "LayersManager" ).IsShown() );
 }
 
 void PCB_EDIT_FRAME::OnUpdateShowMicrowaveToolbar( wxUpdateUIEvent& aEvent )
 {
-    aEvent.Check( m_auimgr.GetPane( wxT( "m_microWaveToolBar" ) ).IsShown() );
+    aEvent.Check( m_auimgr.GetPane( "MicrowaveToolbar" ).IsShown() );
 }