From f3e171797c55c7dfefa8064416b235466759557c Mon Sep 17 00:00:00 2001
From: jean-pierre charras <jp.charras@wanadoo.fr>
Date: Wed, 18 Apr 2012 09:07:13 +0200
Subject: [PATCH] Make Gerbview working with USE_PCBNEW_NANOMETRES option ON

---
 gerbview/class_GERBER.cpp                     |  10 +-
 gerbview/class_aperture_macro.cpp             |  48 +--
 gerbview/dcode.cpp                            |   6 +-
 .../dialog_layers_select_to_pcb_base.fbp      | 120 +++---
 .../dialog_print_using_printer_base.fbp       | 366 +++++++++++++++++-
 .../dialogs/dialog_show_page_borders_base.fbp |  56 +--
 ...view_dialog_display_options_frame_base.fbp |  40 +-
 gerbview/excellon_read_drill_file.cpp         |   7 +-
 gerbview/export_to_pcbnew.cpp                 |  44 ++-
 gerbview/gerbview.cpp                         |  23 ++
 gerbview/gerbview_frame.cpp                   |   3 +-
 gerbview/rs274_read_XY_and_IJ_coordinates.cpp |  77 ++--
 gerbview/rs274d.cpp                           |  17 -
 gerbview/rs274x.cpp                           |   7 +-
 14 files changed, 564 insertions(+), 260 deletions(-)

diff --git a/gerbview/class_GERBER.cpp b/gerbview/class_GERBER.cpp
index c702f90586..47200fbfad 100644
--- a/gerbview/class_GERBER.cpp
+++ b/gerbview/class_GERBER.cpp
@@ -38,10 +38,10 @@
 
 
 /**
- * Function scale
- * converts a distance given in floating point to our deci-mils
+ * Function scaletoIU
+ * converts a distance given in floating point to our internal units
  */
-extern int scale( double aCoord, bool isMetric );       // defined it rs274d.cpp
+extern int scaletoIU( double aCoord, bool isMetric );       // defined it rs274d_read_XY_and_IJ_coordiantes.cpp
 
 /* Format Gerber: NOTES:
  * Tools and D_CODES
@@ -301,9 +301,9 @@ void GERBER_IMAGE::StepAndRepeatItem( const GERBER_DRAW_ITEM& aItem )
                 continue;
             GERBER_DRAW_ITEM* dupItem = new GERBER_DRAW_ITEM( aItem );
             wxPoint           move_vector;
-            move_vector.x = scale( ii * GetLayerParams().m_StepForRepeat.x,
+            move_vector.x = scaletoIU( ii * GetLayerParams().m_StepForRepeat.x,
                                    GetLayerParams().m_StepForRepeatMetric );
-            move_vector.y = scale( jj * GetLayerParams().m_StepForRepeat.y,
+            move_vector.y = scaletoIU( jj * GetLayerParams().m_StepForRepeat.y,
                                    GetLayerParams().m_StepForRepeatMetric );
             dupItem->MoveXY( move_vector );
             m_Parent->GetBoard()->m_Drawings.Append( dupItem );
diff --git a/gerbview/class_aperture_macro.cpp b/gerbview/class_aperture_macro.cpp
index ce1886d104..12661308d9 100644
--- a/gerbview/class_aperture_macro.cpp
+++ b/gerbview/class_aperture_macro.cpp
@@ -39,10 +39,10 @@
 
 
 /**
- * Function scale
- * converts a distance given in floating point to our deci-mils
+ * Function scaletoIU
+ * converts a distance given in floating point to our internal units
  */
-extern int     scale( double aCoord, bool isMetric );       // defined it rs274d.cpp
+extern int scaletoIU( double aCoord, bool isMetric );       // defined it rs274d_read_XY_and_IJ_coordiantes.cpp
 
 /**
  * Function mapPt
@@ -52,7 +52,7 @@ extern int     scale( double aCoord, bool isMetric );       // defined it rs274d
  */
 static wxPoint mapPt( double x, double y, bool isMetric )
 {
-    wxPoint ret( scale( x, isMetric ), scale( y, isMetric ) );
+    wxPoint ret( scaletoIU( x, isMetric ), scaletoIU( y, isMetric ) );
 
     return ret;
 }
