diff --git a/kicad/pcm/dialogs/panel_package.cpp b/kicad/pcm/dialogs/panel_package.cpp index ebdc381595..3a992f759a 100644 --- a/kicad/pcm/dialogs/panel_package.cpp +++ b/kicad/pcm/dialogs/panel_package.cpp @@ -51,7 +51,8 @@ PANEL_PACKAGE::PANEL_PACKAGE( wxWindow* parent, const ActionCallback& aCallback, m_minHeight = GetMinHeight(); double descLineHeight = m_desc->GetTextExtent( wxT( "X" ) ).GetHeight() * 1.2 /* leading */; - m_desc->SetLabel( m_data.package.description ); + m_desc->SetLabelText( m_data.package.description ); + m_desc->Wrap( m_descSizer->GetSize().GetWidth() ); descLineHeight = wxSplit( m_desc->GetLabel(), '\n' ).size() * descLineHeight; int nameLineHeight = m_name->GetTextExtent( wxT( "X" ) ).GetHeight(); @@ -80,6 +81,16 @@ PANEL_PACKAGE::PANEL_PACKAGE( wxWindow* parent, const ActionCallback& aCallback, void PANEL_PACKAGE::OnSize( wxSizeEvent& event ) { Layout(); + + double descLineHeight = m_desc->GetTextExtent( wxT( "X" ) ).GetHeight() * 1.2 /* leading */; + m_desc->SetLabelText( m_data.package.description ); + m_desc->Wrap( m_descSizer->GetSize().GetWidth() ); + descLineHeight = wxSplit( m_desc->GetLabel(), '\n' ).size() * descLineHeight; + + int nameLineHeight = m_name->GetTextExtent( wxT( "X" ) ).GetHeight(); + wxSize minSize = GetMinSize(); + minSize.y = std::max( nameLineHeight + KiROUND( descLineHeight ) + 15, m_minHeight ); + SetMinSize( minSize ); } diff --git a/kicad/pcm/dialogs/panel_package_base.cpp b/kicad/pcm/dialogs/panel_package_base.cpp index e40ce8547e..bb956cb4c7 100644 --- a/kicad/pcm/dialogs/panel_package_base.cpp +++ b/kicad/pcm/dialogs/panel_package_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3) +// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -54,9 +54,14 @@ PANEL_PACKAGE_BASE::PANEL_PACKAGE_BASE( wxWindow* parent, wxWindowID id, const w wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxHORIZONTAL ); + m_descSizer = new wxBoxSizer( wxVERTICAL ); + m_desc = new wxStaticText( this, wxID_ANY, _("Description"), wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE ); m_desc->Wrap( -1 ); - bSizer3->Add( m_desc, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + m_descSizer->Add( m_desc, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + + bSizer3->Add( m_descSizer, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); diff --git a/kicad/pcm/dialogs/panel_package_base.fbp b/kicad/pcm/dialogs/panel_package_base.fbp index 149c02d9b7..fe69dc7589 100644 --- a/kicad/pcm/dialogs/panel_package_base.fbp +++ b/kicad/pcm/dialogs/panel_package_base.fbp @@ -261,63 +261,74 @@ none 5 - wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + wxEXPAND 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Description - 0 - - 0 - - - 0 + - 1 - m_desc - 1 - - + m_descSizer + wxVERTICAL protected - 1 - - Resizable - 1 - - wxST_NO_AUTORESIZE - ; ; forward_declare - 0 - - - - - -1 + + 5 + wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Description + 0 + + 0 + + + 0 + + 1 + m_desc + 1 + + + protected + 1 + + Resizable + 1 + + wxST_NO_AUTORESIZE + ; ; forward_declare + 0 + + + + + -1 + + diff --git a/kicad/pcm/dialogs/panel_package_base.h b/kicad/pcm/dialogs/panel_package_base.h index 4521758d2e..e429bfffad 100644 --- a/kicad/pcm/dialogs/panel_package_base.h +++ b/kicad/pcm/dialogs/panel_package_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3) +// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -38,6 +38,7 @@ class PANEL_PACKAGE_BASE : public wxPanel protected: wxStaticBitmap* m_bitmap; wxStaticText* m_name; + wxBoxSizer* m_descSizer; wxStaticText* m_desc; wxButton* m_button; SPLIT_BUTTON* m_splitButton;