diff --git a/common/eda_text.cpp b/common/eda_text.cpp index e2d9e7e8d8..d61eaee19b 100644 --- a/common/eda_text.cpp +++ b/common/eda_text.cpp @@ -380,8 +380,8 @@ void EDA_TEXT::SetTextSize( VECTOR2I aNewSize, bool aEnforceMinTextSize ) if( aEnforceMinTextSize ) { - int min = m_IuScale.get().MilsToIU( TEXT_MIN_SIZE_MILS ); - int max = m_IuScale.get().MilsToIU( TEXT_MAX_SIZE_MILS ); + int min = m_IuScale.get().mmToIU( TEXT_MIN_SIZE_MM ); + int max = m_IuScale.get().mmToIU( TEXT_MAX_SIZE_MM ); aNewSize = VECTOR2I( alg::clamp( min, aNewSize.x, max ), alg::clamp( min, aNewSize.y, max ) ); @@ -396,8 +396,8 @@ void EDA_TEXT::SetTextSize( VECTOR2I aNewSize, bool aEnforceMinTextSize ) void EDA_TEXT::SetTextWidth( int aWidth ) { - int min = m_IuScale.get().MilsToIU( TEXT_MIN_SIZE_MILS ); - int max = m_IuScale.get().MilsToIU( TEXT_MAX_SIZE_MILS ); + int min = m_IuScale.get().mmToIU( TEXT_MIN_SIZE_MM ); + int max = m_IuScale.get().mmToIU( TEXT_MAX_SIZE_MM ); m_attributes.m_Size.x = alg::clamp( min, aWidth, max ); ClearRenderCache(); @@ -407,8 +407,8 @@ void EDA_TEXT::SetTextWidth( int aWidth ) void EDA_TEXT::SetTextHeight( int aHeight ) { - int min = m_IuScale.get().MilsToIU( TEXT_MIN_SIZE_MILS ); - int max = m_IuScale.get().MilsToIU( TEXT_MAX_SIZE_MILS ); + int min = m_IuScale.get().mmToIU( TEXT_MIN_SIZE_MM ); + int max = m_IuScale.get().mmToIU( TEXT_MAX_SIZE_MM ); m_attributes.m_Size.y = alg::clamp( min, aHeight, max ); ClearRenderCache(); diff --git a/include/base_units.h b/include/base_units.h index 37dfc4fff3..6967a34261 100644 --- a/include/base_units.h +++ b/include/base_units.h @@ -62,9 +62,8 @@ */ /** - * @brief some define and functions to convert a value in mils, decimils or mm - * to the internal unit used in pcbnew, cvpcb or gerbview (nanometer or deci-mil) - * depending on compile time option + * @brief some macros and functions to convert a value in mils, decimils or mm to the internal + * unit used in pcbnew, cvpcb or gerbview (nanometer or deci-mil) depending on compile time option */ constexpr double GERB_IU_PER_MM = 1e5; // Gerbview IU is 10 nanometers. diff --git a/include/eda_text.h b/include/eda_text.h index c99cf49a23..bcc8bef22f 100644 --- a/include/eda_text.h +++ b/include/eda_text.h @@ -38,9 +38,12 @@ class SHAPE_COMPOUND; class SHAPE_POLY_SET; -// These are only here for algorithmic safety, not to tell the user what to do -#define TEXT_MIN_SIZE_MILS 1 ///< Minimum text size in mils -#define TEXT_MAX_SIZE_MILS 10000 ///< Maximum text size in mils (10 inches) +// These are only here for algorithmic safety, not to tell the user what to do. +// PL_EDITOR has the least resolution (its internal units are microns), so the min size is chosen +// to yield 1 in PL_EDITOR. +// The max size chosen is somewhat arbitrary, but no one has complained yet. +#define TEXT_MIN_SIZE_MM 0.001 ///< Minimum text size (1 micron). +#define TEXT_MAX_SIZE_MM 250.0 ///< Maximum text size in mm (~10 inches) namespace KIGFX diff --git a/pcbnew/board_design_settings.cpp b/pcbnew/board_design_settings.cpp index 40755a2284..d170470f88 100644 --- a/pcbnew/board_design_settings.cpp +++ b/pcbnew/board_design_settings.cpp @@ -677,8 +677,8 @@ BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS( JSON_SETTINGS* aParent, const std: }, {} ) ); - int minTextSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - int maxTextSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + int minTextSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + int maxTextSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); int minStroke = 1; int maxStroke = pcbIUScale.mmToIU( 100 ); diff --git a/pcbnew/dialogs/dialog_footprint_properties.cpp b/pcbnew/dialogs/dialog_footprint_properties.cpp index 9495a62de7..28ac17436e 100644 --- a/pcbnew/dialogs/dialog_footprint_properties.cpp +++ b/pcbnew/dialogs/dialog_footprint_properties.cpp @@ -393,8 +393,8 @@ bool DIALOG_FOOTPRINT_PROPERTIES::Validate() return false; } - int minSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - int maxSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + int minSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + int maxSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); int width = m_frame->ValueFromString( m_itemsGrid->GetCellValue( i, FPT_WIDTH ) ); int height = m_frame->ValueFromString( m_itemsGrid->GetCellValue( i, FPT_HEIGHT ) ); diff --git a/pcbnew/dialogs/dialog_footprint_properties_fp_editor.cpp b/pcbnew/dialogs/dialog_footprint_properties_fp_editor.cpp index 0c9e5522fd..302d921e95 100644 --- a/pcbnew/dialogs/dialog_footprint_properties_fp_editor.cpp +++ b/pcbnew/dialogs/dialog_footprint_properties_fp_editor.cpp @@ -441,8 +441,8 @@ bool DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::Validate() return false; } - int minSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - int maxSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + int minSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + int maxSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); if( field.GetTextWidth() < minSize || field.GetTextWidth() > maxSize ) { diff --git a/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp b/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp index d60ca1e970..7f5b1029cf 100644 --- a/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp +++ b/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp @@ -514,8 +514,8 @@ void DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem( BOARD_COMMIT& aCommit, BOA bool DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::TransferDataFromWindow() { - int minTextSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - int maxTextSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + int minTextSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + int maxTextSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); if( !m_textWidth.Validate( minTextSize, maxTextSize ) || !m_textHeight.Validate( minTextSize, maxTextSize ) ) diff --git a/pcbnew/dialogs/dialog_text_properties.cpp b/pcbnew/dialogs/dialog_text_properties.cpp index 5084bd3293..44aa91cc1e 100644 --- a/pcbnew/dialogs/dialog_text_properties.cpp +++ b/pcbnew/dialogs/dialog_text_properties.cpp @@ -433,8 +433,8 @@ bool DIALOG_TEXT_PROPERTIES::TransferDataFromWindow() if( !DIALOG_TEXT_PROPERTIES_BASE::TransferDataFromWindow() ) return false; - int minSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - int maxSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + int minSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + int maxSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); if( !m_textWidth.Validate( minSize, maxSize ) || !m_textHeight.Validate( minSize, maxSize ) ) return false; diff --git a/pcbnew/dialogs/dialog_textbox_properties.cpp b/pcbnew/dialogs/dialog_textbox_properties.cpp index 16d0042f7b..825149f439 100644 --- a/pcbnew/dialogs/dialog_textbox_properties.cpp +++ b/pcbnew/dialogs/dialog_textbox_properties.cpp @@ -292,8 +292,8 @@ bool DIALOG_TEXTBOX_PROPERTIES::TransferDataFromWindow() if( !DIALOG_TEXTBOX_PROPERTIES_BASE::TransferDataFromWindow() ) return false; - int minSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - int maxSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + int minSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + int maxSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); if( !m_textWidth.Validate( minSize, maxSize ) || !m_textHeight.Validate( minSize, maxSize ) ) return false; diff --git a/pcbnew/dialogs/panel_fp_editor_defaults.cpp b/pcbnew/dialogs/panel_fp_editor_defaults.cpp index b23e72974e..1f0abf0662 100644 --- a/pcbnew/dialogs/panel_fp_editor_defaults.cpp +++ b/pcbnew/dialogs/panel_fp_editor_defaults.cpp @@ -361,8 +361,8 @@ bool PANEL_FP_EDITOR_DEFAULTS::TransferDataFromWindow() // A minimal value for sizes and thickness: const int minWidth = pcbIUScale.mmToIU( MINIMUM_LINE_WIDTH_MM ); const int maxWidth = pcbIUScale.mmToIU( MAXIMUM_LINE_WIDTH_MM ); - const int minSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - const int maxSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + const int minSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + const int maxSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); wxString errorsMsg; for( int i = 0; i < ROW_COUNT; ++i ) diff --git a/pcbnew/dialogs/panel_setup_text_and_graphics.cpp b/pcbnew/dialogs/panel_setup_text_and_graphics.cpp index 87d096ab04..c021c1f79a 100644 --- a/pcbnew/dialogs/panel_setup_text_and_graphics.cpp +++ b/pcbnew/dialogs/panel_setup_text_and_graphics.cpp @@ -205,8 +205,8 @@ bool PANEL_SETUP_TEXT_AND_GRAPHICS::TransferDataFromWindow() // A minimal value for sizes and thickness const int minWidth = pcbIUScale.mmToIU( MINIMUM_LINE_WIDTH_MM ); const int maxWidth = pcbIUScale.mmToIU( MAXIMUM_LINE_WIDTH_MM ); - const int minSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - const int maxSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + const int minSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + const int maxSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); wxString errorsMsg; UNITS_PROVIDER* unitProvider = m_Frame; diff --git a/pcbnew/footprint_editor_settings.cpp b/pcbnew/footprint_editor_settings.cpp index 01c135b568..c355043673 100644 --- a/pcbnew/footprint_editor_settings.cpp +++ b/pcbnew/footprint_editor_settings.cpp @@ -184,8 +184,8 @@ FOOTPRINT_EDITOR_SETTINGS::FOOTPRINT_EDITOR_SETTINGS() : { "${REFERENCE}", true, F_Fab } } ) ) ); - int minTextSize = pcbIUScale.MilsToIU( TEXT_MIN_SIZE_MILS ); - int maxTextSize = pcbIUScale.MilsToIU( TEXT_MAX_SIZE_MILS ); + int minTextSize = pcbIUScale.mmToIU( TEXT_MIN_SIZE_MM ); + int maxTextSize = pcbIUScale.mmToIU( TEXT_MAX_SIZE_MM ); int minStroke = 1; int maxStroke = pcbIUScale.mmToIU( 100 );