From 83b26cfbd0fb2404055e20b025420b2f3dc75b50 Mon Sep 17 00:00:00 2001 From: Jeff Young <jeff@rokeby.ie> Date: Tue, 7 Jan 2025 18:00:49 +0000 Subject: [PATCH] Modernize IPC2581 dialog. --- pcbnew/dialogs/dialog_export_2581.fbp | 396 +++++++++++++++++---- pcbnew/dialogs/dialog_export_2581_base.cpp | 118 +++--- pcbnew/dialogs/dialog_export_2581_base.h | 9 +- 3 files changed, 400 insertions(+), 123 deletions(-) diff --git a/pcbnew/dialogs/dialog_export_2581.fbp b/pcbnew/dialogs/dialog_export_2581.fbp index 9755843cb5..8ffcffb70d 100644 --- a/pcbnew/dialogs/dialog_export_2581.fbp +++ b/pcbnew/dialogs/dialog_export_2581.fbp @@ -50,7 +50,7 @@ <property name="minimum_size"></property> <property name="name">DIALOG_EXPORT_2581_BASE</property> <property name="pos"></property> - <property name="size">531,358</property> + <property name="size">-1,-1</property> <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property> <property name="subclass">DIALOG_SHIM; dialog_shim.h</property> <property name="title">Export IPC-2581</property> @@ -65,8 +65,8 @@ <property name="orient">wxVERTICAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="true"> - <property name="border">15</property> - <property name="flag">wxBOTTOM|wxEXPAND|wxTOP</property> + <property name="border">10</property> + <property name="flag">wxEXPAND|wxALL</property> <property name="proportion">0</property> <object class="wxBoxSizer" expanded="true"> <property name="minimum_size"></property> @@ -75,7 +75,7 @@ <property name="permission">protected</property> <object class="sizeritem" expanded="false"> <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property> <property name="proportion">0</property> <object class="wxStaticText" expanded="false"> <property name="BottomDockable">1</property> @@ -201,8 +201,8 @@ </object> </object> <object class="sizeritem" expanded="false"> - <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property> + <property name="border">10</property> + <property name="flag">wxALIGN_CENTER_VERTICAL</property> <property name="proportion">0</property> <object class="wxBitmapButton" expanded="false"> <property name="BottomDockable">1</property> @@ -279,45 +279,165 @@ </object> <object class="sizeritem" expanded="true"> <property name="border">5</property> - <property name="flag">wxEXPAND</property> + <property name="flag">wxEXPAND|wxBOTTOM</property> <property name="proportion">0</property> <object class="wxBoxSizer" expanded="true"> <property name="minimum_size"></property> - <property name="name">bSizer3</property> + <property name="name">bSizerMiddle</property> <property name="orient">wxHORIZONTAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="true"> <property name="border">10</property> - <property name="flag">wxEXPAND|wxLEFT|wxRIGHT|wxTOP</property> - <property name="proportion">0</property> - <object class="wxStaticBoxSizer" expanded="true"> - <property name="id">wxID_ANY</property> - <property name="label">File Format</property> + <property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property> + <property name="proportion">1</property> + <object class="wxBoxSizer" expanded="true"> <property name="minimum_size"></property> - <property name="name">sbSizer1</property> + <property name="name">bSizerLeftCol</property> <property name="orient">wxVERTICAL</property> - <property name="parent">1</property> <property name="permission">none</property> + <object class="sizeritem" expanded="true"> + <property name="border">8</property> + <property name="flag">wxTOP|wxRIGHT|wxLEFT</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="true"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">File Format</property> + <property name="markup">0</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_fileFormatLabel</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">; ; forward_declare</property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <property name="wrap">-1</property> + </object> + </object> <object class="sizeritem" expanded="true"> <property name="border">5</property> - <property name="flag">wxEXPAND|wxALL</property> - <property name="proportion">3</property> - <object class="wxFlexGridSizer" expanded="true"> - <property name="cols">2</property> + <property name="flag">wxEXPAND|wxBOTTOM</property> + <property name="proportion">0</property> + <object class="wxStaticLine" expanded="true"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_staticline1</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">wxLI_HORIZONTAL</property> + <property name="subclass">; ; forward_declare</property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + </object> + </object> + <object class="sizeritem" expanded="true"> + <property name="border">5</property> + <property name="flag">wxEXPAND|wxTOP|wxRIGHT</property> + <property name="proportion">1</property> + <object class="wxGridBagSizer" expanded="true"> + <property name="empty_cell_size"></property> <property name="flexible_direction">wxBOTH</property> <property name="growablecols">1</property> <property name="growablerows"></property> <property name="hgap">5</property> <property name="minimum_size"></property> - <property name="name">fgSizer</property> + <property name="name">gbSizer1</property> <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property> <property name="permission">none</property> - <property name="rows">0</property> <property name="vgap">5</property> - <object class="sizeritem" expanded="false"> + <object class="gbsizeritem" expanded="true"> <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL</property> - <property name="proportion">0</property> + <property name="colspan">1</property> + <property name="column">0</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property> + <property name="row">0</property> + <property name="rowspan">1</property> <object class="wxStaticText" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> @@ -376,10 +496,13 @@ <property name="wrap">-1</property> </object> </object> - <object class="sizeritem" expanded="false"> - <property name="border">5</property> - <property name="flag">wxEXPAND</property> - <property name="proportion">0</property> + <object class="gbsizeritem" expanded="true"> + <property name="border">10</property> + <property name="colspan">1</property> + <property name="column">1</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT</property> + <property name="row">0</property> + <property name="rowspan">1</property> <object class="wxChoice" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> @@ -441,10 +564,13 @@ <property name="window_style"></property> </object> </object> - <object class="sizeritem" expanded="false"> - <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL</property> - <property name="proportion">0</property> + <object class="gbsizeritem" expanded="true"> + <property name="border">15</property> + <property name="colspan">1</property> + <property name="column">0</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property> + <property name="row">1</property> + <property name="rowspan">1</property> <object class="wxStaticText" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> @@ -503,10 +629,13 @@ <property name="wrap">-1</property> </object> </object> - <object class="sizeritem" expanded="false"> - <property name="border">5</property> - <property name="flag">wxEXPAND</property> - <property name="proportion">0</property> + <object class="gbsizeritem" expanded="true"> + <property name="border">10</property> + <property name="colspan">1</property> + <property name="column">1</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT</property> + <property name="row">1</property> + <property name="rowspan">1</property> <object class="wxSpinCtrl" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> @@ -566,10 +695,13 @@ <property name="window_style"></property> </object> </object> - <object class="sizeritem" expanded="false"> + <object class="gbsizeritem" expanded="true"> <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL</property> - <property name="proportion">0</property> + <property name="colspan">1</property> + <property name="column">0</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property> + <property name="row">2</property> + <property name="rowspan">1</property> <object class="wxStaticText" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> @@ -628,10 +760,13 @@ <property name="wrap">-1</property> </object> </object> - <object class="sizeritem" expanded="false"> - <property name="border">5</property> - <property name="flag">wxEXPAND</property> - <property name="proportion">0</property> + <object class="gbsizeritem" expanded="true"> + <property name="border">10</property> + <property name="colspan">1</property> + <property name="column">1</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT</property> + <property name="row">2</property> + <property name="rowspan">1</property> <object class="wxChoice" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> @@ -693,10 +828,13 @@ <property name="window_style"></property> </object> </object> - <object class="sizeritem" expanded="false"> + <object class="gbsizeritem" expanded="true"> <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP</property> - <property name="proportion">0</property> + <property name="colspan">2</property> + <property name="column">0</property> + <property name="flag">wxTOP</property> + <property name="row">3</property> + <property name="rowspan">1</property> <object class="wxCheckBox" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> @@ -763,23 +901,151 @@ </object> </object> </object> + <object class="sizeritem" expanded="true"> + <property name="border">5</property> + <property name="flag">wxEXPAND</property> + <property name="proportion">0</property> + <object class="spacer" expanded="true"> + <property name="height">0</property> + <property name="permission">protected</property> + <property name="width">10</property> + </object> + </object> <object class="sizeritem" expanded="true"> <property name="border">10</property> - <property name="flag">wxEXPAND|wxLEFT|wxRIGHT|wxTOP</property> + <property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property> <property name="proportion">1</property> - <object class="wxStaticBoxSizer" expanded="true"> - <property name="id">wxID_ANY</property> - <property name="label">BOM Columns</property> + <object class="wxBoxSizer" expanded="true"> <property name="minimum_size"></property> - <property name="name">sbSizer2</property> + <property name="name">bSizerRightCol</property> <property name="orient">wxVERTICAL</property> - <property name="parent">1</property> <property name="permission">none</property> <object class="sizeritem" expanded="true"> + <property name="border">8</property> + <property name="flag">wxTOP|wxRIGHT|wxLEFT</property> + <property name="proportion">0</property> + <object class="wxStaticText" expanded="true"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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">BOM Columns</property> + <property name="markup">0</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_columnsLabel</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">; ; forward_declare</property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + <property name="wrap">-1</property> + </object> + </object> + <object class="sizeritem" expanded="true"> + <property name="border">5</property> + <property name="flag">wxEXPAND|wxBOTTOM</property> + <property name="proportion">0</property> + <object class="wxStaticLine" expanded="true"> + <property name="BottomDockable">1</property> + <property name="LeftDockable">1</property> + <property name="RightDockable">1</property> + <property name="TopDockable">1</property> + <property name="aui_layer">0</property> + <property name="aui_name"></property> + <property name="aui_position">0</property> + <property name="aui_row">0</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="drag_accept_files">0</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="min_size"></property> + <property name="minimize_button">0</property> + <property name="minimum_size"></property> + <property name="moveable">1</property> + <property name="name">m_staticline2</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">wxLI_HORIZONTAL</property> + <property name="subclass">; ; forward_declare</property> + <property name="toolbar_pane">0</property> + <property name="tooltip"></property> + <property name="window_extra_style"></property> + <property name="window_name"></property> + <property name="window_style"></property> + </object> + </object> + <object class="sizeritem" expanded="false"> <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> <property name="proportion">1</property> - <object class="wxFlexGridSizer" expanded="true"> + <object class="wxFlexGridSizer" expanded="false"> <property name="cols">2</property> <property name="flexible_direction">wxBOTH</property> <property name="growablecols">1</property> @@ -855,7 +1121,7 @@ </object> <object class="sizeritem" expanded="false"> <property name="border">5</property> - <property name="flag">wxEXPAND</property> + <property name="flag">wxEXPAND|wxRIGHT</property> <property name="proportion">0</property> <object class="wxChoice" expanded="false"> <property name="BottomDockable">1</property> @@ -982,7 +1248,7 @@ </object> <object class="sizeritem" expanded="false"> <property name="border">5</property> - <property name="flag">wxEXPAND</property> + <property name="flag">wxEXPAND|wxRIGHT</property> <property name="proportion">0</property> <object class="wxChoice" expanded="false"> <property name="BottomDockable">1</property> @@ -1110,7 +1376,7 @@ </object> <object class="sizeritem" expanded="false"> <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT</property> <property name="proportion">0</property> <object class="wxChoice" expanded="false"> <property name="BottomDockable">1</property> @@ -1237,7 +1503,7 @@ </object> <object class="sizeritem" expanded="false"> <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT</property> <property name="proportion">0</property> <object class="wxChoice" expanded="false"> <property name="BottomDockable">1</property> @@ -1363,11 +1629,11 @@ <property name="wrap">-1</property> </object> </object> - <object class="sizeritem" expanded="true"> + <object class="sizeritem" expanded="false"> <property name="border">5</property> - <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND</property> + <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT</property> <property name="proportion">0</property> - <object class="wxTextCtrl" expanded="true"> + <object class="wxTextCtrl" expanded="false"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> <property name="RightDockable">1</property> @@ -1434,16 +1700,6 @@ </object> </object> </object> - <object class="sizeritem" expanded="true"> - <property name="border">5</property> - <property name="flag">wxEXPAND</property> - <property name="proportion">1</property> - <object class="spacer" expanded="true"> - <property name="height">0</property> - <property name="permission">protected</property> - <property name="width">0</property> - </object> - </object> <object class="sizeritem" expanded="true"> <property name="border">5</property> <property name="flag">wxALL|wxEXPAND</property> diff --git a/pcbnew/dialogs/dialog_export_2581_base.cpp b/pcbnew/dialogs/dialog_export_2581_base.cpp index 1044ae49e8..4ac1f1286c 100644 --- a/pcbnew/dialogs/dialog_export_2581_base.cpp +++ b/pcbnew/dialogs/dialog_export_2581_base.cpp @@ -22,7 +22,7 @@ DIALOG_EXPORT_2581_BASE::DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID i m_lblBrdFile = new wxStaticText( this, wxID_ANY, _("File:"), wxDefaultPosition, wxDefaultSize, 0 ); m_lblBrdFile->Wrap( -1 ); - bSizerTop->Add( m_lblBrdFile, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + bSizerTop->Add( m_lblBrdFile, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_outputFileName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_outputFileName->SetToolTip( _("Enter a filename if you do not want to use default file names\nCan be used only when printing the current sheet") ); @@ -31,67 +31,85 @@ DIALOG_EXPORT_2581_BASE::DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID i bSizerTop->Add( m_outputFileName, 1, wxALIGN_CENTER_VERTICAL, 5 ); m_browseButton = new STD_BITMAP_BUTTON( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW|0 ); - bSizerTop->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + bSizerTop->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL, 10 ); - bMainSizer->Add( bSizerTop, 0, wxBOTTOM|wxEXPAND|wxTOP, 15 ); + bMainSizer->Add( bSizerTop, 0, wxEXPAND|wxALL, 10 ); - wxBoxSizer* bSizer3; - bSizer3 = new wxBoxSizer( wxHORIZONTAL ); + wxBoxSizer* bSizerMiddle; + bSizerMiddle = new wxBoxSizer( wxHORIZONTAL ); - wxStaticBoxSizer* sbSizer1; - sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("File Format") ), wxVERTICAL ); + wxBoxSizer* bSizerLeftCol; + bSizerLeftCol = new wxBoxSizer( wxVERTICAL ); - wxFlexGridSizer* fgSizer; - fgSizer = new wxFlexGridSizer( 0, 2, 5, 5 ); - fgSizer->AddGrowableCol( 1 ); - fgSizer->SetFlexibleDirection( wxBOTH ); - fgSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + m_fileFormatLabel = new wxStaticText( this, wxID_ANY, _("File Format"), wxDefaultPosition, wxDefaultSize, 0 ); + m_fileFormatLabel->Wrap( -1 ); + bSizerLeftCol->Add( m_fileFormatLabel, 0, wxTOP|wxRIGHT|wxLEFT, 8 ); - m_lblUnits = new wxStaticText( sbSizer1->GetStaticBox(), wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizerLeftCol->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM, 5 ); + + wxGridBagSizer* gbSizer1; + gbSizer1 = new wxGridBagSizer( 5, 5 ); + gbSizer1->SetFlexibleDirection( wxBOTH ); + gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_lblUnits = new wxStaticText( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, 0 ); m_lblUnits->Wrap( -1 ); - fgSizer->Add( m_lblUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); + gbSizer1->Add( m_lblUnits, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); wxString m_choiceUnitsChoices[] = { _("Millimeters"), _("Inches") }; int m_choiceUnitsNChoices = sizeof( m_choiceUnitsChoices ) / sizeof( wxString ); - m_choiceUnits = new wxChoice( sbSizer1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitsNChoices, m_choiceUnitsChoices, 0 ); + m_choiceUnits = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitsNChoices, m_choiceUnitsChoices, 0 ); m_choiceUnits->SetSelection( 0 ); - fgSizer->Add( m_choiceUnits, 0, wxEXPAND, 5 ); + gbSizer1->Add( m_choiceUnits, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 10 ); - m_lblPrecision = new wxStaticText( sbSizer1->GetStaticBox(), wxID_ANY, _("Precision:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_lblPrecision = new wxStaticText( this, wxID_ANY, _("Precision:"), wxDefaultPosition, wxDefaultSize, 0 ); m_lblPrecision->Wrap( -1 ); m_lblPrecision->SetToolTip( _("The number of values following the decimal separator") ); - fgSizer->Add( m_lblPrecision, 0, wxALIGN_CENTER_VERTICAL, 5 ); + gbSizer1->Add( m_lblPrecision, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 15 ); - m_precision = new wxSpinCtrl( sbSizer1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 4, 10, 6 ); + m_precision = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 4, 10, 6 ); m_precision->SetToolTip( _("The number of values following the decimal separator") ); - fgSizer->Add( m_precision, 0, wxEXPAND, 5 ); + gbSizer1->Add( m_precision, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 10 ); - m_lblVersion = new wxStaticText( sbSizer1->GetStaticBox(), wxID_ANY, _("Version:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_lblVersion = new wxStaticText( this, wxID_ANY, _("Version:"), wxDefaultPosition, wxDefaultSize, 0 ); m_lblVersion->Wrap( -1 ); - fgSizer->Add( m_lblVersion, 0, wxALIGN_CENTER_VERTICAL, 5 ); + gbSizer1->Add( m_lblVersion, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); wxString m_versionChoiceChoices[] = { _("B"), _("C") }; int m_versionChoiceNChoices = sizeof( m_versionChoiceChoices ) / sizeof( wxString ); - m_versionChoice = new wxChoice( sbSizer1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_versionChoiceNChoices, m_versionChoiceChoices, 0 ); + m_versionChoice = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_versionChoiceNChoices, m_versionChoiceChoices, 0 ); m_versionChoice->SetSelection( 1 ); - fgSizer->Add( m_versionChoice, 0, wxEXPAND, 5 ); + gbSizer1->Add( m_versionChoice, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 10 ); - m_cbCompress = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Compress output"), wxDefaultPosition, wxDefaultSize, 0 ); + m_cbCompress = new wxCheckBox( this, wxID_ANY, _("Compress output"), wxDefaultPosition, wxDefaultSize, 0 ); m_cbCompress->SetToolTip( _("Compress output into 'zip' file") ); - fgSizer->Add( m_cbCompress, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 5 ); + gbSizer1->Add( m_cbCompress, wxGBPosition( 3, 0 ), wxGBSpan( 1, 2 ), wxTOP, 5 ); - sbSizer1->Add( fgSizer, 3, wxEXPAND|wxALL, 5 ); + gbSizer1->AddGrowableCol( 1 ); + + bSizerLeftCol->Add( gbSizer1, 1, wxEXPAND|wxTOP|wxRIGHT, 5 ); - bSizer3->Add( sbSizer1, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 10 ); + bSizerMiddle->Add( bSizerLeftCol, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 ); - wxStaticBoxSizer* sbSizer2; - sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("BOM Columns") ), wxVERTICAL ); + + bSizerMiddle->Add( 10, 0, 0, wxEXPAND, 5 ); + + wxBoxSizer* bSizerRightCol; + bSizerRightCol = new wxBoxSizer( wxVERTICAL ); + + m_columnsLabel = new wxStaticText( this, wxID_ANY, _("BOM Columns"), wxDefaultPosition, wxDefaultSize, 0 ); + m_columnsLabel->Wrap( -1 ); + bSizerRightCol->Add( m_columnsLabel, 0, wxTOP|wxRIGHT|wxLEFT, 8 ); + + m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizerRightCol->Add( m_staticline2, 0, wxEXPAND|wxBOTTOM, 5 ); wxFlexGridSizer* fgSizer4; fgSizer4 = new wxFlexGridSizer( 0, 2, 5, 5 ); @@ -99,7 +117,7 @@ DIALOG_EXPORT_2581_BASE::DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID i fgSizer4->SetFlexibleDirection( wxBOTH ); fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - m_lblOEM = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Internal ID:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_lblOEM = new wxStaticText( this, wxID_ANY, _("Internal ID:"), wxDefaultPosition, wxDefaultSize, 0 ); m_lblOEM->Wrap( -1 ); m_lblOEM->SetToolTip( _("Part ID number used internally during design.\nThis number must be unique to each part.") ); @@ -107,13 +125,13 @@ DIALOG_EXPORT_2581_BASE::DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID i wxString m_oemRefChoices[] = { _("Generate Unique") }; int m_oemRefNChoices = sizeof( m_oemRefChoices ) / sizeof( wxString ); - m_oemRef = new wxChoice( sbSizer2->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_oemRefNChoices, m_oemRefChoices, 0 ); + m_oemRef = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_oemRefNChoices, m_oemRefChoices, 0 ); m_oemRef->SetSelection( 0 ); m_oemRef->SetToolTip( _("Part ID number used internally during design.\nThis number must be unique to each part.") ); - fgSizer4->Add( m_oemRef, 0, wxEXPAND, 5 ); + fgSizer4->Add( m_oemRef, 0, wxEXPAND|wxRIGHT, 5 ); - m_staticText6 = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Manufacturer P/N:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6 = new wxStaticText( this, wxID_ANY, _("Manufacturer P/N:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); m_staticText6->SetToolTip( _("Column containing the manufacturer part number") ); @@ -121,54 +139,51 @@ DIALOG_EXPORT_2581_BASE::DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID i wxString m_choiceMPNChoices[] = { _("Omit") }; int m_choiceMPNNChoices = sizeof( m_choiceMPNChoices ) / sizeof( wxString ); - m_choiceMPN = new wxChoice( sbSizer2->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceMPNNChoices, m_choiceMPNChoices, 0 ); + m_choiceMPN = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceMPNNChoices, m_choiceMPNChoices, 0 ); m_choiceMPN->SetSelection( 0 ); m_choiceMPN->SetToolTip( _("Column containing the manufacturer part number") ); - fgSizer4->Add( m_choiceMPN, 0, wxEXPAND, 5 ); + fgSizer4->Add( m_choiceMPN, 0, wxEXPAND|wxRIGHT, 5 ); - m_staticText7 = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Manufacturer:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText7 = new wxStaticText( this, wxID_ANY, _("Manufacturer:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText7->Wrap( -1 ); fgSizer4->Add( m_staticText7, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); wxString m_choiceMfgChoices[] = { _("N/A") }; int m_choiceMfgNChoices = sizeof( m_choiceMfgChoices ) / sizeof( wxString ); - m_choiceMfg = new wxChoice( sbSizer2->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceMfgNChoices, m_choiceMfgChoices, 0 ); + m_choiceMfg = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceMfgNChoices, m_choiceMfgChoices, 0 ); m_choiceMfg->SetSelection( 0 ); m_choiceMfg->Enable( false ); - fgSizer4->Add( m_choiceMfg, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + fgSizer4->Add( m_choiceMfg, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 ); - m_staticText8 = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Distributor P/N:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText8 = new wxStaticText( this, wxID_ANY, _("Distributor P/N:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText8->Wrap( -1 ); fgSizer4->Add( m_staticText8, 0, wxALIGN_CENTER_VERTICAL, 5 ); wxString m_choiceDistPNChoices[] = { _("Omit") }; int m_choiceDistPNNChoices = sizeof( m_choiceDistPNChoices ) / sizeof( wxString ); - m_choiceDistPN = new wxChoice( sbSizer2->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceDistPNNChoices, m_choiceDistPNChoices, 0 ); + m_choiceDistPN = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceDistPNNChoices, m_choiceDistPNChoices, 0 ); m_choiceDistPN->SetSelection( 0 ); m_choiceDistPN->SetToolTip( _("Column containing the distributor part number") ); - fgSizer4->Add( m_choiceDistPN, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + fgSizer4->Add( m_choiceDistPN, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 ); - m_staticText9 = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Distributor:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText9 = new wxStaticText( this, wxID_ANY, _("Distributor:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText9->Wrap( -1 ); fgSizer4->Add( m_staticText9, 0, wxALIGN_CENTER_VERTICAL, 5 ); - m_textDistributor = new wxTextCtrl( sbSizer2->GetStaticBox(), wxID_ANY, _("N/A"), wxDefaultPosition, wxSize( -1,-1 ), 0 ); - fgSizer4->Add( m_textDistributor, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + m_textDistributor = new wxTextCtrl( this, wxID_ANY, _("N/A"), wxDefaultPosition, wxSize( -1,-1 ), 0 ); + fgSizer4->Add( m_textDistributor, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 ); - sbSizer2->Add( fgSizer4, 1, wxALL|wxEXPAND, 5 ); + bSizerRightCol->Add( fgSizer4, 1, wxALL|wxEXPAND, 5 ); - bSizer3->Add( sbSizer2, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 10 ); + bSizerMiddle->Add( bSizerRightCol, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 ); - bMainSizer->Add( bSizer3, 0, wxEXPAND, 5 ); - - - bMainSizer->Add( 0, 0, 1, wxEXPAND, 5 ); + bMainSizer->Add( bSizerMiddle, 0, wxEXPAND|wxBOTTOM, 5 ); m_stdButtons = new wxStdDialogButtonSizer(); m_stdButtonsOK = new wxButton( this, wxID_OK ); @@ -182,6 +197,7 @@ DIALOG_EXPORT_2581_BASE::DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID i this->SetSizer( bMainSizer ); this->Layout(); + bMainSizer->Fit( this ); this->Centre( wxBOTH ); diff --git a/pcbnew/dialogs/dialog_export_2581_base.h b/pcbnew/dialogs/dialog_export_2581_base.h index 518c6ccf47..1cfab31865 100644 --- a/pcbnew/dialogs/dialog_export_2581_base.h +++ b/pcbnew/dialogs/dialog_export_2581_base.h @@ -26,10 +26,11 @@ class STD_BITMAP_BUTTON; #include <wx/icon.h> #include <wx/button.h> #include <wx/sizer.h> +#include <wx/statline.h> #include <wx/choice.h> #include <wx/spinctrl.h> #include <wx/checkbox.h> -#include <wx/statbox.h> +#include <wx/gbsizer.h> #include <wx/dialog.h> /////////////////////////////////////////////////////////////////////////// @@ -46,6 +47,8 @@ class DIALOG_EXPORT_2581_BASE : public DIALOG_SHIM wxStaticText* m_lblBrdFile; wxTextCtrl* m_outputFileName; STD_BITMAP_BUTTON* m_browseButton; + wxStaticText* m_fileFormatLabel; + wxStaticLine* m_staticline1; wxStaticText* m_lblUnits; wxChoice* m_choiceUnits; wxStaticText* m_lblPrecision; @@ -53,6 +56,8 @@ class DIALOG_EXPORT_2581_BASE : public DIALOG_SHIM wxStaticText* m_lblVersion; wxChoice* m_versionChoice; wxCheckBox* m_cbCompress; + wxStaticText* m_columnsLabel; + wxStaticLine* m_staticline2; wxStaticText* m_lblOEM; wxChoice* m_oemRef; wxStaticText* m_staticText6; @@ -77,7 +82,7 @@ class DIALOG_EXPORT_2581_BASE : public DIALOG_SHIM public: - DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Export IPC-2581"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 531,358 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_EXPORT_2581_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Export IPC-2581"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_EXPORT_2581_BASE();