← Back to team overview

kicad-developers team mailing list archive

[PATCH] new feature, value and reference with angle in PCB

 

Hi,

With this patch it'll be possible to use angled text.

Best regards.
From f28d0e24f971dbfa073db2ab1c4150ab198ddce9 Mon Sep 17 00:00:00 2001
From: "Patrick J.P" <patrick.pereira@xxxxxxxxx>
Date: Thu, 31 Mar 2016 17:41:27 -0300
Subject: [PATCH] Now it's possible to use values and reference in PCB with an
 angle of 45

References and values can be edited to use an angled mode.

Signed-off-by: Patrick J.P <patrick.pereira@xxxxxxxxx>
---
 pcbnew/dialogs/dialog_edit_module_text.cpp      |   7 +-
 pcbnew/dialogs/dialog_edit_module_text_base.cpp | 100 ++++++++++++------------
 2 files changed, 56 insertions(+), 51 deletions(-)

diff --git a/pcbnew/dialogs/dialog_edit_module_text.cpp b/pcbnew/dialogs/dialog_edit_module_text.cpp
index 03ecc1f..9784000 100644
--- a/pcbnew/dialogs/dialog_edit_module_text.cpp
+++ b/pcbnew/dialogs/dialog_edit_module_text.cpp
@@ -239,7 +239,12 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event )
 
     m_currentText->SetVisible( m_Show->GetSelection() == 0 );
 
-    int text_orient = (m_Orient->GetSelection() == 0) ? 0 : 900;
+    int text_orient = 0;
+    if(m_Orient->GetSelection() == 1)
+      text_orient = 900;
+    else
+      if(m_Orient->GetSelection() == 2)
+	text_orient = 450;
     m_currentText->SetOrientation( text_orient );
 
     m_currentText->SetDrawCoord();
