Browse Source
All: cleaning code to draw/plot texts (work in progress). Eeschema: italic and bold texts and labels allowed
All: cleaning code to draw/plot texts (work in progress). Eeschema: italic and bold texts and labels allowed
(plot functions not yet updated for bold texts)pull/1/head
23 changed files with 1928 additions and 2397 deletions
-
9CHANGELOG.txt
-
14common/base_struct.cpp
-
35common/common_plot_functions.cpp
-
235common/drawtxt.cpp
-
4eeschema/CMakeLists.txt
-
37eeschema/class_pin.cpp
-
61eeschema/class_text-label.cpp
-
2eeschema/classes_body_items.h
-
219eeschema/dialog_edit_label.cpp
-
119eeschema/dialog_edit_label.h
-
1034eeschema/dialog_edit_label.pjd
-
1eeschema/dialog_edit_label.rc
-
94eeschema/dialog_edit_label_base.cpp
-
602eeschema/dialog_edit_label_base.fbp
-
64eeschema/dialog_edit_label_base.h
-
24eeschema/edit_label.cpp
-
881eeschema/load_one_schematic_file.cpp
-
10eeschema/makefile.include
-
61eeschema/plot.cpp
-
798eeschema/read_from_file_schematic_items_descriptions.cpp
-
3include/base_struct.h
-
4include/common.h
-
14pcbnew/class_track.cpp
@ -1,119 +1,30 @@ |
|||
///////////////////////////////////////////////////////////////////////////// |
|||
// Name: dialog_edit_label.h |
|||
// Purpose: |
|||
// Author: jean-pierre Charras |
|||
// Modified by: |
|||
// Created: 19/02/2006 15:46:26 |
|||
// RCS-ID: |
|||
// Copyright: License GNU |
|||
// Licence: |
|||
// Licence: GPL |
|||
///////////////////////////////////////////////////////////////////////////// |
|||
|
|||
// Generated by DialogBlocks (unregistered), 19/02/2006 15:46:26 |
|||
|
|||
#ifndef _DIALOG_EDIT_LABEL_H_ |
|||
#define _DIALOG_EDIT_LABEL_H_ |
|||
|
|||
#include "dialog_edit_label_base.h" |
|||
|
|||
/*! |
|||
* Includes |
|||
*/ |
|||
|
|||
////@begin includes |
|||
#include "wx/valgen.h" |
|||
////@end includes |
|||
|
|||
/*! |
|||
* Forward declarations |
|||
*/ |
|||
|
|||
////@begin forward declarations |
|||
////@end forward declarations |
|||
|
|||
/*! |
|||
* Control identifiers |
|||
*/ |
|||
|
|||
////@begin control identifiers |
|||
#define ID_DIALOG 10000 |
|||
#define ID_TEXTCTRL 10001 |
|||
#define ID_RADIOBOX 10003 |
|||
#define ID_RADIOBOX1 10004 |
|||
#define ID_TEXTCTRL1 10002 |
|||
#define SYMBOL_WINEDA_LABELPROPERTIESFRAME_STYLE wxDEFAULT_DIALOG_STYLE|MAYBE_RESIZE_BORDER |
|||
#define SYMBOL_WINEDA_LABELPROPERTIESFRAME_TITLE _("Text Editor") |
|||
#define SYMBOL_WINEDA_LABELPROPERTIESFRAME_IDNAME ID_DIALOG |
|||
#define SYMBOL_WINEDA_LABELPROPERTIESFRAME_SIZE wxSize(400, 300) |
|||
#define SYMBOL_WINEDA_LABELPROPERTIESFRAME_POSITION wxDefaultPosition |
|||
////@end control identifiers |
|||
|
|||
/*! |
|||
* Compatibility |
|||
*/ |
|||
|
|||
#ifndef wxCLOSE_BOX |
|||
#define wxCLOSE_BOX 0x1000 |
|||
#endif |
|||
|
|||
/*! |
|||
* WinEDA_LabelPropertiesFrame class declaration |
|||
*/ |
|||
|
|||
class WinEDA_LabelPropertiesFrame: public wxDialog |
|||
class DialogLabelEditor : public DialogLabelEditor_Base |
|||
{ |
|||
DECLARE_DYNAMIC_CLASS( WinEDA_LabelPropertiesFrame ) |
|||
DECLARE_EVENT_TABLE() |
|||
|
|||
public: |
|||
/// Constructors |
|||
WinEDA_LabelPropertiesFrame( ); |
|||
WinEDA_LabelPropertiesFrame( WinEDA_SchematicFrame* parent, |
|||
SCH_TEXT * CurrentText, |
|||
const wxPoint& pos = SYMBOL_WINEDA_LABELPROPERTIESFRAME_POSITION, |
|||
wxWindowID id = SYMBOL_WINEDA_LABELPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_LABELPROPERTIESFRAME_TITLE, const wxSize& size = SYMBOL_WINEDA_LABELPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_LABELPROPERTIESFRAME_STYLE ); |
|||
|
|||
/// Creation |
|||
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_LABELPROPERTIESFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_LABELPROPERTIESFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_LABELPROPERTIESFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_LABELPROPERTIESFRAME_SIZE, long style = SYMBOL_WINEDA_LABELPROPERTIESFRAME_STYLE ); |
|||
|
|||
/// Creates the controls and sizers |
|||
void CreateControls(); |
|||
|
|||
////@begin WinEDA_LabelPropertiesFrame event handler declarations |
|||
|
|||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK |
|||
void OnOkClick( wxCommandEvent& event ); |
|||
|
|||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL |
|||
void OnCancelClick( wxCommandEvent& event ); |
|||
|
|||
////@end WinEDA_LabelPropertiesFrame event handler declarations |
|||
|
|||
////@begin WinEDA_LabelPropertiesFrame member function declarations |
|||
|
|||
/// Retrieves bitmap resources |
|||
wxBitmap GetBitmapResource( const wxString& name ); |
|||
|
|||
/// Retrieves icon resources |
|||
wxIcon GetIconResource( const wxString& name ); |
|||
////@end WinEDA_LabelPropertiesFrame member function declarations |
|||
|
|||
/// Should we show tooltips? |
|||
static bool ShowToolTips(); |
|||
void TextPropertiesAccept(wxCommandEvent& event); |
|||
|
|||
////@begin WinEDA_LabelPropertiesFrame member variables |
|||
wxTextCtrl* m_TextLabel; |
|||
wxRadioBox* m_TextOrient; |
|||
wxRadioBox* m_TextShape; |
|||
wxStaticText* m_SizeTitle; |
|||
wxTextCtrl* m_TextSize; |
|||
wxButton* m_btClose; |
|||
////@end WinEDA_LabelPropertiesFrame member variables |
|||
|
|||
WinEDA_SchematicFrame * m_Parent; |
|||
private: |
|||
WinEDA_SchematicFrame * m_Parent; |
|||
SCH_TEXT * m_CurrentText; |
|||
|
|||
public: |
|||
DialogLabelEditor( WinEDA_SchematicFrame* parent, SCH_TEXT * CurrentText); |
|||
~DialogLabelEditor(){}; |
|||
private: |
|||
void OnInitDialog( wxInitDialogEvent& event ); |
|||
void OnButtonOKClick( wxCommandEvent& event ); |
|||
void OnButtonCANCEL_Click( wxCommandEvent& event ); |
|||
void TextPropertiesAccept( wxCommandEvent& event ); |
|||
}; |
|||
|
|||
#endif |
|||
// _DIALOG_EDIT_LABEL_H_ |
|||
|
|||
#endif // _DIALOG_EDIT_LABEL_H_ |
1034
eeschema/dialog_edit_label.pjd
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1 +0,0 @@ |
|||
#include "wx/msw/wx.rc" |
@ -0,0 +1,94 @@ |
|||
///////////////////////////////////////////////////////////////////////////
|
|||
// C++ code generated with wxFormBuilder (version Apr 16 2008)
|
|||
// http://www.wxformbuilder.org/
|
|||
//
|
|||
// PLEASE DO "NOT" EDIT THIS FILE!
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#include "dialog_edit_label_base.h"
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
DialogLabelEditor_Base::DialogLabelEditor_Base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) |
|||
{ |
|||
this->SetSizeHints( wxDefaultSize, wxDefaultSize ); |
|||
|
|||
wxBoxSizer* bMainSizer; |
|||
bMainSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
|
|||
wxBoxSizer* bSizer2; |
|||
bSizer2 = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_staticText1 = new wxStaticText( this, wxID_ANY, _("Text"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText1->Wrap( -1 ); |
|||
bSizer2->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_TextLabel = new wxTextCtrl( this, wxID_VALUE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer2->Add( m_TextLabel, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); |
|||
|
|||
wxBoxSizer* m_OptionsSizer; |
|||
m_OptionsSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
|
|||
wxString m_TextOrientChoices[] = { _("Right"), _("Up"), _("Left"), _("Down") }; |
|||
int m_TextOrientNChoices = sizeof( m_TextOrientChoices ) / sizeof( wxString ); |
|||
m_TextOrient = new wxRadioBox( this, wxID_ANY, _("wxRadioBox"), wxDefaultPosition, wxDefaultSize, m_TextOrientNChoices, m_TextOrientChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_TextOrient->SetSelection( 0 ); |
|||
m_OptionsSizer->Add( m_TextOrient, 0, wxALL, 5 ); |
|||
|
|||
wxString m_TextStyleChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") }; |
|||
int m_TextStyleNChoices = sizeof( m_TextStyleChoices ) / sizeof( wxString ); |
|||
m_TextStyle = new wxRadioBox( this, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, m_TextStyleNChoices, m_TextStyleChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_TextStyle->SetSelection( 0 ); |
|||
m_OptionsSizer->Add( m_TextStyle, 0, wxALL, 5 ); |
|||
|
|||
wxString m_TextShapeChoices[] = { _("Input"), _("Output"), _("Bidi"), _("TriState"), _("Passive") }; |
|||
int m_TextShapeNChoices = sizeof( m_TextShapeChoices ) / sizeof( wxString ); |
|||
m_TextShape = new wxRadioBox( this, wxID_ANY, _("Glabel Shape:"), wxDefaultPosition, wxDefaultSize, m_TextShapeNChoices, m_TextShapeChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_TextShape->SetSelection( 2 ); |
|||
m_OptionsSizer->Add( m_TextShape, 0, wxALL, 5 ); |
|||
|
|||
bSizer2->Add( m_OptionsSizer, 1, wxEXPAND, 5 ); |
|||
|
|||
bMainSizer->Add( bSizer2, 1, wxEXPAND, 5 ); |
|||
|
|||
wxBoxSizer* bSizer4; |
|||
bSizer4 = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_SizeTitle = new wxStaticText( this, wxID_ANY, _("Size"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_SizeTitle->Wrap( -1 ); |
|||
bSizer4->Add( m_SizeTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_TextSize = new wxTextCtrl( this, wxID_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer4->Add( m_TextSize, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); |
|||
|
|||
|
|||
bSizer4->Add( 8, 8, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 ); |
|||
|
|||
m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_buttonOK->SetForegroundColour( wxColour( 234, 0, 0 ) ); |
|||
|
|||
bSizer4->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); |
|||
|
|||
m_buttonCANCEL = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_buttonCANCEL->SetForegroundColour( wxColour( 0, 0, 187 ) ); |
|||
|
|||
bSizer4->Add( m_buttonCANCEL, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); |
|||
|
|||
bMainSizer->Add( bSizer4, 0, wxEXPAND, 5 ); |
|||
|
|||
this->SetSizer( bMainSizer ); |
|||
this->Layout(); |
|||
|
|||
// Connect Events
|
|||
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DialogLabelEditor_Base::OnInitDialog ) ); |
|||
m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnButtonOKClick ), NULL, this ); |
|||
m_buttonCANCEL->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnButtonCANCEL_Click ), NULL, this ); |
|||
} |
|||
|
|||
DialogLabelEditor_Base::~DialogLabelEditor_Base() |
|||
{ |
|||
// Disconnect Events
|
|||
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DialogLabelEditor_Base::OnInitDialog ) ); |
|||
m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnButtonOKClick ), NULL, this ); |
|||
m_buttonCANCEL->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnButtonCANCEL_Click ), NULL, this ); |
|||
} |
@ -0,0 +1,602 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> |
|||
<wxFormBuilder_Project> |
|||
<FileVersion major="1" minor="9" /> |
|||
<object class="Project" expanded="1"> |
|||
<property name="class_decoration"></property> |
|||
<property name="code_generation">C++</property> |
|||
<property name="disconnect_events">1</property> |
|||
<property name="encoding">UTF-8</property> |
|||
<property name="event_generation">connect</property> |
|||
<property name="file">dialog_edit_label_base</property> |
|||
<property name="first_id">1000</property> |
|||
<property name="help_provider">none</property> |
|||
<property name="internationalize">1</property> |
|||
<property name="name">dialog_edit_label_base</property> |
|||
<property name="namespace"></property> |
|||
<property name="path">.</property> |
|||
<property name="precompiled_header"></property> |
|||
<property name="relative_path">1</property> |
|||
<property name="use_enum">1</property> |
|||
<property name="use_microsoft_bom">0</property> |
|||
<object class="Dialog" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="center"></property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="extra_style"></property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">DialogLabelEditor_Base</property> |
|||
<property name="pos"></property> |
|||
<property name="size">401,222</property> |
|||
<property name="style">wxDEFAULT_DIALOG_STYLE</property> |
|||
<property name="subclass"></property> |
|||
<property name="title">Text Editor</property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnActivate"></event> |
|||
<event name="OnActivateApp"></event> |
|||
<event name="OnChar"></event> |
|||
<event name="OnClose"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnHibernate"></event> |
|||
<event name="OnIconize"></event> |
|||
<event name="OnIdle"></event> |
|||
<event name="OnInitDialog">OnInitDialog</event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
<object class="wxBoxSizer" expanded="1"> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">bMainSizer</property> |
|||
<property name="orient">wxHORIZONTAL</property> |
|||
<property name="permission">none</property> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND</property> |
|||
<property name="proportion">1</property> |
|||
<object class="wxBoxSizer" expanded="1"> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">bSizer2</property> |
|||
<property name="orient">wxVERTICAL</property> |
|||
<property name="permission">none</property> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStaticText" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Text</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_staticText1</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="size"></property> |
|||
<property name="style"></property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<property name="wrap">-1</property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxTextCtrl" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_VALUE</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="maxlength">0</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_TextLabel</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="size"></property> |
|||
<property name="style"></property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="value"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnText"></event> |
|||
<event name="OnTextEnter"></event> |
|||
<event name="OnTextMaxLen"></event> |
|||
<event name="OnTextURL"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND</property> |
|||
<property name="proportion">1</property> |
|||
<object class="wxBoxSizer" expanded="1"> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_OptionsSizer</property> |
|||
<property name="orient">wxHORIZONTAL</property> |
|||
<property name="permission">none</property> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxALL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxRadioBox" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="choices">"Right" "Up" "Left" "Down"</property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">wxRadioBox</property> |
|||
<property name="majorDimension">1</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_TextOrient</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="selection">0</property> |
|||
<property name="size"></property> |
|||
<property name="style">wxRA_SPECIFY_COLS</property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRadioBox"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxALL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxRadioBox" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="choices">"Normal" "Italic" "Bold" "Bold Italic"</property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Style</property> |
|||
<property name="majorDimension">1</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_TextStyle</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="selection">0</property> |
|||
<property name="size"></property> |
|||
<property name="style">wxRA_SPECIFY_COLS</property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRadioBox"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxALL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxRadioBox" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="choices">"Input" "Output" "Bidi" "TriState" "Passive"</property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Glabel Shape:</property> |
|||
<property name="majorDimension">1</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_TextShape</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="selection">2</property> |
|||
<property name="size"></property> |
|||
<property name="style">wxRA_SPECIFY_COLS</property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRadioBox"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxBoxSizer" expanded="1"> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">bSizer4</property> |
|||
<property name="orient">wxVERTICAL</property> |
|||
<property name="permission">none</property> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStaticText" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">Size</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_SizeTitle</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="size"></property> |
|||
<property name="style"></property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<property name="wrap">-1</property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxTextCtrl" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="context_help"></property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg"></property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_SIZE</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="maxlength">0</property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_TextSize</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="size"></property> |
|||
<property name="style"></property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="value"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnText"></event> |
|||
<event name="OnTextEnter"></event> |
|||
<event name="OnTextMaxLen"></event> |
|||
<event name="OnTextURL"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="spacer" expanded="1"> |
|||
<property name="height">8</property> |
|||
<property name="permission">protected</property> |
|||
<property name="width">8</property> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxButton" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="context_help"></property> |
|||
<property name="default">0</property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg">234,0,0</property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_OK</property> |
|||
<property name="label">OK</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_buttonOK</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="size"></property> |
|||
<property name="style"></property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnButtonClick">OnButtonOKClick</event> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxButton" expanded="1"> |
|||
<property name="bg"></property> |
|||
<property name="context_help"></property> |
|||
<property name="default">0</property> |
|||
<property name="enabled">1</property> |
|||
<property name="fg">0,0,187</property> |
|||
<property name="font"></property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_CANCEL</property> |
|||
<property name="label">Cancel</property> |
|||
<property name="maximum_size"></property> |
|||
<property name="minimum_size"></property> |
|||
<property name="name">m_buttonCANCEL</property> |
|||
<property name="permission">protected</property> |
|||
<property name="pos"></property> |
|||
<property name="size"></property> |
|||
<property name="style"></property> |
|||
<property name="subclass"></property> |
|||
<property name="tooltip"></property> |
|||
<property name="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<event name="OnButtonClick">OnButtonCANCEL_Click</event> |
|||
<event name="OnChar"></event> |
|||
<event name="OnEnterWindow"></event> |
|||
<event name="OnEraseBackground"></event> |
|||
<event name="OnKeyDown"></event> |
|||
<event name="OnKeyUp"></event> |
|||
<event name="OnKillFocus"></event> |
|||
<event name="OnLeaveWindow"></event> |
|||
<event name="OnLeftDClick"></event> |
|||
<event name="OnLeftDown"></event> |
|||
<event name="OnLeftUp"></event> |
|||
<event name="OnMiddleDClick"></event> |
|||
<event name="OnMiddleDown"></event> |
|||
<event name="OnMiddleUp"></event> |
|||
<event name="OnMotion"></event> |
|||
<event name="OnMouseEvents"></event> |
|||
<event name="OnMouseWheel"></event> |
|||
<event name="OnPaint"></event> |
|||
<event name="OnRightDClick"></event> |
|||
<event name="OnRightDown"></event> |
|||
<event name="OnRightUp"></event> |
|||
<event name="OnSetFocus"></event> |
|||
<event name="OnSize"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</wxFormBuilder_Project> |
@ -0,0 +1,64 @@ |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
// C++ code generated with wxFormBuilder (version Apr 16 2008) |
|||
// http://www.wxformbuilder.org/ |
|||
// |
|||
// PLEASE DO "NOT" EDIT THIS FILE! |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#ifndef __dialog_edit_label_base__ |
|||
#define __dialog_edit_label_base__ |
|||
|
|||
#include <wx/intl.h> |
|||
|
|||
#include <wx/string.h> |
|||
#include <wx/stattext.h> |
|||
#include <wx/gdicmn.h> |
|||
#include <wx/font.h> |
|||
#include <wx/colour.h> |
|||
#include <wx/settings.h> |
|||
#include <wx/textctrl.h> |
|||
#include <wx/radiobox.h> |
|||
#include <wx/sizer.h> |
|||
#include <wx/button.h> |
|||
#include <wx/dialog.h> |
|||
|
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
/// Class DialogLabelEditor_Base |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
class DialogLabelEditor_Base : public wxDialog |
|||
{ |
|||
private: |
|||
|
|||
protected: |
|||
enum |
|||
{ |
|||
wxID_VALUE = 1000, |
|||
wxID_SIZE, |
|||
}; |
|||
|
|||
wxStaticText* m_staticText1; |
|||
wxTextCtrl* m_TextLabel; |
|||
wxRadioBox* m_TextOrient; |
|||
wxRadioBox* m_TextStyle; |
|||
wxRadioBox* m_TextShape; |
|||
wxStaticText* m_SizeTitle; |
|||
wxTextCtrl* m_TextSize; |
|||
|
|||
wxButton* m_buttonOK; |
|||
wxButton* m_buttonCANCEL; |
|||
|
|||
// Virtual event handlers, overide them in your derived class |
|||
virtual void OnInitDialog( wxInitDialogEvent& event ){ event.Skip(); } |
|||
virtual void OnButtonOKClick( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void OnButtonCANCEL_Click( wxCommandEvent& event ){ event.Skip(); } |
|||
|
|||
|
|||
public: |
|||
DialogLabelEditor_Base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 401,222 ), long style = wxDEFAULT_DIALOG_STYLE ); |
|||
~DialogLabelEditor_Base(); |
|||
|
|||
}; |
|||
|
|||
#endif //__dialog_edit_label_base__ |
881
eeschema/load_one_schematic_file.cpp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,798 @@ |
|||
/* read_from_file_schematic_items_descriptions.cpp */ |
|||
|
|||
/*functions to read schematic items descriptions from file
|
|||
*/ |
|||
#include "fctsys.h"
|
|||
|
|||
#include "common.h"
|
|||
#include "program.h"
|
|||
#include "libcmp.h"
|
|||
#include "general.h"
|
|||
|
|||
#include "protos.h"
|
|||
|
|||
|
|||
SCH_ITEM* ReadTextDescr( FILE * aFile, |
|||
wxString & aMsgDiag, |
|||
char* aLine, |
|||
int aBufsize, |
|||
int* aLineNum, |
|||
int aSchematicFileVersion) |
|||
{ |
|||
/**
|
|||
* Function ReadTextDescr |
|||
* Reads the data structures for a Text (Comment, label, Hlabel and Hlabel |
|||
* from a FILE in "*.brd" format. |
|||
* @param aFile The FILE to read. |
|||
* @param aLine The buffer used to read the first line of description. |
|||
* @param aBufsize The size of aLine. |
|||
* @param aLineNum a pointer to the line count. |
|||
* @return a poiner to the new created obect if success reading else NULL. |
|||
*/ |
|||
SCH_ITEM* Struct = NULL; |
|||
char Name1[256]; |
|||
char Name2[256]; |
|||
char Name3[256]; |
|||
int width = 0, size = 0, orient = 0; |
|||
wxPoint pos; |
|||
|
|||
char* SLine = aLine; |
|||
|
|||
while( (*SLine != ' ' ) && *SLine ) |
|||
SLine++; |
|||
|
|||
// SLine points the start of parameters
|
|||
|
|||
Name1[0] = 0; Name2[0] = 0; Name3[0] = 0; |
|||
int ii = sscanf( SLine, "%s %d %d %d %d %s %s %d", |
|||
Name1, &pos.x, &pos.y, &orient, &size, Name2, Name3, &width ); |
|||
|
|||
if( ii < 4 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "EESchema file text struct error line %d, aborted" ), |
|||
*aLineNum ); |
|||
return NULL; |
|||
} |
|||
|
|||
if( feof( aFile ) || GetLine( aFile, aLine, aLineNum, aBufsize) == NULL ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "EESchema file text struct error line %d (No text), aborted" ), |
|||
*aLineNum ); |
|||
return NULL; |
|||
} |
|||
if( size == 0 ) |
|||
size = DEFAULT_SIZE_TEXT; |
|||
char* text = strtok( aLine, "\n\r" ); |
|||
if( text == NULL ) |
|||
return NULL; |
|||
|
|||
if( Name1[0] == 'L' ) |
|||
{ |
|||
SCH_LABEL* TextStruct = |
|||
new SCH_LABEL( pos, CONV_FROM_UTF8( text ) ); |
|||
|
|||
TextStruct->m_Size.x = TextStruct->m_Size.y = size; |
|||
TextStruct->m_Orient = orient; |
|||
TextStruct->m_Width = width; |
|||
Struct = TextStruct; |
|||
if( stricmp( Name2, "Italic" ) == 0 ) |
|||
TextStruct->m_Italic = 1; |
|||
} |
|||
else if( Name1[0] == 'G' && aSchematicFileVersion > '1' ) |
|||
{ |
|||
SCH_GLOBALLABEL* TextStruct = new SCH_GLOBALLABEL( pos, CONV_FROM_UTF8( text ) ); |
|||
|
|||
Struct = TextStruct; |
|||
TextStruct->m_Size.x = TextStruct->m_Size.y = size; |
|||
TextStruct->m_Orient = orient; |
|||
TextStruct->m_Shape = NET_INPUT; |
|||
TextStruct->m_Width = width; |
|||
|
|||
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 ) |
|||
TextStruct->m_Shape = NET_OUTPUT; |
|||
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 ) |
|||
TextStruct->m_Shape = NET_BIDI; |
|||
if( stricmp( Name2, SheetLabelType[NET_TRISTATE] ) == 0 ) |
|||
TextStruct->m_Shape = NET_TRISTATE; |
|||
if( stricmp( Name2, SheetLabelType[NET_UNSPECIFIED] ) == 0 ) |
|||
TextStruct->m_Shape = NET_UNSPECIFIED; |
|||
if( stricmp( Name3, "Italic" ) == 0 ) |
|||
TextStruct->m_Italic = 1; |
|||
} |
|||
else if( (Name1[0] == 'H') || (Name1[0] == 'G' && aSchematicFileVersion == '1') ) |
|||
{ //in schematic file version 1, glabels were actually hierarchal labels.
|
|||
SCH_HIERLABEL* TextStruct = new SCH_HIERLABEL( pos, CONV_FROM_UTF8( text ) ); |
|||
|
|||
Struct = TextStruct; |
|||
TextStruct->m_Size.x = TextStruct->m_Size.y = size; |
|||
TextStruct->m_Orient = orient; |
|||
TextStruct->m_Shape = NET_INPUT; |
|||
TextStruct->m_Width = width; |
|||
|
|||
if( stricmp( Name2, SheetLabelType[NET_OUTPUT] ) == 0 ) |
|||
TextStruct->m_Shape = NET_OUTPUT; |
|||
if( stricmp( Name2, SheetLabelType[NET_BIDI] ) == 0 ) |
|||
TextStruct->m_Shape = NET_BIDI; |
|||
if( stricmp( Name2, SheetLabelType[NET_TRISTATE] ) == 0 ) |
|||
TextStruct->m_Shape = NET_TRISTATE; |
|||
if( stricmp( Name2, SheetLabelType[NET_UNSPECIFIED] ) == 0 ) |
|||
TextStruct->m_Shape = NET_UNSPECIFIED; |
|||
if( stricmp( Name3, "Italic" ) == 0 ) |
|||
TextStruct->m_Italic = 1; |
|||
} |
|||
else |
|||
{ |
|||
SCH_TEXT* TextStruct = |
|||
new SCH_TEXT( pos, CONV_FROM_UTF8( text ) ); |
|||
|
|||
TextStruct->m_Size.x = TextStruct->m_Size.y = size; |
|||
TextStruct->m_Orient = orient; |
|||
TextStruct->m_Width = width; |
|||
|
|||
if( strnicmp( Name2, "Italic", 6 ) == 0 ) |
|||
TextStruct->m_Italic = 1; |
|||
Struct = TextStruct; |
|||
} |
|||
|
|||
return Struct; |
|||
} |
|||
|
|||
|
|||
/*************************************************************************************/ |
|||
int ReadSheetDescr( wxWindow* frame, |
|||
char* Line, |
|||
FILE* f, |
|||
wxString& aMsgDiag, int* aLineNum, |
|||
BASE_SCREEN* Window ) |
|||
/*************************************************************************************/ |
|||
|
|||
/* Fonction utilisee par LoadEEFile().
|
|||
* Lit les lignes relatives a la description d'une feuille de hierarchie |
|||
*/ |
|||
{ |
|||
int ii, fieldNdx, size; |
|||
char Name1[256], Char1[256], Char2[256]; |
|||
DrawSheetStruct* SheetStruct; |
|||
Hierarchical_PIN_Sheet_Struct* SheetLabelStruct, * OldSheetLabel = NULL; |
|||
int Failed = FALSE; |
|||
char* ptcar; |
|||
|
|||
SheetStruct = new DrawSheetStruct(); |
|||
|
|||
SheetStruct->m_TimeStamp = GetTimeStamp(); |
|||
|
|||
//sheets are added to the EEDrawList like other schematic components.
|
|||
//however, in order to preserve the hierarchy (through m_Parent pointers),
|
|||
//a duplicate of the sheet is added to m_SubSheet array.
|
|||
//must be a duplicate, references just work for a two-layer structure.
|
|||
//this is accomplished through the Sync() function.
|
|||
|
|||
if( Line[0] == '$' ) /* Ligne doit etre "$Sheet" */ |
|||
{ |
|||
*aLineNum++; |
|||
if( fgets( Line, 256 - 1, f ) == 0 ) |
|||
{ |
|||
aMsgDiag.Printf( wxT( "Read File Errror" ) ); |
|||
return TRUE; |
|||
} |
|||
} |
|||
|
|||
/* Next line: must be "S xx yy nn mm" with xx, yy = sheet position
|
|||
* ( upper left corner ) et nn,mm = sheet size */ |
|||
if( (sscanf( &Line[1], "%d %d %d %d", |
|||
&SheetStruct->m_Pos.x, &SheetStruct->m_Pos.y, |
|||
&SheetStruct->m_Size.x, &SheetStruct->m_Size.y ) != 4) |
|||
|| (Line[0] != 'S' ) ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( " ** EESchema file sheet struct error at line %d, aborted\n" ), |
|||
*aLineNum ); |
|||
aMsgDiag << CONV_FROM_UTF8(Line); |
|||
Failed = TRUE; |
|||
return Failed; |
|||
} |
|||
|
|||
/* Read fields */ |
|||
for( ; ; ) /* Analyse des lignes "Fn "texte" .." */ |
|||
{ |
|||
*aLineNum++; |
|||
if( fgets( Line, 256 - 1, f ) == NULL ) |
|||
return TRUE; |
|||
if( Line[0] == 'U' ) |
|||
{ |
|||
sscanf( Line + 1, "%lX", &(SheetStruct->m_TimeStamp) ); |
|||
if( SheetStruct->m_TimeStamp == 0 ) //zero is not unique!
|
|||
SheetStruct->m_TimeStamp = GetTimeStamp(); |
|||
continue; |
|||
} |
|||
if( Line[0] != 'F' ) |
|||
break; |
|||
sscanf( Line + 1, "%d", &fieldNdx ); |
|||
|
|||
/* Lecture du champ :
|
|||
* si fieldNdx >= 2 : Fn "texte" t s posx posy |
|||
* sinon F0 "texte" pour sheetname |
|||
* et F1 "texte" pour filename */ |
|||
|
|||
ptcar = Line; while( *ptcar && (*ptcar != '"') ) |
|||
ptcar++; |
|||
|
|||
if( *ptcar != '"' ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "EESchema file sheet label F%d at line %d, aborted\n" ), |
|||
fieldNdx, *aLineNum ); |
|||
aMsgDiag << CONV_FROM_UTF8(Line); |
|||
return TRUE; |
|||
} |
|||
|
|||
for( ptcar++, ii = 0; ; ii++, ptcar++ ) |
|||
{ |
|||
Name1[ii] = *ptcar; |
|||
if( *ptcar == 0 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "EESchema file sheet field F at line %d, aborted\n" ), *aLineNum ); |
|||
aMsgDiag << CONV_FROM_UTF8(Line); |
|||
return TRUE; |
|||
} |
|||
if( *ptcar == '"' ) |
|||
{ |
|||
Name1[ii] = 0; ptcar++; |
|||
break; |
|||
} |
|||
} |
|||
|
|||
if( ( fieldNdx == 0 ) || ( fieldNdx == 1 ) ) |
|||
{ |
|||
if( sscanf( ptcar, "%d", &size ) != 1 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( |
|||
"EESchema file sheet Label Caract error line %d, aborted\n" ), *aLineNum ); |
|||
aMsgDiag << CONV_FROM_UTF8(Line); |
|||
DisplayError( frame, aMsgDiag ); |
|||
} |
|||
if( size == 0 ) |
|||
size = DEFAULT_SIZE_TEXT; |
|||
if( fieldNdx == 0 ) |
|||
{ |
|||
SheetStruct->m_SheetName = CONV_FROM_UTF8( Name1 ); |
|||
SheetStruct->m_SheetNameSize = size; |
|||
} |
|||
else |
|||
{ |
|||
SheetStruct->SetFileName( CONV_FROM_UTF8( Name1 ) ); |
|||
|
|||
//printf("in ReadSheetDescr : SheetStruct->m_FileName = %s \n", Name1);
|
|||
SheetStruct->m_FileNameSize = size; |
|||
} |
|||
} |
|||
|
|||
if( fieldNdx > 1 ) |
|||
{ |
|||
SheetLabelStruct = new Hierarchical_PIN_Sheet_Struct( SheetStruct, |
|||
wxPoint( 0, |
|||
0 ), |
|||
CONV_FROM_UTF8( Name1 ) ); |
|||
|
|||
if( SheetStruct->m_Label == NULL ) |
|||
OldSheetLabel = SheetStruct->m_Label = SheetLabelStruct; |
|||
else |
|||
OldSheetLabel->SetNext( (EDA_BaseStruct*) SheetLabelStruct ); |
|||
OldSheetLabel = SheetLabelStruct; |
|||
|
|||
/* Lecture des coordonnees */ |
|||
if( sscanf( ptcar, "%s %s %d %d %d", Char1, Char2, |
|||
&SheetLabelStruct->m_Pos.x, &SheetLabelStruct->m_Pos.y, |
|||
&size ) != 5 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( |
|||
"EESchema file Sheet Label Caract error line %d, aborted\n" ), *aLineNum ); |
|||
aMsgDiag << CONV_FROM_UTF8(Line); |
|||
DisplayError( frame, aMsgDiag ); |
|||
continue; |
|||
} |
|||
|
|||
if( size == 0 ) |
|||
size = DEFAULT_SIZE_TEXT; |
|||
SheetLabelStruct->m_Size.x = SheetLabelStruct->m_Size.y = size; |
|||
|
|||
/* Mise a jour des cadrage et type */ |
|||
switch( Char1[0] ) |
|||
{ |
|||
case 'I': |
|||
SheetLabelStruct->m_Shape = NET_INPUT; break; |
|||
|
|||
case 'O': |
|||
SheetLabelStruct->m_Shape = NET_OUTPUT; break; |
|||
|
|||
case 'B': |
|||
SheetLabelStruct->m_Shape = NET_BIDI; break; |
|||
|
|||
case 'T': |
|||
SheetLabelStruct->m_Shape = NET_TRISTATE; break; |
|||
|
|||
case 'U': |
|||
SheetLabelStruct->m_Shape = NET_UNSPECIFIED; break; |
|||
} |
|||
|
|||
if( Char2[0] == 'R' ) |
|||
SheetLabelStruct->m_Edge = 1; |
|||
} |
|||
} |
|||
|
|||
if( strnicmp( "$End", Line, 4 ) != 0 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( " **EESchema file end_sheet struct error at line %d, aborted\n" ), |
|||
*aLineNum ); |
|||
aMsgDiag << CONV_FROM_UTF8(Line); |
|||
Failed = TRUE; |
|||
} |
|||
if( !Failed ) |
|||
{ |
|||
SheetStruct->SetNext( Window->EEDrawList ); |
|||
Window->EEDrawList = SheetStruct; |
|||
SheetStruct->SetParent( Window ); |
|||
} |
|||
return Failed; /* Fin lecture 1 composant */ |
|||
} |
|||
|
|||
|
|||
/******************************************************************/ |
|||
bool ReadSchemaDescr( wxWindow* frame, |
|||
char* Line, |
|||
FILE* f, |
|||
wxString& aMsgDiag, int* aLineNum, |
|||
BASE_SCREEN* Window ) |
|||
/******************************************************************/ |
|||
|
|||
/* Analyse de l'entete du schema ( dims feuille, cartouche..)
|
|||
*/ |
|||
{ |
|||
char Text[256], buf[1024]; |
|||
int ii; |
|||
Ki_PageDescr* wsheet = &g_Sheet_A4; |
|||
static Ki_PageDescr* SheetFormatList[] = { |
|||
&g_Sheet_A4, &g_Sheet_A3, &g_Sheet_A2, &g_Sheet_A1, &g_Sheet_A0, |
|||
&g_Sheet_A, &g_Sheet_B, &g_Sheet_C, &g_Sheet_D, &g_Sheet_E, |
|||
&g_Sheet_user, NULL |
|||
}; |
|||
wxSize PageSize; |
|||
|
|||
sscanf( Line, "%s %s %d %d", Text, Text, &PageSize.x, &PageSize.y ); |
|||
/* Recherche de la descr correspondante: */ |
|||
wxString pagename = CONV_FROM_UTF8( Text ); |
|||
for( ii = 0; SheetFormatList[ii] != NULL; ii++ ) |
|||
{ |
|||
wsheet = SheetFormatList[ii]; |
|||
if( wsheet->m_Name.CmpNoCase( pagename ) == 0 ) |
|||
{ /* Descr found ! */ |
|||
if( wsheet == &g_Sheet_user ) // Get the user page size and make it the default
|
|||
{ |
|||
g_Sheet_user.m_Size = PageSize; |
|||
} |
|||
break; |
|||
} |
|||
} |
|||
|
|||
if( SheetFormatList[ii] == NULL ) |
|||
{ |
|||
/* Erreur ici: descr non trouvee */ |
|||
aMsgDiag.Printf( |
|||
wxT( "EESchema file Dims Caract error line %d, aborted\n" ), *aLineNum ); |
|||
aMsgDiag << CONV_FROM_UTF8(Line); |
|||
DisplayError( frame, aMsgDiag ); |
|||
} |
|||
|
|||
/* Ajuste ecran */ |
|||
Window->m_CurrentSheetDesc = wsheet; |
|||
|
|||
/* Recheche suite et fin de descr */ |
|||
for( ; ; ) |
|||
{ |
|||
if( GetLine( f, Line, aLineNum, 1024 ) == NULL ) |
|||
return TRUE; |
|||
if( strnicmp( Line, "$End", 4 ) == 0 ) |
|||
break; |
|||
|
|||
if( strnicmp( Line, "Sheet", 2 ) == 0 ) |
|||
sscanf( Line + 5, " %d %d", |
|||
&Window->m_ScreenNumber, &Window->m_NumberOfScreen ); |
|||
|
|||
if( strnicmp( Line, "Title", 2 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Title = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
|
|||
if( strnicmp( Line, "Date", 2 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Date = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
|
|||
if( strnicmp( Line, "Rev", 2 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Revision = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
|
|||
if( strnicmp( Line, "Comp", 4 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Company = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
|
|||
if( strnicmp( Line, "Comment1", 8 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Commentaire1 = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
|
|||
if( strnicmp( Line, "Comment2", 8 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Commentaire2 = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
|
|||
if( strnicmp( Line, "Comment3", 8 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Commentaire3 = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
|
|||
if( strnicmp( Line, "Comment4", 8 ) == 0 ) |
|||
{ |
|||
ReadDelimitedText( buf, Line, 256 ); |
|||
Window->m_Commentaire4 = CONV_FROM_UTF8( buf ); |
|||
continue; |
|||
} |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
|
|||
/*************************************************************/ |
|||
int ReadPartDescr( wxWindow* frame, char* Line, FILE* f, |
|||
wxString& aMsgDiag, int* aLineNum, |
|||
BASE_SCREEN* Window ) |
|||
/*************************************************************/ |
|||
|
|||
/* Fonction utilisee par LoadEEFile().
|
|||
* Lit les lignes relatives a la description d'un composant en schema |
|||
*/ |
|||
{ |
|||
int ii; |
|||
char Name1[256], Name2[256], |
|||
Char1[256], Char2[256], Char3[256]; |
|||
SCH_COMPONENT* component; |
|||
int Failed = 0, newfmt = 0; |
|||
char* ptcar; |
|||
wxString fieldName; |
|||
|
|||
|
|||
component = new SCH_COMPONENT(); |
|||
|
|||
component->m_Convert = 1; |
|||
|
|||
if( Line[0] == '$' ) |
|||
{ |
|||
newfmt = 1; |
|||
*aLineNum++; |
|||
if( fgets( Line, 256 - 1, f ) == 0 ) |
|||
return TRUE; |
|||
} |
|||
|
|||
/* Traitement de la 1ere ligne de description */ |
|||
if( sscanf( &Line[1], "%s %s", Name1, Name2 ) != 2 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "EESchema Component descr error at line %d, aborted" ), |
|||
*aLineNum ); |
|||
aMsgDiag << wxT("\n") << CONV_FROM_UTF8(Line); |
|||
Failed = TRUE; |
|||
return Failed; |
|||
} |
|||
|
|||
if( strcmp( Name1, NULL_STRING ) != 0 ) |
|||
{ |
|||
for( ii = 0; ii < (int) strlen( Name1 ); ii++ ) |
|||
if( Name1[ii] == '~' ) |
|||
Name1[ii] = ' '; |
|||
|
|||
component->m_ChipName = CONV_FROM_UTF8( Name1 ); |
|||
if( !newfmt ) |
|||
component->GetField( VALUE )->m_Text = CONV_FROM_UTF8( Name1 ); |
|||
} |
|||
else |
|||
{ |
|||
component->m_ChipName.Empty(); |
|||
component->GetField( VALUE )->m_Text.Empty(); |
|||
component->GetField( VALUE )->m_Orient = TEXT_ORIENT_HORIZ; |
|||
component->GetField( VALUE )->m_Attributs = TEXT_NO_VISIBLE; |
|||
} |
|||
|
|||
if( strcmp( Name2, NULL_STRING ) != 0 ) |
|||
{ |
|||
bool isDigit = false; |
|||
for( ii = 0; ii < (int) strlen( Name2 ); ii++ ) |
|||
{ |
|||
if( Name2[ii] == '~' ) |
|||
Name2[ii] = ' '; |
|||
|
|||
// get RefBase from this, too. store in Name1.
|
|||
if( Name2[ii] >= '0' && Name2[ii] <= '9' ) |
|||
{ |
|||
isDigit = true; |
|||
Name1[ii] = 0; //null-terminate.
|
|||
} |
|||
if( !isDigit ) |
|||
{ |
|||
Name1[ii] = Name2[ii]; |
|||
} |
|||
} |
|||
|
|||
Name1[ii] = 0; //just in case
|
|||
int jj; |
|||
for( jj = 0; jj<ii && Name1[jj] == ' '; jj++ ) |
|||
; |
|||
|
|||
if( jj == ii ) |
|||
{ |
|||
// blank string.
|
|||
component->m_PrefixString = wxT( "U" ); |
|||
} |
|||
else |
|||
{ |
|||
component->m_PrefixString = CONV_FROM_UTF8( &Name1[jj] ); |
|||
|
|||
//printf("prefix: %s\n", CONV_TO_UTF8(component->m_PrefixString));
|
|||
} |
|||
if( !newfmt ) |
|||
component->GetField( REFERENCE )->m_Text = CONV_FROM_UTF8( Name2 ); |
|||
} |
|||
else |
|||
{ |
|||
component->GetField( REFERENCE )->m_Attributs = TEXT_NO_VISIBLE; |
|||
} |
|||
|
|||
/* Traitement des autres lignes de description */ |
|||
|
|||
/* Ces lignes commencent par:
|
|||
* "P " = position |
|||
* "U " = Num Unit, et Conversion |
|||
* "Fn" = Champs ( n = 0.. = numero de champ ) |
|||
* "Ar" = AlternateReference, in the case of multiple sheets |
|||
* referring to one schematic file. |
|||
*/ |
|||
|
|||
/* Lecture des champs */ |
|||
for( ; ; ) |
|||
{ |
|||
*aLineNum++; |
|||
if( fgets( Line, 256 - 1, f ) == NULL ) |
|||
return TRUE; |
|||
|
|||
if( Line[0] == 'U' ) /* Lecture num multi, conversion et time stamp */ |
|||
{ |
|||
sscanf( Line + 1, "%d %d %lX", |
|||
&component->m_Multi, &component->m_Convert, |
|||
&component->m_TimeStamp ); |
|||
} |
|||
else if( Line[0] == 'P' ) |
|||
{ |
|||
sscanf( Line + 1, "%d %d", |
|||
&component->m_Pos.x, &component->m_Pos.y ); |
|||
} |
|||
else if( Line[0] == 'A' && Line[1] == 'R' ) |
|||
{ |
|||
/* format:
|
|||
* AR Path="/9086AF6E/67452AA0" Ref="C99" Part="1" |
|||
* where 9086AF6E is the unique timestamp of the containing sheet |
|||
* and 67452AA0 is the timestamp of this component. |
|||
* C99 is the reference given this path. |
|||
*/ |
|||
int ii; |
|||
ptcar = Line + 2; |
|||
|
|||
//copy the path.
|
|||
ii = ReadDelimitedText( Name1, ptcar, 255 ); |
|||
ptcar += ii + 1; |
|||
wxString path = CONV_FROM_UTF8( Name1 ); |
|||
|
|||
// copy the reference
|
|||
ii = ReadDelimitedText( Name1, ptcar, 255 ); |
|||
ptcar += ii + 1; |
|||
wxString ref = CONV_FROM_UTF8( Name1 ); |
|||
|
|||
// copy the multi, if exists
|
|||
ii = ReadDelimitedText( Name1, ptcar, 255 ); |
|||
if( Name1[0] == 0 ) // Nothing read, put a default value
|
|||
sprintf( Name1, "%d", component->m_Multi ); |
|||
int multi = atoi( Name1 ); |
|||
if( multi < 0 || multi > 25 ) |
|||
multi = 1; |
|||
component->AddHierarchicalReference( path, ref, multi ); |
|||
component->GetField( REFERENCE )->m_Text = ref; |
|||
} |
|||
else if( Line[0] == 'F' ) |
|||
{ |
|||
int fieldNdx; |
|||
|
|||
char FieldUserName[1024]; |
|||
GRTextHorizJustifyType hjustify = GR_TEXT_HJUSTIFY_CENTER; |
|||
GRTextVertJustifyType vjustify = GR_TEXT_VJUSTIFY_CENTER; |
|||
|
|||
FieldUserName[0] = 0; |
|||
|
|||
/* Lecture du champ */ |
|||
ptcar = Line; |
|||
|
|||
while( *ptcar && (*ptcar != '"') ) |
|||
ptcar++; |
|||
|
|||
if( *ptcar != '"' ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "EESchema file lib field F at line %d, aborted" ), |
|||
*aLineNum ); |
|||
return TRUE; |
|||
} |
|||
|
|||
for( ptcar++, ii = 0; ; ii++, ptcar++ ) |
|||
{ |
|||
Name1[ii] = *ptcar; |
|||
if( *ptcar == 0 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "Component field F at line %d, aborted" ), |
|||
*aLineNum ); |
|||
return TRUE; |
|||
} |
|||
|
|||
if( *ptcar == '"' ) |
|||
{ |
|||
Name1[ii] = 0; |
|||
ptcar++; |
|||
break; |
|||
} |
|||
} |
|||
|
|||
fieldNdx = atoi( Line + 2 ); |
|||
|
|||
ReadDelimitedText( FieldUserName, ptcar, sizeof(FieldUserName) ); |
|||
|
|||
if( !FieldUserName[0] ) |
|||
fieldName = ReturnDefaultFieldName( fieldNdx ); |
|||
else |
|||
fieldName = CONV_FROM_UTF8( FieldUserName ); |
|||
|
|||
if( fieldNdx >= component->GetFieldCount() ) |
|||
{ |
|||
// add as many fields as needed so the m_FieldId's are contiguous, no gaps.
|
|||
while( fieldNdx >= component->GetFieldCount() ) |
|||
{ |
|||
int newNdx = component->GetFieldCount(); |
|||
|
|||
SCH_CMP_FIELD f( wxPoint( 0, 0 ), newNdx, component, fieldName ); |
|||
component->AddField( f ); |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
component->GetField( fieldNdx )->m_Name = fieldName; |
|||
} |
|||
|
|||
component->GetField( fieldNdx )->m_Text = CONV_FROM_UTF8( Name1 ); |
|||
|
|||
if( ( ii = sscanf( ptcar, "%s %d %d %d %X %s %s", Char1, |
|||
&component->GetField( fieldNdx )->m_Pos.x, |
|||
&component->GetField( fieldNdx )->m_Pos.y, |
|||
&component->GetField( fieldNdx )->m_Size.x, |
|||
&component->GetField( fieldNdx )->m_Attributs, |
|||
Char2, Char3 ) ) < 4 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "Component Field error line %d, aborted" ), |
|||
*aLineNum ); |
|||
DisplayError( frame, aMsgDiag ); |
|||
continue; |
|||
} |
|||
|
|||
if( (component->GetField( fieldNdx )->m_Size.x == 0 ) || (ii == 4) ) |
|||
component->GetField( fieldNdx )->m_Size.x = DEFAULT_SIZE_TEXT; |
|||
|
|||
component->GetField( fieldNdx )->m_Orient = TEXT_ORIENT_HORIZ; |
|||
component->GetField( fieldNdx )->m_Size.y = component->GetField( fieldNdx )->m_Size.x; |
|||
|
|||
if( Char1[0] == 'V' ) |
|||
component->GetField( fieldNdx )->m_Orient = TEXT_ORIENT_VERT; |
|||
|
|||
if( ii >= 7 ) |
|||
{ |
|||
if( *Char2 == 'L' ) |
|||
hjustify = GR_TEXT_HJUSTIFY_LEFT; |
|||
else if( *Char2 == 'R' ) |
|||
hjustify = GR_TEXT_HJUSTIFY_RIGHT; |
|||
if( *Char3 == 'B' ) |
|||
vjustify = GR_TEXT_VJUSTIFY_BOTTOM; |
|||
else if( *Char3 == 'T' ) |
|||
vjustify = GR_TEXT_VJUSTIFY_TOP; |
|||
|
|||
component->GetField( fieldNdx )->m_HJustify = hjustify; |
|||
component->GetField( fieldNdx )->m_VJustify = vjustify; |
|||
} |
|||
|
|||
if( fieldNdx == REFERENCE ) |
|||
if( component->GetField( fieldNdx )->m_Text[0] == '#' ) |
|||
component->GetField( fieldNdx )->m_Attributs |= TEXT_NO_VISIBLE; |
|||
} |
|||
else |
|||
break; |
|||
} |
|||
|
|||
/* Lecture multi et position du composant */ |
|||
if( sscanf( Line, "%d %d %d", |
|||
&component->m_Multi, |
|||
&component->m_Pos.x, &component->m_Pos.y ) != 3 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "Component unit & pos error at line %d, aborted" ), |
|||
*aLineNum ); |
|||
Failed = TRUE; |
|||
return Failed; |
|||
} |
|||
|
|||
/* Lecture de la matrice de miroir / rotation */ |
|||
*aLineNum++; |
|||
if( (fgets( Line, 256 - 1, f ) == NULL) |
|||
|| (sscanf( Line, "%d %d %d %d", |
|||
&component->m_Transform[0][0], |
|||
&component->m_Transform[0][1], |
|||
&component->m_Transform[1][0], |
|||
&component->m_Transform[1][1] ) != 4) ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "Component orient error at line %d, aborted" ), |
|||
*aLineNum ); |
|||
Failed = TRUE; |
|||
return Failed; |
|||
} |
|||
|
|||
if( newfmt ) |
|||
{ |
|||
*aLineNum++; |
|||
if( fgets( Line, 256 - 1, f ) == NULL ) |
|||
return TRUE; |
|||
if( strnicmp( "$End", Line, 4 ) != 0 ) |
|||
{ |
|||
aMsgDiag.Printf( |
|||
wxT( "Component End expected at line %d, aborted" ), |
|||
*aLineNum ); |
|||
Failed = TRUE; |
|||
} |
|||
} |
|||
|
|||
if( !Failed ) |
|||
{ |
|||
component->SetNext( Window->EEDrawList ); |
|||
Window->EEDrawList = component; |
|||
component->SetParent( Window ); |
|||
} |
|||
|
|||
return Failed; /* Fin lecture 1 composant */ |
|||
} |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue