remove unused files. some translations.

cvpcb:	set flag wxFRAME_FLOAT_ON_PARENT when create the footprint 3D frame and the display frame
This commit is contained in:
CHARRAS 2007-10-27 12:24:09 +00:00
parent a95237d83a
commit ec02baab5f
38 changed files with 462 additions and 5798 deletions

View File

@ -38,9 +38,9 @@ END_EVENT_TABLE()
/*******************************************************************/
WinEDA3D_DrawFrame::WinEDA3D_DrawFrame(WinEDA_BasePcbFrame * parent,
WinEDA_App *app_parent, const wxString& title ):
WinEDA_App *app_parent, const wxString& title, long style ):
wxFrame(parent, DISPLAY3D_FRAME, title,
wxPoint(-1,-1), wxSize(-1,-1) )
wxPoint(-1,-1), wxSize(-1,-1), style )
/*******************************************************************/
{
m_FrameName = wxT("Frame3D");

View File

@ -29,6 +29,9 @@
#include "pcbstruct.h"
#include "3d_struct.h"
#define KICAD_DEFAULT_3D_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE|wxWANTS_CHARS
#define LIB3D_PATH wxT("packages3d/")
class Pcb3D_GLCanvas;
@ -125,10 +128,9 @@ private:
wxString m_FrameName; // name used for writting and reading setup
// It is "Frame3D"
public:
WinEDA3D_DrawFrame(WinEDA_BasePcbFrame * parent, WinEDA_App *app_parent,
const wxString& title );
const wxString& title, long style = KICAD_DEFAULT_3D_DRAWFRAME_STYLE );
void Exit3DFrame(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent & Event);

View File

@ -4,6 +4,19 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.
2007-Oct-27 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ all:
remove unused files.
some translations
+cvpcb:
set flag wxFRAME_FLOAT_ON_PARENT when create the footprint 3D frame and the
display frame
minor other changes
2007-Oct-26 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+ pcbnew:

View File

