diff --git a/common/drawing_sheet/ds_draw_item.cpp b/common/drawing_sheet/ds_draw_item.cpp index 1f6fb53799..700011b62a 100644 --- a/common/drawing_sheet/ds_draw_item.cpp +++ b/common/drawing_sheet/ds_draw_item.cpp @@ -199,6 +199,9 @@ const BOX2I DS_DRAW_ITEM_TEXT::GetApproxBBox() case GR_TEXT_H_ALIGN_LEFT: break; case GR_TEXT_H_ALIGN_CENTER: bbox.Offset( -bbox.GetWidth() / 2, 0 ); break; case GR_TEXT_H_ALIGN_RIGHT: bbox.Offset( -bbox.GetWidth(), 0 ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } switch( GetAttributes().m_Valign ) @@ -206,6 +209,9 @@ const BOX2I DS_DRAW_ITEM_TEXT::GetApproxBBox() case GR_TEXT_V_ALIGN_TOP: break; case GR_TEXT_V_ALIGN_CENTER: bbox.Offset( 0, -bbox.GetHeight() / 2 ); break; case GR_TEXT_V_ALIGN_BOTTOM: bbox.Offset( 0, -bbox.GetHeight() ); break; + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } bbox.Inflate( attrs.m_Size.x, attrs.m_Size.y / 2 ); diff --git a/common/eda_text.cpp b/common/eda_text.cpp index 766066cedf..19b4a9d5db 100644 --- a/common/eda_text.cpp +++ b/common/eda_text.cpp @@ -649,6 +649,10 @@ BOX2I EDA_TEXT::GetTextBox( int aLine, bool aInvertY ) const if( !IsMirrored() ) bbox.SetX( bbox.GetX() - ( bbox.GetWidth() - italicOffset ) ); break; + + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } switch( GetVertJustify() ) @@ -665,6 +669,10 @@ BOX2I EDA_TEXT::GetTextBox( int aLine, bool aInvertY ) const bbox.SetY( bbox.GetY() - bbox.GetHeight() ); bbox.Offset( 0, fudgeFactor ); break; + + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } bbox.Normalize(); // Make h and v sizes always >= 0 @@ -751,6 +759,10 @@ void EDA_TEXT::GetLinePositions( std::vector<VECTOR2I>& aPositions, int aLineCou case GR_TEXT_V_ALIGN_BOTTOM: pos.y -= ( aLineCount - 1 ) * offset.y; break; + + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } } diff --git a/common/font/font.cpp b/common/font/font.cpp index 810b797368..a4012399e0 100644 --- a/common/font/font.cpp +++ b/common/font/font.cpp @@ -217,6 +217,9 @@ void FONT::getLinePositions( const wxString& aText, const VECTOR2I& aPosition, case GR_TEXT_V_ALIGN_TOP: break; case GR_TEXT_V_ALIGN_CENTER: offset.y -= height / 2; break; case GR_TEXT_V_ALIGN_BOTTOM: offset.y -= height; break; + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } for( int i = 0; i < lineCount; i++ ) @@ -228,9 +231,12 @@ void FONT::getLinePositions( const wxString& aText, const VECTOR2I& aPosition, switch( aAttrs.m_Halign ) { - case GR_TEXT_H_ALIGN_LEFT: break; - case GR_TEXT_H_ALIGN_CENTER: lineOffset.x = -lineSize.x / 2; break; - case GR_TEXT_H_ALIGN_RIGHT: lineOffset.x = -( lineSize.x + offset.x ); break; + case GR_TEXT_H_ALIGN_LEFT: break; + case GR_TEXT_H_ALIGN_CENTER: lineOffset.x = -lineSize.x / 2; break; + case GR_TEXT_H_ALIGN_RIGHT: lineOffset.x = -( lineSize.x + offset.x ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } aPositions.push_back( aPosition + lineOffset ); diff --git a/common/gal/opengl/opengl_gal.cpp b/common/gal/opengl/opengl_gal.cpp index 4ae2241c2c..1de70b0465 100644 --- a/common/gal/opengl/opengl_gal.cpp +++ b/common/gal/opengl/opengl_gal.cpp @@ -1598,6 +1598,10 @@ void OPENGL_GAL::BitmapText( const wxString& aText, const VECTOR2I& aPosition, //if( IsTextMirrored() ) //Translate( VECTOR2D( -textSize.x, 0 ) ); break; + + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } switch( GetVerticalJustify() ) @@ -1614,6 +1618,10 @@ void OPENGL_GAL::BitmapText( const wxString& aText, const VECTOR2I& aPosition, Translate( VECTOR2D( 0, -textSize.y ) ); overbarHeight = -textSize.y / 2.0; break; + + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } int overbarLength = 0; diff --git a/common/plotters/DXF_plotter.cpp b/common/plotters/DXF_plotter.cpp index 69a8921f21..8f76970361 100644 --- a/common/plotters/DXF_plotter.cpp +++ b/common/plotters/DXF_plotter.cpp @@ -975,6 +975,9 @@ void DXF_PLOTTER::plotOneLineOfText( const VECTOR2I& aPos, const COLOR4D& aColor case GR_TEXT_H_ALIGN_LEFT: h_code = 0; break; case GR_TEXT_H_ALIGN_CENTER: h_code = 1; break; case GR_TEXT_H_ALIGN_RIGHT: h_code = 2; break; + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } switch( aAttributes.m_Valign ) @@ -982,6 +985,9 @@ void DXF_PLOTTER::plotOneLineOfText( const VECTOR2I& aPos, const COLOR4D& aColor case GR_TEXT_V_ALIGN_TOP: v_code = 3; break; case GR_TEXT_V_ALIGN_CENTER: v_code = 2; break; case GR_TEXT_V_ALIGN_BOTTOM: v_code = 1; break; + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } // Position, size, rotation and alignment diff --git a/common/plotters/PS_plotter.cpp b/common/plotters/PS_plotter.cpp index ffe4a205eb..624acd84de 100644 --- a/common/plotters/PS_plotter.cpp +++ b/common/plotters/PS_plotter.cpp @@ -381,6 +381,9 @@ void PSLIKE_PLOTTER::computeTextParameters( const VECTOR2I& aPos, case GR_TEXT_H_ALIGN_CENTER: dx = -tw / 2; break; case GR_TEXT_H_ALIGN_RIGHT: dx = -tw; break; case GR_TEXT_H_ALIGN_LEFT: dx = 0; break; + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } switch( aV_justify ) @@ -388,6 +391,9 @@ void PSLIKE_PLOTTER::computeTextParameters( const VECTOR2I& aPos, case GR_TEXT_V_ALIGN_CENTER: dy = th / 2; break; case GR_TEXT_V_ALIGN_TOP: dy = th; break; case GR_TEXT_V_ALIGN_BOTTOM: dy = 0; break; + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } RotatePoint( &dx, &dy, aOrient ); diff --git a/common/plotters/SVG_plotter.cpp b/common/plotters/SVG_plotter.cpp index 045070c7a7..99fb594208 100644 --- a/common/plotters/SVG_plotter.cpp +++ b/common/plotters/SVG_plotter.cpp @@ -816,6 +816,9 @@ void SVG_PLOTTER::Text( const VECTOR2I& aPos, case GR_TEXT_H_ALIGN_CENTER: hjust = "middle"; break; case GR_TEXT_H_ALIGN_RIGHT: hjust = "end"; break; case GR_TEXT_H_ALIGN_LEFT: hjust = "start"; break; + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } switch( aV_justify ) @@ -823,6 +826,9 @@ void SVG_PLOTTER::Text( const VECTOR2I& aPos, case GR_TEXT_V_ALIGN_CENTER: text_pos.y += aSize.y / 2; break; case GR_TEXT_V_ALIGN_TOP: text_pos.y += aSize.y; break; case GR_TEXT_V_ALIGN_BOTTOM: break; + case GR_TEXT_V_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } VECTOR2I text_size; diff --git a/eeschema/dialogs/dialog_lib_text_properties.cpp b/eeschema/dialogs/dialog_lib_text_properties.cpp index 457a3cb978..e0d399fe5d 100644 --- a/eeschema/dialogs/dialog_lib_text_properties.cpp +++ b/eeschema/dialogs/dialog_lib_text_properties.cpp @@ -154,16 +154,18 @@ bool DIALOG_LIB_TEXT_PROPERTIES::TransferDataToWindow() switch ( m_graphicText->GetHorizJustify() ) { - case GR_TEXT_H_ALIGN_LEFT: m_hAlignLeft->Check( true ); break; - case GR_TEXT_H_ALIGN_CENTER: m_hAlignCenter->Check( true ); break; - case GR_TEXT_H_ALIGN_RIGHT: m_hAlignRight->Check( true ); break; + case GR_TEXT_H_ALIGN_LEFT: m_hAlignLeft->Check( true ); break; + case GR_TEXT_H_ALIGN_CENTER: m_hAlignCenter->Check( true ); break; + case GR_TEXT_H_ALIGN_RIGHT: m_hAlignRight->Check( true ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: break; } switch ( m_graphicText->GetVertJustify() ) { - case GR_TEXT_V_ALIGN_TOP: m_vAlignTop->Check( true ); break; - case GR_TEXT_V_ALIGN_CENTER: m_vAlignCenter->Check( true ); break; - case GR_TEXT_V_ALIGN_BOTTOM: m_vAlignBottom->Check( true ); break; + case GR_TEXT_V_ALIGN_TOP: m_vAlignTop->Check( true ); break; + case GR_TEXT_V_ALIGN_CENTER: m_vAlignCenter->Check( true ); break; + case GR_TEXT_V_ALIGN_BOTTOM: m_vAlignBottom->Check( true ); break; + case GR_TEXT_V_ALIGN_INDETERMINATE: break; } } else diff --git a/eeschema/dialogs/dialog_lib_textbox_properties.cpp b/eeschema/dialogs/dialog_lib_textbox_properties.cpp index ac1bc80b76..8990ffa299 100644 --- a/eeschema/dialogs/dialog_lib_textbox_properties.cpp +++ b/eeschema/dialogs/dialog_lib_textbox_properties.cpp @@ -162,16 +162,18 @@ bool DIALOG_LIB_TEXTBOX_PROPERTIES::TransferDataToWindow() switch( m_currentText->GetHorizJustify() ) { - case GR_TEXT_H_ALIGN_LEFT: m_hAlignLeft->Check(); break; - case GR_TEXT_H_ALIGN_CENTER: m_hAlignCenter->Check(); break; - case GR_TEXT_H_ALIGN_RIGHT: m_hAlignRight->Check(); break; + case GR_TEXT_H_ALIGN_LEFT: m_hAlignLeft->Check(); break; + case GR_TEXT_H_ALIGN_CENTER: m_hAlignCenter->Check(); break; + case GR_TEXT_H_ALIGN_RIGHT: m_hAlignRight->Check(); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: break; } switch( m_currentText->GetVertJustify() ) { - case GR_TEXT_V_ALIGN_TOP: m_vAlignTop->Check(); break; - case GR_TEXT_V_ALIGN_CENTER: m_vAlignCenter->Check(); break; - case GR_TEXT_V_ALIGN_BOTTOM: m_vAlignBottom->Check(); break; + case GR_TEXT_V_ALIGN_TOP: m_vAlignTop->Check(); break; + case GR_TEXT_V_ALIGN_CENTER: m_vAlignCenter->Check(); break; + case GR_TEXT_V_ALIGN_BOTTOM: m_vAlignBottom->Check(); break; + case GR_TEXT_V_ALIGN_INDETERMINATE: break; } if( m_currentText->GetTextAngle() == ANGLE_VERTICAL ) diff --git a/eeschema/fields_grid_table.cpp b/eeschema/fields_grid_table.cpp index 826af72877..d2f1acf89f 100644 --- a/eeschema/fields_grid_table.cpp +++ b/eeschema/fields_grid_table.cpp @@ -584,9 +584,10 @@ wxString FIELDS_GRID_TABLE<T>::GetValue( int aRow, int aCol ) case FDC_H_ALIGN: switch ( field.GetEffectiveHorizJustify() ) { - case GR_TEXT_H_ALIGN_LEFT: return _( "Left" ); - case GR_TEXT_H_ALIGN_CENTER: return _( "Center" ); - case GR_TEXT_H_ALIGN_RIGHT: return _( "Right" ); + case GR_TEXT_H_ALIGN_LEFT: return _( "Left" ); + case GR_TEXT_H_ALIGN_CENTER: return _( "Center" ); + case GR_TEXT_H_ALIGN_RIGHT: return _( "Right" ); + case GR_TEXT_H_ALIGN_INDETERMINATE: return INDETERMINATE_STATE; } break; @@ -594,9 +595,10 @@ wxString FIELDS_GRID_TABLE<T>::GetValue( int aRow, int aCol ) case FDC_V_ALIGN: switch ( field.GetEffectiveVertJustify() ) { - case GR_TEXT_V_ALIGN_TOP: return _( "Top" ); - case GR_TEXT_V_ALIGN_CENTER: return _( "Center" ); - case GR_TEXT_V_ALIGN_BOTTOM: return _( "Bottom" ); + case GR_TEXT_V_ALIGN_TOP: return _( "Top" ); + case GR_TEXT_V_ALIGN_CENTER: return _( "Center" ); + case GR_TEXT_V_ALIGN_BOTTOM: return _( "Bottom" ); + case GR_TEXT_V_ALIGN_INDETERMINATE: return INDETERMINATE_STATE; } break; diff --git a/eeschema/lib_field.cpp b/eeschema/lib_field.cpp index 4452d804ff..28111151b8 100644 --- a/eeschema/lib_field.cpp +++ b/eeschema/lib_field.cpp @@ -555,18 +555,20 @@ void LIB_FIELD::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_I switch ( GetHorizJustify() ) { - case GR_TEXT_H_ALIGN_LEFT: msg = _( "Left" ); break; - case GR_TEXT_H_ALIGN_CENTER: msg = _( "Center" ); break; - case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Right" ); break; + case GR_TEXT_H_ALIGN_LEFT: msg = _( "Left" ); break; + case GR_TEXT_H_ALIGN_CENTER: msg = _( "Center" ); break; + case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Right" ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: msg = INDETERMINATE_STATE; break; } aList.emplace_back( _( "H Justification" ), msg ); switch ( GetVertJustify() ) { - case GR_TEXT_V_ALIGN_TOP: msg = _( "Top" ); break; - case GR_TEXT_V_ALIGN_CENTER: msg = _( "Center" ); break; - case GR_TEXT_V_ALIGN_BOTTOM: msg = _( "Bottom" ); break; + case GR_TEXT_V_ALIGN_TOP: msg = _( "Top" ); break; + case GR_TEXT_V_ALIGN_CENTER: msg = _( "Center" ); break; + case GR_TEXT_V_ALIGN_BOTTOM: msg = _( "Bottom" ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: msg = INDETERMINATE_STATE; break; } aList.emplace_back( _( "V Justification" ), msg ); diff --git a/eeschema/lib_text.cpp b/eeschema/lib_text.cpp index 63c83b65e1..cfc4a0cb77 100644 --- a/eeschema/lib_text.cpp +++ b/eeschema/lib_text.cpp @@ -422,18 +422,20 @@ void LIB_TEXT::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_IT switch ( GetHorizJustify() ) { - case GR_TEXT_H_ALIGN_LEFT: msg = _( "Left" ); break; - case GR_TEXT_H_ALIGN_CENTER: msg = _( "Center" ); break; - case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Right" ); break; + case GR_TEXT_H_ALIGN_LEFT: msg = _( "Left" ); break; + case GR_TEXT_H_ALIGN_CENTER: msg = _( "Center" ); break; + case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Right" ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: msg = INDETERMINATE_STATE; break; } aList.emplace_back( _( "H Justification" ), msg ); switch ( GetVertJustify() ) { - case GR_TEXT_V_ALIGN_TOP: msg = _( "Top" ); break; - case GR_TEXT_V_ALIGN_CENTER: msg = _( "Center" ); break; - case GR_TEXT_V_ALIGN_BOTTOM: msg = _( "Bottom" ); break; + case GR_TEXT_V_ALIGN_TOP: msg = _( "Top" ); break; + case GR_TEXT_V_ALIGN_CENTER: msg = _( "Center" ); break; + case GR_TEXT_V_ALIGN_BOTTOM: msg = _( "Bottom" ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: msg = INDETERMINATE_STATE; break; } aList.emplace_back( _( "V Justification" ), msg ); diff --git a/eeschema/sch_field.cpp b/eeschema/sch_field.cpp index 6e77b51775..51e1e14641 100644 --- a/eeschema/sch_field.cpp +++ b/eeschema/sch_field.cpp @@ -919,18 +919,20 @@ void SCH_FIELD::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_I switch ( GetHorizJustify() ) { - case GR_TEXT_H_ALIGN_LEFT: msg = _( "Left" ); break; - case GR_TEXT_H_ALIGN_CENTER: msg = _( "Center" ); break; - case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Right" ); break; + case GR_TEXT_H_ALIGN_LEFT: msg = _( "Left" ); break; + case GR_TEXT_H_ALIGN_CENTER: msg = _( "Center" ); break; + case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Right" ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: msg = INDETERMINATE_STATE; break; } aList.emplace_back( _( "H Justification" ), msg ); switch ( GetVertJustify() ) { - case GR_TEXT_V_ALIGN_TOP: msg = _( "Top" ); break; - case GR_TEXT_V_ALIGN_CENTER: msg = _( "Center" ); break; - case GR_TEXT_V_ALIGN_BOTTOM: msg = _( "Bottom" ); break; + case GR_TEXT_V_ALIGN_TOP: msg = _( "Top" ); break; + case GR_TEXT_V_ALIGN_CENTER: msg = _( "Center" ); break; + case GR_TEXT_V_ALIGN_BOTTOM: msg = _( "Bottom" ); break; + case GR_TEXT_V_ALIGN_INDETERMINATE: msg = INDETERMINATE_STATE; break; } aList.emplace_back( _( "V Justification" ), msg ); diff --git a/eeschema/sch_label.cpp b/eeschema/sch_label.cpp index 94613e09d5..bdd2b4e2d2 100644 --- a/eeschema/sch_label.cpp +++ b/eeschema/sch_label.cpp @@ -1551,19 +1551,10 @@ void SCH_DIRECTIVE_LABEL::MirrorHorizontally( int aCenter ) for( SCH_FIELD& field : m_fields ) { - switch( field.GetHorizJustify() ) - { - case GR_TEXT_H_ALIGN_LEFT: + if( field.GetHorizJustify() == GR_TEXT_H_ALIGN_LEFT ) field.SetHorizJustify( GR_TEXT_H_ALIGN_RIGHT ); - break; - - case GR_TEXT_H_ALIGN_CENTER: - break; - - case GR_TEXT_H_ALIGN_RIGHT: + else if( field.GetHorizJustify() == GR_TEXT_H_ALIGN_RIGHT ) field.SetHorizJustify( GR_TEXT_H_ALIGN_LEFT ); - break; - } VECTOR2I pos = field.GetTextPos(); VECTOR2I delta = old_pos - pos; diff --git a/eeschema/sch_painter.cpp b/eeschema/sch_painter.cpp index d8ae3b0024..29fbd468f8 100644 --- a/eeschema/sch_painter.cpp +++ b/eeschema/sch_painter.cpp @@ -709,16 +709,18 @@ void SCH_PAINTER::boxText( const wxString& aText, const VECTOR2D& aPosition, switch( aAttrs.m_Halign ) { - case GR_TEXT_H_ALIGN_LEFT: break; - case GR_TEXT_H_ALIGN_CENTER: box.SetX( box.GetX() - box.GetWidth() / 2 ); break; - case GR_TEXT_H_ALIGN_RIGHT: box.SetX( box.GetX() - box.GetWidth() ); break; + case GR_TEXT_H_ALIGN_LEFT: break; + case GR_TEXT_H_ALIGN_CENTER: box.SetX( box.GetX() - box.GetWidth() / 2 ); break; + case GR_TEXT_H_ALIGN_RIGHT: box.SetX( box.GetX() - box.GetWidth() ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: wxFAIL_MSG( wxT( "Legal only in dialogs" ) ); break; } switch( aAttrs.m_Valign ) { - case GR_TEXT_V_ALIGN_TOP: break; - case GR_TEXT_V_ALIGN_CENTER: box.SetY( box.GetY() - box.GetHeight() / 2 ); break; - case GR_TEXT_V_ALIGN_BOTTOM: box.SetY( box.GetY() - box.GetHeight() ); break; + case GR_TEXT_V_ALIGN_TOP: break; + case GR_TEXT_V_ALIGN_CENTER: box.SetY( box.GetY() - box.GetHeight() / 2 ); break; + case GR_TEXT_V_ALIGN_BOTTOM: box.SetY( box.GetY() - box.GetHeight() ); break; + case GR_TEXT_V_ALIGN_INDETERMINATE: wxFAIL_MSG( wxT( "Legal only in dialogs" ) ); break; } // Give the highlight a bit of margin. @@ -1178,18 +1180,36 @@ void SCH_PAINTER::draw( const LIB_TEXT* aText, int aLayer, bool aDimmed ) { switch( attrs.m_Halign ) { - case GR_TEXT_H_ALIGN_LEFT: pos.y = bBox.GetBottom() + shadowOffset; break; - case GR_TEXT_H_ALIGN_CENTER: pos.y = ( bBox.GetTop() + bBox.GetBottom() ) / 2; break; - case GR_TEXT_H_ALIGN_RIGHT: pos.y = bBox.GetTop() - shadowOffset; break; + case GR_TEXT_H_ALIGN_LEFT: + pos.y = bBox.GetBottom() + shadowOffset; + break; + case GR_TEXT_H_ALIGN_CENTER: + pos.y = ( bBox.GetTop() + bBox.GetBottom() ) / 2.0; + break; + case GR_TEXT_H_ALIGN_RIGHT: + pos.y = bBox.GetTop() - shadowOffset; + break; + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } } else { switch( attrs.m_Halign ) { - case GR_TEXT_H_ALIGN_LEFT: pos.x = bBox.GetLeft() - shadowOffset; break; - case GR_TEXT_H_ALIGN_CENTER: pos.x = ( bBox.GetLeft() + bBox.GetRight() ) / 2; break; - case GR_TEXT_H_ALIGN_RIGHT: pos.x = bBox.GetRight() + shadowOffset; break; + case GR_TEXT_H_ALIGN_LEFT: + pos.x = bBox.GetLeft() - shadowOffset; + break; + case GR_TEXT_H_ALIGN_CENTER: + pos.x = ( bBox.GetLeft() + bBox.GetRight() ) / 2.0; + break; + case GR_TEXT_H_ALIGN_RIGHT: + pos.x = bBox.GetRight() + shadowOffset; + break; + case GR_TEXT_H_ALIGN_INDETERMINATE: + wxFAIL_MSG( wxT( "Indeterminate state legal only in dialogs." ) ); + break; } } diff --git a/eeschema/sch_text.cpp b/eeschema/sch_text.cpp index 3c4c398a25..650067f52f 100644 --- a/eeschema/sch_text.cpp +++ b/eeschema/sch_text.cpp @@ -416,9 +416,10 @@ void SCH_TEXT::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_IT switch( GetHorizJustify() ) { - case GR_TEXT_H_ALIGN_LEFT: msg = _( "Align left" ); break; - case GR_TEXT_H_ALIGN_CENTER: msg = _( "Align center" ); break; - case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Align right" ); break; + case GR_TEXT_H_ALIGN_LEFT: msg = _( "Align left" ); break; + case GR_TEXT_H_ALIGN_CENTER: msg = _( "Align center" ); break; + case GR_TEXT_H_ALIGN_RIGHT: msg = _( "Align right" ); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: msg = INDETERMINATE_STATE; break; } aList.emplace_back( _( "Justification" ), msg ); diff --git a/pagelayout_editor/dialogs/properties_frame.cpp b/pagelayout_editor/dialogs/properties_frame.cpp index 96a71ce0c8..3aa3f04046 100644 --- a/pagelayout_editor/dialogs/properties_frame.cpp +++ b/pagelayout_editor/dialogs/properties_frame.cpp @@ -330,9 +330,10 @@ void PROPERTIES_FRAME::CopyPrmsFromItemToPanel( DS_DATA_ITEM* aItem ) switch( item->m_Hjustify ) { - case GR_TEXT_H_ALIGN_LEFT: m_alignLeft->Check(); break; - case GR_TEXT_H_ALIGN_CENTER: m_alignCenter->Check(); break; - case GR_TEXT_H_ALIGN_RIGHT: m_alignRight->Check(); break; + case GR_TEXT_H_ALIGN_LEFT: m_alignLeft->Check(); break; + case GR_TEXT_H_ALIGN_CENTER: m_alignCenter->Check(); break; + case GR_TEXT_H_ALIGN_RIGHT: m_alignRight->Check(); break; + case GR_TEXT_H_ALIGN_INDETERMINATE: break; } for( BITMAP_BUTTON* btn : { m_vAlignTop, m_vAlignMiddle, m_vAlignBottom } ) @@ -340,9 +341,10 @@ void PROPERTIES_FRAME::CopyPrmsFromItemToPanel( DS_DATA_ITEM* aItem ) switch( item->m_Vjustify ) { - case GR_TEXT_V_ALIGN_TOP: m_vAlignTop->Check(); break; - case GR_TEXT_V_ALIGN_CENTER: m_vAlignMiddle->Check(); break; - case GR_TEXT_V_ALIGN_BOTTOM: m_vAlignBottom->Check(); break; + case GR_TEXT_V_ALIGN_TOP: m_vAlignTop->Check(); break; + case GR_TEXT_V_ALIGN_CENTER: m_vAlignMiddle->Check(); break; + case GR_TEXT_V_ALIGN_BOTTOM: m_vAlignBottom->Check(); break; + case GR_TEXT_V_ALIGN_INDETERMINATE: break; } // Text size