File format changes for fonts.
This commit is contained in:
parent
9b406c1da4
commit
72b69e8d7f
|
@ -513,11 +513,20 @@ void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControl
|
||||||
|
|
||||||
aFormatter->Print( 0, " (font" );
|
aFormatter->Print( 0, " (font" );
|
||||||
|
|
||||||
|
if( GetFont() && !GetFont()->Name().IsEmpty() )
|
||||||
|
aFormatter->Print( 0, " (face \"%s\")", GetFont()->NameAsToken() );
|
||||||
|
|
||||||
// Text size
|
// Text size
|
||||||
aFormatter->Print( 0, " (size %s %s)",
|
aFormatter->Print( 0, " (size %s %s)",
|
||||||
FormatInternalUnits( GetTextHeight() ).c_str(),
|
FormatInternalUnits( GetTextHeight() ).c_str(),
|
||||||
FormatInternalUnits( GetTextWidth() ).c_str() );
|
FormatInternalUnits( GetTextWidth() ).c_str() );
|
||||||
|
|
||||||
|
if( GetLineSpacing() != 1.0 )
|
||||||
|
{
|
||||||
|
aFormatter->Print( 0, " (line_spacing %s)",
|
||||||
|
Double2Str( GetLineSpacing() ).c_str() );
|
||||||
|
}
|
||||||
|
|
||||||
if( GetTextThickness() )
|
if( GetTextThickness() )
|
||||||
{
|
{
|
||||||
aFormatter->Print( 0, " (thickness %s)",
|
aFormatter->Print( 0, " (thickness %s)",
|
||||||
|
@ -719,7 +728,8 @@ static struct EDA_TEXT_DESC
|
||||||
PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance();
|
PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance();
|
||||||
REGISTER_TYPE( EDA_TEXT );
|
REGISTER_TYPE( EDA_TEXT );
|
||||||
propMgr.AddProperty( new PROPERTY<EDA_TEXT, wxString>( _HKI( "Text" ),
|
propMgr.AddProperty( new PROPERTY<EDA_TEXT, wxString>( _HKI( "Text" ),
|
||||||
&EDA_TEXT::SetText, &EDA_TEXT::GetText ) );
|
&EDA_TEXT::SetText,
|
||||||
|
&EDA_TEXT::GetText ) );
|
||||||
propMgr.AddProperty( new PROPERTY<EDA_TEXT, int>( _HKI( "Thickness" ),
|
propMgr.AddProperty( new PROPERTY<EDA_TEXT, int>( _HKI( "Thickness" ),
|
||||||
&EDA_TEXT::SetTextThickness,
|
&EDA_TEXT::SetTextThickness,
|
||||||
&EDA_TEXT::GetTextThickness,
|
&EDA_TEXT::GetTextThickness,
|
||||||
|
|
|
@ -101,6 +101,7 @@ extension_height
|
||||||
extension_offset
|
extension_offset
|
||||||
fab_layers_line_width
|
fab_layers_line_width
|
||||||
fab_layers_text_dims
|
fab_layers_text_dims
|
||||||
|
face
|
||||||
feature1
|
feature1
|
||||||
feature2
|
feature2
|
||||||
fill
|
fill
|
||||||
|
@ -162,6 +163,7 @@ leader
|
||||||
leader_length
|
leader_length
|
||||||
left
|
left
|
||||||
linear
|
linear
|
||||||
|
line_spacing
|
||||||
links
|
links
|
||||||
locked
|
locked
|
||||||
loss_tangent
|
loss_tangent
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
//#define SEXPR_SYMBOL_LIB_FILE_VERSION 20201005 // Separate ki_fp_filters by spaces.
|
//#define SEXPR_SYMBOL_LIB_FILE_VERSION 20201005 // Separate ki_fp_filters by spaces.
|
||||||
//#define SEXPR_SYMBOL_LIB_FILE_VERSION 20210619 // Change pin overbar syntax from `~...~` to `~{...}`.
|
//#define SEXPR_SYMBOL_LIB_FILE_VERSION 20210619 // Change pin overbar syntax from `~...~` to `~{...}`.
|
||||||
//#define SEXPR_SYMBOL_LIB_FILE_VERSION 20211014 // Arc formatting.
|
//#define SEXPR_SYMBOL_LIB_FILE_VERSION 20211014 // Arc formatting.
|
||||||
#define SEXPR_SYMBOL_LIB_FILE_VERSION 20220101 // Class flags.
|
//#define SEXPR_SYMBOL_LIB_FILE_VERSION 20220101 // Class flags.
|
||||||
|
#define SEXPR_SYMBOL_LIB_FILE_VERSION 20220102 // Fonts.
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -70,4 +71,5 @@
|
||||||
//#define SEXPR_SCHEMATIC_FILE_VERSION 20211123 // R/W uuids for junctions.
|
//#define SEXPR_SCHEMATIC_FILE_VERSION 20211123 // R/W uuids for junctions.
|
||||||
//#define SEXPR_SCHEMATIC_FILE_VERSION 20220101 // Circles, arcs, rects, polys & beziers
|
//#define SEXPR_SCHEMATIC_FILE_VERSION 20220101 // Circles, arcs, rects, polys & beziers
|
||||||
//#define SEXPR_SCHEMATIC_FILE_VERSION 20220102 // Dash-dot-dot
|
//#define SEXPR_SCHEMATIC_FILE_VERSION 20220102 // Dash-dot-dot
|
||||||
#define SEXPR_SCHEMATIC_FILE_VERSION 20220103 // Label fields
|
//#define SEXPR_SCHEMATIC_FILE_VERSION 20220103 // Label fields
|
||||||
|
#define SEXPR_SCHEMATIC_FILE_VERSION 20220104 // Fonts
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <lib_pin.h>
|
#include <lib_pin.h>
|
||||||
#include <lib_text.h>
|
#include <lib_text.h>
|
||||||
#include <math/util.h> // KiROUND, Clamp
|
#include <math/util.h> // KiROUND, Clamp
|
||||||
|
#include <font/font.h>
|
||||||
#include <string_utils.h>
|
#include <string_utils.h>
|
||||||
#include <sch_bitmap.h>
|
#include <sch_bitmap.h>
|
||||||
#include <sch_bus_entry.h>
|
#include <sch_bus_entry.h>
|
||||||
|
@ -539,7 +540,8 @@ void SCH_SEXPR_PARSER::parseEDA_TEXT( EDA_TEXT* aText, bool aConvertOverbarSynta
|
||||||
if( aConvertOverbarSyntax && m_requiredVersion < 20210606 )
|
if( aConvertOverbarSyntax && m_requiredVersion < 20210606 )
|
||||||
aText->SetText( ConvertToNewOverbarNotation( aText->GetText() ) );
|
aText->SetText( ConvertToNewOverbarNotation( aText->GetText() ) );
|
||||||
|
|
||||||
T token;
|
T token;
|
||||||
|
wxString faceName;
|
||||||
|
|
||||||
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
||||||
{
|
{
|
||||||
|
@ -556,6 +558,12 @@ void SCH_SEXPR_PARSER::parseEDA_TEXT( EDA_TEXT* aText, bool aConvertOverbarSynta
|
||||||
|
|
||||||
switch( token )
|
switch( token )
|
||||||
{
|
{
|
||||||
|
case T_face:
|
||||||
|
NeedSYMBOL();
|
||||||
|
faceName = FromUTF8();
|
||||||
|
NeedRIGHT();
|
||||||
|
break;
|
||||||
|
|
||||||
case T_size:
|
case T_size:
|
||||||
{
|
{
|
||||||
wxSize sz;
|
wxSize sz;
|
||||||
|
@ -579,11 +587,23 @@ void SCH_SEXPR_PARSER::parseEDA_TEXT( EDA_TEXT* aText, bool aConvertOverbarSynta
|
||||||
aText->SetItalic( true );
|
aText->SetItalic( true );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case T_line_spacing:
|
||||||
|
aText->SetLineSpacing( parseDouble( "line spacing" ) );
|
||||||
|
NeedRIGHT();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Expecting( "size, bold, or italic" );
|
Expecting( "face, size, thickness, line_spacing, bold, or italic" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( !faceName.IsEmpty() )
|
||||||
|
{
|
||||||
|
// FONT TODO: notify user about missing font
|
||||||
|
aText->SetFont( KIFONT::FONT::GetFont( faceName, aText->IsBold(),
|
||||||
|
aText->IsItalic() ) );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_justify:
|
case T_justify:
|
||||||
|
|
|
@ -31,6 +31,7 @@ edge_clock_high
|
||||||
effects
|
effects
|
||||||
end
|
end
|
||||||
extends
|
extends
|
||||||
|
face
|
||||||
fields_autoplaced
|
fields_autoplaced
|
||||||
fill
|
fill
|
||||||
font
|
font
|
||||||
|
@ -61,6 +62,7 @@ lib_id
|
||||||
lib_name
|
lib_name
|
||||||
lib_symbols
|
lib_symbols
|
||||||
line
|
line
|
||||||
|
line_spacing
|
||||||
members
|
members
|
||||||
mid
|
mid
|
||||||
mirror
|
mirror
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
#include <pcb_target.h>
|
#include <pcb_target.h>
|
||||||
#include <footprint.h>
|
#include <footprint.h>
|
||||||
#include <geometry/shape_line_chain.h>
|
#include <geometry/shape_line_chain.h>
|
||||||
|
#include <font/font.h>
|
||||||
#include <ignore.h>
|
#include <ignore.h>
|
||||||
#include <netclass.h>
|
#include <netclass.h>
|
||||||
#include <pad.h>
|
#include <pad.h>
|
||||||
|
@ -413,7 +413,8 @@ void PCB_PARSER::parseEDA_TEXT( EDA_TEXT* aText )
|
||||||
|
|
||||||
// Prior to v5.0 text size was omitted from file format if equal to 60mils
|
// Prior to v5.0 text size was omitted from file format if equal to 60mils
|
||||||
// Now, it is always explicitly written to file
|
// Now, it is always explicitly written to file
|
||||||
bool foundTextSize = false;
|
bool foundTextSize = false;
|
||||||
|
wxString faceName;
|
||||||
|
|
||||||
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
for( token = NextTok(); token != T_RIGHT; token = NextTok() )
|
||||||
{
|
{
|
||||||
|
@ -430,6 +431,12 @@ void PCB_PARSER::parseEDA_TEXT( EDA_TEXT* aText )
|
||||||
|
|
||||||
switch( token )
|
switch( token )
|
||||||
{
|
{
|
||||||
|
case T_face:
|
||||||
|
NeedSYMBOL();
|
||||||
|
faceName = FromUTF8();
|
||||||
|
NeedRIGHT();
|
||||||
|
break;
|
||||||
|
|
||||||
case T_size:
|
case T_size:
|
||||||
{
|
{
|
||||||
wxSize sz;
|
wxSize sz;
|
||||||
|
@ -442,6 +449,11 @@ void PCB_PARSER::parseEDA_TEXT( EDA_TEXT* aText )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case T_line_spacing:
|
||||||
|
aText->SetLineSpacing( parseDouble( "line spacing" ) );
|
||||||
|
NeedRIGHT();
|
||||||
|
break;
|
||||||
|
|
||||||
case T_thickness:
|
case T_thickness:
|
||||||
aText->SetTextThickness( parseBoardUnits( "text thickness" ) );
|
aText->SetTextThickness( parseBoardUnits( "text thickness" ) );
|
||||||
NeedRIGHT();
|
NeedRIGHT();
|
||||||
|
@ -456,9 +468,17 @@ void PCB_PARSER::parseEDA_TEXT( EDA_TEXT* aText )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Expecting( "size, bold, or italic" );
|
Expecting( "face, size, line_spacing, thickness, bold, or italic" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( !faceName.IsEmpty() )
|
||||||
|
{
|
||||||
|
// FONT TODO: notify user about missing font
|
||||||
|
aText->SetFont( KIFONT::FONT::GetFont( faceName, aText->IsBold(),
|
||||||
|
aText->IsItalic() ) );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_justify:
|
case T_justify:
|
||||||
|
|
|
@ -108,7 +108,8 @@ class PCB_TEXT;
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20211228 // Add allow_soldermask_bridges footprint attribute
|
//#define SEXPR_BOARD_FILE_VERSION 20211228 // Add allow_soldermask_bridges footprint attribute
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20211229 // Stroke formatting
|
//#define SEXPR_BOARD_FILE_VERSION 20211229 // Stroke formatting
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20211230 // Dimensions in footprints
|
//#define SEXPR_BOARD_FILE_VERSION 20211230 // Dimensions in footprints
|
||||||
#define SEXPR_BOARD_FILE_VERSION 20221231 // Private footprint layers
|
//#define SEXPR_BOARD_FILE_VERSION 20221231 // Private footprint layers
|
||||||
|
#define SEXPR_BOARD_FILE_VERSION 20221232 // Fonts
|
||||||
|
|
||||||
#define BOARD_FILE_HOST_VERSION 20200825 ///< Earlier files than this include the host tag
|
#define BOARD_FILE_HOST_VERSION 20200825 ///< Earlier files than this include the host tag
|
||||||
#define LEGACY_ARC_FORMATTING 20210925 ///< These were the last to use old arc formatting
|
#define LEGACY_ARC_FORMATTING 20210925 ///< These were the last to use old arc formatting
|
||||||
|
|
Loading…
Reference in New Issue