diff --git a/pcbnew/dialogs/dialog_edit_module_text_base.cpp b/pcbnew/dialogs/dialog_edit_module_text_base.cpp
index 3e074cf..b84c2a6 100644
--- a/pcbnew/dialogs/dialog_edit_module_text_base.cpp
+++ b/pcbnew/dialogs/dialog_edit_module_text_base.cpp
@@ -12,139 +12,139 @@
 DialogEditModuleText_base::DialogEditModuleText_base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
 {
 	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-	
+
 	wxBoxSizer* bMainSizer;
 	bMainSizer = new wxBoxSizer( wxVERTICAL );
-	
+
 	m_ModuleInfoText = new wxStaticText( this, wxID_ANY, _("Footprint %s (%s) orientation %.1f"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_ModuleInfoText->Wrap( -1 );
 	m_ModuleInfoText->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-	
+
 	bMainSizer->Add( m_ModuleInfoText, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
-	
+
 	m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 	bMainSizer->Add( m_staticline1, 0, wxALL|wxEXPAND, 5 );
-	
+
 	wxBoxSizer* bSizer9;
 	bSizer9 = new wxBoxSizer( wxVERTICAL );
-	
+
 	wxBoxSizer* bSizer10;
 	bSizer10 = new wxBoxSizer( wxHORIZONTAL );
-	
+
 	wxFlexGridSizer* fgSizer1;
 	fgSizer1 = new wxFlexGridSizer( 7, 2, 0, 0 );
 	fgSizer1->AddGrowableCol( 1 );
 	fgSizer1->SetFlexibleDirection( wxBOTH );
 	fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-	
+
 	m_TextDataTitle = new wxStaticText( this, wxID_ANY, _("Reference:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_TextDataTitle->Wrap( -1 );
 	fgSizer1->Add( m_TextDataTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-	
+
 	m_Name = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	m_Name->SetMaxLength( 0 ); 
+	m_Name->SetMaxLength( 0 );
 	fgSizer1->Add( m_Name, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-	
+
 	m_SizeXTitle = new wxStaticText( this, wxID_ANY, _("Width"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_SizeXTitle->Wrap( -1 );
 	fgSizer1->Add( m_SizeXTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-	
+
 	m_TxtSizeCtrlX = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	m_TxtSizeCtrlX->SetMaxLength( 0 ); 
+	m_TxtSizeCtrlX->SetMaxLength( 0 );
 	fgSizer1->Add( m_TxtSizeCtrlX, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-	
+
 	m_SizeYTitle = new wxStaticText( this, wxID_ANY, _("Height"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_SizeYTitle->Wrap( -1 );
 	fgSizer1->Add( m_SizeYTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-	
+
 	m_TxtSizeCtrlY = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	m_TxtSizeCtrlY->SetMaxLength( 0 ); 
+	m_TxtSizeCtrlY->SetMaxLength( 0 );
 	fgSizer1->Add( m_TxtSizeCtrlY, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-	
+
 	m_WidthTitle = new wxStaticText( this, wxID_ANY, _("Thickness"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_WidthTitle->Wrap( -1 );
 	fgSizer1->Add( m_WidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-	
+
 	m_TxtWidthCtlr = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	m_TxtWidthCtlr->SetMaxLength( 0 ); 
+	m_TxtWidthCtlr->SetMaxLength( 0 );
 	fgSizer1->Add( m_TxtWidthCtlr, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-	
+
 	m_PosXTitle = new wxStaticText( this, wxID_ANY, _("Offset X"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_PosXTitle->Wrap( -1 );
 	fgSizer1->Add( m_PosXTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-	
+
 	m_TxtPosCtrlX = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	m_TxtPosCtrlX->SetMaxLength( 0 ); 
+	m_TxtPosCtrlX->SetMaxLength( 0 );
 	fgSizer1->Add( m_TxtPosCtrlX, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-	
+
 	m_PosYTitle = new wxStaticText( this, wxID_ANY, _("Offset Y"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_PosYTitle->Wrap( -1 );
 	fgSizer1->Add( m_PosYTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-	
+
 	m_TxtPosCtrlY = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	m_TxtPosCtrlY->SetMaxLength( 0 ); 
+	m_TxtPosCtrlY->SetMaxLength( 0 );
 	fgSizer1->Add( m_TxtPosCtrlY, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-	
+
 	m_LayerLabel = new wxStaticText( this, wxID_ANY, _("Layer:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_LayerLabel->Wrap( -1 );
 	fgSizer1->Add( m_LayerLabel, 0, wxALL, 5 );
-	
-	m_LayerSelectionCtrl = new PCB_LAYER_BOX_SELECTOR( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); 
+
+	m_LayerSelectionCtrl = new PCB_LAYER_BOX_SELECTOR( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
 	fgSizer1->Add( m_LayerSelectionCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-	
-	
+
+
 	bSizer10->Add( fgSizer1, 1, wxALL|wxEXPAND, 5 );
-	
-	
+
+
 	bSizer9->Add( bSizer10, 0, wxEXPAND, 5 );
-	
+
 	wxBoxSizer* bSizer4;
 	bSizer4 = new wxBoxSizer( wxHORIZONTAL );
-	
+
 	wxString m_StyleChoices[] = { _("Normal"), _("Italic") };
 	int m_StyleNChoices = sizeof( m_StyleChoices ) / sizeof( wxString );
 	m_Style = new wxRadioBox( this, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, m_StyleNChoices, m_StyleChoices, 1, wxRA_SPECIFY_COLS );
 	m_Style->SetSelection( 0 );
 	bSizer4->Add( m_Style, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-	
-	wxString m_OrientChoices[] = { _("Horizontal"), _("Vertical") };
+
+	wxString m_OrientChoices[] = { _("Horizontal"), _("Vertical"), _("Angled") };
 	int m_OrientNChoices = sizeof( m_OrientChoices ) / sizeof( wxString );
 	m_Orient = new wxRadioBox( this, wxID_ANY, _("Orientation"), wxDefaultPosition, wxDefaultSize, m_OrientNChoices, m_OrientChoices, 1, wxRA_SPECIFY_COLS );
 	m_Orient->SetSelection( 0 );
 	bSizer4->Add( m_Orient, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-	
+
 	wxString m_ShowChoices[] = { _("Visible"), _("Invisible") };
 	int m_ShowNChoices = sizeof( m_ShowChoices ) / sizeof( wxString );
 	m_Show = new wxRadioBox( this, wxID_ANY, _("Display"), wxDefaultPosition, wxDefaultSize, m_ShowNChoices, m_ShowChoices, 1, wxRA_SPECIFY_COLS );
 	m_Show->SetSelection( 0 );
 	bSizer4->Add( m_Show, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-	
-	
+
+
 	bSizer9->Add( bSizer4, 0, wxEXPAND, 5 );
-	
-	
+
+
 	bMainSizer->Add( bSizer9, 0, wxALL|wxEXPAND, 5 );
-	
+
 	m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 	bMainSizer->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );
-	
-	
+
+
 	bMainSizer->Add( 0, 0, 1, wxEXPAND, 5 );
-	
+
 	m_sdbSizer1 = new wxStdDialogButtonSizer();
 	m_sdbSizer1OK = new wxButton( this, wxID_OK );
 	m_sdbSizer1->AddButton( m_sdbSizer1OK );
 	m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
 	m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
 	m_sdbSizer1->Realize();
-	
+
 	bMainSizer->Add( m_sdbSizer1, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-	
-	
+
+
 	this->SetSizer( bMainSizer );
 	this->Layout();
 	bMainSizer->Fit( this );
-	
+
 	// Connect Events
 	m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogEditModuleText_base::OnOkClick ), NULL, this );
 }
@@ -153,5 +153,5 @@ DialogEditModuleText_base::~DialogEditModuleText_base()
 {
 	// Disconnect Events
 	m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogEditModuleText_base::OnOkClick ), NULL, this );
-	
+
 }
-- 
2.8.0


Follow ups