@@ -157,7 +157,7 @@ void AM_PRIMITIVE::DrawBasicShape( GERBER_DRAW_ITEM* aParent,
          */
         curPos += mapPt( params[2].GetValue( tool ), params[3].GetValue( tool ), m_GerbMetric );
         curPos = aParent->GetABPosition( curPos );
-        int radius = scale( params[1].GetValue( tool ), m_GerbMetric ) / 2;
+        int radius = scaletoIU( params[1].GetValue( tool ), m_GerbMetric ) / 2;
         if( !aFilledShape )
             GRCircle( aClipBox, aDC, curPos, radius, 0, aColor );
         else
@@ -300,9 +300,9 @@ void AM_PRIMITIVE::DrawBasicShape( GERBER_DRAW_ITEM* aParent,
          * type(6), pos.x, pos.y, diam, penwidth, gap, circlecount, crosshair thickness, crosshaire len, rotation
          * type is not stored in parameters list, so the first parameter is pos.x
          */
-        int outerDiam    = scale( params[2].GetValue( tool ), m_GerbMetric );
-        int penThickness = scale( params[3].GetValue( tool ), m_GerbMetric );
-        int gap = scale( params[4].GetValue( tool ), m_GerbMetric );
+        int outerDiam    = scaletoIU( params[2].GetValue( tool ), m_GerbMetric );
+        int penThickness = scaletoIU( params[3].GetValue( tool ), m_GerbMetric );
+        int gap = scaletoIU( params[4].GetValue( tool ), m_GerbMetric );
         int numCircles = wxRound( params[5].GetValue( tool ) );
 
         // Draw circles:
@@ -358,8 +358,8 @@ void AM_PRIMITIVE::DrawBasicShape( GERBER_DRAW_ITEM* aParent,
         for( int i = 0; i<numPoints + 1; ++i )
         {
             int jj = i * 2 + 2;
-            pos.x = scale( params[jj].GetValue( tool ), m_GerbMetric );
-            pos.y = scale( params[jj + 1].GetValue( tool ), m_GerbMetric );
+            pos.x = scaletoIU( params[jj].GetValue( tool ), m_GerbMetric );
+            pos.y = scaletoIU( params[jj + 1].GetValue( tool ), m_GerbMetric );
             polybuffer.push_back(pos);
         }
         // rotate polygon and move it to the actual position
@@ -438,7 +438,7 @@ void AM_PRIMITIVE::ConvertShapeToPolygon( GERBER_DRAW_ITEM*     aParent,
     case AMP_LINE2:
     case AMP_LINE20:        // Line with rectangle ends. (Width, start and end pos + rotation)
     {
-        int     width = scale( params[1].GetValue( tool ), m_GerbMetric );
+        int     width = scaletoIU( params[1].GetValue( tool ), m_GerbMetric );
         wxPoint start = mapPt( params[2].GetValue( tool ),
                                params[3].GetValue( tool ), m_GerbMetric );
         wxPoint end = mapPt( params[4].GetValue( tool ),
@@ -509,9 +509,9 @@ void AM_PRIMITIVE::ConvertShapeToPolygon( GERBER_DRAW_ITEM*     aParent,
         // Only 1/4 of the full shape is built, because the other 3 shapes will be draw from this first
         // rotated by 90, 180 and 270 deg.
         // params = center.x (unused here), center.y (unused here), outside diam, inside diam, crosshair thickness
-        int outerRadius   = scale( params[2].GetValue( tool ), m_GerbMetric ) / 2;
-        int innerRadius   = scale( params[3].GetValue( tool ), m_GerbMetric ) / 2;
-        int halfthickness = scale( params[4].GetValue( tool ), m_GerbMetric ) / 2;
+        int outerRadius   = scaletoIU( params[2].GetValue( tool ), m_GerbMetric ) / 2;
+        int innerRadius   = scaletoIU( params[3].GetValue( tool ), m_GerbMetric ) / 2;
+        int halfthickness = scaletoIU( params[4].GetValue( tool ), m_GerbMetric ) / 2;
         int angle_start   = wxRound( asin(
                                          (double) halfthickness / innerRadius ) * 1800 / M_PI );
 
@@ -560,8 +560,8 @@ void AM_PRIMITIVE::ConvertShapeToPolygon( GERBER_DRAW_ITEM*     aParent,
     case AMP_MOIRE:     // A cross hair with n concentric circles. Only the cros is build as polygon
                         // because circles can be drawn easily
     {
-        int crossHairThickness = scale( params[6].GetValue( tool ), m_GerbMetric );
-        int crossHairLength    = scale( params[7].GetValue( tool ), m_GerbMetric );
+        int crossHairThickness = scaletoIU( params[6].GetValue( tool ), m_GerbMetric );
+        int crossHairLength    = scaletoIU( params[7].GetValue( tool ), m_GerbMetric );
 
         // Create cross. First create 1/4 of the shape.
         // Others point are the same, totated by 90, 180 and 270 deg
@@ -594,7 +594,7 @@ void AM_PRIMITIVE::ConvertShapeToPolygon( GERBER_DRAW_ITEM*     aParent,
     case AMP_POLYGON:   // Creates a regular polygon
     {
         int vertexcount = wxRound( params[1].GetValue( tool ) );
-        int radius    = scale( params[4].GetValue( tool ), m_GerbMetric ) / 2;
+        int radius    = scaletoIU( params[4].GetValue( tool ), m_GerbMetric ) / 2;
         // rs274x said: vertex count = 3 ... 10, and the first corner is on the X axis
         if( vertexcount < 3 )
             vertexcount = 3;
@@ -635,12 +635,12 @@ int AM_PRIMITIVE::GetShapeDim( GERBER_DRAW_ITEM* aParent )
     {
     case AMP_CIRCLE:
         // params = exposure, diameter, pos.x, pos.y
-        dim = scale( params[1].GetValue( tool ), m_GerbMetric );     // Diameter
+        dim = scaletoIU( params[1].GetValue( tool ), m_GerbMetric );     // Diameter
         break;
 
     case AMP_LINE2:
     case AMP_LINE20:        // Line with rectangle ends. (Width, start and end pos + rotation)
-        dim  = scale( params[1].GetValue( tool ), m_GerbMetric );   // linne width
+        dim  = scaletoIU( params[1].GetValue( tool ), m_GerbMetric );   // linne width
     break;
 
     case AMP_LINE_CENTER:
@@ -662,12 +662,12 @@ int AM_PRIMITIVE::GetShapeDim( GERBER_DRAW_ITEM* aParent )
         // Only 1/4 of the full shape is built, because the other 3 shapes will be draw from this first
         // rotated by 90, 180 and 270 deg.
         // params = center.x (unused here), center.y (unused here), outside diam, inside diam, crosshair thickness
-        dim   = scale( params[2].GetValue( tool ), m_GerbMetric ) / 2;  // Outer diam
+        dim   = scaletoIU( params[2].GetValue( tool ), m_GerbMetric ) / 2;  // Outer diam
     }
     break;
 
     case AMP_MOIRE:     // A cross hair with n concentric circles.
-        dim = scale( params[7].GetValue( tool ), m_GerbMetric );    // = cross hair len
+        dim = scaletoIU( params[7].GetValue( tool ), m_GerbMetric );    // = cross hair len
         break;
 
     case AMP_OUTLINE:   // a free polygon :
@@ -681,8 +681,8 @@ int AM_PRIMITIVE::GetShapeDim( GERBER_DRAW_ITEM* aParent )
         for( int i = 0; i<numPoints + 1; ++i )
         {
             int jj = i * 2 + 2;
-            pos.x = scale( params[jj].GetValue( tool ), m_GerbMetric );
-            pos.y = scale( params[jj + 1].GetValue( tool ), m_GerbMetric );
+            pos.x = scaletoIU( params[jj].GetValue( tool ), m_GerbMetric );
+            pos.y = scaletoIU( params[jj + 1].GetValue( tool ), m_GerbMetric );
             if( i == 0 )
                 pos_min = pos_max = pos;
             else
@@ -708,7 +708,7 @@ int AM_PRIMITIVE::GetShapeDim( GERBER_DRAW_ITEM* aParent )
         break;
 
     case AMP_POLYGON:   // Regular polygon
-        dim = scale( params[4].GetValue( tool ), m_GerbMetric ) / 2;      // Radius
+        dim = scaletoIU( params[4].GetValue( tool ), m_GerbMetric ) / 2;      // Radius
         break;
 
     case AMP_COMMENT:
diff --git a/gerbview/dcode.cpp b/gerbview/dcode.cpp
index ff93db7922..73d4b973eb 100644
--- a/gerbview/dcode.cpp
+++ b/gerbview/dcode.cpp
@@ -35,6 +35,7 @@
 #include <macros.h>
 #include <trigo.h>
 #include <gr_basic.h>
+#include <base_units.h>
 
 #include <gerbview.h>
 #include <class_gerber_draw_item.h>
@@ -155,7 +156,7 @@ int D_CODE::GetShapeDim( GERBER_DRAW_ITEM* aParent )
 
 int GERBVIEW_FRAME::ReadDCodeDefinitionFile( const wxString& D_Code_FullFileName )
 {
-    int      current_Dcode, ii, dcode_scale;
+    int      current_Dcode, ii;
     char*    ptcar;
     int      dimH, dimV, drill, dummy;
     float    fdimH, fdimV, fdrill;
@@ -174,8 +175,7 @@ int GERBVIEW_FRAME::ReadDCodeDefinitionFile( const wxString& D_Code_FullFileName
 
 
     /* Updating gerber scale: */
-    dcode_scale   = 10; /* By uniting dCode = mil, internal unit = 0.1 mil
-                         * -> 1 unite dcode = 10 unit PCB */
+    double dcode_scale = MILS_TO_IU_SCALAR; // By uniting dCode = mil, internal unit = MILS_TO_IU_SCALAR
     current_Dcode = 0;
 
     if( D_Code_FullFileName.IsEmpty() )
diff --git a/gerbview/dialogs/dialog_layers_select_to_pcb_base.fbp b/gerbview/dialogs/dialog_layers_select_to_pcb_base.fbp
index 4856eb8d8a..dc710fe612 100644
--- a/gerbview/dialogs/dialog_layers_select_to_pcb_base.fbp
+++ b/gerbview/dialogs/dialog_layers_select_to_pcb_base.fbp
@@ -1,12 +1,14 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
 <wxFormBuilder_Project>
-    <FileVersion major="1" minor="10" />
+    <FileVersion major="1" minor="11" />
     <object class="Project" expanded="1">
         <property name="class_decoration"></property>
         <property name="code_generation">C++</property>
         <property name="disconnect_events">1</property>
         <property name="disconnect_mode">source_name</property>
+        <property name="disconnect_php_events">0</property>
         <property name="disconnect_python_events">0</property>
+        <property name="embedded_files_path">res</property>
         <property name="encoding">UTF-8</property>
         <property name="event_generation">table</property>
         <property name="file">dialog_layers_select_to_pcb_base</property>
@@ -18,68 +20,44 @@
         <property name="path">.</property>
         <property name="precompiled_header"></property>
         <property name="relative_path">1</property>
+        <property name="skip_php_events">1</property>
         <property name="skip_python_events">1</property>
         <property name="use_enum">1</property>
         <property name="use_microsoft_bom">0</property>
         <object class="Dialog" 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_managed">0</property>
-            <property name="aui_name"></property>
+            <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
             <property name="bg"></property>
-            <property name="caption"></property>
-            <property name="caption_visible">1</property>
             <property name="center">wxBOTH</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="event_handler">impl_virtual</property>
             <property name="extra_style"></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">ID_LAYERS_MAP_DIALOG_BASE</property>
-            <property name="layer"></property>
-            <property name="maximize_button">0</property>
             <property name="maximum_size"></property>
-            <property name="minimize_button">0</property>
             <property name="minimum_size"></property>
-            <property name="moveable">1</property>
             <property name="name">LAYERS_MAP_DIALOG_BASE</property>
-            <property name="pane_border">1</property>
-            <property name="pane_position"></property>
-            <property name="pane_size"></property>
-            <property name="pin_button">1</property>
             <property name="pos"></property>
-            <property name="position"></property>
-            <property name="resize">Resizable</property>
-            <property name="row"></property>
-            <property name="show">1</property>
             <property name="size">400,286</property>
             <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
             <property name="subclass"></property>
             <property name="title">Layer selection:</property>
-            <property name="toolbar_pane">0</property>
             <property name="tooltip"></property>
-            <property name="validator_data_type"></property>
-            <property name="validator_style">wxFILTER_NONE</property>
-            <property name="validator_type">wxDefaultValidator</property>
-            <property name="validator_variable"></property>
             <property name="window_extra_style"></property>
             <property name="window_name"></property>
             <property name="window_style"></property>
             <event name="OnActivate"></event>
             <event name="OnActivateApp"></event>
+            <event name="OnAuiFindManager"></event>
+            <event name="OnAuiPaneButton"></event>
+            <event name="OnAuiPaneClose"></event>
+            <event name="OnAuiPaneMaximize"></event>
+            <event name="OnAuiPaneRestore"></event>
+            <event name="OnAuiRender"></event>
             <event name="OnChar"></event>
             <event name="OnClose"></event>
             <event name="OnEnterWindow"></event>
@@ -161,7 +139,11 @@
                                         <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>
@@ -180,9 +162,10 @@
                                         <property name="gripper">0</property>
                                         <property name="hidden">0</property>
                                         <property name="id">ID_M_STATICLINESEP</property>
-                                        <property name="layer"></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>
@@ -193,19 +176,13 @@
                                         <property name="permission">protected</property>
                                         <property name="pin_button">1</property>
                                         <property name="pos"></property>
-                                        <property name="position"></property>
                                         <property name="resize">Resizable</property>
-                                        <property name="row"></property>
                                         <property name="show">1</property>
                                         <property name="size"></property>
                                         <property name="style">wxLI_VERTICAL</property>
                                         <property name="subclass"></property>
                                         <property name="toolbar_pane">0</property>
                                         <property name="tooltip"></property>
-                                        <property name="validator_data_type"></property>
-                                        <property name="validator_style">wxFILTER_NONE</property>
-                                        <property name="validator_type">wxDefaultValidator</property>
-                                        <property name="validator_variable"></property>
                                         <property name="window_extra_style"></property>
                                         <property name="window_name"></property>
                                         <property name="window_style"></property>
@@ -263,7 +240,11 @@
                                                 <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>
@@ -283,9 +264,10 @@
                                                 <property name="hidden">0</property>
                                                 <property name="id">ID_M_STATICTEXTCOPPERLAYERCOUNT</property>
                                                 <property name="label">Copper layers count:</property>
-                                                <property name="layer"></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>
@@ -296,19 +278,13 @@
                                                 <property name="permission">protected</property>
                                                 <property name="pin_button">1</property>
                                                 <property name="pos"></property>
-                                                <property name="position"></property>
                                                 <property name="resize">Resizable</property>
-                                                <property name="row"></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="validator_data_type"></property>
-                                                <property name="validator_style">wxFILTER_NONE</property>
-                                                <property name="validator_type">wxDefaultValidator</property>
-                                                <property name="validator_variable"></property>
                                                 <property name="window_extra_style"></property>
                                                 <property name="window_name"></property>
                                                 <property name="window_style"></property>
@@ -347,7 +323,11 @@
                                                 <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>
@@ -367,9 +347,10 @@
                                                 <property name="gripper">0</property>
                                                 <property name="hidden">0</property>
                                                 <property name="id">ID_M_COMBOCOPPERLAYERSCOUNT</property>
-                                                <property name="layer"></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>
@@ -380,9 +361,8 @@
                                                 <property name="permission">protected</property>
                                                 <property name="pin_button">1</property>
                                                 <property name="pos"></property>
-                                                <property name="position"></property>
                                                 <property name="resize">Resizable</property>
-                                                <property name="row"></property>
+                                                <property name="selection">-1</property>
                                                 <property name="show">1</property>
                                                 <property name="size"></property>
                                                 <property name="style"></property>
@@ -455,7 +435,11 @@
                                                 <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>
@@ -476,9 +460,10 @@
                                                 <property name="hidden">0</property>
                                                 <property name="id">ID_STORE_CHOICE</property>
                                                 <property name="label">Store Choice</property>
-                                                <property name="layer"></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>
@@ -489,9 +474,7 @@
                                                 <property name="permission">protected</property>
                                                 <property name="pin_button">1</property>
                                                 <property name="pos"></property>
-                                                <property name="position"></property>
                                                 <property name="resize">Resizable</property>
-                                                <property name="row"></property>
                                                 <property name="show">1</property>
                                                 <property name="size"></property>
                                                 <property name="style"></property>
@@ -540,7 +523,11 @@
                                                 <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>
@@ -561,9 +548,10 @@
                                                 <property name="hidden">0</property>
                                                 <property name="id">ID_GET_PREVIOUS_CHOICE</property>
                                                 <property name="label">Get Stored Choice</property>
-                                                <property name="layer"></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>
@@ -574,9 +562,7 @@
                                                 <property name="permission">protected</property>
                                                 <property name="pin_button">1</property>
                                                 <property name="pos"></property>
-                                                <property name="position"></property>
                                                 <property name="resize">Resizable</property>
-                                                <property name="row"></property>
                                                 <property name="show">1</property>
                                                 <property name="size"></property>
                                                 <property name="style"></property>
@@ -625,7 +611,11 @@
                                                 <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>
@@ -646,9 +636,10 @@
                                                 <property name="hidden">0</property>
                                                 <property name="id">ID_RESET_CHOICE</property>
                                                 <property name="label">Reset</property>
-                                                <property name="layer"></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>
@@ -659,9 +650,7 @@
                                                 <property name="permission">protected</property>
                                                 <property name="pin_button">1</property>
                                                 <property name="pos"></property>
-                                                <property name="position"></property>
                                                 <property name="resize">Resizable</property>
-                                                <property name="row"></property>
                                                 <property name="show">1</property>
                                                 <property name="size"></property>
                                                 <property name="style"></property>
@@ -716,7 +705,11 @@
                         <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>
@@ -735,9 +728,10 @@
                         <property name="gripper">0</property>
                         <property name="hidden">0</property>
                         <property name="id">wxID_ANY</property>
-                        <property name="layer"></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>
@@ -748,19 +742,13 @@
                         <property name="permission">protected</property>
                         <property name="pin_button">1</property>
                         <property name="pos"></property>
-                        <property name="position"></property>
                         <property name="resize">Resizable</property>
-                        <property name="row"></property>
                         <property name="show">1</property>
                         <property name="size"></property>
                         <property name="style">wxLI_HORIZONTAL</property>
                         <property name="subclass"></property>
                         <property name="toolbar_pane">0</property>
                         <property name="tooltip"></property>
-                        <property name="validator_data_type"></property>
-                        <property name="validator_style">wxFILTER_NONE</property>
-                        <property name="validator_type">wxDefaultValidator</property>
-                        <property name="validator_variable"></property>
                         <property name="window_extra_style"></property>
                         <property name="window_name"></property>
                         <property name="window_style"></property>
diff --git a/gerbview/dialogs/dialog_print_using_printer_base.fbp b/gerbview/dialogs/dialog_print_using_printer_base.fbp
index db3d6e6963..724b188815 100644
--- a/gerbview/dialogs/dialog_print_using_printer_base.fbp
+++ b/gerbview/dialogs/dialog_print_using_printer_base.fbp
@@ -1,12 +1,14 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
 <wxFormBuilder_Project>
-    <FileVersion major="1" minor="10" />
+    <FileVersion major="1" minor="11" />
     <object class="Project" expanded="1">
         <property name="class_decoration"></property>
         <property name="code_generation">C++</property>
         <property name="disconnect_events">1</property>
         <property name="disconnect_mode">source_name</property>
+        <property name="disconnect_php_events">0</property>
         <property name="disconnect_python_events">0</property>
+        <property name="embedded_files_path">res</property>
         <property name="encoding">UTF-8</property>
         <property name="event_generation">connect</property>
         <property name="file">dialog_print_using_printer_base</property>
@@ -18,10 +20,13 @@
         <property name="path">.</property>
         <property name="precompiled_header"></property>
         <property name="relative_path">1</property>
+        <property name="skip_php_events">1</property>
         <property name="skip_python_events">1</property>
         <property name="use_enum">1</property>
         <property name="use_microsoft_bom">0</property>
         <object class="Dialog" expanded="1">
+            <property name="aui_managed">0</property>
+            <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
             <property name="bg"></property>
             <property name="center"></property>
             <property name="context_help"></property>
@@ -42,15 +47,17 @@
             <property name="subclass"></property>
             <property name="title">Print</property>
             <property name="tooltip"></property>
-            <property name="validator_data_type"></property>
-            <property name="validator_style">wxFILTER_NONE</property>
-            <property name="validator_type">wxDefaultValidator</property>
-            <property name="validator_variable"></property>
             <property name="window_extra_style"></property>
             <property name="window_name"></property>
             <property name="window_style"></property>
             <event name="OnActivate"></event>
             <event name="OnActivateApp"></event>
+            <event name="OnAuiFindManager"></event>
+            <event name="OnAuiPaneButton"></event>
+            <event name="OnAuiPaneClose"></event>
+            <event name="OnAuiPaneMaximize"></event>
+            <event name="OnAuiPaneRestore"></event>
+            <event name="OnAuiRender"></event>
             <event name="OnChar"></event>
             <event name="OnClose">OnCloseWindow</event>
             <event name="OnEnterWindow"></event>
@@ -151,26 +158,57 @@
                             <property name="flag">wxALL</property>
                             <property name="proportion">0</property>
                             <object class="wxRadioBox" 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="choices">&quot;fit in page&quot; &quot;Scale 0.5&quot; &quot;Scale 0.7&quot; &quot;Approx. Scale 1&quot; &quot;Accurate Scale 1&quot; &quot;Scale 1.4&quot; &quot;Scale 2&quot; &quot;Scale 3&quot; &quot;Scale 4&quot;</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">Approx. Scale:</property>
                                 <property name="majorDimension">1</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_ScaleOption</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="selection">3</property>
+                                <property name="show">1</property>
                                 <property name="size"></property>
                                 <property name="style">wxRA_SPECIFY_COLS</property>
                                 <property name="subclass"></property>
+                                <property name="toolbar_pane">0</property>
                                 <property name="tooltip"></property>
                                 <property name="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
@@ -210,28 +248,55 @@
                             <property name="flag">wxRIGHT|wxLEFT</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">X Scale Adjust</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_FineAdjustXscaleTitle</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="validator_data_type"></property>
-                                <property name="validator_style">wxFILTER_NONE</property>
-                                <property name="validator_type">wxDefaultValidator</property>
-                                <property name="validator_variable"></property>
                                 <property name="window_extra_style"></property>
                                 <property name="window_name"></property>
                                 <property name="window_style"></property>
@@ -266,23 +331,54 @@
                             <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
                             <property name="proportion">0</property>
                             <object class="wxTextCtrl" 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="max_size"></property>
+                                <property name="maximize_button">0</property>
                                 <property name="maximum_size"></property>
                                 <property name="maxlength">0</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_FineAdjustXscaleOpt</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">Set X scale adjust for exact scale plotting</property>
                                 <property name="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
@@ -326,28 +422,55 @@
                             <property name="flag">wxRIGHT|wxLEFT</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">Y Scale Adjust</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_FineAdjustYscaleTitle</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="validator_data_type"></property>
-                                <property name="validator_style">wxFILTER_NONE</property>
-                                <property name="validator_type">wxDefaultValidator</property>
-                                <property name="validator_variable"></property>
                                 <property name="window_extra_style"></property>
                                 <property name="window_name"></property>
                                 <property name="window_style"></property>
@@ -382,23 +505,54 @@
                             <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
                             <property name="proportion">0</property>
                             <object class="wxTextCtrl" 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="max_size"></property>
+                                <property name="maximize_button">0</property>
                                 <property name="maximum_size"></property>
                                 <property name="maxlength">0</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_FineAdjustYscaleOpt</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">Set Y scale adjust for exact scale plotting</property>
                                 <property name="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
@@ -465,24 +619,55 @@
                                     <property name="flag">wxALL</property>
                                     <property name="proportion">0</property>
                                     <object class="wxCheckBox" 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="checked">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">Mirror</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_Print_Mirror</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="validator_data_type"></property>
                                         <property name="validator_style">wxFILTER_NONE</property>
@@ -524,26 +709,57 @@
                             <property name="flag">wxALL|wxEXPAND</property>
                             <property name="proportion">0</property>
                             <object class="wxRadioBox" 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="choices">&quot;Color&quot; &quot;Black and white&quot;</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_PRINT_MODE</property>
                                 <property name="label">Print Mode</property>
                                 <property name="majorDimension">1</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_ModeColorOption</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="selection">0</property>
+                                <property name="show">1</property>
                                 <property name="size"></property>
                                 <property name="style">wxRA_SPECIFY_COLS</property>
                                 <property name="subclass"></property>
+                                <property name="toolbar_pane">0</property>
                                 <property name="tooltip">Choose if you want to print sheets in color, or force the black and white mode.</property>
                                 <property name="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
@@ -594,24 +810,55 @@
                             <property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
                             <property name="proportion">0</property>
                             <object class="wxButton" 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">0</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_PRINT_OPTIONS</property>
                                 <property name="label">Page Options</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_buttonOption</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="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
@@ -651,24 +898,55 @@
                             <property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
                             <property name="proportion">0</property>
                             <object class="wxButton" 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">0</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_PREVIEW</property>
                                 <property name="label">Preview</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_buttonPreview</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="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
@@ -708,24 +986,55 @@
                             <property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
                             <property name="proportion">0</property>
                             <object class="wxButton" 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">0</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_PRINT_ALL</property>
                                 <property name="label">Print</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_buttonPrint</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="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
@@ -765,24 +1074,55 @@
                             <property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
                             <property name="proportion">0</property>
                             <object class="wxButton" 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">0</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_CANCEL</property>
                                 <property name="label">Close</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_buttonQuit</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="validator_data_type"></property>
                                 <property name="validator_style">wxFILTER_NONE</property>
diff --git a/gerbview/dialogs/dialog_show_page_borders_base.fbp b/gerbview/dialogs/dialog_show_page_borders_base.fbp
index a5235414bf..80828042e8 100644
--- a/gerbview/dialogs/dialog_show_page_borders_base.fbp
+++ b/gerbview/dialogs/dialog_show_page_borders_base.fbp
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
 <wxFormBuilder_Project>
-    <FileVersion major="1" minor="10" />
+    <FileVersion major="1" minor="11" />
     <object class="Project" expanded="1">
         <property name="class_decoration"></property>
         <property name="code_generation">C++</property>
         <property name="disconnect_events">1</property>
         <property name="disconnect_mode">source_name</property>
+        <property name="disconnect_php_events">0</property>
         <property name="disconnect_python_events">0</property>
         <property name="embedded_files_path">res</property>
         <property name="encoding">UTF-8</property>
@@ -19,66 +20,33 @@
         <property name="path">.</property>
         <property name="precompiled_header"></property>
         <property name="relative_path">1</property>
+        <property name="skip_php_events">1</property>
         <property name="skip_python_events">1</property>
         <property name="use_enum">0</property>
         <property name="use_microsoft_bom">0</property>
         <object class="Dialog" 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_managed">0</property>
-            <property name="aui_name"></property>
-            <property name="best_size"></property>
+            <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
             <property name="bg"></property>
-            <property name="caption"></property>
-            <property name="caption_visible">1</property>
             <property name="center"></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="event_handler">impl_virtual</property>
             <property name="extra_style"></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="layer"></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">DIALOG_PAGE_SHOW_PAGE_BORDERS_BASE</property>
-            <property name="pane_border">1</property>
-            <property name="pane_position"></property>
-            <property name="pane_size"></property>
-            <property name="pin_button">1</property>
             <property name="pos"></property>
-            <property name="position"></property>
-            <property name="resize">Resizable</property>
-            <property name="row"></property>
-            <property name="show">1</property>
             <property name="size">263,254</property>
             <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
             <property name="subclass"></property>
             <property name="title">Page Borders</property>
-            <property name="toolbar_pane">0</property>
             <property name="tooltip"></property>
-            <property name="validator_data_type"></property>
-            <property name="validator_style">wxFILTER_NONE</property>
-            <property name="validator_type">wxDefaultValidator</property>
-            <property name="validator_variable"></property>
             <property name="window_extra_style"></property>
             <property name="window_name"></property>
             <property name="window_style"></property>
@@ -150,7 +118,10 @@
                                         <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>
@@ -172,7 +143,6 @@
                                         <property name="hidden">0</property>
                                         <property name="id">wxID_ANY</property>
                                         <property name="label">Show Page Limits:</property>
-                                        <property name="layer"></property>
                                         <property name="majorDimension">1</property>
                                         <property name="max_size"></property>
                                         <property name="maximize_button">0</property>
@@ -188,9 +158,7 @@
                                         <property name="permission">protected</property>
                                         <property name="pin_button">1</property>
                                         <property name="pos"></property>
-                                        <property name="position"></property>
                                         <property name="resize">Resizable</property>
-                                        <property name="row"></property>
                                         <property name="selection">0</property>
                                         <property name="show">1</property>
                                         <property name="size"></property>
@@ -244,7 +212,10 @@
                         <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>
@@ -264,7 +235,6 @@
                         <property name="gripper">0</property>
                         <property name="hidden">0</property>
                         <property name="id">wxID_ANY</property>
-                        <property name="layer"></property>
                         <property name="max_size"></property>
                         <property name="maximize_button">0</property>
                         <property name="maximum_size"></property>
@@ -279,19 +249,13 @@
                         <property name="permission">protected</property>
                         <property name="pin_button">1</property>
                         <property name="pos"></property>
-                        <property name="position"></property>
                         <property name="resize">Resizable</property>
-                        <property name="row"></property>
                         <property name="show">1</property>
                         <property name="size"></property>
                         <property name="style">wxLI_HORIZONTAL</property>
                         <property name="subclass"></property>
                         <property name="toolbar_pane">0</property>
                         <property name="tooltip"></property>
-                        <property name="validator_data_type"></property>
-                        <property name="validator_style">wxFILTER_NONE</property>
-                        <property name="validator_type">wxDefaultValidator</property>
-                        <property name="validator_variable"></property>
                         <property name="window_extra_style"></property>
                         <property name="window_name"></property>
                         <property name="window_style"></property>
diff --git a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp
index f4560f63d1..00d74864b4 100644
--- a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp
+++ b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp
@@ -25,62 +25,28 @@
         <property name="use_enum">0</property>
         <property name="use_microsoft_bom">0</property>
         <object class="Dialog" 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_managed">0</property>
-            <property name="aui_name"></property>
-            <property name="aui_position"></property>
-            <property name="aui_row"></property>
-            <property name="best_size"></property>
+            <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
             <property name="bg"></property>
-            <property name="caption"></property>
-            <property name="caption_visible">1</property>
             <property name="center"></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="event_handler">impl_virtual</property>
             <property name="extra_style"></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="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">DIALOG_DISPLAY_OPTIONS_BASE</property>
-            <property name="pane_border">1</property>
-            <property name="pane_position"></property>
-            <property name="pane_size"></property>
-            <property name="pin_button">1</property>
             <property name="pos"></property>
-            <property name="resize">Resizable</property>
-            <property name="show">1</property>
             <property name="size">446,330</property>
             <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
             <property name="subclass"></property>
             <property name="title">Gerbview Options</property>
-            <property name="toolbar_pane">0</property>
             <property name="tooltip"></property>
-            <property name="validator_data_type"></property>
-            <property name="validator_style">wxFILTER_NONE</property>
-            <property name="validator_type">wxDefaultValidator</property>
-            <property name="validator_variable"></property>
             <property name="window_extra_style"></property>
             <property name="window_name"></property>
             <property name="window_style"></property>
@@ -1140,10 +1106,6 @@
                         <property name="subclass"></property>
                         <property name="toolbar_pane">0</property>
                         <property name="tooltip"></property>
-                        <property name="validator_data_type"></property>
-                        <property name="validator_style">wxFILTER_NONE</property>
-                        <property name="validator_type">wxDefaultValidator</property>
-                        <property name="validator_variable"></property>
                         <property name="window_extra_style"></property>
                         <property name="window_name"></property>
                         <property name="window_style"></property>
diff --git a/gerbview/excellon_read_drill_file.cpp b/gerbview/excellon_read_drill_file.cpp
index bb15e13d20..4d3f01ce29 100644
--- a/gerbview/excellon_read_drill_file.cpp
+++ b/gerbview/excellon_read_drill_file.cpp
@@ -63,6 +63,7 @@
 #include <gerbview.h>
 #include <trigo.h>
 #include <macros.h>
+#include <base_units.h>
 #include <class_gerber_draw_item.h>
 #include <class_GERBER.h>
 #include <class_excellon.h>
@@ -430,7 +431,11 @@ bool EXCELLON_IMAGE::Execute_HEADER_Command( char*& text )
         dcode = GetDCODE( iprm + FIRST_DCODE );     // Remember: dcodes are >= FIRST_DCODE
         if( dcode == NULL )
             break;
-        double conv_scale = m_GerbMetric ? PCB_INTERNAL_UNIT / 25.4 : PCB_INTERNAL_UNIT;
+        // conv_scale = scaling factor from inch to Internal Unit
+        double   conv_scale = MILS_TO_IU_SCALAR*1000;
+        if( m_GerbMetric )
+            conv_scale /= 25.4;
+
         dcode->m_Size.x = dcode->m_Size.y = wxRound( dprm * conv_scale );
         dcode->m_Shape  = APT_CIRCLE;
         break;
diff --git a/gerbview/export_to_pcbnew.cpp b/gerbview/export_to_pcbnew.cpp
index b59bd3e82b..23cefae601 100644
--- a/gerbview/export_to_pcbnew.cpp
+++ b/gerbview/export_to_pcbnew.cpp
@@ -20,7 +20,8 @@
 #include <class_board_design_settings.h>
 #include <class_gerber_draw_item.h>
 #include <select_layers_to_pcb.h>
-#include <build_version.h>          // BOARD_FILE_VERSION
+#include <build_version.h>
+#include <wildcards_and_files_ext.h>
 
 
 /* A helper class to export a Gerber set of files to Pcbnew
@@ -88,29 +89,24 @@ void GERBVIEW_FRAME::ExportDataInPcbnewFormat( wxCommandEvent& event )
         return;
     }
 
-    wxString fileName, msg;
+    wxString fileName;
+    wxString path = wxGetCwd();;
 
-    wxString PcbExt( wxT( ".brd" ) );
+    wxFileDialog filedlg( this, _( "Board file name:" ),
+                      path, fileName, LegacyPcbFileWildcard,
+                      wxFD_OPEN );
 
-    msg = wxT( "*" ) + PcbExt;
-    fileName = EDA_FileSelector( _( "Board file name:" ),
-                                     wxEmptyString,
-                                     wxEmptyString,
-                                     PcbExt,
-                                     msg,
-                                     this,
-                                     wxFD_SAVE,
-                                     false
-                                     );
-    if( fileName == wxEmptyString )
+    if( filedlg.ShowModal() == wxID_CANCEL )
         return;
 
+    fileName = filedlg.GetPath();
+
     /* Install a dialog frame to choose the mapping
      * between gerber layers and Pcbnew layers
      */
-    LAYERS_MAP_DIALOG* dlg = new LAYERS_MAP_DIALOG( this );
-    int ok = dlg->ShowModal();
-    dlg->Destroy();
+    LAYERS_MAP_DIALOG* layerdlg = new LAYERS_MAP_DIALOG( this );
+    int ok = layerdlg->ShowModal();
+    layerdlg->Destroy();
 
     if( ok != wxID_OK )
         return;
@@ -123,7 +119,7 @@ void GERBVIEW_FRAME::ExportDataInPcbnewFormat( wxCommandEvent& event )
 
     GBR_TO_PCB_EXPORTER     gbr_exporter( this, fileName );
 
-    gbr_exporter.ExportPcb( dlg->GetLayersLookUpTable() );
+    gbr_exporter.ExportPcb( layerdlg->GetLayersLookUpTable() );
 }
 
 
@@ -184,8 +180,18 @@ bool GBR_TO_PCB_EXPORTER::ExportPcb( int* LayerLookUpTable )
 
     try
     {
+        wxFileName  pcbFileName( m_file_name );
+        PROPERTIES props;
+
+        wxString header = wxString::Format(
+            wxT( "PCBNEW-BOARD Version %d date %s\n\n# Created by GerbView%s\n\n" ),
+            LEGACY_BOARD_FILE_VERSION, DateAndTime().GetData(),
+            GetBuildVersion().GetData() );
+
+        props["header"] = header;
+
         PLUGIN::RELEASER pi( IO_MGR::PluginFind( IO_MGR::LEGACY ) );
-        pi->Save( m_file_name, m_pcb );
+        pi->Save( m_file_name, m_pcb, &props );
     }
     catch( IO_ERROR ioe )
     {
diff --git a/gerbview/gerbview.cpp b/gerbview/gerbview.cpp
index c31dd68c20..1ee5148df8 100644
--- a/gerbview/gerbview.cpp
+++ b/gerbview/gerbview.cpp
@@ -3,6 +3,29 @@
  * @brief GERBVIEW main file.
  */
 
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 1992-2012 KiCad Developers, see change_log.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 <fctsys.h>
 #include <appl_wxstruct.h>
 #include <class_drawpanel.h>
diff --git a/gerbview/gerbview_frame.cpp b/gerbview/gerbview_frame.cpp
index adda132947..e922cf548c 100644
--- a/gerbview/gerbview_frame.cpp
+++ b/gerbview/gerbview_frame.cpp
@@ -32,6 +32,7 @@
 #include <class_drawpanel.h>
 #include <build_version.h>
 #include <macros.h>
+#include <base_units.h>
 #include <class_layer_box_selector.h>
 
 #include <gerbview.h>
@@ -407,7 +408,7 @@ void GERBVIEW_FRAME::Liste_D_Codes()
     D_CODE*           pt_D_code;
     wxString          Line;
     wxArrayString     list;
-    int               scale = 10000;
+    double            scale = MILS_TO_IU_SCALAR * 1000;
     int               curr_layer = getActiveLayer();
 
     for( int layer = 0; layer < 32; layer++ )
diff --git a/gerbview/rs274_read_XY_and_IJ_coordinates.cpp b/gerbview/rs274_read_XY_and_IJ_coordinates.cpp
index 7453234730..001cd4947e 100644
--- a/gerbview/rs274_read_XY_and_IJ_coordinates.cpp
+++ b/gerbview/rs274_read_XY_and_IJ_coordinates.cpp
@@ -8,11 +8,50 @@
 #include <gerbview.h>
 #include <macros.h>
 #include <class_GERBER.h>
+#include <base_units.h>
 
 
 /* These routines read the text string point from Text.
  * On exit, Text points the beginning of the sequence unread
  */
+
+// convertion scale from gerber file units to Gerbview internal units
+// depending on the gerber file format
+// this scale list assumes gerber units are imperial.
+// for metric gerber units, the imperial to metric conversion is made in read functions
+static double scale_list[10] =
+{
+    1000.0 * MILS_TO_IU_SCALAR,
+    100.0 * MILS_TO_IU_SCALAR,
+    10.0 * MILS_TO_IU_SCALAR,
+    1.0 * MILS_TO_IU_SCALAR,
+    0.1 * MILS_TO_IU_SCALAR,
+    0.01 * MILS_TO_IU_SCALAR,
+    0.001 * MILS_TO_IU_SCALAR,
+    0.0001 * MILS_TO_IU_SCALAR,
+    0.00001 * MILS_TO_IU_SCALAR,
+    0.000001 * MILS_TO_IU_SCALAR
+};
+
+
+/**
+ * Function scale
+ * converts a distance given in floating point to our internal units
+ * (deci-mils or nano units)
+ */
+int scaletoIU( double aCoord, bool isMetric )
+{
+    int ret;
+
+    if( isMetric )
+        ret = wxRound( aCoord * MILS_TO_IU_SCALAR / 0.00254 );
+    else
+        ret = wxRound( aCoord * MILS_TO_IU_SCALAR );
+
+    return ret;
+}
+
+
 wxPoint GERBER_IMAGE::ReadXYCoord( char*& Text )
 {
     wxPoint pos;
@@ -53,10 +92,11 @@ wxPoint GERBER_IMAGE::ReadXYCoord( char*& Text )
             *text = 0;
             if( is_float )
             {
-                if( m_GerbMetric )
-                    current_coord = wxRound( atof( line ) / 0.00254 );
-                else
-                    current_coord = wxRound( atof( line ) * PCB_INTERNAL_UNIT );
+                // When X or Y values are float numbers, they are given in mm or inches
+                if( m_GerbMetric )  // units are mm
+                    current_coord = wxRound( atof( line ) * MILS_TO_IU_SCALAR / 0.0254 );
+                else    // units are inches
+                    current_coord = wxRound( atof( line ) * MILS_TO_IU_SCALAR * 1000 );
             }
             else
             {
@@ -74,14 +114,7 @@ wxPoint GERBER_IMAGE::ReadXYCoord( char*& Text )
                     *text = 0;
                 }
                 current_coord = atoi( line );
-                double real_scale     = 1.0;
-                double scale_list[10] =
-                {
-                    10000.0, 1000.0, 100.0, 10.0,
-                    1,
-                    0.1,     0.01,   0.001, 0.0001,0.00001
-                };
-                real_scale = scale_list[fmt_scale];
+                double real_scale = scale_list[fmt_scale];
 
                 if( m_GerbMetric )
                     real_scale = real_scale / 25.4;
@@ -150,10 +183,11 @@ wxPoint GERBER_IMAGE::ReadIJCoord( char*& Text )
             *text = 0;
             if( is_float )
             {
-                if( m_GerbMetric )
-                    current_coord = wxRound( atof( line ) / 0.00254 );
-                else
-                    current_coord = wxRound( atof( line ) * PCB_INTERNAL_UNIT );
+                // When X or Y values are float numbers, they are given in mm or inches
+                if( m_GerbMetric )  // units are mm
+                    current_coord = wxRound( atof( line ) * MILS_TO_IU_SCALAR / 0.0254 );
+                else    // units are inches
+                    current_coord = wxRound( atof( line ) * MILS_TO_IU_SCALAR * 1000 );
             }
             else
             {
@@ -172,18 +206,11 @@ wxPoint GERBER_IMAGE::ReadIJCoord( char*& Text )
                     *text = 0;
                 }
                 current_coord = atoi( line );
-                double real_scale = 1.0;
+
                 if( fmt_scale < 0 || fmt_scale > 9 )
                     fmt_scale = 4;      // select scale 1.0
 
-                double scale_list[10] =
-                {
-                    10000.0, 1000.0, 100.0, 10.0,
-                    1,
-                    0.1,     0.01,   0.001, 0.0001,0.00001
-                };
-                real_scale = scale_list[fmt_scale];
-
+                double real_scale = scale_list[fmt_scale];
                 if( m_GerbMetric )
                     real_scale = real_scale / 25.4;
                 current_coord = wxRound( current_coord * real_scale );
diff --git a/gerbview/rs274d.cpp b/gerbview/rs274d.cpp
index 9d91924ee9..db58560e01 100644
--- a/gerbview/rs274d.cpp
+++ b/gerbview/rs274d.cpp
@@ -543,23 +543,6 @@ bool GERBER_IMAGE::Execute_G_Command( char*& text, int G_command )
 }
 
 
-/**
- * Function scale
- * converts a distance given in floating point to our deci-mils
- */
-int scale( double aCoord, bool isMetric )
-{
-    int ret;
-
-    if( isMetric )
-        ret = wxRound( aCoord / 0.00254 );
-    else
-        ret = wxRound( aCoord * PCB_INTERNAL_UNIT );
-
-    return ret;
-}
-
-
 bool GERBER_IMAGE::Execute_DCODE_Command( char*& text, int D_commande )
 {
     wxSize            size( 15, 15 );
diff --git a/gerbview/rs274x.cpp b/gerbview/rs274x.cpp
index ce43d29a29..ab539e6ec6 100644
--- a/gerbview/rs274x.cpp
+++ b/gerbview/rs274x.cpp
@@ -5,6 +5,7 @@
 #include <fctsys.h>
 #include <common.h>
 #include <macros.h>
+#include <base_units.h>
 
 #include <gerbview.h>
 #include <class_GERBER.h>
@@ -157,7 +158,11 @@ bool GERBER_IMAGE::ExecuteRS274XCommand( int       command,
     char     line[GERBER_BUFZ];
     wxString msg;
     double   fcoord;
-    double   conv_scale = m_GerbMetric ? PCB_INTERNAL_UNIT / 25.4 : PCB_INTERNAL_UNIT;
+
+    // conv_scale = scaling factor from inch to Internal Unit
+    double   conv_scale = MILS_TO_IU_SCALAR*1000;
+    if( m_GerbMetric )
+        conv_scale /= 25.4;
 
 //    D( printf( "%22s: Command <%c%c>\n", __func__, (command >> 8) & 0xFF, command & 0xFF ); )