@ -18,9 +18,8 @@
WinEDA_BasicFrame::WinEDA_BasicFrame( wxWindow * father, int idtype,
WinEDA_App *parent, const wxString & title,
const wxPoint& pos, const wxSize& size):
wxFrame(father, -1, title, pos, size,
wxDEFAULT_FRAME_STYLE|wxWANTS_CHARS)
const wxPoint& pos, const wxSize& size, long style):
wxFrame(father, -1, title, pos, size, style )
{
wxSize minsize;

View File

@ -3,13 +3,13 @@
// Purpose:
// Author: jean-pierre Charras
// Modified by:
// Created: 05/02/2006 11:05:20
// Created: 27/10/2007 12:48:35
// RCS-ID:
// Copyright: License GNU
// Licence:
/////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 05/02/2006 11:05:20
// Generated by DialogBlocks (unregistered), 27/10/2007 12:48:35
#ifndef _SVG_PRINT_H_
#define _SVG_PRINT_H_
@ -41,11 +41,6 @@ class wxSpinCtrl;
////@begin control identifiers
#define ID_DIALOG 10000
#define SYMBOL_WINEDA_PRINTSVGFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxFRAME_FLOAT_ON_PARENT
#define SYMBOL_WINEDA_PRINTSVGFRAME_TITLE _("Create SVG file")
#define SYMBOL_WINEDA_PRINTSVGFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_PRINTSVGFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_PRINTSVGFRAME_POSITION wxDefaultPosition
#define ID_SPINCTRL 10003
#define ID_RADIOBOX_SETPRINTMODE 10007
#define ID_CHECKBOX 10004
@ -53,15 +48,13 @@ class wxSpinCtrl;
#define ID_PRINT_EXECUTE 10002
#define ID_TEXTCTRL 10001
#define ID_TEXTCTRL1 10006
#define SYMBOL_WINEDA_PRINTSVGFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|wxFRAME_FLOAT_ON_PARENT|MAYBE_RESIZE_BORDER
#define SYMBOL_WINEDA_PRINTSVGFRAME_TITLE _("Create SVG file")
#define SYMBOL_WINEDA_PRINTSVGFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_PRINTSVGFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_PRINTSVGFRAME_POSITION wxDefaultPosition
////@end control identifiers
/*!
* Compatibility
*/
#ifndef wxCLOSE_BOX
#define wxCLOSE_BOX 0x1000
#endif
/*!
* WinEDA_PrintSVGFrame class declaration
@ -75,21 +68,21 @@ class WinEDA_PrintSVGFrame: public wxDialog
public:
/// Constructors
WinEDA_PrintSVGFrame();
WinEDA_PrintSVGFrame( WinEDA_DrawFrame* parent,
wxWindowID id = SYMBOL_WINEDA_PRINTSVGFRAME_IDNAME,
const wxString& caption = SYMBOL_WINEDA_PRINTSVGFRAME_TITLE,
const wxPoint& pos = SYMBOL_WINEDA_PRINTSVGFRAME_POSITION,
const wxSize& size = SYMBOL_WINEDA_PRINTSVGFRAME_SIZE,
long style = SYMBOL_WINEDA_PRINTSVGFRAME_STYLE );
WinEDA_PrintSVGFrame( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_PRINTSVGFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_PRINTSVGFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_PRINTSVGFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_PRINTSVGFRAME_SIZE, long style = SYMBOL_WINEDA_PRINTSVGFRAME_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_PRINTSVGFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_PRINTSVGFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_PRINTSVGFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_PRINTSVGFRAME_SIZE, long style = SYMBOL_WINEDA_PRINTSVGFRAME_STYLE );
/// Destructor
~WinEDA_PrintSVGFrame();
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
////@begin WinEDA_PrintSVGFrame event handler declarations
/// wxEVT_CLOSE_WINDOW event handler for ID_DIALOG
void OnCloseWindow( wxCloseEvent& event );
@ -108,7 +101,6 @@ public:
////@end WinEDA_PrintSVGFrame event handler declarations
////@begin WinEDA_PrintSVGFrame member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
@ -119,11 +111,6 @@ public:
/// Should we show tooltips?
static bool ShowToolTips();
void PrintSVGDoc(wxCommandEvent& event);
bool DrawPage(const wxString & FullFileName);
void SetPenWidth(wxSpinEvent& event);
wxString ReturnFullFileName();
////@begin WinEDA_PrintSVGFrame member variables
wxSpinCtrl* m_ButtPenWidth;
wxRadioBox* m_ModeColorOption;
@ -132,10 +119,6 @@ public:
wxTextCtrl* m_FileNameCtrl;
wxTextCtrl* m_MessagesBox;
////@end WinEDA_PrintSVGFrame member variables
WinEDA_DrawFrame * m_Parent;
int m_PrintMaskLayer;
int m_ImageXSize_mm;
};
#endif

View File

@ -1,19 +0,0 @@
/**********************************************************/
/* Routines d'affichage de parametres et caracteristiques */
/**********************************************************/
/* Fichier AFFICHE.CC */
#include "fctsys.h"
#include "wxstruct.h"
#include "menu.h"
#include "pcbnew.h"
#include "cvpcb.h"
#include "3d_struct.h"
#include "protos.h"

View File

@ -21,8 +21,8 @@
/*******************************************************/
/* Constructeur de WinEDA_CvpcbFrame: la fenetre generale */
/*******************************************************/
WinEDA_CvpcbFrame::WinEDA_CvpcbFrame(WinEDA_App *parent, const wxString & title ):
WinEDA_BasicFrame(NULL, CVPCB_FRAME, parent, title, wxDefaultPosition, wxDefaultSize )
WinEDA_CvpcbFrame::WinEDA_CvpcbFrame(WinEDA_App *parent, const wxString & title, long style ):
WinEDA_BasicFrame(NULL, CVPCB_FRAME, parent, title, wxDefaultPosition, wxDefaultSize, style )
{
m_FrameName = wxT("CvpcbFrame");
m_ListCmp = NULL;

View File

@ -19,8 +19,7 @@
#define FILTERFOOTPRINTKEY "FilterFootprint"
enum TypeOfStruct
{
enum TypeOfStruct {
STRUCT_NOT_INIT,
STRUCT_COMPONENT,
STRUCT_PIN,
@ -58,7 +57,7 @@ public:
wxString m_Module; /* Nom du module (Package) corresp */
wxString m_Repere; /* utilise selon formats de netliste */
wxArrayString m_FootprintFilter; /* List of allowed footprints (wildcart allowed
if void: no filtering */
* if void: no filtering */
STORECMP();
~STORECMP();
@ -116,8 +115,8 @@ eda_global wxArrayString g_ListName_Equ; // list of .equ files to load
eda_global int g_FlagEESchema;
eda_global int Rjustify; /* flag pout troncature des noms de Net:
= 0: debut de chaine conservee (->ORCADPCB2)
= 1: fin de chaine conservee (->VIEWLOGIC) */
* = 0: debut de chaine conservee (->ORCADPCB2)
* = 1: fin de chaine conservee (->VIEWLOGIC) */
eda_global int selection_type; /* 0 pour sel par U??, 1 pour sel par ref ORCADPCB */
eda_global int modified; /* Flag != 0 si modif attribution des modules */

View File

@ -39,7 +39,8 @@ private:
// Constructor and destructor
public:
WinEDA_CvpcbFrame(WinEDA_App * parent, const wxString & title);
WinEDA_CvpcbFrame(WinEDA_App * parent, const wxString & title,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE);
~WinEDA_CvpcbFrame();
void OnLeftClick(wxListEvent & event);
@ -180,7 +181,8 @@ public:
public:
WinEDA_DisplayFrame( wxWindow * father, WinEDA_App *parent,
const wxString & title,
const wxPoint& pos, const wxSize& size);
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE);
~WinEDA_DisplayFrame();
@ -194,6 +196,7 @@ public:
void OnLeftDClick(wxDC * DC, const wxPoint& MousePos);
bool OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu);
void SetToolbars();
void GeneralControle( wxDC* DC, wxPoint Mouse );
void InstallOptionsDisplay(wxCommandEvent& event);
MODULE * Get_Module(const wxString & CmpName);

View File

@ -96,12 +96,14 @@ bool KiConfigCvpcbFrame::Create( wxWindow* parent, wxWindowID id, const wxString
////@end KiConfigCvpcbFrame member initialisation
////@begin KiConfigCvpcbFrame creation
SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS);
SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls();
GetSizer()->Fit(this);
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end KiConfigCvpcbFrame creation
return true;
@ -116,7 +118,7 @@ void KiConfigCvpcbFrame::CreateControls()
SetFont(*g_DialogFont);
////@begin KiConfigCvpcbFrame content construction
// Generated by DialogBlocks, 28/02/2006 16:11:39 (unregistered)
// Generated by DialogBlocks, 27/10/2007 10:35:43 (unregistered)
KiConfigCvpcbFrame* itemDialog1 = this;
@ -128,7 +130,7 @@ void KiConfigCvpcbFrame::CreateControls()
wxButton* itemButton4 = new wxButton( itemDialog1, SAVE_CFG, _("Save Cfg"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton4->SetForegroundColour(wxColour(198, 0, 0));
itemBoxSizer3->Add(itemButton4, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
itemBoxSizer3->Add(itemButton4, 0, wxGROW|wxALL, 5);
wxButton* itemButton5 = new wxButton( itemDialog1, ID_READ_OLDCFG, _("Read Cfg"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton5->SetForegroundColour(wxColour(0, 0, 255));
@ -136,14 +138,14 @@ void KiConfigCvpcbFrame::CreateControls()
wxButton* itemButton6 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton6->SetForegroundColour(wxColour(0, 128, 0));
itemBoxSizer3->Add(itemButton6, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer3->Add(itemButton6, 0, wxGROW|wxALL, 5);
wxString m_NetFormatBoxStrings[] = {
_("&PcbNew"),
_("&ViewLogic"),
_("View &Net + Pkg")
};
m_NetFormatBox = new wxRadioBox( itemDialog1, FORMAT_NETLIST, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 3, m_NetFormatBoxStrings, 1, wxRA_SPECIFY_COLS );
wxArrayString m_NetFormatBoxStrings;
m_NetFormatBoxStrings.Add(_("&PcbNew"));
m_NetFormatBoxStrings.Add(_("&ViewLogic"));
m_NetFormatBoxStrings.Add(_("View &Net + Pkg"));
m_NetFormatBox = new wxRadioBox( itemDialog1, FORMAT_NETLIST, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, m_NetFormatBoxStrings, 1, wxRA_SPECIFY_COLS );
m_NetFormatBox->SetSelection(0);
itemBoxSizer3->Add(m_NetFormatBox, 0, wxGROW|wxALL, 5);
wxStaticBox* itemStaticBoxSizer8Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Files ext:"));
@ -154,71 +156,71 @@ void KiConfigCvpcbFrame::CreateControls()
itemBoxSizer2->Add(m_RightBoxSizer, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxHORIZONTAL);
m_RightBoxSizer->Add(itemBoxSizer10, 0, wxALIGN_CENTER_HORIZONTAL, 5);
m_RightBoxSizer->Add(itemBoxSizer10, 1, wxALIGN_CENTER_HORIZONTAL, 5);
wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer10->Add(itemBoxSizer11, 0, wxGROW|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer11->Add(itemBoxSizer12, 0, wxALIGN_CENTER_HORIZONTAL, 5);
itemBoxSizer11->Add(itemBoxSizer12, 1, wxALIGN_CENTER_HORIZONTAL, 5);
wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer12->Add(itemBoxSizer13, 0, wxALIGN_CENTER_HORIZONTAL, 5);
itemBoxSizer12->Add(itemBoxSizer13, 0, wxGROW, 5);
wxButton* itemButton14 = new wxButton( itemDialog1, DEL_LIB, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton14 = new wxButton( itemDialog1, DEL_LIB, _("Del"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton14->SetForegroundColour(wxColour(191, 0, 0));
itemBoxSizer13->Add(itemButton14, 0, wxGROW|wxLEFT|wxTOP|wxBOTTOM, 5);
wxButton* itemButton15 = new wxButton( itemDialog1, ADD_LIB, _("Add below"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton15 = new wxButton( itemDialog1, ADD_LIB, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton15->SetForegroundColour(wxColour(0, 128, 0));
itemBoxSizer13->Add(itemButton15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxButton* itemButton16 = new wxButton( itemDialog1, INSERT_LIB, _("Add above"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton16 = new wxButton( itemDialog1, INSERT_LIB, _("Ins"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton16->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer13->Add(itemButton16, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer12->Add(itemBoxSizer17, 0, wxGROW|wxTOP, 5);
itemBoxSizer12->Add(itemBoxSizer17, 1, wxGROW|wxTOP, 5);
wxStaticText* itemStaticText18 = new wxStaticText( itemDialog1, wxID_STATIC, _("Libraries"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText18->SetForegroundColour(wxColour(204, 0, 0));
itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxString* m_ListLibrStrings = NULL;
m_ListLibr = new wxListBox( itemDialog1, ID_LISTBOX, wxDefaultPosition, wxSize(-1, 200), 0, m_ListLibrStrings, wxLB_SINGLE );
itemBoxSizer17->Add(m_ListLibr, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxArrayString m_ListLibrStrings;
m_ListLibr = new wxListBox( itemDialog1, ID_LISTBOX, wxDefaultPosition, wxSize(-1, 200), m_ListLibrStrings, wxLB_SINGLE );
itemBoxSizer17->Add(m_ListLibr, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer10->Add(itemBoxSizer20, 0, wxGROW|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer21 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer20->Add(itemBoxSizer21, 0, wxALIGN_CENTER_HORIZONTAL, 5);
itemBoxSizer20->Add(itemBoxSizer21, 1, wxALIGN_CENTER_HORIZONTAL, 5);
wxBoxSizer* itemBoxSizer22 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer21->Add(itemBoxSizer22, 0, wxALIGN_CENTER_HORIZONTAL, 5);
itemBoxSizer21->Add(itemBoxSizer22, 0, wxGROW, 5);
wxButton* itemButton23 = new wxButton( itemDialog1, DEL_EQU, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton23 = new wxButton( itemDialog1, DEL_EQU, _("Del"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton23->SetForegroundColour(wxColour(196, 0, 0));
itemBoxSizer22->Add(itemButton23, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxButton* itemButton24 = new wxButton( itemDialog1, ADD_EQU, _("Add below"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton24 = new wxButton( itemDialog1, ADD_EQU, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton24->SetForegroundColour(wxColour(0, 128, 0));
itemBoxSizer22->Add(itemButton24, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxButton* itemButton25 = new wxButton( itemDialog1, INSERT_EQU, _("Add above"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton25 = new wxButton( itemDialog1, INSERT_EQU, _("Ins"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton25->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer22->Add(itemButton25, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer21->Add(itemBoxSizer26, 0, wxGROW|wxTOP, 5);
itemBoxSizer21->Add(itemBoxSizer26, 1, wxGROW|wxTOP, 5);
wxStaticText* itemStaticText27 = new wxStaticText( itemDialog1, wxID_STATIC, _("Equiv"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText27->SetForegroundColour(wxColour(204, 0, 0));
itemBoxSizer26->Add(itemStaticText27, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxString* m_ListEquivStrings = NULL;
m_ListEquiv = new wxListBox( itemDialog1, ID_LISTBOX1, wxDefaultPosition, wxSize(-1, 200), 0, m_ListEquivStrings, wxLB_SINGLE );
itemBoxSizer26->Add(m_ListEquiv, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxArrayString m_ListEquivStrings;
m_ListEquiv = new wxListBox( itemDialog1, ID_LISTBOX1, wxDefaultPosition, wxSize(-1, 200), m_ListEquivStrings, wxLB_SINGLE );
itemBoxSizer26->Add(m_ListEquiv, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
m_FileExtBoxSizerH = new wxBoxSizer(wxHORIZONTAL);
m_RightBoxSizer->Add(m_FileExtBoxSizerH, 0, wxGROW, 5);

View File

@ -35,11 +35,6 @@ class wxBoxSizer;
////@begin control identifiers
#define ID_DIALOG 10000
#define SYMBOL_KICONFIGCVPCBFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER
#define SYMBOL_KICONFIGCVPCBFRAME_TITLE _("Dialog")
#define SYMBOL_KICONFIGCVPCBFRAME_IDNAME ID_DIALOG
#define SYMBOL_KICONFIGCVPCBFRAME_SIZE wxSize(400, 300)
#define SYMBOL_KICONFIGCVPCBFRAME_POSITION wxDefaultPosition
#define SAVE_CFG 10001
#define ID_READ_OLDCFG 10002
#define FORMAT_NETLIST 10003
@ -51,6 +46,11 @@ class wxBoxSizer;
#define ADD_EQU 10008
#define INSERT_EQU 10009
#define ID_LISTBOX1 10011
#define SYMBOL_KICONFIGCVPCBFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_KICONFIGCVPCBFRAME_TITLE _("Cvpcb Configuration")
#define SYMBOL_KICONFIGCVPCBFRAME_IDNAME ID_DIALOG
#define SYMBOL_KICONFIGCVPCBFRAME_SIZE wxSize(400, 300)
#define SYMBOL_KICONFIGCVPCBFRAME_POSITION wxDefaultPosition
////@end control identifiers
/*!

View File

@ -221,7 +221,7 @@
<string name="proxy-Implementation filename">"dialog_cvpcb_config.cpp"</string>
<string name="proxy-Header filename">"dialog_cvpcb_config.h"</string>
<string name="proxy-XRC filename">""</string>
<string name="proxy-Title">"Dialog"</string>
<string name="proxy-Title">"Cvpcb Configuration"</string>
<bool name="proxy-Centre">1</bool>
<string name="proxy-Icon">""</string>
<bool name="proxy-Dialog units">0</bool>
@ -360,7 +360,7 @@
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
@ -477,7 +477,7 @@
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">0</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
@ -620,7 +620,7 @@
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">0</bool>
<bool name="proxy-wxRIGHT">0</bool>
@ -670,7 +670,7 @@
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">0</bool>
<bool name="proxy-wxRIGHT">0</bool>
@ -693,7 +693,7 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
@ -898,7 +898,7 @@
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">0</bool>
<bool name="proxy-wxRIGHT">0</bool>
@ -1027,7 +1027,7 @@
<long name="proxy-Height">200</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -1082,7 +1082,7 @@
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">0</bool>
<bool name="proxy-wxRIGHT">0</bool>
@ -1105,7 +1105,7 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
@ -1310,7 +1310,7 @@
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">0</bool>
<bool name="proxy-wxRIGHT">0</bool>
@ -1439,7 +1439,7 @@
<long name="proxy-Height">200</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>

View File

@ -133,7 +133,7 @@ void WinEDA_FootprintDisplayOptionsFrame::CreateControls()
SetFont(*g_DialogFont);
////@begin WinEDA_FootprintDisplayOptionsFrame content construction
// Generated by DialogBlocks, 25/10/2007 10:39:07 (unregistered)
// Generated by DialogBlocks, 27/10/2007 09:57:04 (unregistered)
WinEDA_FootprintDisplayOptionsFrame* itemDialog1 = this;
@ -149,7 +149,7 @@ void WinEDA_FootprintDisplayOptionsFrame::CreateControls()
m_EdgesDisplayOptionStrings.Add(_("&Sketch"));
m_EdgesDisplayOption = new wxRadioBox( itemDialog1, EDGE_SELECT, _("Edges:"), wxDefaultPosition, wxDefaultSize, m_EdgesDisplayOptionStrings, 1, wxRA_SPECIFY_COLS );
m_EdgesDisplayOption->SetSelection(0);
MainBoxSizer->Add(m_EdgesDisplayOption, 1, wxALIGN_TOP|wxALL, 5);
MainBoxSizer->Add(m_EdgesDisplayOption, 0, wxALIGN_TOP|wxALL, 5);
wxArrayString m_TextDisplayOptionStrings;
m_TextDisplayOptionStrings.Add(_("&Line"));
@ -157,7 +157,7 @@ void WinEDA_FootprintDisplayOptionsFrame::CreateControls()
m_TextDisplayOptionStrings.Add(_("&Sketch"));
m_TextDisplayOption = new wxRadioBox( itemDialog1, TEXT_SELECT, _("Texts:"), wxDefaultPosition, wxDefaultSize, m_TextDisplayOptionStrings, 1, wxRA_SPECIFY_COLS );
m_TextDisplayOption->SetSelection(0);
MainBoxSizer->Add(m_TextDisplayOption, 1, wxALIGN_TOP|wxALL, 5);
MainBoxSizer->Add(m_TextDisplayOption, 0, wxALIGN_TOP|wxALL, 5);
ColumnBoxSizer = new wxBoxSizer(wxVERTICAL);
MainBoxSizer->Add(ColumnBoxSizer, 1, wxALIGN_TOP|wxLEFT|wxRIGHT|wxTOP, 5);
@ -168,14 +168,14 @@ void WinEDA_FootprintDisplayOptionsFrame::CreateControls()
m_IsShowPadNum = new wxCheckBox( itemDialog1, PADNUM_OPT, _("Display Pad &Num"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
m_IsShowPadNum->SetValue(false);
if (WinEDA_FootprintDisplayOptionsFrame::ShowToolTips())
if (ShowToolTips())
m_IsShowPadNum->SetToolTip(_("Display pad number"));
ColumnBoxSizer->Add(m_IsShowPadNum, 1, wxGROW|wxALL, 5);
ColumnBoxSizer->Add(5, 5, 0, wxGROW|wxTOP, 5);
wxButton* itemButton10 = new wxButton( itemDialog1, ID_SAVE_CONFIG, _("Save Cfg"), wxDefaultPosition, wxDefaultSize, 0 );
ColumnBoxSizer->Add(itemButton10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
ColumnBoxSizer->Add(itemButton10, 0, wxALIGN_LEFT|wxALL, 5);
wxStaticLine* itemStaticLine11 = new wxStaticLine( itemDialog1, ID_STATICLINE1, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
OuterBoxSizer->Add(itemStaticLine11, 0, wxGROW|wxALL, 5);

View File

@ -10,10 +10,8 @@
<bool name="convert_images_to_xpm">0</bool>
<bool name="inline_images">0</bool>
<bool name="generate_cpp_for_xrc">0</bool>
<long name="working_mode">1</long>
<bool name="use_help_text_for_tooltips">1</bool>
<bool name="translate_strings">1</bool>
<bool name="make_unicode_strings">1</bool>
<bool name="extract_strings">0</bool>
<string name="user_name">"jean-pierre Charras"</string>
<string name="copyright_string">"License GNU"</string>
@ -215,7 +213,6 @@
<bool name="use-id-suffix">0</bool>
<string name="id-suffix">""</string>
<long name="use-xrc">0</long>
<long name="working-mode">0</long>
<string name="proxy-Id name">"ID_DIALOG"</string>
<long name="proxy-Id value">10000</long>
<string name="proxy-Class">"WinEDA_FootprintDisplayOptionsFrame"</string>
@ -236,13 +233,6 @@
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Texture">""</string>
<string name="proxy-Texture style">"Tiled"</string>
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">1</bool>
<bool name="proxy-wxCAPTION">0</bool>
<bool name="proxy-wxRESIZE_BORDER">0</bool>
@ -353,11 +343,6 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">"DisplayOpt.DisplayModEdge"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
@ -370,7 +355,7 @@
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Top"</string>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -416,11 +401,6 @@
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">"DisplayOpt.DisplayModText"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxRA_SPECIFY_ROWS">0</bool>
<bool name="proxy-wxRA_SPECIFY_COLS">1</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
@ -433,7 +413,7 @@
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Top"</string>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -496,11 +476,6 @@
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">"DisplayOpt.DisplayPadFill"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
@ -559,11 +534,6 @@
<string name="proxy-Tooltip text">"Display pad number"</string>
<string name="proxy-Data variable">"DisplayOpt.DisplayPadNum"</string>
<string name="proxy-Data validator">"wxGenericValidator(&amp; %VARIABLE%)"</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
@ -647,13 +617,6 @@
<bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
@ -681,7 +644,7 @@
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">0</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
@ -794,13 +757,6 @@
<bool name="proxy-Default">1</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"FF0000"</string>
<string name="proxy-Font">""</string>
@ -860,13 +816,6 @@
<bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">"0000FF"</string>
<string name="proxy-Font">""</string>
@ -926,13 +875,6 @@
<bool name="proxy-Default">0</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>

View File

@ -29,21 +29,26 @@ EVT_TOOL( ID_CVPCB_SHOW3D_FRAME, WinEDA_BasePcbFrame::Show3D_Frame )
END_EVENT_TABLE()
/*********************************************************************/
/* Constructeur de WinEDA_DisplayFrame: la fenetre de visu du composant */
/*********************************************************************/
/***************************************************************************/
/* WinEDA_DisplayFrame: the frame to display the current focused footprint */
/***************************************************************************/
WinEDA_DisplayFrame::WinEDA_DisplayFrame( wxWindow* father, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size ) :
WinEDA_BasePcbFrame( father, parent, CVPCB_DISPLAY_FRAME, title, pos, size )
const wxPoint& pos, const wxSize& size, long style ) :
WinEDA_BasePcbFrame( father, parent, CVPCB_DISPLAY_FRAME, title, pos, size, style )
{
m_FrameName = wxT( "CmpFrame" );
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines
m_Draw_Grid = TRUE; // TRUE pour avoir la axes dessinee
m_Draw_Sheet_Ref = FALSE; // TRUE pour avoir le cartouche dessiné
m_Draw_Axis = TRUE; // TRUE if we want the axis
m_Draw_Grid = TRUE; // TRUE if we want the grid
m_Draw_Sheet_Ref = FALSE; // TRUE if we want the sheet references
SetIcon( wxIcon( wxT( "icon_cvpcb" ) ) ); // Give an icon
// Give an icon
#ifdef __WINDOWS__
SetIcon( wxICON( a_icon_cvpcb ) );
#else
SetIcon( wxICON( icon_cvpcb ) );
#endif
SetTitle( title );
m_Pcb = new BOARD( NULL, this );
@ -58,12 +63,11 @@ WinEDA_DisplayFrame::WinEDA_DisplayFrame( wxWindow* father, WinEDA_App* parent,
}
/*****************************************/
/* Fonctions de base de WinEDA_DisplayFrame */
/*****************************************/
// Destructeur
/******************************************/
WinEDA_DisplayFrame::~WinEDA_DisplayFrame()
/******************************************/
// Destructor
{
delete m_CurrentScreen;
@ -77,7 +81,8 @@ WinEDA_DisplayFrame::~WinEDA_DisplayFrame()
void WinEDA_DisplayFrame::OnCloseWindow( wxCloseEvent& event )
/************************************************************/
/* Fermeture par icone ou systeme
/* Called when the frame is closed
* Save current settings (frame position and size
*/
{
wxPoint pos;
@ -167,7 +172,7 @@ bool WinEDA_DisplayFrame::OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu
/****************************************************************/
void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
void WinEDA_DisplayFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
/****************************************************************/
{
wxSize delta;
@ -216,28 +221,28 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
m_CurrentScreen->m_O_Curseur = m_CurrentScreen->m_Curseur;
break;
case WXK_NUMPAD8: /* Deplacement curseur vers le haut */
case WXK_NUMPAD8: /* cursor moved up */
case WXK_UP:
DrawPanel->CalcScrolledPosition( Mouse.x, Mouse.y - delta.y,
&Mouse.x, &Mouse.y );
GRMouseWarp( DrawPanel, Mouse );
break;
case WXK_NUMPAD2: /* Deplacement curseur vers le bas */
case WXK_NUMPAD2: /* cursor moved down */
case WXK_DOWN:
DrawPanel->CalcScrolledPosition( Mouse.x, Mouse.y + delta.y,
&Mouse.x, &Mouse.y );
GRMouseWarp( DrawPanel, Mouse );
break;
case WXK_NUMPAD4: /* Deplacement curseur vers la gauche */
case WXK_NUMPAD4: /* cursor moved left */
case WXK_LEFT:
DrawPanel->CalcScrolledPosition( Mouse.x - delta.x, Mouse.y,
&Mouse.x, &Mouse.y );
GRMouseWarp( DrawPanel, Mouse );
break;
case WXK_NUMPAD6: /* Deplacement curseur vers la droite */
case WXK_NUMPAD6: /* cursor moved right */
case WXK_RIGHT:
DrawPanel->CalcScrolledPosition( Mouse.x + delta.x, Mouse.y,
&Mouse.x, &Mouse.y );
@ -246,9 +251,8 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
}
}
/* Recalcul de la position du curseur schema */
m_CurrentScreen->m_Curseur = curpos;
/* Placement sur la grille generale */
/* Put cursor on grid */
PutOnGrid( &m_CurrentScreen->m_Curseur );
if( m_CurrentScreen->IsRefreshReq() )
@ -276,7 +280,7 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
}
}
Affiche_Status_Box(); /* Affichage des coord curseur */
Affiche_Status_Box(); /* Display new cursor coordinates */
}
@ -284,7 +288,8 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
void WinEDA_DisplayFrame::Process_Special_Functions( wxCommandEvent& event )
/*************************************************************************/
/* Traite les selections d'outils et les commandes appelees du menu POPUP
/* Called when a tool is selected, or when a popup menu is clicked
* Currently : no action exists
*/
{
int id = event.GetId();

View File

@ -33,7 +33,6 @@ OBJECTS = $(TARGET).o \
setvisu.o\
dialog_display_options.o\
zoom.o \
visumod.o\
tracemod.o \
classpcb.o \
class_board.o \
@ -136,8 +135,6 @@ setvisu.o: setvisu.cpp $(DEPEND)
zoom.o: ../share/zoom.cpp $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp
visumod.o: visumod.cpp $(DEPEND)
tracemod.o: ../pcbnew/tracemod.cpp ../include/gr_basic.h $(DEPEND)
$(CC) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp

View File

@ -17,7 +17,8 @@
void WinEDA_CvpcbFrame::CreateScreenCmp()
/*******************************************/
/* Creation de la fenetre d'affichage du composant
/* Create or Update the frame showing the current highlighted footprint
* and (if showed) the 3D display frame
*/
{
wxString msg, FootprintName;
@ -28,15 +29,13 @@ void WinEDA_CvpcbFrame::CreateScreenCmp()
if( DrawFrame == NULL )
{
DrawFrame = new WinEDA_DisplayFrame( this, m_Parent, _( "Module" ),
wxPoint( 0, 0 ), wxSize( 600, 400 ) );
wxPoint( 0, 0 ), wxSize( 600,
400 ),
KICAD_DEFAULT_DRAWFRAME_STYLE |
wxFRAME_FLOAT_ON_PARENT );
IsNew = TRUE;
}
else
DrawFrame->Maximize( FALSE );
DrawFrame->SetFocus(); /* Active entree clavier */
DrawFrame->Show( TRUE );
}
if( !FootprintName.IsEmpty() )
{
@ -73,3 +72,32 @@ void WinEDA_CvpcbFrame::CreateScreenCmp()
DrawFrame->m_Draw3DFrame->NewDisplay();
}
}
/*******************************************************************/
void WinEDA_DisplayFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
/*******************************************************************/
/* Draws the current highlighted footprint */
{
if( !m_Pcb )
return;
MODULE* Module = m_Pcb->m_Modules;
ActiveScreen = (PCB_SCREEN*) GetScreen();
if( EraseBg )
DrawPanel->EraseScreen( DC );
DrawPanel->DrawBackGround( DC );
if( Module )
{
Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_COPY );
Module->Display_Infos( this );
}
Affiche_Status_Box();
DrawPanel->Trace_Curseur( DC );
}

View File

@ -1,44 +0,0 @@
/************************************************/
/* Routines de visualisation du module courant */
/************************************************/
#include "fctsys.h"
#include "common.h"
#include "cvpcb.h"
#include "macros.h"
#include "pcbnew.h"
#include "protos.h"
/* defines locaux */
/* Variables locales */
/*******************************************************************/
void WinEDA_DisplayFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
/*******************************************************************/
/* Affiche le module courant */
{
if( !m_Pcb )
return;
MODULE* Module = m_Pcb->m_Modules;
ActiveScreen = (PCB_SCREEN*) GetScreen();
if( EraseBg )
DrawPanel->EraseScreen( DC );
DrawPanel->DrawBackGround( DC );
if( Module )
{
Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_COPY );
Module->Display_Infos( this );
}
Affiche_Status_Box();
DrawPanel->Trace_Curseur( DC );
}

View File

@ -1,282 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: dialog_set_status.cpp
// Purpose:
// Author: jean-pierre Charras
// Modified by:
// Created: 11/02/2006 21:42:23
// RCS-ID:
// Copyright: License GNU
// Licence:
/////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 11/02/2006 21:42:23
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "dialog_set_status.h"
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
////@begin includes
////@end includes
#include "dialog_set_status.h"
////@begin XPM images
////@end XPM images
/*!
* WinEDA_ConfigFrame type definition
*/
IMPLEMENT_DYNAMIC_CLASS( WinEDA_ConfigFrame, wxDialog )
/*!
* WinEDA_ConfigFrame event table definition
*/
BEGIN_EVENT_TABLE( WinEDA_ConfigFrame, wxDialog )
////@begin WinEDA_ConfigFrame event table entries
EVT_BUTTON( ID_BUTTON, WinEDA_ConfigFrame::OnButtonClick )
EVT_BUTTON( ID_BUTTON1, WinEDA_ConfigFrame::OnButton1Click )
EVT_BUTTON( ID_BUTTON2, WinEDA_ConfigFrame::OnButton2Click )
EVT_BUTTON( ID_BUTTON3, WinEDA_ConfigFrame::OnButton3Click )
////@end WinEDA_ConfigFrame event table entries
END_EVENT_TABLE()
/*!
* WinEDA_ConfigFrame constructors
*/
WinEDA_ConfigFrame::WinEDA_ConfigFrame( )
{
}
WinEDA_ConfigFrame::WinEDA_ConfigFrame( WinEDA_SchematicFrame* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
m_Parent = parent;
m_LibListChanged = FALSE;
msg = _("from ") + EDA_Appl->m_CurrentOptionFile;
SetTitle(msg);
Create(parent, id, caption, pos, size, style);
}
/*!
* WinEDA_ConfigFrame creator
*/
bool WinEDA_ConfigFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
////@begin WinEDA_ConfigFrame member initialisation
m_CmpfileExtText = NULL;
m_NetfileExtText = NULL;
m_LibfileExtText = NULL;
m_SymbolfileExtText = NULL;
m_SchfileExtText = NULL;
m_ListLibr = NULL;
m_CmpfileExtText = NULL;
m_LibDirCtrl = NULL;
////@end WinEDA_ConfigFrame member initialisation
////@begin WinEDA_ConfigFrame creation
SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS);
wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls();
GetSizer()->Fit(this);
GetSizer()->SetSizeHints(this);
Centre();
////@end WinEDA_ConfigFrame creation
return true;
}
/*!
* Control creation for WinEDA_ConfigFrame
*/
void WinEDA_ConfigFrame::CreateControls()
{
SetFont(*g_DialogFont);
////@begin WinEDA_ConfigFrame content construction
// Generated by DialogBlocks, 11/02/2006 22:06:21 (unregistered)
WinEDA_ConfigFrame* itemDialog1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemDialog1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer2->Add(itemBoxSizer3, 0, 0, 0);
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton5 = new wxButton( itemDialog1, ID_BUTTON, _("Save Cfg"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton5->SetForegroundColour(wxColour(204, 0, 0));
itemBoxSizer4->Add(itemButton5, 0, wxGROW|wxALL, 5);
wxString itemRadioBox6Strings[] = {
_("&PcbNew"),
_("&OrcadPcb2"),
_("&CadStar"),
_("&Spice"),
_("Other")
};
wxRadioBox* itemRadioBox6 = new wxRadioBox( itemDialog1, ID_RADIOBOX, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 5, itemRadioBox6Strings, 1, wxRA_SPECIFY_COLS );
itemBoxSizer4->Add(itemRadioBox6, 0, wxGROW|wxALL, 5);
wxStaticBox* itemStaticBoxSizer7Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Files ext:"));
wxStaticBoxSizer* itemStaticBoxSizer7 = new wxStaticBoxSizer(itemStaticBoxSizer7Static, wxVERTICAL);
itemBoxSizer4->Add(itemStaticBoxSizer7, 0, wxGROW|wxALL, 5);
m_CmpfileExtText = new wxStaticText( itemDialog1, wxID_STATIC, _("Cmp file Ext: "), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer7->Add(m_CmpfileExtText, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
m_NetfileExtText = new wxStaticText( itemDialog1, wxID_STATIC, _("Net file Ext: "), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer7->Add(m_NetfileExtText, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
m_LibfileExtText = new wxStaticText( itemDialog1, wxID_STATIC, _("Library file Ext: "), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer7->Add(m_LibfileExtText, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
m_SymbolfileExtText = new wxStaticText( itemDialog1, wxID_STATIC, _("Symbol file Ext: "), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer7->Add(m_SymbolfileExtText, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
m_SchfileExtText = new wxStaticText( itemDialog1, wxID_STATIC, _("Schematic file Ext: "), wxDefaultPosition, wxDefaultSize, 0 );
m_SchfileExtText->Enable(false);
itemStaticBoxSizer7->Add(m_SchfileExtText, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer3->Add(itemBoxSizer13, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer14 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer13->Add(itemBoxSizer14, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxButton* itemButton15 = new wxButton( itemDialog1, ID_BUTTON1, _("Del"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton15->SetForegroundColour(wxColour(204, 0, 0));
itemBoxSizer14->Add(itemButton15, 0, wxGROW|wxALL, 5);
wxButton* itemButton16 = new wxButton( itemDialog1, ID_BUTTON2, _("Add"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton16->SetForegroundColour(wxColour(0, 128, 0));
itemBoxSizer14->Add(itemButton16, 0, wxGROW|wxALL, 5);
wxButton* itemButton17 = new wxButton( itemDialog1, ID_BUTTON3, _("Ins"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton17->SetForegroundColour(wxColour(0, 0, 255));
itemBoxSizer14->Add(itemButton17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText18 = new wxStaticText( itemDialog1, wxID_STATIC, _("Libraries:"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText18->SetForegroundColour(wxColour(196, 0, 0));
itemBoxSizer13->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxString* m_ListLibrStrings = NULL;
m_ListLibr = new wxListBox( itemDialog1, ID_LISTBOX, wxDefaultPosition, wxSize(-1, 250), 0, m_ListLibrStrings, wxLB_SINGLE );
itemBoxSizer13->Add(m_ListLibr, 0, wxGROW|wxALL, 5);
m_CmpfileExtText = new wxStaticText( itemDialog1, wxID_STATIC, _("Library files path:"), wxDefaultPosition, wxDefaultSize, 0 );
m_CmpfileExtText->SetForegroundColour(wxColour(198, 0, 0));
itemBoxSizer2->Add(m_CmpfileExtText, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
m_LibDirCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer2->Add(m_LibDirCtrl, 0, wxGROW|wxALL, 5);
////@end WinEDA_ConfigFrame content construction
}
/*!
* Should we show tooltips?
*/
bool WinEDA_ConfigFrame::ShowToolTips()
{
return true;
}
/*!
* Get bitmap resources
*/
wxBitmap WinEDA_ConfigFrame::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin WinEDA_ConfigFrame bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end WinEDA_ConfigFrame bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon WinEDA_ConfigFrame::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin WinEDA_ConfigFrame icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end WinEDA_ConfigFrame icon retrieval
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON
*/
void WinEDA_ConfigFrame::OnButtonClick( wxCommandEvent& event )
{
////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON in WinEDA_ConfigFrame.
// Before editing this code, remove the block markers.
event.Skip();
////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON in WinEDA_ConfigFrame.
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1
*/
void WinEDA_ConfigFrame::OnButton1Click( wxCommandEvent& event )
{
////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1 in WinEDA_ConfigFrame.
// Before editing this code, remove the block markers.
event.Skip();
////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1 in WinEDA_ConfigFrame.
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON2
*/
void WinEDA_ConfigFrame::OnButton2Click( wxCommandEvent& event )
{
////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON2 in WinEDA_ConfigFrame.
// Before editing this code, remove the block markers.
event.Skip();
////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON2 in WinEDA_ConfigFrame.
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON3
*/
void WinEDA_ConfigFrame::OnButton3Click( wxCommandEvent& event )
{
////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON3 in WinEDA_ConfigFrame.
// Before editing this code, remove the block markers.
event.Skip();
////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON3 in WinEDA_ConfigFrame.
}

View File

@ -1,124 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: dialog_set_status.h
// Purpose:
// Author: jean-pierre Charras
// Modified by:
// Created: 11/02/2006 21:42:23
// RCS-ID:
// Copyright: License GNU
// Licence:
/////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 11/02/2006 21:42:23
#ifndef _DIALOG_SET_STATUS_H_
#define _DIALOG_SET_STATUS_H_
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "dialog_set_status.h"
#endif
/*!
* Includes
*/
////@begin includes
////@end includes
/*!
* Forward declarations
*/
////@begin forward declarations
////@end forward declarations
/*!
* Control identifiers
*/
////@begin control identifiers
#define ID_DIALOG 10000
#define SYMBOL_WINEDA_CONFIGFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
#define SYMBOL_WINEDA_CONFIGFRAME_TITLE _("from ")
#define SYMBOL_WINEDA_CONFIGFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_CONFIGFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_CONFIGFRAME_POSITION wxDefaultPosition
#define ID_BUTTON 10001
#define ID_RADIOBOX 10006
#define ID_BUTTON1 10002
#define ID_BUTTON2 10003
#define ID_BUTTON3 10004
#define ID_LISTBOX 10005
#define ID_TEXTCTRL 10007
////@end control identifiers
/*!
* Compatibility
*/
#ifndef wxCLOSE_BOX
#define wxCLOSE_BOX 0x1000
#endif
/*!
* WinEDA_ConfigFrame class declaration
*/
class WinEDA_ConfigFrame: public wxDialog
{
DECLARE_DYNAMIC_CLASS( WinEDA_ConfigFrame )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WinEDA_ConfigFrame( );
WinEDA_ConfigFrame( WinEDA_SchematicFrame* parent, wxWindowID id = SYMBOL_WINEDA_CONFIGFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_CONFIGFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_CONFIGFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_CONFIGFRAME_SIZE, long style = SYMBOL_WINEDA_CONFIGFRAME_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_CONFIGFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_CONFIGFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_CONFIGFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_CONFIGFRAME_SIZE, long style = SYMBOL_WINEDA_CONFIGFRAME_STYLE );
/// Creates the controls and sizers
void CreateControls();
////@begin WinEDA_ConfigFrame event handler declarations
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON
void OnButtonClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1
void OnButton1Click( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON2
void OnButton2Click( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON3
void OnButton3Click( wxCommandEvent& event );
////@end WinEDA_ConfigFrame event handler declarations
////@begin WinEDA_ConfigFrame member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WinEDA_ConfigFrame member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin WinEDA_ConfigFrame member variables
wxStaticText* m_CmpfileExtText;
wxStaticText* m_NetfileExtText;
wxStaticText* m_LibfileExtText;
wxStaticText* m_SymbolfileExtText;
wxStaticText* m_SchfileExtText;
wxListBox* m_ListLibr;
wxStaticText* m_CmpfileExtText;
wxTextCtrl* m_LibDirCtrl;
////@end WinEDA_ConfigFrame member variables
};
#endif
// _DIALOG_SET_STATUS_H_

View File

@ -1,840 +0,0 @@
/***************************************************/
/* EESchema: */
/* Edition des textes sur Composants en Schematique */
/****************************************************/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "program.h"
#include "libcmp.h"
#include "general.h"
#include "wx/checklst.h"
#include "protos.h"
/* Fonctions exportees */
/* Fonctions locales */
static void AbortMoveCmpField( WinEDA_DrawFrame* frame, wxDC* DC );
static void MoveCmpField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
/* variables locales */
static PartTextStruct* CurrentField;
static int Multiflag;
static int TextFieldSize = DEFAULT_SIZE_TEXT;
static wxPoint OldPos;
/* Classe de la frame des propriétés d'un composant en librairie */
enum id_cmpedit {
ID_SCHEDIT_NOTEBOOK = 3200,
ID_PANEL_BASIC,
ID_PANEL_REFERENCE,
ID_PANEL_VALUE,
ID_PANEL_FIELD1,
ID_PANEL_FIELD2,
ID_PANEL_FIELD3,
ID_PANEL_FIELD4,
ID_PANEL_FIELD5,
ID_PANEL_FIELD6,
ID_PANEL_FIELD7,
ID_PANEL_FIELD8,
ID_PANEL_MODULEPCB,
ID_PANEL_SUBSCHEMATIC,
ID_CLOSE_CMP_PROPERTIES,
ID_ACCEPT_CMP_PROPERTIES,
ID_RESTORE_CMP_DEFAULTS
};
/************************************/
/* class WinEDA_PartPropertiesFrame */
/************************************/
class WinEDA_ComponentPropertiesFrame : public wxDialog
{
private:
WinEDA_SchematicFrame* m_Parent;
EDA_SchComponentStruct* m_Cmp;
EDA_LibComponentStruct* m_LibEntry;
wxCheckBox* m_ConvertButt;
wxRadioBox* m_SelectUnit;
wxRadioBox* m_MirrorUnit;
wxRadioBox* m_OrientUnit;
wxNotebook* m_NoteBook;
WinEDA_EnterText* m_RefInLib;
wxPanel* m_PanelBasic;
wxPanel* m_PanelField[NUMBER_OF_FIELDS];
wxCheckBox* ShowFieldText[NUMBER_OF_FIELDS];
wxCheckBox* VorientFieldText[NUMBER_OF_FIELDS];
WinEDA_GraphicTextCtrl* FieldTextCtrl[NUMBER_OF_FIELDS];
WinEDA_PositionCtrl* FieldPosition[NUMBER_OF_FIELDS];
int FieldFlags[NUMBER_OF_FIELDS];
int FieldOrient[NUMBER_OF_FIELDS];
public:
// Constructor and destructor
WinEDA_ComponentPropertiesFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
EDA_SchComponentStruct* cmp );
~WinEDA_ComponentPropertiesFrame()
{
}
private:
void BuildPanelBasic();
void ComponentPropertiesAccept( wxCommandEvent& event );
void SetInitCmp( wxCommandEvent& event );
void OnQuit( wxCommandEvent& event );
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE( WinEDA_ComponentPropertiesFrame, wxDialog )
EVT_BUTTON( ID_ACCEPT_CMP_PROPERTIES, WinEDA_ComponentPropertiesFrame::ComponentPropertiesAccept )
EVT_BUTTON( ID_CLOSE_CMP_PROPERTIES, WinEDA_ComponentPropertiesFrame::OnQuit )
EVT_BUTTON( ID_RESTORE_CMP_DEFAULTS, WinEDA_ComponentPropertiesFrame::SetInitCmp )
END_EVENT_TABLE()
/**********************************************************************/
void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
EDA_SchComponentStruct* cmp )
/*********************************************************************/
/* Create the dialog box for the current component edition
*/
{
parent->DrawPanel->m_IgnoreMouseEvents = TRUE;
if( cmp->Type() != DRAW_LIB_ITEM_STRUCT_TYPE )
{
DisplayError( parent,
wxT( "InstallCmpeditFrame() error: This struct is not a component" ) );
}
else
{
WinEDA_ComponentPropertiesFrame* frame =
new WinEDA_ComponentPropertiesFrame( parent, pos, cmp );
frame->ShowModal();
frame->Destroy();
}
parent->DrawPanel->m_IgnoreMouseEvents = FALSE;
}
#define XSIZE 370
#define YSIZE 300
/***********************************************************************************/
WinEDA_ComponentPropertiesFrame::WinEDA_ComponentPropertiesFrame(
WinEDA_SchematicFrame* parent, wxPoint& framepos, EDA_SchComponentStruct* cmp ) :
wxDialog( parent, -1, _( "Component properties" ), framepos,
wxSize( XSIZE, YSIZE ), DIALOG_STYLE )
/***********************************************************************************/
{
wxPoint pos, postmp;
wxLayoutConstraints* c;
wxPoint cmp_pos;
int ii;
Centre();
m_Parent = parent;
m_Cmp = cmp;
cmp_pos = m_Cmp->m_Pos;
m_LibEntry = FindLibPart( m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
if( m_LibEntry == NULL )
{
SetTitle( _( "Component properties (Not found in lib)" ) );
}
SetAutoLayout( TRUE );
m_NoteBook = new wxNotebook( this, ID_SCHEDIT_NOTEBOOK,
wxDefaultPosition, wxSize( XSIZE - 6, YSIZE - 70 ) );
c = new wxLayoutConstraints;
c->left.SameAs( this, wxLeft, 4 );
c->right.SameAs( this, wxRight, 4 );
c->top.SameAs( this, wxTop, 4 );
c->bottom.SameAs( this, wxBottom, 40 );
m_NoteBook->SetConstraints( c );
m_NoteBook->SetAutoLayout( TRUE );
/* Creation des boutons de commande */
pos.x = 40; pos.y = YSIZE - 60;
wxButton* GButton = new wxButton( this, ID_CLOSE_CMP_PROPERTIES,
_( "Close" ), pos );
GButton->SetForegroundColour( *wxBLUE );
c = new wxLayoutConstraints;
c->left.SameAs( this, wxLeft, 20 );
c->height.AsIs();
c->width.AsIs();
c->bottom.SameAs( this, wxBottom, 5 );
GButton->SetConstraints( c );
pos.x += GButton->GetDefaultSize().x + 10;
wxButton* MButton = new wxButton( this, ID_RESTORE_CMP_DEFAULTS,
_( "Defaults" ), pos );
MButton->SetForegroundColour( *wxRED );
c = new wxLayoutConstraints;
c->left.SameAs( GButton, wxRight, 20 );
c->height.AsIs();
c->width.AsIs();
c->bottom.SameAs( this, wxBottom, 5 );
MButton->SetConstraints( c );
pos.x += MButton->GetDefaultSize().x + 10;
wxButton* Button = new wxButton( this, ID_ACCEPT_CMP_PROPERTIES,
_( "OK" ), pos );
Button->SetForegroundColour( *wxBLUE );
c = new wxLayoutConstraints;
c->left.SameAs( MButton, wxRight, 20 );
c->height.AsIs();
c->width.AsIs();
c->bottom.SameAs( this, wxBottom, 5 );
Button->SetConstraints( c );
// Add panel Basic
BuildPanelBasic();
m_NoteBook->AddPage( m_PanelBasic, _( "Options" ), TRUE );
// Add panel Fields
for( ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
{
m_PanelField[ii] = new wxPanel( m_NoteBook, ID_PANEL_REFERENCE + ii );
c = new wxLayoutConstraints;
c->left.SameAs( m_NoteBook, wxLeft );
c->right.SameAs( m_NoteBook, wxRight );
c->bottom.SameAs( m_NoteBook, wxBottom );
m_PanelField[ii]->SetConstraints( c );
m_NoteBook->AddPage( m_PanelField[ii],
DrawPartStruct::ReturnFieldName( ii ), FALSE );
pos.x = 10; pos.y = 20;
ShowFieldText[ii] = new wxCheckBox( m_PanelField[ii], -1,
_( "Show Text" ), pos );
if( (m_Cmp->m_Field[ii].m_Attributs & TEXT_NO_VISIBLE ) == 0 )
ShowFieldText[ii]->SetValue( TRUE );
pos.x += 150;
VorientFieldText[ii] = new wxCheckBox( m_PanelField[ii], -1,
_( "Vertical" ), pos );
if( m_Cmp->m_Field[ii].m_Orient )
VorientFieldText[ii]->SetValue( TRUE );
pos.x = 10; pos.y += 50;
wxPoint field_pos;
FieldTextCtrl[ii] = new WinEDA_GraphicTextCtrl( m_PanelField[ii],
DrawPartStruct::ReturnFieldName( ii ),
m_Cmp->m_Field[ii].m_Text,
m_Cmp->m_Field[ii].m_Size.x,
g_UnitMetric,
pos, 200, TRUE );
field_pos.x = m_Cmp->m_Field[ii].m_Pos.x - cmp_pos.x;
field_pos.y = m_Cmp->m_Field[ii].m_Pos.y - cmp_pos.y;
if( m_Cmp->m_Field[ii].m_Text == wxEmptyString ) // Field non initialisé, set pos a 0,0)
field_pos = wxPoint( 0, 0 );
FieldPosition[ii] = new WinEDA_PositionCtrl( m_PanelField[ii], _( "Pos" ),
field_pos,
g_UnitMetric,
wxPoint( pos.x + 150, pos.y + 32 ),
m_Parent->m_InternalUnits );
}
if( m_LibEntry && m_LibEntry->m_Options == ENTRY_POWER )
FieldTextCtrl[VALUE]->Enable( FALSE );
}
/************************************************************************/
void WinEDA_ComponentPropertiesFrame::OnQuit( wxCommandEvent& WXUNUSED (event) )
/************************************************************************/
{
// true is to force the frame to close
Close( true );
}
/**********************************************************/
void WinEDA_ComponentPropertiesFrame::BuildPanelBasic()
/**********************************************************/
/* create the basic panel for component properties editing
*/
{
wxPoint pos, postmp;
int ii, jj;
m_PanelBasic = new wxPanel( m_NoteBook, ID_PANEL_BASIC );
wxLayoutConstraints* c = new wxLayoutConstraints;
c->left.SameAs( m_NoteBook, wxLeft );
c->right.SameAs( m_NoteBook, wxRight );
c->bottom.SameAs( m_NoteBook, wxBottom );
m_PanelBasic->SetConstraints( c );
pos.x = 5; pos.y = 15;
#define NB_MAX_UNIT 16
int nb_units = m_LibEntry ? MAX( m_LibEntry->m_UnitCount, 1 ) : 0;
wxString list_units[NB_MAX_UNIT];
if( nb_units > 16 )
nb_units = 16;
for( ii = 0; ii < NB_MAX_UNIT; ii++ )
list_units[ii] << _( "Unit" ) << (ii + 1);
m_SelectUnit = new wxRadioBox( m_PanelBasic, -1, _( "Unit:" ),
pos, wxSize( -1, -1 ),
(nb_units < 8 ) ? 8 : nb_units, list_units, 1 );
for( ii = nb_units; ii < 8; ii++ )
{
m_SelectUnit->Enable( ii, FALSE ); // Disable non existant units
}
m_SelectUnit->SetSelection( m_Cmp->m_Multi - 1 );
m_SelectUnit->GetSize( &ii, &jj );
pos.x += ii + 5; postmp = pos;
wxString list_orient[4] = { wxT( "0" ), wxT( "+90" ), wxT( "180" ), wxT( "-90" ) };
pos.x += 45; pos.y = 15;
m_OrientUnit = new wxRadioBox( m_PanelBasic, -1, _( "Orient:" ),
pos, wxSize( -1, -1 ), 4, list_orient, 1 );
ii = m_Cmp->GetRotationMiroir() & ~(CMP_MIROIR_X | CMP_MIROIR_Y);
if( ii == CMP_ORIENT_90 )
m_OrientUnit->SetSelection( 1 );
else if( ii == CMP_ORIENT_180 )
m_OrientUnit->SetSelection( 2 );
else if( ii == CMP_ORIENT_270 )
m_OrientUnit->SetSelection( 3 );
m_OrientUnit->GetSize( &ii, &jj );
pos.x += ii + 30;
wxString list_mirror[3] = { _( "Normal" ), _( "Mirror --" ), _( "Mirror |" ) };
m_MirrorUnit = new wxRadioBox( m_PanelBasic, -1, _( "Mirror:" ),
pos, wxSize( -1, -1 ), 3, list_mirror, 1 );
ii = m_Cmp->GetRotationMiroir() & (CMP_MIROIR_X | CMP_MIROIR_Y);
if( ii == CMP_MIROIR_X )
m_MirrorUnit->SetSelection( 1 );
else if( ii == CMP_MIROIR_Y )
m_MirrorUnit->SetSelection( 2 );
// Positionnement de la selection normal/convert
m_OrientUnit->GetSize( &ii, &jj );
pos = postmp;
pos.y += jj + 10;
m_ConvertButt = new wxCheckBox( m_PanelBasic, -1, _( "Convert" ), pos );
if( m_Cmp->m_Convert > 1 )
m_ConvertButt->SetValue( TRUE );
if( (m_LibEntry == NULL) || LookForConvertPart( m_LibEntry ) <= 1 )
{
m_ConvertButt->Enable( FALSE );
}
// Show the "Parts Locked" option:
if( m_LibEntry && m_LibEntry->m_UnitSelectionLocked )
{
new wxStaticText( m_PanelBasic, -1, _( "Parts are locked" ),
wxPoint( m_MirrorUnit->GetRect().x, pos.y ) );
}
// Positionnement de la reference en librairie
m_ConvertButt->GetSize( &ii, &jj );
pos.y += jj + 20;
m_RefInLib = new WinEDA_EnterText( m_PanelBasic, _( "Chip Name:" ),
m_Cmp->m_ChipName,
pos, wxSize( XSIZE - pos.x - 30, -1 ) );
}
/***********************************************************************************/
void WinEDA_ComponentPropertiesFrame::ComponentPropertiesAccept( wxCommandEvent& event )
/***********************************************************************************/
/* Update the new parameters for the current edited component
*/
{
wxPoint cmp_pos = m_Cmp->m_Pos;
wxClientDC dc( m_Parent->DrawPanel );
wxString newname;
m_Parent->DrawPanel->PrepareGraphicContext( &dc );
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, g_XorMode );
newname = m_RefInLib->GetValue();
newname.MakeUpper();
newname.Replace( wxT( " " ), wxT( "_" ) );
if( newname.IsEmpty() )
DisplayError( this, _( "No Component Name!" ) );
else if( newname.CmpNoCase( m_Cmp->m_ChipName ) )
{
if( FindLibPart( newname.GetData(), wxEmptyString, FIND_ALIAS ) == NULL )
{
wxString msg;
msg.Printf( _( "Component [%s] not found!" ), newname.GetData() );
DisplayError( this, msg );
}
else // Changement de composant!
{
m_Cmp->m_ChipName = newname;
}
}
// Mise a jour de la representation:
if( m_ConvertButt->IsEnabled() )
(m_ConvertButt->GetValue() == TRUE) ?
m_Cmp->m_Convert = 2 : m_Cmp->m_Convert = 1;
//Mise a jour de la selection de l'élément dans le boitier
if( m_Cmp->m_Multi )
m_Cmp->m_Multi = m_SelectUnit->GetSelection() + 1;
//Mise a jour de l'orientation:
switch( m_OrientUnit->GetSelection() )
{
case 0:
m_Cmp->SetRotationMiroir( CMP_ORIENT_0 );
break;
case 1:
m_Cmp->SetRotationMiroir( CMP_ORIENT_90 );
break;
case 2:
m_Cmp->SetRotationMiroir( CMP_ORIENT_180 );
break;
case 3:
m_Cmp->SetRotationMiroir( CMP_ORIENT_270 );
break;
}
switch( m_MirrorUnit->GetSelection() )
{
case 0:
break;
case 1:
m_Cmp->SetRotationMiroir( CMP_MIROIR_X );
break;
case 2:
m_Cmp->SetRotationMiroir( CMP_MIROIR_Y );
break;
}
// Mise a jour des textes
for( int ii = REFERENCE; ii < NUMBER_OF_FIELDS; ii++ )
{
if( ii == REFERENCE ) // la reference ne peut etre vide
{
if( !FieldTextCtrl[ii]->GetText().IsEmpty() )
m_Cmp->m_Field[ii].m_Text = FieldTextCtrl[ii]->GetText();
}
else if( ii == VALUE ) // la valeur ne peut etre vide et ne peut etre change sur un POWER
{
EDA_LibComponentStruct* Entry = FindLibPart( m_Cmp->m_ChipName.GetData(
), wxEmptyString, FIND_ROOT );
if( Entry && (Entry->m_Options == ENTRY_POWER) )
m_Cmp->m_Field[ii].m_Text = m_Cmp->m_ChipName;
else if( !FieldTextCtrl[ii]->GetText().IsEmpty() )
{
m_Cmp->m_Field[ii].m_Text = FieldTextCtrl[ii]->GetText();
}
}
else
m_Cmp->m_Field[ii].m_Text = FieldTextCtrl[ii]->GetText();
m_Cmp->m_Field[ii].m_Size.x =
m_Cmp->m_Field[ii].m_Size.y = FieldTextCtrl[ii]->GetTextSize();
if( ShowFieldText[ii]->GetValue() )
m_Cmp->m_Field[ii].m_Attributs &= ~TEXT_NO_VISIBLE;
else
m_Cmp->m_Field[ii].m_Attributs |= TEXT_NO_VISIBLE;
m_Cmp->m_Field[ii].m_Orient = VorientFieldText[ii]->GetValue() ? 1 : 0;
m_Cmp->m_Field[ii].m_Pos = FieldPosition[ii]->GetValue();
m_Cmp->m_Field[ii].m_Pos.x += cmp_pos.x;
m_Cmp->m_Field[ii].m_Pos.y += cmp_pos.y;
}
m_Parent->m_CurrentScreen->SetModify();
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE );
m_Parent->TestDanglingEnds( m_Parent->m_CurrentScreen->EEDrawList, &dc );
Close();
}
/************************************************************************************/
void WinEDA_SchematicFrame::StartMoveCmpField( PartTextStruct* Field, wxDC* DC )
/************************************************************************************/
/* Prepare le deplacement du texte en cours d'edition
*/
{
EDA_LibComponentStruct* Entry;
CurrentField = Field;
if( Field == NULL )
return;
if( Field->m_Text == wxEmptyString )
{
DisplayError( this, _( "No Field to move" ), 10 );
return;
}
OldPos = Field->m_Pos;
Multiflag = 0;
if( Field->m_FieldId == REFERENCE )
{
Entry = FindLibPart( ( (EDA_SchComponentStruct*) Field->m_Parent )->m_ChipName.GetData(),
wxEmptyString, FIND_ROOT );
if( Entry != NULL )
{
if( Entry->m_UnitCount > 1 )
Multiflag = 1;
}
}
DrawPanel->ForceCloseManageCurseur = AbortMoveCmpField;
DrawPanel->ManageCurseur = MoveCmpField;
Field->m_Flags = IS_MOVED;
}
/**********************************************************************************/
void WinEDA_SchematicFrame::EditCmpFieldText( PartTextStruct* Field, wxDC* DC )
/**********************************************************************************/
/* Routine de changement du texte selectionne */
{
int FieldNumber, flag;
EDA_LibComponentStruct* Entry;
if( Field == NULL )
{
DisplayError( this, _( "No Field To Edit" ), 10 );
return;
}
FieldNumber = Field->m_FieldId;
if( FieldNumber == VALUE )
{
Entry = FindLibPart( ( (EDA_SchComponentStruct*) Field->m_Parent )->m_ChipName.GetData(),
wxEmptyString, FIND_ROOT );
if( Entry && (Entry->m_Options == ENTRY_POWER) )
{
DisplayInfo( this,
_(
"Part is a POWER, value cannot be modified!\nYou must create a new power" )
);
return;
}
}
flag = 0;
if( FieldNumber == REFERENCE )
{
Entry = FindLibPart( ( (EDA_SchComponentStruct*) Field->m_Parent )->m_ChipName.GetData(),
wxEmptyString, FIND_ROOT );
if( Entry != NULL )
{
if( Entry->m_UnitCount > 1 )
flag = 1;
}
}
wxString newtext = Field->m_Text;
Get_Message( DrawPartStruct::ReturnFieldName( FieldNumber ), newtext, this );
DrawTextField( DrawPanel, DC, Field, flag, g_XorMode );
if( !newtext.IsEmpty() )
{
if( Field->m_Text.IsEmpty() )
{
Field->m_Pos = ( (EDA_SchComponentStruct*) Field->m_Parent )->m_Pos;
Field->m_Size.x = Field->m_Size.y = TextFieldSize;
}
Field->m_Text = newtext;
}
else /* Nouveau texte NULL */
{
if( FieldNumber == REFERENCE )
{
DisplayError( this, _( "Reference needed !, No change" ) );
}
else if( FieldNumber == VALUE )
{
DisplayError( this, _( "Value needed !, No change" ) );
}
else
{
Field->m_Text = wxT( "~" );
}
}
DrawTextField( DrawPanel, DC, Field, flag, g_XorMode );
( (EDA_SchComponentStruct*) Field->m_Parent )->Display_Infos( this );
m_CurrentScreen->SetModify();
}
/************************************************************************/
static void MoveCmpField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
/************************************************************************/
/* Routine de deplacement d'un texte type Field.
* Celle routine est normalement attachee au deplacement du curseur
*/
{
#define TRF ( (EDA_SchComponentStruct*) CurrentField->m_Parent )->m_Transform
wxPoint pos;
int x1, y1;
int FieldNumber;
if( CurrentField == NULL )
return;
FieldNumber = CurrentField->m_FieldId;
/* Effacement: */
if( erase )
DrawTextField( panel, DC, CurrentField, Multiflag, g_XorMode );
pos = ( (EDA_SchComponentStruct*) CurrentField->m_Parent )->m_Pos;
/* Les positions sont caculees par la matrice TRANSPOSEE de la matrice
* de rotation-miroir */
x1 = panel->GetScreen()->m_Curseur.x - pos.x;
y1 = panel->GetScreen()->m_Curseur.y - pos.y;
CurrentField->m_Pos.x = pos.x + TRF[0][0] * x1 + TRF[1][0] * y1;
CurrentField->m_Pos.y = pos.y + TRF[0][1] * x1 + TRF[1][1] * y1;
DrawTextField( panel, DC, CurrentField, Multiflag, g_XorMode );
}
/******************************************************************/
static void AbortMoveCmpField( WinEDA_DrawFrame* frame, wxDC* DC )
/******************************************************************/
{
frame->DrawPanel->ForceCloseManageCurseur = NULL;
frame->DrawPanel->ManageCurseur = NULL;
if( CurrentField )
{
DrawTextField( frame->DrawPanel, DC, CurrentField, Multiflag, g_XorMode );
CurrentField->m_Flags = 0;
CurrentField->m_Pos = OldPos;
DrawTextField( frame->DrawPanel, DC, CurrentField, Multiflag, GR_DEFAULT_DRAWMODE );
}
CurrentField = NULL;
}
/*********************************************************************************/
void WinEDA_SchematicFrame::RotateCmpField( PartTextStruct* Field, wxDC* DC )
/*********************************************************************************/
{
int FieldNumber, flag;
EDA_LibComponentStruct* Entry;
if( Field == NULL )
return;
if( Field->m_Text == wxEmptyString )
return;
FieldNumber = Field->m_FieldId;
flag = 0;
if( FieldNumber == REFERENCE )
{
Entry = FindLibPart( ( (EDA_SchComponentStruct*) Field->m_Parent )->m_ChipName.GetData(),
wxEmptyString, FIND_ROOT );
if( Entry != NULL )
{
if( Entry->m_UnitCount > 1 )
flag = 1;
}
}
DrawTextField( DrawPanel, DC, Field, flag, g_XorMode );
if( Field->m_Orient == TEXT_ORIENT_HORIZ )
Field->m_Orient = TEXT_ORIENT_VERT;
else
Field->m_Orient = TEXT_ORIENT_HORIZ;
DrawTextField( DrawPanel, DC, Field, flag, g_XorMode );
GetScreen()->SetModify();
}
/***************************************************************/
void PartTextStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC )
/***************************************************************/
{
int FieldNumber, flag;
EDA_LibComponentStruct* Entry;
frame->DrawPanel->ManageCurseur = NULL;
frame->DrawPanel->ForceCloseManageCurseur = NULL;
FieldNumber = m_FieldId;
flag = 0;
if( FieldNumber == REFERENCE )
{
Entry = FindLibPart( ( (EDA_SchComponentStruct*) m_Parent )->m_ChipName.GetData(),
wxEmptyString, FIND_ROOT );
if( Entry != NULL )
{
if( Entry->m_UnitCount > 1 )
flag = 1;
}
}
DrawTextField( frame->DrawPanel, DC, this, flag, GR_DEFAULT_DRAWMODE );
m_Flags = 0;
frame->GetScreen()->SetCurItem( NULL );
frame->GetScreen()->SetModify();
CurrentField = NULL;
}
/**************************************************************************************************/
void WinEDA_SchematicFrame::EditComponentReference( EDA_SchComponentStruct* DrawLibItem, wxDC* DC )
/**************************************************************************************************/
/* Edit the component text reference*/
{
wxString msg;
EDA_LibComponentStruct* Entry;
int flag = 0;
if( DrawLibItem == NULL )
return;
Entry = FindLibPart( DrawLibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
if( Entry == NULL )
return;
if( Entry->m_UnitCount > 1 )
flag = 1;
PartTextStruct* TextField = &DrawLibItem->m_Field[REFERENCE];
msg = TextField->m_Text;
Get_Message( _( "Reference" ), msg, this );
if( !msg.IsEmpty() ) // New text entered
{
DrawTextField( DrawPanel, DC, &DrawLibItem->m_Field[REFERENCE], flag, g_XorMode );
TextField->m_Text = msg;
DrawTextField( DrawPanel, DC, &DrawLibItem->m_Field[REFERENCE], flag,
DrawLibItem->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE );
GetScreen()->SetModify();
}
DrawLibItem->Display_Infos( this );
}
/*****************************************************************************************/
void WinEDA_SchematicFrame::EditComponentValue( EDA_SchComponentStruct* DrawLibItem, wxDC* DC )
/*****************************************************************************************/
/* Routine de changement du texte selectionne */
{
wxString msg;
EDA_LibComponentStruct* Entry;
int flag = 0;
if( DrawLibItem == NULL )
return;
Entry = FindLibPart( DrawLibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
if( Entry == NULL )
return;
if( Entry->m_UnitCount > 1 )
flag = 1;
PartTextStruct* TextField = &DrawLibItem->m_Field[VALUE];
msg = TextField->m_Text;
Get_Message( _( "Value" ), msg, this );
if( !msg.IsEmpty() )
{
DrawTextField( DrawPanel, DC, &DrawLibItem->m_Field[VALUE], flag, g_XorMode );
TextField->m_Text = msg;
DrawTextField( DrawPanel, DC, &DrawLibItem->m_Field[VALUE], flag,
DrawLibItem->m_Flags ? g_XorMode : GR_DEFAULT_DRAWMODE );
m_CurrentScreen->SetModify();
}
DrawLibItem->Display_Infos( this );
}
/*****************************************************************************/
void WinEDA_ComponentPropertiesFrame::SetInitCmp( wxCommandEvent& event )
/*****************************************************************************/
/* Replace le composant en position normale, dimensions et positions
* fields comme definies en librairie
*/
{
EDA_LibComponentStruct* Entry;
if( m_Cmp == NULL )
return;
Entry = FindLibPart( m_Cmp->m_ChipName.GetData(), wxEmptyString, FIND_ROOT );
if( Entry == NULL )
return;
wxClientDC dc( m_Parent->DrawPanel );
m_Parent->DrawPanel->PrepareGraphicContext( &dc );
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, g_XorMode );
/* Mise aux valeurs par defaut des champs et orientation */
m_Cmp->m_Field[REFERENCE].m_Pos.x =
Entry->m_Prefix.m_Pos.x + m_Cmp->m_Pos.x;
m_Cmp->m_Field[REFERENCE].m_Pos.y =
Entry->m_Prefix.m_Pos.y + m_Cmp->m_Pos.y;
m_Cmp->m_Field[REFERENCE].m_Orient = Entry->m_Prefix.m_Orient;
m_Cmp->m_Field[REFERENCE].m_Size = Entry->m_Prefix.m_Size;
m_Cmp->m_Field[REFERENCE].m_HJustify = Entry->m_Prefix.m_HJustify;
m_Cmp->m_Field[REFERENCE].m_VJustify = Entry->m_Prefix.m_VJustify;
m_Cmp->m_Field[VALUE].m_Pos.x =
Entry->m_Name.m_Pos.x + m_Cmp->m_Pos.x;
m_Cmp->m_Field[VALUE].m_Pos.y =
Entry->m_Name.m_Pos.y + m_Cmp->m_Pos.y;
m_Cmp->m_Field[VALUE].m_Orient = Entry->m_Name.m_Orient;
m_Cmp->m_Field[VALUE].m_Size = Entry->m_Name.m_Size;
m_Cmp->m_Field[VALUE].m_HJustify = Entry->m_Name.m_HJustify;
m_Cmp->m_Field[VALUE].m_VJustify = Entry->m_Name.m_VJustify;
m_Cmp->SetRotationMiroir( CMP_NORMAL );
m_Parent->m_CurrentScreen->SetModify();
RedrawOneStruct( m_Parent->DrawPanel, &dc, m_Cmp, GR_DEFAULT_DRAWMODE );
Close();
}

View File

@ -1,121 +0,0 @@
/**********************************************************/
/* EECLASS.CPP */
/* fonctions relatives aux classes definies dans EESCHEMA */
/**********************************************************/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "program.h"
#include "libcmp.h"
#include "general.h"
#include "protos.h"
/************************************************************/
void SetStructFather( EDA_BaseStruct* Struct, BASE_SCREEN* Screen )
/************************************************************/
{
switch( Struct->Type() )
{
case DRAW_POLYLINE_STRUCT_TYPE:
case DRAW_JUNCTION_STRUCT_TYPE:
case DRAW_TEXT_STRUCT_TYPE:
case DRAW_LABEL_STRUCT_TYPE:
case DRAW_GLOBAL_LABEL_STRUCT_TYPE:
case DRAW_LIB_ITEM_STRUCT_TYPE:
case DRAW_SEGMENT_STRUCT_TYPE:
case DRAW_BUSENTRY_STRUCT_TYPE:
case DRAW_SHEET_STRUCT_TYPE:
case DRAW_MARKER_STRUCT_TYPE:
case DRAW_NOCONNECT_STRUCT_TYPE:
Struct->m_Parent = Screen;
break;
case DRAW_SHEETLABEL_STRUCT_TYPE:
case DRAW_PICK_ITEM_STRUCT_TYPE:
break;
default:
break;
}
}
/*************************************************************/
void EDA_BaseStruct::Place( WinEDA_DrawFrame* frame, wxDC* DC )
/*************************************************************/
{
if( m_Flags & IS_NEW )
{
Pnext = frame->m_CurrentScreen->EEDrawList;
frame->m_CurrentScreen->EEDrawList = this;
g_ItemToRepeat = this;
}
m_Flags = 0;
SetFlagModify( frame->GetScreen() );
frame->GetScreen()->SetCurItem( NULL );
frame->DrawPanel->ManageCurseur = NULL;
frame->DrawPanel->ForceCloseManageCurseur = NULL;
frame->DrawPanel->CursorOff( DC ); // Erase schematic cursor
RedrawOneStruct( frame->DrawPanel, DC, this, GR_DEFAULT_DRAWMODE );
frame->DrawPanel->CursorOn( DC ); // Display schematic cursor
}
/**************************************************/
/* Class SCH_SCREEN: classe de gestion d'un affichage pour schematique */
/***************************************************/
static int table_zoom[] = { 1, 2, 4, 8, 16, 32, 64, 128, 0 }; /* Valeurs standards du zoom */
/* Constructeur de SCREEN */
SCH_SCREEN::SCH_SCREEN( EDA_BaseStruct* parent, WinEDA_DrawFrame* frame_source, int idtype ) :
BASE_SCREEN( parent, frame_source, idtype )
{
EEDrawList = NULL; /* Schematic items list */
m_Zoom = 32;
m_Grid = wxSize( 50, 50 ); /* pas de la grille */
SetZoomList( table_zoom );
SetGridList( g_GridList );
m_UndoRedoCountMax = 10;
}
/****************************/
SCH_SCREEN::~SCH_SCREEN()
/****************************/
{
ClearUndoRedoList();
FreeDrawList();
}
/*************************************/
SCH_SCREEN* SCH_SCREEN::GenCopy()
/*************************************/
{
// TODO
return NULL;
}
/***********************************/
void SCH_SCREEN::FreeDrawList()
/***********************************/
/* Routine to clear EESchema drawing list of a screen.
*/
{
EDA_BaseStruct* DrawStruct;
while( EEDrawList != NULL )
{
DrawStruct = EEDrawList;
EEDrawList = EEDrawList->Pnext;
delete DrawStruct;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,730 +0,0 @@
/***********************************************************/
/* genliste.cpp */
/* Module de generation de listing de composants, labels.. */
/***********************************************************/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "program.h"
#include "libcmp.h"
#include "general.h"
#include "netlist.h"
#include "protos.h"
/* Structures pour memo et liste des elements */
typedef struct ListLabel
{
int Type();
void * m_Label;
int m_SheetNumber;
} ListLabel;
/* fonctions locales */
static void GenereListeOfItems(wxWindow * frame, const wxString & FullFileName);
static int GenListeGLabels( ListLabel * List );
static int ListTriComposantByRef(EDA_SchComponentStruct **Objet1,
EDA_SchComponentStruct **Objet2);
static int ListTriComposantByVal(EDA_SchComponentStruct **Objet1,
EDA_SchComponentStruct **Objet2);
static int ListTriGLabelBySheet(ListLabel *Objet1, ListLabel *Objet2);
static int ListTriGLabelByVal(ListLabel *Objet1, ListLabel *Objet2);
static void DeleteSubCmp( EDA_BaseStruct ** List , int NbItems);
static int PrintListeCmpByRef( FILE *f, EDA_BaseStruct **List, int NbItems);
static int PrintListeCmpByVal( FILE *f, EDA_BaseStruct **List, int NbItems);
static int PrintListeGLabel( FILE *f, ListLabel *List, int NbItems);
// Constantes:
#define LISTCMP_BY_REF 1
#define LISTCMP_BY_VAL 2
#define LIST_SUBCMP 4
#define LIST_HPINS_BY_NAME 8
#define LIST_HPINS_BY_SHEET 0x10
/* Variable locales */
int ItemsToList = LISTCMP_BY_REF | LISTCMP_BY_VAL;
enum id_tools {
ID_TOOLS_GEN_LIST = 1500,
ID_EXIT_TOOLS,
ID_SET_FILENAME_LIST
};
/* Classe de la frame de gestion de l'annotation */
class WinEDA_GenCmpListFrame: public wxDialog
{
public:
WinEDA_DrawFrame * m_Parent;
wxCheckBox * m_ListCmpbyRefItems;
wxCheckBox * m_ListCmpbyValItems;
wxCheckBox * m_ListSubCmpItems;
wxCheckBox * m_GenListLabelsbyVal;
wxCheckBox * m_GenListLabelsbySheet;
wxString m_LibArchiveFileName;
wxString m_ListFileName;
// Constructor and destructor
WinEDA_GenCmpListFrame(WinEDA_DrawFrame *parent, wxPoint& pos);
~WinEDA_GenCmpListFrame() {};
void GenList(wxCommandEvent& event);
void GenListUpdateOpt();
void ToolsExit(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(WinEDA_GenCmpListFrame, wxDialog)
EVT_BUTTON(ID_EXIT_TOOLS, WinEDA_GenCmpListFrame::ToolsExit)
EVT_BUTTON(ID_TOOLS_GEN_LIST, WinEDA_GenCmpListFrame::GenList)
END_EVENT_TABLE()
/***************************************************************/
void InstallToolsFrame(WinEDA_DrawFrame *parent, wxPoint & pos)
/***************************************************************/
{
WinEDA_GenCmpListFrame * frame = new WinEDA_GenCmpListFrame(parent, pos);
frame->ShowModal(); frame->Destroy();
}
/*****************************************************************************/
WinEDA_GenCmpListFrame::WinEDA_GenCmpListFrame(WinEDA_DrawFrame *parent,
wxPoint& framepos):
wxDialog(parent, -1, _("List of Material"), framepos, wxSize(360, 200),
DIALOG_STYLE)
/*****************************************************************************/
{
wxPoint pos;
m_Parent = parent;
SetFont(*g_DialogFont);
if ( (framepos.x == -1) && (framepos.x == -1) ) Centre();
/* Calcul du nom du fichier d'archivage */
m_LibArchiveFileName = MakeFileName(wxEmptyString,ScreenSch->m_FileName,wxEmptyString);
/* mise a jour extension */
ChangeFileNameExt(m_LibArchiveFileName, g_LibExtBuffer);
/* Calcul du nom du fichier de listage */
m_ListFileName = MakeFileName(wxEmptyString,ScreenSch->m_FileName,wxEmptyString);
/* mise a jour extension */
ChangeFileNameExt(m_ListFileName, wxT(".lst"));
pos.x = 5; pos.y = 15;
new wxStaticBox(this, -1,_(" List items: "), pos, wxSize(230, 120));
pos.x = 10; pos.y += 22;
m_ListCmpbyRefItems = new wxCheckBox(this,-1, _("Components by Reference"), pos);
if ( ItemsToList & LISTCMP_BY_REF ) m_ListCmpbyRefItems->SetValue(TRUE);
pos.y += 17;
m_ListCmpbyValItems = new wxCheckBox(this,-1, _("Components by Value"), pos);
if ( ItemsToList & LISTCMP_BY_VAL ) m_ListCmpbyValItems->SetValue(TRUE);
pos.y += 17;
m_ListSubCmpItems = new wxCheckBox(this,-1, _("Sub Components (i.e U2A, U2B..)"), pos);
if ( ItemsToList & LIST_SUBCMP ) m_ListSubCmpItems->SetValue(TRUE);
pos.y += 17;
m_GenListLabelsbyVal = new wxCheckBox(this,-1, _("Hierachy Pins by name"), pos);
if ( ItemsToList & LIST_HPINS_BY_NAME ) m_GenListLabelsbyVal->SetValue(TRUE);
pos.y += 17;
m_GenListLabelsbySheet = new wxCheckBox(this,-1, _("Hierachy Pins by Sheets"), pos);
if ( ItemsToList & LIST_HPINS_BY_SHEET ) m_GenListLabelsbySheet->SetValue(TRUE);
/* Creation des boutons de commande */
pos.x = 260; pos.y = 40;
wxButton * Button = new wxButton(this, ID_TOOLS_GEN_LIST,
_("&Create List"), pos);
Button->SetForegroundColour(*wxRED);
pos.y += Button->GetSize().y + 5;
Button = new wxButton(this, ID_EXIT_TOOLS,
_("&Exit"), pos);
Button->SetForegroundColour(*wxBLUE);
}
// Fonctions de positionnement des variables d'option
void WinEDA_GenCmpListFrame::GenListUpdateOpt()
{
ItemsToList = 0;
if ( m_ListCmpbyRefItems->GetValue() ) ItemsToList |= LISTCMP_BY_REF;
if ( m_ListCmpbyValItems->GetValue() ) ItemsToList |= LISTCMP_BY_VAL;
if ( m_ListSubCmpItems->GetValue() ) ItemsToList |= LIST_SUBCMP;
if ( m_GenListLabelsbyVal->GetValue() ) ItemsToList |= LIST_HPINS_BY_NAME;
if ( m_GenListLabelsbySheet->GetValue() ) ItemsToList |= LIST_HPINS_BY_SHEET;
}
void WinEDA_GenCmpListFrame::GenList(wxCommandEvent& event)
{
#define EXT_LIST wxT(".lst")
wxString mask, filename;
GenListUpdateOpt();
mask = wxT("*"); mask += EXT_LIST;
filename = EDA_FileSelector(_("List of material:"),
wxEmptyString, /* Chemin par defaut (ici dir courante) */
m_ListFileName, /* nom fichier par defaut, et resultat */
EXT_LIST, /* extension par defaut */
mask, /* Masque d'affichage */
this,
wxSAVE,
TRUE
);
if ( filename.IsEmpty() ) return;
else m_ListFileName = filename;
GenereListeOfItems(this, m_ListFileName);
Close();
}
void WinEDA_GenCmpListFrame::ToolsExit(wxCommandEvent& event)
{
GenListUpdateOpt();
Close();
}
/***************************************************************************/
static void GenereListeOfItems(wxWindow * frame, const wxString & FullFileName)
/***************************************************************************/
/*
Routine principale pour la creation des listings ( composants et/ou labels
globaux et "sheet labels" )
*/
{
FILE *f;
EDA_BaseStruct ** List;
ListLabel * ListOfLabels;
int NbItems;
char Line[1024];
wxString msg;
/* Creation de la liste des elements */
if ((f = wxFopen(FullFileName, wxT("wt"))) == NULL)
{
msg = _("Failed to open file "); msg << FullFileName;
DisplayError(frame, msg);
return;
}
NbItems = GenListeCmp(NULL );
if ( NbItems )
{
List = (EDA_BaseStruct **)
MyZMalloc( NbItems * sizeof(EDA_BaseStruct **) );
if (List == NULL )
{
fclose(f); return;
}
GenListeCmp(List);
/* generation du fichier listing */
DateAndTime(Line);
fprintf( f, "%s >> Creation date: %s\n", CONV_TO_UTF8(Main_Title), Line );
/* Tri et impression de la liste des composants */
qsort( List, NbItems, sizeof( EDA_BaseStruct * ),
(int(*)(const void*, const void*))ListTriComposantByRef);
if( (ItemsToList & LIST_SUBCMP) == 0 ) DeleteSubCmp(List, NbItems);
if( (ItemsToList & LISTCMP_BY_REF) )
{
PrintListeCmpByRef(f, List, NbItems);
}
if( (ItemsToList & LISTCMP_BY_VAL) )
{
qsort( List, NbItems, sizeof( EDA_BaseStruct * ),
(int(*)(const void*, const void*))ListTriComposantByVal);
PrintListeCmpByVal(f, List, NbItems);
}
MyFree( List );
}
/***************************************/
/* Generation liste des Labels globaux */
/***************************************/
NbItems = GenListeGLabels( NULL );
if ( NbItems )
{
ListOfLabels = (ListLabel *) MyZMalloc( NbItems * sizeof(ListLabel) );
if (ListOfLabels == NULL )
{
fclose(f); return;
}
GenListeGLabels(ListOfLabels);
/* Tri de la liste */
if( (ItemsToList & LIST_HPINS_BY_SHEET) )
{
qsort( ListOfLabels, NbItems, sizeof( ListLabel ),
(int(*)(const void*, const void*))ListTriGLabelBySheet);
msg = _("\n#Glob labels ( order = Sheet Number )\n");
fprintf( f, "%s", CONV_TO_UTF8(msg));
PrintListeGLabel(f, ListOfLabels, NbItems);
}
if( (ItemsToList & LIST_HPINS_BY_NAME) )
{
qsort( ListOfLabels, NbItems, sizeof( ListLabel ),
(int(*)(const void*, const void*))ListTriGLabelByVal);
msg = _("\n#Glob labels ( order = Alphab. )\n");
fprintf( f, "%s", CONV_TO_UTF8(msg));
PrintListeGLabel(f, ListOfLabels, NbItems);
}
MyFree( ListOfLabels );
}
msg = _("\n#End List\n");
fprintf( f, "%s", CONV_TO_UTF8(msg));
fclose(f);
}
/****************************************/
int GenListeCmp( EDA_BaseStruct ** List )
/****************************************/
/* Routine de generation de la liste des elements utiles du dessin
Si List == NULL: comptage des elements
Sinon remplissage de la liste
Initialise "FlagControlMulti" a SheetNumber pour la sortie des listes
et m_Father comme pointeur sur la sheet d'appartenance
*/
{
int ii = 0;
EDA_BaseStruct *DrawList;
EDA_SchComponentStruct *DrawLibItem;
BASE_SCREEN * screen = ScreenSch;
for( ; screen != NULL ; screen = (BASE_SCREEN*)screen->Pnext )
{
DrawList = screen->EEDrawList;
while ( DrawList )
{
switch( DrawList->Type() )
{
case DRAW_LIB_ITEM_STRUCT_TYPE :
ii++;
DrawLibItem = (EDA_SchComponentStruct *) DrawList;
DrawLibItem->m_FlagControlMulti = screen->m_SheetNumber;
DrawLibItem->m_Parent = screen;
if( List )
{
*List = DrawList; List++;
}
break;
default: break;
}
DrawList = DrawList->Pnext;
}
}
return ( ii );
}
/*********************************************/
static int GenListeGLabels( ListLabel * List )
/*********************************************/
/* Count the Glabels, or fill the list Listwith Glabel pointers
If List == NULL: Item count only
Else fill list of Glabels
*/
{
int ii = 0;
EDA_BaseStruct *DrawList;
DrawSheetLabelStruct *SheetLabel;
BASE_SCREEN * screen = ScreenSch;
for( ; screen != NULL ; screen = (BASE_SCREEN*)screen->Pnext )
{
DrawList = screen->EEDrawList;
while ( DrawList )
{
switch( DrawList->Type() )
{
case DRAW_GLOBAL_LABEL_STRUCT_TYPE :
if( List )
{
List->Type() = DRAW_TEXT_STRUCT_TYPE;
List->m_SheetNumber = screen->m_SheetNumber;
List->m_Label = DrawList; List++;
}
ii++;
break;
case DRAW_SHEET_STRUCT_TYPE :
{
#define Sheet ((DrawSheetStruct * ) DrawList)
SheetLabel= Sheet->m_Label;
while( SheetLabel != NULL )
{
if ( List )
{
List->Type() = DRAW_SHEETLABEL_STRUCT_TYPE;
List->m_SheetNumber = screen->m_SheetNumber;
List->m_Label = SheetLabel;
List++;
}
ii++;
SheetLabel = (DrawSheetLabelStruct*)(SheetLabel->Pnext);
}
break;
}
default: break;
}
DrawList = DrawList->Pnext;
}
}
return ( ii );
}
/**********************************************************/
static int ListTriComposantByVal(EDA_SchComponentStruct **Objet1,
EDA_SchComponentStruct **Objet2)
/**********************************************************/
/* Routine de comparaison pour le tri du Tableau par qsort()
Les composants sont tries
par valeur
si meme valeur: par reference
si meme valeur: par numero d'unite
*/
{
int ii;
const wxString * Text1, *Text2;
if( (*Objet1 == NULL) && (*Objet2 == NULL ) ) return(0);
if( *Objet1 == NULL) return(-1);
if( *Objet2 == NULL) return(1);
Text1 = &(*Objet1)->m_Field[VALUE].m_Text;
Text2 = &(*Objet2)->m_Field[VALUE].m_Text;
ii = Text1->CmpNoCase(*Text2);
if( ii == 0 )
{
Text1 = &(*Objet1)->m_Field[REFERENCE].m_Text;
Text2 = &(*Objet2)->m_Field[REFERENCE].m_Text;
ii = Text1->CmpNoCase(*Text2);
}
if ( ii == 0 )
{
ii = (*Objet1)->m_Multi - (*Objet2)->m_Multi;
}
return(ii);
}
/**********************************************************/
static int ListTriComposantByRef(EDA_SchComponentStruct **Objet1,
EDA_SchComponentStruct **Objet2)
/**********************************************************/
/* Routine de comparaison pour le tri du Tableau par qsort()
Les composants sont tries
par reference
si meme referenece: par valeur
si meme valeur: par numero d'unite
*/
{
int ii;
const wxString * Text1, *Text2;
if( (*Objet1 == NULL) && (*Objet2 == NULL ) ) return(0);
if( *Objet1 == NULL) return(-1);
if( *Objet2 == NULL) return(1);
Text1 = &(*Objet1)->m_Field[REFERENCE].m_Text;
Text2 = &(*Objet2)->m_Field[REFERENCE].m_Text;
ii = Text1->CmpNoCase(*Text2);
if( ii == 0 )
{
Text1 = &(*Objet1)->m_Field[VALUE].m_Text;
Text2 = &(*Objet2)->m_Field[VALUE].m_Text;
ii = Text1->CmpNoCase(*Text2);
}
if ( ii == 0 )
{
ii = (*Objet1)->m_Multi - (*Objet2)->m_Multi;
}
return(ii);
}
/******************************************************************/
static int ListTriGLabelByVal(ListLabel *Objet1, ListLabel *Objet2)
/*******************************************************************/
/* Routine de comparaison pour le tri du Tableau par qsort()
Les labels sont tries
par comparaison ascii
si meme valeur: par numero de sheet
*/
{
int ii;
const wxString * Text1, *Text2;
if( Objet1->Type() == DRAW_SHEETLABEL_STRUCT_TYPE )
Text1 = &((DrawSheetLabelStruct *)Objet1->m_Label)->m_Text;
else
Text1 = &((DrawTextStruct *)Objet1->m_Label)->m_Text;
if( Objet2->Type() == DRAW_SHEETLABEL_STRUCT_TYPE )
Text2 = &((DrawSheetLabelStruct *)Objet2->m_Label)->m_Text;
else
Text2 = &((DrawTextStruct *)Objet2->m_Label)->m_Text;
ii = Text1->CmpNoCase(*Text2);
if ( ii == 0 )
{
ii = Objet1->m_SheetNumber - Objet2->m_SheetNumber;
}
return(ii);
}
/*******************************************************************/
static int ListTriGLabelBySheet(ListLabel *Objet1, ListLabel *Objet2)
/*******************************************************************/
/* Routine de comparaison pour le tri du Tableau par qsort()
Les labels sont tries
par sheet number
si meme valeur, par ordre alphabetique
*/
{
int ii;
const wxString * Text1, *Text2;
ii = Objet1->m_SheetNumber - Objet2->m_SheetNumber;
if ( ii == 0 )
{
if( Objet1->Type() == DRAW_SHEETLABEL_STRUCT_TYPE )
Text1 = &((DrawSheetLabelStruct *)Objet1->m_Label)->m_Text;
else
Text1 = &((DrawTextStruct *)Objet1->m_Label)->m_Text;
if( Objet2->Type() == DRAW_SHEETLABEL_STRUCT_TYPE )
Text2 = &((DrawSheetLabelStruct *)Objet2->m_Label)->m_Text;
else
Text2 = &((DrawTextStruct *)Objet2->m_Label)->m_Text;
ii = Text1->CmpNoCase(*Text2);
}
return(ii);
}
/**************************************************************/
static void DeleteSubCmp( EDA_BaseStruct ** List, int NbItems )
/**************************************************************/
/* Supprime les sous-composants, c'est a dire les descriptions redonnantes des
boitiers multiples
La liste des composant doit etre triee par reference et par num d'unite
*/
{
int ii;
EDA_SchComponentStruct * LibItem;
const wxString * OldName = NULL;
for( ii = 0; ii < NbItems ; ii++ )
{
LibItem = (EDA_SchComponentStruct *) List[ii];
if ( LibItem == NULL ) continue;
if( OldName )
{
if ( OldName->CmpNoCase( LibItem->m_Field[REFERENCE].m_Text ) == 0 )
{
List[ii] = NULL;
}
}
OldName = &LibItem->m_Field[REFERENCE].m_Text;
}
}
/**********************************************************************/
int PrintListeCmpByRef( FILE * f, EDA_BaseStruct ** List, int NbItems )
/**********************************************************************/
/* Impression de la liste des composants tries par reference
*/
{
int ii, Multi, Unit;
EDA_BaseStruct *DrawList;
EDA_SchComponentStruct *DrawLibItem;
EDA_LibComponentStruct *Entry;
char NameCmp[80];
wxString msg;
msg = _("\n#Cmp ( order = Reference )");
if ( (ItemsToList & LIST_SUBCMP) ) msg << _(" (with SubCmp)");
fprintf( f, "%s\n", CONV_TO_UTF8(msg));
for ( ii = 0; ii < NbItems; ii++ )
{
DrawList = List[ii];
if( DrawList == NULL ) continue;
if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) continue;
DrawLibItem = (EDA_SchComponentStruct *) DrawList;
if( DrawLibItem->m_Field[REFERENCE].m_Text[0] == '#' ) continue;
Multi = 0; Unit = ' ';
Entry = FindLibPart(DrawLibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT);
if( Entry ) Multi = Entry->m_UnitCount;
if( (Multi > 1 ) && ( ItemsToList & LIST_SUBCMP ) )
Unit = DrawLibItem->m_Multi + 'A' - 1;
sprintf( NameCmp,"%s%c", CONV_TO_UTF8(DrawLibItem->m_Field[REFERENCE].m_Text),
Unit);
fprintf(f, "| %-10.10s %-12.12s",
NameCmp,
CONV_TO_UTF8(DrawLibItem->m_Field[VALUE].m_Text));
if ( (ItemsToList & LIST_SUBCMP) )
{
BASE_SCREEN * screen = (BASE_SCREEN *)(DrawLibItem->m_Parent);
wxString sheetname;
if( screen->m_Parent )
sheetname = ((DrawSheetStruct*)screen->m_Parent)->m_Field[VALUE].m_Text.GetData();
else sheetname = _("Root");
fprintf(f, " (Sheet %.2d: \"%s\")", DrawLibItem->m_FlagControlMulti,
CONV_TO_UTF8(sheetname));
}
fprintf(f,"\n");
}
msg = _("#End Cmp\n");
fprintf(f, CONV_TO_UTF8(msg));
return(0);
}
/***********************************************************************/
int PrintListeCmpByVal( FILE * f, EDA_BaseStruct ** List, int NbItems )
/**********************************************************************/
{
int ii, Multi;
wxChar Unit;
EDA_BaseStruct *DrawList;
EDA_SchComponentStruct *DrawLibItem;
EDA_LibComponentStruct *Entry;
wxString msg;
msg = _("\n#Cmp ( order = Value )");
if ( (ItemsToList & LIST_SUBCMP) ) msg << _(" (with SubCmp)");
msg << wxT("\n");
fprintf(f, CONV_TO_UTF8(msg));
for ( ii = 0; ii < NbItems; ii++ )
{
DrawList = List[ii];
if( DrawList == NULL ) continue;
if( DrawList->Type() != DRAW_LIB_ITEM_STRUCT_TYPE ) continue;
DrawLibItem = (EDA_SchComponentStruct *) DrawList;
if( DrawLibItem->m_Field[REFERENCE].m_Text[0] == '#' ) continue;
Multi = 0; Unit = ' ';
Entry = FindLibPart(DrawLibItem->m_ChipName.GetData(), wxEmptyString, FIND_ROOT);
if( Entry ) Multi = Entry->m_UnitCount;
if( (Multi > 1 ) && ( ItemsToList & LIST_SUBCMP ) )
Unit = DrawLibItem->m_Multi + 'A' - 1;
msg = DrawLibItem->m_Field[REFERENCE].m_Text;
msg.Append(Unit);
fprintf(f, "| %-12.12s %-10.10s",
CONV_TO_UTF8(DrawLibItem->m_Field[VALUE].m_Text),
CONV_TO_UTF8(msg) );
if ( (ItemsToList & LIST_SUBCMP) )
{
fprintf(f, " (Sheet %.2d)", DrawLibItem->m_FlagControlMulti);
}
fprintf(f,"\n");
}
msg = _("#End Cmp\n");
fprintf(f, CONV_TO_UTF8(msg));
return(0);
}
/******************************************************************/
static int PrintListeGLabel( FILE *f, ListLabel *List, int NbItems)
/******************************************************************/
{
int ii, jj;
DrawGlobalLabelStruct *DrawTextItem;
DrawSheetLabelStruct * DrawSheetLabel;
ListLabel * LabelItem;
wxString msg;
for ( ii = 0; ii < NbItems; ii++ )
{
LabelItem = & List[ii];
switch( LabelItem->Type() )
{
case DRAW_GLOBAL_LABEL_STRUCT_TYPE :
DrawTextItem = (DrawGlobalLabelStruct *)(LabelItem->m_Label);
msg.Printf(
_("> %-28.28s Global (Sheet %.2d) pos: %3.3f, %3.3f\n"),
DrawTextItem->m_Text.GetData(),
LabelItem->m_SheetNumber,
(float)DrawTextItem->m_Pos.x / 1000,
(float)DrawTextItem->m_Pos.y / 1000);
fprintf(f, CONV_TO_UTF8(msg));
break;
case DRAW_SHEETLABEL_STRUCT_TYPE :
{
DrawSheetLabel = (DrawSheetLabelStruct *) LabelItem->m_Label;
jj = DrawSheetLabel->m_Shape;
if ( jj < 0 ) jj = NET_TMAX; if ( jj > NET_TMAX ) jj = 4;
wxString labtype = CONV_FROM_UTF8(SheetLabelType[jj]);
msg.Printf(
_("> %-28.28s Sheet %-7.7s (Sheet %.2d) pos: %3.3f, %3.3f\n"),
DrawSheetLabel->m_Text.GetData(),
labtype.GetData(),
LabelItem->m_SheetNumber,
(float)DrawSheetLabel->m_Pos.x / 1000,
(float)DrawSheetLabel->m_Pos.y / 1000);
fprintf(f, CONV_TO_UTF8(msg));
}
break;
default: break;
}
}
msg = _("#End labels\n");
fprintf(f, CONV_TO_UTF8(msg));
return(0);
}

File diff suppressed because it is too large Load Diff

View File

@ -63,8 +63,9 @@ WinEDA_LibeditFrame::WinEDA_LibeditFrame( wxWindow* father,
WinEDA_App* parent,
const wxString& title,
const wxPoint& pos,
const wxSize& size ) :
WinEDA_DrawFrame( father, LIBEDITOR_FRAME, parent, title, pos, size )
const wxSize& size,
long style ) :
WinEDA_DrawFrame( father, LIBEDITOR_FRAME, parent, title, pos, size, style )
{
m_FrameName = wxT( "LibeditFrame" );
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines

View File

@ -1,285 +0,0 @@
/*************************/
/* eeschema: options.cpp */
/*************************/
/*
Gestion de la fenetre des options generales:
Grille
Unites d'affichage
options complementaires (increments X, Y et label pour la fct de repetition
*/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "program.h"
#include "libcmp.h"
#include "general.h"
#include "id.h"
#include "wx/spinctrl.h"
#include "protos.h"
/* Variables locales */
/* Fonctions locales: */
enum options_id {
ID_OPTION_ACCEPT = 3900,
ID_OPTION_CANCEL,
ID_GRID_SIZE,
ID_SHOW_GRID,
ID_GRID_NORMAL,
ID_GRID_SMALL,
ID_GRID_VERY_SMALL,
ID_SEL_SHOW_PINS,
ID_SEL_HV_WIRE,
ID_SEL_SHOW_PAGE_LIMITS,
ID_SEL_METRIC
};
/*************************************************************/
/* classe derivee pour la frame de Configuration des options*/
/*************************************************************/
class WinEDA_SetOptionsFrame: public wxDialog
{
private:
WinEDA_DrawFrame * m_Parent;
wxCheckBox * m_ShowGridButt;
wxCheckBox * m_AutoPANOpt;
wxRadioBox * m_SelGridSize;
wxRadioBox * m_SelShowPins;
wxRadioBox * m_Selunits;
wxRadioBox * m_SelDirWires;
wxRadioBox * m_Show_Page_Limits;
WinEDA_SizeCtrl * m_DeltaStepCtrl;
wxSpinCtrl * m_DeltaLabelCtrl;
public:
// Constructor and destructor
WinEDA_SetOptionsFrame(WinEDA_DrawFrame *parent, const wxPoint& framepos);
~WinEDA_SetOptionsFrame() {};
private:
void Accept(wxCommandEvent& event);
void OnCancel(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
};
/* Table des evenements pour WinEDA_SetOptionsFrame */
BEGIN_EVENT_TABLE(WinEDA_SetOptionsFrame, wxDialog)
EVT_BUTTON(ID_OPTION_ACCEPT, WinEDA_SetOptionsFrame::Accept)
EVT_BUTTON(ID_OPTION_CANCEL, WinEDA_SetOptionsFrame::OnCancel)
END_EVENT_TABLE()
/**************************************************************************/
void DisplayOptionFrame(WinEDA_DrawFrame * parent, const wxPoint & framepos)
/**************************************************************************/
{
WinEDA_SetOptionsFrame * frame =
new WinEDA_SetOptionsFrame(parent, framepos);
frame->ShowModal(); frame->Destroy();
}
/***********************************************************************/
WinEDA_SetOptionsFrame::WinEDA_SetOptionsFrame(WinEDA_DrawFrame *parent,
const wxPoint& framepos):
wxDialog(parent, -1, _("EESchema Preferences"), framepos,
wxSize(450, 340), DIALOG_STYLE)
/***********************************************************************/
{
#define START_Y 10
wxButton * Button;
wxPoint pos;
wxSize size;
int w, h;
m_Parent = parent;
SetFont(*g_DialogFont);
pos.x = 330; pos.y = START_Y;
Button = new wxButton(this, ID_OPTION_ACCEPT, _("OK"), pos);
Button->SetForegroundColour(*wxRED);
pos.y += Button->GetDefaultSize().y + 5;
Button = new wxButton(this, ID_OPTION_CANCEL, _("Cancel"), pos);
Button->SetForegroundColour(*wxBLUE);
pos.x = 5; pos.y = START_Y;
m_ShowGridButt = new wxCheckBox( this, ID_SHOW_GRID, _("Show grid"),
pos);
m_ShowGridButt->SetValue(m_Parent->m_Draw_Grid);
pos.x += 150;
m_AutoPANOpt = new wxCheckBox( this, ID_SHOW_GRID, _("Auto PAN"),
pos);
m_AutoPANOpt->SetValue(m_Parent->DrawPanel-> m_AutoPAN_Enable);
m_AutoPANOpt->SetForegroundColour(*wxBLUE);
pos.x = 5; pos.y += 25;
wxString grid_choice[6] = { _("Normal (50 mils)"),
_("Small (25 mils)"),
_("Very small (10 mils)"),
_("Special (5 mils)"),
_("Special (2 mils)"),
_("Special (1 mil)"), };
m_SelGridSize = new wxRadioBox(this, ID_GRID_SIZE,
_("Grid Size"), pos,
wxDefaultSize, 6, grid_choice, 1, wxRA_SPECIFY_COLS);
if ( m_Parent->GetScreen() )
{
switch( m_Parent->GetScreen()->GetGrid().x )
{
case 50:
m_SelGridSize->SetSelection(0);
break;
case 25:
m_SelGridSize->SetSelection(1);
break;
case 10:
m_SelGridSize->SetSelection(2);
break;
case 5:
m_SelGridSize->SetSelection(3);
break;
case 2:
m_SelGridSize->SetSelection(4);
break;
case 1:
m_SelGridSize->SetSelection(5);
break;
default:
DisplayError(this, wxT("WinEDA_SetOptionsFrame: Grid value not handle"));
break;
}
}
/* Choix d' l'affichage des pins invisibles */
m_SelGridSize->GetSize(&w, &h);
pos.y += h + 20;
wxString pin_choice[2] = { _("Normal"), _("Show alls") };
m_SelShowPins = new wxRadioBox(this, ID_SEL_SHOW_PINS,
_("Show pins"), pos,
wxDefaultSize, 2, pin_choice, 1, wxRA_SPECIFY_COLS);
m_SelShowPins->SetSelection( g_ShowAllPins ? TRUE : FALSE);
/* Choix de l'affichage des unites */
pos.x = 15 + w; pos.y = START_Y + 25;
wxString unit_choice[2] = { _("millimeters"), _("inches") };
m_Selunits = new wxRadioBox(this, ID_SEL_METRIC,
_("Units"), pos,
wxDefaultSize, 2, unit_choice, 1, wxRA_SPECIFY_COLS);
m_Selunits->SetSelection( UnitMetric ? 0 : 1);
/* Choix de l'orientation des bus et wires */
m_Selunits->GetSize(&w, &h);
pos.y += h + 15;
wxString dir_choice[2] = { _("Horiz/Vertical"), _("Any") };
m_SelDirWires = new wxRadioBox(this, ID_SEL_HV_WIRE,
_("Wires - Bus orient"), pos,
wxDefaultSize, 2, dir_choice, 1, wxRA_SPECIFY_COLS);
m_SelDirWires->SetSelection( g_HVLines ? 0 : 1);
m_SelDirWires->GetSize(&w, &h);
pos.y += h + 15;
wxString show_page_limits_choice[2] = { _("Yes"), _("No") };
m_Show_Page_Limits = new wxRadioBox(this, ID_SEL_SHOW_PAGE_LIMITS,
_("Show page limits"), pos,
wxDefaultSize, 2, show_page_limits_choice, 1, wxRA_SPECIFY_COLS);
m_Show_Page_Limits->SetSelection( g_ShowPageLimits ? 0 : 1);
/* Choix des parametres pour la fonction de repetition */
size.x = 100; size.y = -1;
pos.y = 90; pos.x = 320;
m_DeltaStepCtrl = new WinEDA_SizeCtrl(this, _("Delta Step"),
g_RepeatStep,
UnitMetric, pos, m_Parent->m_InternalUnits);
pos.y += 10 + m_DeltaStepCtrl->GetDimension().y;
new wxStaticText(this, -1, _("Delta Label:"),
wxPoint(pos.x, pos.y ),
wxSize(-1,-1), 0 );
wxString val;
pos.y += 14;
val << g_RepeatDeltaLabel;
m_DeltaLabelCtrl = new wxSpinCtrl(this, -1, val, pos);
m_DeltaLabelCtrl->SetRange(-16, +16);
}
/**************************************************************************/
void WinEDA_SetOptionsFrame::OnCancel(wxCommandEvent& event)
/**************************************************************************/
{
Close(TRUE);
}
/**************************************************************************/
void WinEDA_SetOptionsFrame::Accept(wxCommandEvent& event)
/**************************************************************************/
{
wxSize grid;
bool setgrid = TRUE;
g_RepeatStep = m_DeltaStepCtrl->GetCoord();
g_RepeatDeltaLabel = m_DeltaLabelCtrl->GetValue();
if ( m_Show_Page_Limits->GetSelection() == 0 ) g_ShowPageLimits = TRUE;
else g_ShowPageLimits = FALSE;
if ( m_SelDirWires->GetSelection() == 0 ) g_HVLines = 1;
else g_HVLines = 0;
if ( m_Selunits->GetSelection() == 0 ) UnitMetric = 1;
else UnitMetric = 0;
if ( m_SelShowPins->GetSelection() == 0 ) g_ShowAllPins = FALSE;
else g_ShowAllPins = TRUE;
g_ShowGrid = m_Parent->m_Draw_Grid = m_ShowGridButt->GetValue();
m_Parent->DrawPanel->m_AutoPAN_Enable = m_AutoPANOpt->GetValue();
switch( m_SelGridSize->GetSelection() )
{
default:
setgrid = FALSE;
break;
case 0:
grid = wxSize(50,50);
break;
case 1:
grid = wxSize(25,25);
break;
case 2:
grid = wxSize(10,10);
break;
}
if ( m_Parent->m_CurrentScreen )
{
if ( setgrid ) m_Parent->m_CurrentScreen->SetGrid(grid);
m_Parent->m_CurrentScreen->SetRefreshReq();
}
Close(TRUE);
}

View File

@ -1,172 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: optionsframe.cpp
// Purpose:
// Author: jean-pierre charras
// Modified by:
// Created: 01/27/04 14:48:57
// RCS-ID:
// Copyright: suite kicad
// Licence:
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "optionsframe.cpp"
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
////@begin includes
#include "wx/wx.h"
#include "wx/valgen.h"
////@end includes
#include "optionsframe.h"
////@begin XPM images
////@end XPM images
/*!
* DisplayOptionFrame type definition
*/
IMPLEMENT_CLASS( DisplayOptionFrame, wxDialog )
/*!
* DisplayOptionFrame event table definition
*/
BEGIN_EVENT_TABLE( DisplayOptionFrame, wxDialog )
////@begin DisplayOptionFrame event table entries
////@end DisplayOptionFrame event table entries
END_EVENT_TABLE()
/*!
* DisplayOptionFrame constructors
*/
DisplayOptionFrame::DisplayOptionFrame( )
{
}
DisplayOptionFrame::DisplayOptionFrame( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
Create(parent, id, caption, pos, size, style);
}
/*!
* optionsframe creator
*/
bool DisplayOptionFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
////@begin DisplayOptionFrame member initialisation
////@end DisplayOptionFrame member initialisation
////@begin DisplayOptionFrame creation
wxDialog::Create( parent, id, caption, pos, size, style );
CreateControls();
GetSizer()->Fit(this);
GetSizer()->SetSizeHints(this);
Centre();
////@end DisplayOptionFrame creation
return TRUE;
}
/*!
* Control creation for optionsframe
*/
void DisplayOptionFrame::CreateControls()
{
////@begin DisplayOptionFrame content construction
DisplayOptionFrame* item1 = this;
wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);
item1->SetSizer(item2);
item1->SetAutoLayout(TRUE);
wxBoxSizer* item3 = new wxBoxSizer(wxHORIZONTAL);
item2->Add(item3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxBoxSizer* item4 = new wxBoxSizer(wxHORIZONTAL);
item3->Add(item4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* item5 = new wxBoxSizer(wxVERTICAL);
item4->Add(item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxCheckBox* item6 = new wxCheckBox( item1, ID_CHECKBOX, _("Show grid"), wxDefaultPosition, wxDefaultSize, 0 );
m_ShowGridButt = item6;
item6->SetValue(FALSE);
item5->Add(item6, 0, wxALIGN_LEFT|wxALL, 5);
wxString item7Strings[] = {
_("&Normal (50 mils)"),
_("&Small (20 mils)"),
_("&Very small (10 mils)")
};
wxRadioBox* item7 = new wxRadioBox( item1, ID_RADIOBOX, _("Grid Size"), wxDefaultPosition, wxDefaultSize, 3, item7Strings, 1, 0 );
m_SelGridSize = item7;
item5->Add(item7, 0, wxALIGN_LEFT|wxALL, 5);
wxString item8Strings[] = {
_("&Normal"),
_("&inches")
};
wxRadioBox* item8 = new wxRadioBox( item1, ID_RADIOBOX1, _("Show pins"), wxDefaultPosition, wxDefaultSize, 2, item8Strings, 1, 0 );
m_SelShowPins = item8;
item5->Add(item8, 0, wxALIGN_LEFT|wxALL, 5);
wxBoxSizer* item9 = new wxBoxSizer(wxVERTICAL);
item4->Add(item9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxString item10Strings[] = {
_("&millimeters"),
_("&inches")
};
wxRadioBox* item10 = new wxRadioBox( item1, ID_RADIOBOX3, _("Units"), wxDefaultPosition, wxDefaultSize, 2, item10Strings, 1, wxRA_SPECIFY_COLS );
m_Selunits = item10;
item9->Add(item10, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
item9->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxString item12Strings[] = {
_("&Horiz/Vertical"),
_("&Any")
};
wxRadioBox* item12 = new wxRadioBox( item1, ID_RADIOBOX2, _("Wire - Bus orient"), wxDefaultPosition, wxDefaultSize, 2, item12Strings, 1, wxRA_SPECIFY_COLS );
item9->Add(item12, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxBoxSizer* item13 = new wxBoxSizer(wxVERTICAL);
item4->Add(item13, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* item14 = new wxButton( item1, ID_BUTTON, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
item14->SetForegroundColour(wxColour(255, 0, 0));
item13->Add(item14, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxButton* item15 = new wxButton( item1, ID_BUTTON1, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
item15->SetForegroundColour(wxColour(0, 0, 255));
item13->Add(item15, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
// Set validators
item6->SetValidator( wxGenericValidator(& ShowGrid ) );
////@end DisplayOptionFrame content construction
}
/*!
* Should we show tooltips?
*/
bool DisplayOptionFrame::ShowToolTips()
{
return TRUE;
}

View File

@ -1,89 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: optionsframe.h
// Purpose:
// Author: jean-pierre charras
// Modified by:
// Created: 01/27/04 14:48:57
// RCS-ID:
// Copyright: suite kicad
// Licence:
/////////////////////////////////////////////////////////////////////////////
#ifndef _OPTIONSFRAME_H_
#define _OPTIONSFRAME_H_
#ifdef __GNUG__
#pragma interface "optionsframe.h"
#endif
/*!
* Includes
*/
////@begin includes
////@end includes
/*!
* Forward declarations
*/
////@begin forward declarations
////@end forward declarations
/*!
* Control identifiers
*/
////@begin control identifiers
#define ID_DIALOG 10000
#define ID_CHECKBOX 10001
#define ID_RADIOBOX 10002
#define ID_RADIOBOX1 10003
#define ID_RADIOBOX3 10005
#define ID_RADIOBOX2 10004
#define ID_BUTTON 10006
#define ID_BUTTON1 10007
////@end control identifiers
/*!
* DisplayOptionFrame class declaration
*/
class DisplayOptionFrame: public wxDialog
{
DECLARE_CLASS( DisplayOptionFrame )
DECLARE_EVENT_TABLE()
public:
/// Constructors
DisplayOptionFrame( );
DisplayOptionFrame( wxWindow* parent, wxWindowID id = -1, const wxString& caption = _("optionsframe"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = -1, const wxString& caption = _("optionsframe"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU );
/// Creates the controls and sizers
void CreateControls();
////@begin DisplayOptionFrame event handler declarations
////@end DisplayOptionFrame event handler declarations
////@begin DisplayOptionFrame member function declarations
////@end DisplayOptionFrame member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin DisplayOptionFrame member variables
wxCheckBox* m_ShowGridButt;
wxRadioBox* m_SelGridSize;
wxRadioBox* m_SelShowPins;
wxRadioBox* m_Selunits;
WinEDA_DrawFrame * m_Parent;
////@end DisplayOptionFrame member variables
};
#endif
// _OPTIONSFRAME_H_

View File

@ -116,8 +116,8 @@ END_EVENT_TABLE()
/****************/
WinEDA_SchematicFrame:: WinEDA_SchematicFrame(wxWindow * father, WinEDA_App *parent,
const wxString & title, const wxPoint& pos, const wxSize& size) :
WinEDA_DrawFrame(father, SCHEMATIC_FRAME, parent, title, pos, size)
const wxString & title, const wxPoint& pos, const wxSize& size, long style) :
WinEDA_DrawFrame(father, SCHEMATIC_FRAME, parent, title, pos, size, style)
{
m_FrameName = wxT("SchematicFrame");
m_Draw_Axis = FALSE; // TRUE pour avoir les axes dessines

View File

@ -124,8 +124,8 @@ END_EVENT_TABLE()
/****************/
WinEDA_GerberFrame::WinEDA_GerberFrame(wxWindow * father, WinEDA_App *parent,
const wxString & title, const wxPoint& pos, const wxSize& size) :
WinEDA_BasePcbFrame(father, parent, GERBER_FRAME, title, pos, size)
const wxString & title, const wxPoint& pos, const wxSize& size, long style) :
WinEDA_BasePcbFrame(father, parent, GERBER_FRAME, title, pos, size, style)
{
m_FrameName = wxT("GerberFrame");
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines

View File

@ -35,6 +35,7 @@
// #define DIALOG_STYLE wxDEFAULT_DIALOG_STYLE|wxFRAME_FLOAT_ON_PARENT|wxSTAY_ON_TOP
#define DIALOG_STYLE wxDEFAULT_DIALOG_STYLE | wxFRAME_FLOAT_ON_PARENT | MAYBE_RESIZE_BORDER
#define KICAD_DEFAULT_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE|wxWANTS_CHARS
#define EDA_DRAW_PANEL wxScrolledWindow
class wxMyDialogModalData;
@ -168,7 +169,8 @@ public:
// Constructor and destructor
WinEDA_BasicFrame( wxWindow* father, int idtype, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE);
#ifdef KICAD_PYTHON
WinEDA_BasicFrame( const WinEDA_BasicFrame& ) { } // Should throw!!
WinEDA_BasicFrame() { } // Should throw!!
@ -239,7 +241,8 @@ public:
// Constructor and destructor
WinEDA_DrawFrame( wxWindow* father, int idtype, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_DrawFrame();
@ -352,7 +355,8 @@ protected:
public:
WinEDA_BasePcbFrame( wxWindow* father, WinEDA_App* parent, int idtype,
const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_BasePcbFrame();
@ -574,7 +578,8 @@ private:
public:
WinEDA_PcbFrame( wxWindow* father, WinEDA_App* parent, const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_PcbFrame();
@ -803,7 +808,8 @@ private:
public:
WinEDA_GerberFrame( wxWindow* father, WinEDA_App* parent, const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_GerberFrame();
@ -908,7 +914,8 @@ public:
public:
WinEDA_ModuleEditFrame( wxWindow* father, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_ModuleEditFrame();
@ -1003,7 +1010,8 @@ private:
public:
WinEDA_SchematicFrame( wxWindow* father, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_SchematicFrame();
@ -1212,7 +1220,8 @@ public:
public:
WinEDA_LibeditFrame( wxWindow* father, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size );
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_LibeditFrame();
@ -1357,9 +1366,10 @@ private:
#include "drawpanel_wxstruct.h"
/*********************************************************/
/* classe representant un ecran d'affichage des messages */
/*********************************************************/
/*********************************************************
class WinEDA_MsgPanel : this is a panel to display various infos
and messages on items in eeschema an pcbnew
*********************************************************/
/**
* Struct MsgItem
@ -1422,9 +1432,9 @@ public:
};
/******************************************************************/
/* Classe pour editer une ligne de texte dans les menus de config */
/******************************************************************/
/************************************************/
/* Class to enter a line, is some dialog frames */
/************************************************/
class WinEDA_EnterText
{
public:
@ -1460,9 +1470,9 @@ public:
}
};
/*********************************************************************/
/* Classe pour editer un texte graphique + dimension en INCHES ou MM */
/*********************************************************************/
/************************************************************************/
/* Class to edit/enter a graphic text and its dimension ( INCHES or MM )*/
/************************************************************************/
class WinEDA_GraphicTextCtrl
{
public:
@ -1494,9 +1504,9 @@ public:
};
/*****************************************************************/
/* Classe pour afficher et editer une coordonn<6E>e en INCHES ou MM */
/*****************************************************************/
/*************************************************************************************/
/*Class to edit/enter a coordinate (pair of values) ( INCHES or MM ) in dialog boxes */
/*************************************************************************************/
class WinEDA_PositionCtrl
{
public:
@ -1523,9 +1533,10 @@ public:
wxPoint GetValue();
};
/*****************************************************************/
/* Classe pour afficher et editer une coordonn<6E>e en INCHES ou MM */
/*****************************************************************/
/*************************************************************
Class to edit/enter a size (pair of values for X and Y size)
( INCHES or MM ) in dialog boxes
***************************************************************/
class WinEDA_SizeCtrl : public WinEDA_PositionCtrl
{
public:
@ -1541,9 +1552,9 @@ public:
};
/*****************************************************************/
/* Classe pour afficher et editer une valeur en INCHES ou MM */
/*****************************************************************/
/****************************************************************/
/* Class to edit/enter a value ( INCHES or MM ) in dialog boxes */
/****************************************************************/
/* internal_unit est le nombre d'unites internes par inch
* - 1000 sur EESchema
@ -1578,9 +1589,9 @@ public:
}
};
/*****************************************************************/
/* Classe pour afficher et editer une valeur double flottant */
/*****************************************************************/
/************************************************************************/
/* Class to edit/enter a pair of float (double) values in dialog boxes */
/************************************************************************/
class WinEDA_DFloatValueCtrl
{
public:

View File

@ -40,8 +40,9 @@ WinEDA_BasePcbFrame::WinEDA_BasePcbFrame( wxWindow* father,
int idtype,
const wxString& title,
const wxPoint& pos,
const wxSize& size ) :
WinEDA_DrawFrame( father, idtype, parent, title, pos, size )
const wxSize& size,
long style) :
WinEDA_DrawFrame( father, idtype, parent, title, pos, size, style )
{
m_InternalUnits = 10000; // Internal unit = 1/10000 inch
m_CurrentScreen = NULL;
@ -101,6 +102,15 @@ void WinEDA_BasePcbFrame::ReCreateMenuBar( void )
{
}
#ifdef CVPCB
/********************************************************************/
void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
/********************************************************************/
// Virtual function
{
}
#endif
#include "3d_viewer.h"
@ -119,8 +129,13 @@ void WinEDA_BasePcbFrame::Show3D_Frame( wxCommandEvent& event )
DisplayInfo( this, _( "3D Frame already opened" ) );
return;
}
m_Draw3DFrame = new WinEDA3D_DrawFrame( this, m_Parent, _( "3D Viewer" ) );
#ifdef CVPCB
m_Draw3DFrame = new WinEDA3D_DrawFrame( this, m_Parent, _( "3D Viewer" ),
KICAD_DEFAULT_3D_DRAWFRAME_STYLE | wxFRAME_FLOAT_ON_PARENT );
#else
m_Draw3DFrame = new WinEDA3D_DrawFrame( this, m_Parent, _( "3D Viewer" ) );
#endif
// Show the frame
m_Draw3DFrame->Show( TRUE );
#endif

View File

@ -23,7 +23,7 @@
/* Routines locales : */
static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC );
static void suppression_piste_non_connectee( WinEDA_PcbFrame* frame, wxDC* DC );
static void DeleteUnconnectedTracks( WinEDA_PcbFrame* frame, wxDC* DC );
static TRACK* AlignSegment( BOARD* Pcb, TRACK* pt_ref, TRACK* pt_segm, int extremite );
static void Clean_Pcb_Items( WinEDA_PcbFrame* frame, wxDC* DC );
@ -71,7 +71,7 @@ void Clean_Pcb_Items( WinEDA_PcbFrame* frame, wxDC* DC )
frame->MsgPanel->EraseMsgBox();
frame->m_Pcb->GetNumSegmTrack(); // update the count
/* construction de la liste des coordonn<6E>s des pastilles */
/* Rebuild the pad infos (pad list and netcodes) to ensure an up to date info */
frame->m_Pcb->m_Status_Pcb = 0;
frame->build_liste_pads();
frame->recalcule_pad_net_code();
@ -120,26 +120,28 @@ void Clean_Pcb_Items( WinEDA_PcbFrame* frame, wxDC* DC )
}
#ifdef CONN2PAD_ENBL
if( s_ConnectToPads ) /* Creation de points de connexion */
/* Create missing segments when a track end covers a pad or a via,
but is not on the pad or the via center */
if( s_ConnectToPads )
{
/* Raccordement des extremites de piste au centre des pastilles : */
/* Create missing segments when a track end covers a pad, but is not on the pad center */ if( s_ConnectToPads )
ConnectDanglingEndToPad( frame, DC );
// creation of points of connections at the intersection of tracks
// Gen_Raccord_Track(frame, DC);
/* Create missing segments when a track end covers a via, but is not on the via center */ if( s_ConnectToPads )
ConnectDanglingEndToVia( frame->m_Pcb );
}
#endif
/* suppression des segments de longueur nulle et des points intermediaires
* alignes */
/* Remove null segments and intermediate points on aligned segments */
if( s_MergeSegments )
clean_segments( frame, DC );
/* suppression des pistes non connectees ( c.a.d dont 1 extremite est en l'air) */
/* Delete dangling tracks */
if( s_DeleteUnconnectedSegm )
suppression_piste_non_connectee( frame, DC );
DeleteUnconnectedTracks( frame, DC );
frame->Compile_Ratsnest( DC, AFFICHE );
@ -148,14 +150,13 @@ void Clean_Pcb_Items( WinEDA_PcbFrame* frame, wxDC* DC )
/*****************************************************************************/
static void suppression_piste_non_connectee( WinEDA_PcbFrame* frame, wxDC* DC )
static void DeleteUnconnectedTracks( WinEDA_PcbFrame* frame, wxDC* DC )
/*****************************************************************************/
/*
* Supprime les segments de piste ayant 1 ou 2 extremites non connectees
* Cas des vias:
* si une extremite de segment est connectee uniquement a une via, la via
* et le segment seront supprimes
* Delete dangling tracks
* Vias:
* If a via is only connected to a dangling track, it also will be removed
*/
{
TRACK* segment;
@ -229,7 +230,8 @@ static void suppression_piste_non_connectee( WinEDA_PcbFrame* frame, wxDC* DC )
flag_erase = 0;
type_end = 0;
/* y a t-il une pastille sur chaque extremite */
/* Is a pad found on a track end ? */
masklayer = segment->ReturnMaskLayer();
@ -339,7 +341,7 @@ static void suppression_piste_non_connectee( WinEDA_PcbFrame* frame, wxDC* DC )
/************************************************************/
static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
/************************************************************/
/* Supprime segments nulls, points inutiles .. */
/* Delete null lenght segments, and intermediate points .. */
{
TRACK* segment;
TRACK* other;
@ -350,7 +352,7 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
frame->DrawPanel->m_AbortRequest = FALSE;
/**********************************************/
/* suppression des segments de longueur nulle */
/* Delete null segments */
/**********************************************/
a_color = GREEN;
@ -378,7 +380,7 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
}
/**************************************/
/* suppression des segments confondus */
/* Delete redundant segments */
/**************************************/
Affiche_1_Parametre( frame, POS_AFF_VAR, wxT( "Ident" ), wxT( "0" ), a_color );
@ -388,7 +390,7 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
for( segment = frame->m_Pcb->m_Track, ii = 0; segment; segment = segment->Next(), ii++ )
{
/* affichage activite */
/* Display activity */
percent = (100 * ii) / frame->m_Pcb->m_NbSegmTrack;
if( percent != oldpercent )
{
@ -430,7 +432,7 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
erase = 1;
}
/* suppression du point en trop */
/* Delete redundant point */
if( erase )
{
ii--;
@ -444,9 +446,9 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
}
}
/**************************************************************/
/* suppression des points intermediaires ( segments alignes ) */
/**************************************************************/
/****************************/
/* delete intermediate points */
/****************************/
nbpoints_supprimes = 0;
percent = 0;
@ -465,7 +467,6 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
next = segment->Next();
/* affichage activite */
ii++;
percent = (100 * ii) / frame->m_Pcb->m_NbSegmTrack;
if( percent != oldpercent )

View File

@ -104,8 +104,9 @@ END_EVENT_TABLE()
WinEDA_ModuleEditFrame::WinEDA_ModuleEditFrame( wxWindow* father, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size ) :
WinEDA_BasePcbFrame( father, parent, MODULE_EDITOR_FRAME, wxEmptyString, pos, size )
const wxPoint& pos, const wxSize& size,
long style ) :
WinEDA_BasePcbFrame( father, parent, MODULE_EDITOR_FRAME, wxEmptyString, pos, size, style )
{
m_FrameName = wxT( "ModEditFrame" );
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines

View File

@ -176,8 +176,9 @@ END_EVENT_TABLE()
WinEDA_PcbFrame::WinEDA_PcbFrame( wxWindow* father, WinEDA_App* parent,
const wxString& title,
const wxPoint& pos, const wxSize& size ) :
WinEDA_BasePcbFrame( father, parent, PCB_FRAME, title, pos, size )
const wxPoint& pos, const wxSize& size,
long style) :
WinEDA_BasePcbFrame( father, parent, PCB_FRAME, title, pos, size, style )
{
m_FrameName = wxT( "PcbFrame" );
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines

View File

@ -40,8 +40,8 @@
WinEDA_DrawFrame::WinEDA_DrawFrame( wxWindow* father, int idtype,
WinEDA_App* parent, const wxString& title,
const wxPoint& pos, const wxSize& size ) :
WinEDA_BasicFrame( father, idtype, parent, title, pos, size )
const wxPoint& pos, const wxSize& size, long style ) :
WinEDA_BasicFrame( father, idtype, parent, title, pos, size, style )
{
wxSize minsize;

View File

@ -1,166 +0,0 @@
/************************/
/* SETCOLOR.CPP */
/************************/
/* Affichage et selection de la palette des couleurs disponibles
* dans une frame
*/
#include "fctsys.h"
#include "gr_basic.h"
#include "common.h"
#include "colors.h"
enum colors_id {
ID_COLOR_BLACK = 2000, // ID_COLOR_ = ID_COLOR_BLACK a ID_COLOR_BLACK + 31
};
/*******************************************/
class WinEDA_SelColorFrame : public wxDialog
/*******************************************/
/* Frame d'affichage de la palette des couleurs disponibles
*/
{
private:
public:
// Constructor and destructor
WinEDA_SelColorFrame( wxWindow * parent, const wxPoint &framepos );
~WinEDA_SelColorFrame( void ) { };
private:
void SelColor( wxCommandEvent& event );
DECLARE_EVENT_TABLE()
};
/* Construction de la table des evenements pour FrameClassMain */
BEGIN_EVENT_TABLE( WinEDA_SelColorFrame, wxDialog )
EVT_BUTTON( ID_COLOR_BLACK, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 1, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 2, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 3, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 4, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 5, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 6, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 7, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 8, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 9, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 10, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 11, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 12, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 13, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 14, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 15, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 16, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 17, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 18, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 19, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 20, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 21, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 22, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 23, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 24, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 25, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 26, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 27, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 28, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 29, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 30, WinEDA_SelColorFrame::SelColor )
EVT_BUTTON( ID_COLOR_BLACK + 31, WinEDA_SelColorFrame::SelColor )
END_EVENT_TABLE()
/***************************************/
int DisplayColorFrame( wxWindow* parent )
/***************************************/
{
wxPoint framepos;
int color;
wxGetMousePosition( &framepos.x, &framepos.y );
WinEDA_SelColorFrame* frame = new WinEDA_SelColorFrame( parent, framepos );
color = frame->ShowModal(); frame->Destroy();
if( color > NBCOLOR )
color = -1;
return color;
}
/*******************************************************************/
WinEDA_SelColorFrame::WinEDA_SelColorFrame( wxWindow* parent,
const wxPoint& framepos ) :
wxDialog( parent, -1, _( "Colors" ), framepos, wxSize( 375, 240 ),
DIALOG_STYLE )
/*******************************************************************/
{
#define START_Y 10
wxBitmapButton* Button;
int ii, yy, butt_ID, buttcolor;
wxPoint pos;
int w = 20, h = 20;
SetFont( *g_DialogFont );
SetReturnCode( -1 );
pos.x = 5; pos.y = START_Y;
for( ii = 0; ColorRefs[ii].m_Name != NULL; ii++ )
{
butt_ID = ID_COLOR_BLACK + ii;
wxMemoryDC iconDC;
wxBitmap ButtBitmap( w, h );
wxBrush Brush;
iconDC.SelectObject( ButtBitmap );
buttcolor = ColorRefs[ii].m_Numcolor;
iconDC.SetPen( *wxBLACK_PEN );
Brush.SetColour(
ColorRefs[buttcolor].m_Red,
ColorRefs[buttcolor].m_Green,
ColorRefs[buttcolor].m_Blue
);
Brush.SetStyle( wxSOLID );
iconDC.SetBrush( Brush );
iconDC.SetBackground( *wxGREY_BRUSH );
iconDC.Clear();
iconDC.DrawRoundedRectangle( 0, 0, w, h, (double) h / 3 );
Button = new wxBitmapButton( this, butt_ID,
ButtBitmap,
wxPoint (pos.x, pos.y), wxSize (w, h) );
new wxStaticText( this, -1,
ColorRefs[ii].m_Name,
wxPoint (pos.x + 2 + w, pos.y + 4 ),
wxSize( -1, -1 ), 0 );
yy = h + 5;
pos.y += yy;
if( ii == 7 )
{
pos.x += w + 80; pos.y = START_Y;
}
else if( (ii == 15) || (ii == 23) )
{
pos.x += w + 110; pos.y = START_Y;
}
}
}
/*********************************************************/
void WinEDA_SelColorFrame::SelColor( wxCommandEvent& event )
/*********************************************************/
{
int id = event.GetId();
EndModal( id - ID_COLOR_BLACK );
}