Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
51fc26e1
Commit
51fc26e1
authored
Aug 14, 2007
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mouse synchronization from PCBNEW to EESCHEMA
parent
b0b3a6d5
Changes
15
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1436 additions
and
1250 deletions
+1436
-1250
eda_dde.cpp
common/eda_dde.cpp
+153
-146
controle.cpp
eeschema/controle.cpp
+362
-323
eeschema.cpp
eeschema/eeschema.cpp
+9
-2
find.cpp
eeschema/find.cpp
+496
-431
protos.h
eeschema/protos.h
+4
-0
schframe.cpp
eeschema/schframe.cpp
+3
-0
appl_wxstruct.h
include/appl_wxstruct.h
+70
-72
common.h
include/common.h
+235
-238
eda_dde.h
include/eda_dde.h
+11
-8
wxstruct.h
include/wxstruct.h
+19
-1
class_text_mod.h
pcbnew/class_text_mod.h
+8
-0
controle.cpp
pcbnew/controle.cpp
+34
-26
edit.cpp
pcbnew/edit.cpp
+28
-1
files.cpp
pcbnew/files.cpp
+3
-1
protos.h
pcbnew/protos.h
+1
-1
No files found.
common/eda_dde.cpp
View file @
51fc26e1
///////////////////////
///////////////////////
// Name: eda_dde.cpp //
// Name: eda_dde.cpp //
///////////////////////
///////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
// For compilers that support precompilation, includes "wx/wx.h".
#include <wx/wxprec.h>
#include <wx/wxprec.h>
...
@@ -23,9 +23,7 @@
...
@@ -23,9 +23,7 @@
#include "common.h"
#include "common.h"
#include "macros.h"
#include "macros.h"
#define ID_CONN "CAO_COM"
wxString
HOSTNAME
(
wxT
(
"localhost"
)
);
wxString
HOSTNAME
(
wxT
(
"localhost"
));
/* variables locales */
/* variables locales */
...
@@ -34,36 +32,37 @@ wxString HOSTNAME(wxT("localhost"));
...
@@ -34,36 +32,37 @@ wxString HOSTNAME(wxT("localhost"));
char
client_ipc_buffer
[
IPC_BUF_SIZE
];
char
client_ipc_buffer
[
IPC_BUF_SIZE
];
char
server_ipc_buffer
[
IPC_BUF_SIZE
];
char
server_ipc_buffer
[
IPC_BUF_SIZE
];
wxServer
*
server
;
wxServer
*
server
;
void
(
*
RemoteFct
)(
char
*
cmd
);
void
(
*
RemoteFct
)(
const
char
*
cmd
);
char
buffcar
[
1024
];
char
buffcar
[
1024
];
void
SetupServerFunction
(
void
(
*
remotefct
)(
char
*
remotecmd
)
)
void
SetupServerFunction
(
void
(
*
remotefct
)(
const
char
*
remotecmd
)
)
{
{
RemoteFct
=
remotefct
;
RemoteFct
=
remotefct
;
}
}
/*****************************/
/*****************************/
/* Routines liees au SERVEUR */
/* Routines liees au SERVEUR */
/*****************************/
/*****************************/
/* Fonction d'initialisation d'un serveur socket
/* Fonction d'initialisation d'un serveur socket
*/
*/
WinEDA_Server
*
CreateServer
(
wxWindow
*
window
,
int
service
)
WinEDA_Server
*
CreateServer
(
wxWindow
*
window
,
int
service
)
{
{
wxIPV4address
addr
;
wxIPV4address
addr
;
// Create a new server
// Create a new server
addr
.
Service
(
service
);
addr
.
Service
(
service
);
server
=
new
wxServer
(
addr
);
server
=
new
wxServer
(
addr
);
if
(
server
)
if
(
server
)
{
{
server
->
SetNotify
(
wxSOCKET_CONNECTION_FLAG
);
server
->
SetNotify
(
wxSOCKET_CONNECTION_FLAG
);
server
->
SetEventHandler
(
*
window
,
ID_EDA_SOCKET_EVENT_SERV
);
server
->
SetEventHandler
(
*
window
,
ID_EDA_SOCKET_EVENT_SERV
);
server
->
Notify
(
TRUE
);
server
->
Notify
(
TRUE
);
}
}
return
server
;
return
server
;
...
@@ -71,23 +70,27 @@ wxIPV4address addr;
...
@@ -71,23 +70,27 @@ wxIPV4address addr;
/********************************************************/
/********************************************************/
void
WinEDA_DrawFrame
::
OnSockRequest
(
wxSocketEvent
&
evt
)
void
WinEDA_DrawFrame
::
OnSockRequest
(
wxSocketEvent
&
evt
)
/********************************************************/
/********************************************************/
/* Fonction appelee a chaque demande d'un client
/* Fonction appelee a chaque demande d'un client
*/
*/
{
{
size_t
len
;
size_t
len
;
wxSocketBase
*
sock
=
evt
.
GetSocket
();
wxSocketBase
*
sock
=
evt
.
GetSocket
();
switch
(
evt
.
GetSocketEvent
()
)
switch
(
evt
.
GetSocketEvent
()
)
{
{
case
wxSOCKET_INPUT
:
case
wxSOCKET_INPUT
:
sock
->
Read
(
server_ipc_buffer
,
1
);
sock
->
Read
(
server_ipc_buffer
,
1
);
if
(
sock
->
LastCount
()
==
0
)
break
;
// No data: Occurs on open connection
if
(
sock
->
LastCount
()
==
0
)
sock
->
Read
(
server_ipc_buffer
+
1
,
IPC_BUF_SIZE
-
2
);
break
;
// No data: Occurs on open connection
sock
->
Read
(
server_ipc_buffer
+
1
,
IPC_BUF_SIZE
-
2
);
len
=
1
+
sock
->
LastCount
();
len
=
1
+
sock
->
LastCount
();
server_ipc_buffer
[
len
]
=
0
;
server_ipc_buffer
[
len
]
=
0
;
if
(
RemoteFct
)
RemoteFct
(
server_ipc_buffer
);
if
(
RemoteFct
)
RemoteFct
(
server_ipc_buffer
);
break
;
break
;
case
wxSOCKET_LOST
:
case
wxSOCKET_LOST
:
...
@@ -95,51 +98,55 @@ wxSocketBase *sock = evt.GetSocket();
...
@@ -95,51 +98,55 @@ wxSocketBase *sock = evt.GetSocket();
break
;
break
;
default
:
default
:
wxPrintf
(
wxT
(
"WinEDA_DrawFrame::OnSockRequest() error: Invalid event !"
)
);
wxPrintf
(
wxT
(
"WinEDA_DrawFrame::OnSockRequest() error: Invalid event !"
)
);
break
;
break
;
}
}
}
}
/**************************************************************/
/**************************************************************/
void
WinEDA_DrawFrame
::
OnSockRequestServer
(
wxSocketEvent
&
evt
)
void
WinEDA_DrawFrame
::
OnSockRequestServer
(
wxSocketEvent
&
evt
)
/**************************************************************/
/**************************************************************/
/* fonction appele lors d'une demande de connexion d'un client
/* fonction appele lors d'une demande de connexion d'un client
*/
*/
{
{
wxSocketBase
*
sock2
;
wxSocketBase
*
sock2
;
wxSocketServer
*
server
=
(
wxSocketServer
*
)
evt
.
GetSocket
();
wxSocketServer
*
server
=
(
wxSocketServer
*
)
evt
.
GetSocket
();
sock2
=
server
->
Accept
();
sock2
=
server
->
Accept
();
if
(
sock2
==
NULL
)
return
;
if
(
sock2
==
NULL
)
return
;
sock2
->
Notify
(
TRUE
);
sock2
->
Notify
(
TRUE
);
sock2
->
SetEventHandler
(
*
this
,
ID_EDA_SOCKET_EVENT
);
sock2
->
SetEventHandler
(
*
this
,
ID_EDA_SOCKET_EVENT
);
sock2
->
SetNotify
(
wxSOCKET_INPUT_FLAG
|
wxSOCKET_LOST_FLAG
);
sock2
->
SetNotify
(
wxSOCKET_INPUT_FLAG
|
wxSOCKET_LOST_FLAG
);
}
}
/****************************/
/****************************/
/* Routines liees au CLIENT */
/* Routines liees au CLIENT */
/*****************************/
/*****************************/
/********************************************/
/**************************************************/
bool
SendCommand
(
int
service
,
char
*
cmdline
)
bool
SendCommand
(
int
service
,
const
char
*
cmdline
)
/********************************************/
/**************************************************/
/* Used by a client to sent (by a socket connection) a data to a server.
- Open a Socket Client connection
- Send the buffer cmdline
- Close the socket connection
service is the service number for the TC/IP connection
/* Used by a client to sent (by a socket connection) a data to a server.
*/
* - Open a Socket Client connection
* - Send the buffer cmdline
* - Close the socket connection
*
* service is the service number for the TC/IP connection
*/
{
{
wxSocketClient
*
sock_client
;
wxSocketClient
*
sock_client
;
bool
success
=
FALSE
;
bool
success
=
FALSE
;
wxIPV4address
addr
;
wxIPV4address
addr
;
// Create a connexion
// Create a connexion
addr
.
Hostname
(
HOSTNAME
);
addr
.
Hostname
(
HOSTNAME
);
addr
.
Service
(
service
);
addr
.
Service
(
service
);
// Mini-tutorial for Connect() :-) (JP CHARRAS Note: see wxWidgets: sockets/client.cpp sample)
// Mini-tutorial for Connect() :-) (JP CHARRAS Note: see wxWidgets: sockets/client.cpp sample)
// ---------------------------
// ---------------------------
...
@@ -189,20 +196,20 @@ wxIPV4address addr;
...
@@ -189,20 +196,20 @@ wxIPV4address addr;
// bool success = client->IsConnected();
// bool success = client->IsConnected();
//
//
// And that's all :-)
// And that's all :-)
sock_client
=
new
wxSocketClient
();
sock_client
=
new
wxSocketClient
();
sock_client
->
SetTimeout
(
2
);
// Time out in Seconds
sock_client
->
SetTimeout
(
2
);
// Time out in Seconds
sock_client
->
Connect
(
addr
,
FALSE
);
sock_client
->
Connect
(
addr
,
FALSE
);
sock_client
->
WaitOnConnect
(
0
,
100
);
sock_client
->
WaitOnConnect
(
0
,
100
);
if
(
sock_client
->
Ok
()
&&
sock_client
->
IsConnected
()
)
if
(
sock_client
->
Ok
()
&&
sock_client
->
IsConnected
()
)
{
{
success
=
TRUE
;
success
=
TRUE
;
sock_client
->
SetFlags
(
wxSOCKET_NOWAIT
/*wxSOCKET_WAITALL*/
);
sock_client
->
SetFlags
(
wxSOCKET_NOWAIT
/*wxSOCKET_WAITALL*/
);
sock_client
->
Write
(
cmdline
,
strlen
(
cmdline
)
);
sock_client
->
Write
(
cmdline
,
strlen
(
cmdline
)
);
}
}
sock_client
->
Close
();
sock_client
->
Close
();
sock_client
->
Destroy
();
sock_client
->
Destroy
();
return
success
;
return
success
;
}
}
eeschema/controle.cpp
View file @
51fc26e1
This diff is collapsed.
Click to expand it.
eeschema/eeschema.cpp
View file @
51fc26e1
...
@@ -20,10 +20,10 @@
...
@@ -20,10 +20,10 @@
#include "netlist.h"
#include "netlist.h"
#include "worksheet.h"
#include "worksheet.h"
#include "trigo.h"
#include "trigo.h"
#include "protos.h"
#include "protos.h"
#include "bitmaps.h"
#include "bitmaps.h"
#include "eda_dde.h"
/* Routines locales */
/* Routines locales */
static
void
CreateScreens
(
void
);
static
void
CreateScreens
(
void
);
...
@@ -72,6 +72,13 @@ wxString FFileName;
...
@@ -72,6 +72,13 @@ wxString FFileName;
SetTopWindow
(
SchematicFrame
);
SetTopWindow
(
SchematicFrame
);
SchematicFrame
->
Show
(
TRUE
);
SchematicFrame
->
Show
(
TRUE
);
if
(
CreateServer
(
SchematicFrame
,
KICAD_SCH_PORT_SERVICE_NUMBER
)
)
{
// RemoteCommand is in controle.cpp and is called when PCBNEW
// sends EESCHEMA a command
SetupServerFunction
(
RemoteCommand
);
}
SchematicFrame
->
Zoom_Automatique
(
TRUE
);
SchematicFrame
->
Zoom_Automatique
(
TRUE
);
/* Load file specified in the command line. */
/* Load file specified in the command line. */
...
...
eeschema/find.cpp
View file @
51fc26e1
This diff is collapsed.
Click to expand it.
eeschema/protos.h
View file @
51fc26e1
...
@@ -456,4 +456,8 @@ void InstallFindFrame(WinEDA_SchematicFrame *parent, wxPoint &pos);
...
@@ -456,4 +456,8 @@ void InstallFindFrame(WinEDA_SchematicFrame *parent, wxPoint &pos);
/***************/
/***************/
void
DisplayOptionFrame
(
WinEDA_DrawFrame
*
parent
,
const
wxPoint
&
framepos
);
void
DisplayOptionFrame
(
WinEDA_DrawFrame
*
parent
,
const
wxPoint
&
framepos
);
/****************/
/* CONTROLE.CPP */
/****************/
void
RemoteCommand
(
const
char
*
cmdline
);
eeschema/schframe.cpp
View file @
51fc26e1
...
@@ -26,6 +26,9 @@
...
@@ -26,6 +26,9 @@
BEGIN_EVENT_TABLE
(
WinEDA_SchematicFrame
,
wxFrame
)
BEGIN_EVENT_TABLE
(
WinEDA_SchematicFrame
,
wxFrame
)
COMMON_EVENTS_DRAWFRAME
COMMON_EVENTS_DRAWFRAME
EVT_SOCKET
(
ID_EDA_SOCKET_EVENT_SERV
,
WinEDA_DrawFrame
::
OnSockRequestServer
)
EVT_SOCKET
(
ID_EDA_SOCKET_EVENT
,
WinEDA_DrawFrame
::
OnSockRequest
)
EVT_CLOSE
(
WinEDA_SchematicFrame
::
OnCloseWindow
)
EVT_CLOSE
(
WinEDA_SchematicFrame
::
OnCloseWindow
)
EVT_SIZE
(
WinEDA_SchematicFrame
::
OnSize
)
EVT_SIZE
(
WinEDA_SchematicFrame
::
OnSize
)
...
...
include/appl_wxstruct.h
View file @
51fc26e1
/************************************************************/
/************************************************************/
/* appl_wxstruct.h: */
/* appl_wxstruct.h: */
/* descriptions des principales classes derivees utilisees: */
/* descriptions des principales classes derivees utilisees: */
/* Class "EDA_Appl: classe de l'application generale */
/* Class "EDA_Appl: classe de l'application generale */
/************************************************************/
/************************************************************/
/* Ce fichier doit etre inclus dans "wxstruct.h"
/* Ce fichier doit etre inclus dans "wxstruct.h"
*/
*/
#ifndef APPL_WXSTRUCT_H
#ifndef APPL_WXSTRUCT_H
#define APPL_WXSTRUCT_H
#define APPL_WXSTRUCT_H
...
@@ -15,79 +15,77 @@
...
@@ -15,79 +15,77 @@
#endif
#endif
/**********************************************/
/**********************************************/
/* Class representing the entire Application */
/* Class representing the entire Application */
/**********************************************/
/**********************************************/
eda_global
WinEDA_App
*
EDA_Appl
;
/* application representant le programme */
eda_global
WinEDA_App
*
EDA_Appl
;
/* application representant le programme */
class
WinEDA_App
:
public
wxApp
class
WinEDA_App
:
public
wxApp
{
{
public
:
public
:
wxString
m_Project
;
wxString
m_Project
;
wxSingleInstanceChecker
*
m_Checker
;
wxSingleInstanceChecker
*
m_Checker
;
WinEDA_MainFrame
*
m_MainFrame
;
WinEDA_MainFrame
*
m_MainFrame
;
WinEDA_PcbFrame
*
m_PcbFrame
;
WinEDA_PcbFrame
*
m_PcbFrame
;
WinEDA_ModuleEditFrame
*
m_ModuleEditFrame
;
WinEDA_ModuleEditFrame
*
m_ModuleEditFrame
;
WinEDA_GerberFrame
*
m_GerberFrame
;
WinEDA_GerberFrame
*
m_GerberFrame
;
WinEDA_SchematicFrame
*
SchematicFrame
;
// Edition des Schemas
WinEDA_SchematicFrame
*
SchematicFrame
;
// Edition des Schemas
WinEDA_LibeditFrame
*
LibeditFrame
;
// Edition des composants
WinEDA_LibeditFrame
*
LibeditFrame
;
// Edition des composants
WinEDA_ViewlibFrame
*
ViewlibFrame
;
// Visualisation des composants
WinEDA_ViewlibFrame
*
ViewlibFrame
;
// Visualisation des composants
WinEDA_CvpcbFrame
*
m_CvpcbFrame
;
WinEDA_CvpcbFrame
*
m_CvpcbFrame
;
wxPoint
m_HelpPos
;
wxPoint
m_HelpPos
;
wxSize
m_HelpSize
;
wxSize
m_HelpSize
;
wxHtmlHelpController
*
m_HtmlCtrl
;
wxHtmlHelpController
*
m_HtmlCtrl
;
wxConfig
*
m_EDA_Config
;
// Config courante (tailles et positions fenetres ...*/
wxConfig
*
m_EDA_Config
;
// Config courante (tailles et positions fenetres ...*/
wxConfig
*
m_EDA_CommonConfig
;
// common setup (language ...) */
wxConfig
*
m_EDA_CommonConfig
;
// common setup (language ...) */
wxString
m_HelpFileName
;
wxString
m_HelpFileName
;
wxString
m_CurrentOptionFile
;
// dernier fichier .cnf utilis
wxString
m_CurrentOptionFile
;
// dernier fichier .cnf utilis
wxString
m_CurrentOptionFileDateAndTime
;
wxString
m_CurrentOptionFileDateAndTime
;
wxString
m_BinDir
;
/* Chemin ou reside l'executable
wxString
m_BinDir
;
/* Chemin ou reside l'executable
(utilis si KICAD non dfini)*/
*
(utilis si KICAD non dfini)*/
wxArrayString
m_LastProject
;
/* liste des derniers projets chargs */
wxArrayString
m_LastProject
;
/* liste des derniers projets chargs */
unsigned
int
m_LastProjectMaxCount
;
/* Max histhory file length */
unsigned
int
m_LastProjectMaxCount
;
/* Max histhory file length */
wxString
m_KicadEnv
;
/* Chemin de kicad dfini dans la variable
wxString
m_KicadEnv
;
/* Chemin de kicad dfini dans la variable
d'environnement KICAD,
*
d'environnement KICAD,
typiquement /usr/local/kicad ou c:\kicad */
*
typiquement /usr/local/kicad ou c:\kicad */
bool
m_Env_Defined
;
// TRUE si variable d'environnement KICAD definie
bool
m_Env_Defined
;
// TRUE si variable d'environnement KICAD definie
wxLocale
*
m_Locale
;
// Gestion de la localisation
wxLocale
*
m_Locale
;
// Gestion de la localisation
int
m_LanguageId
;
// indicateur de choix du langage ( 0 = defaut)
int
m_LanguageId
;
// indicateur de choix du langage ( 0 = defaut)
wxMenu
*
m_Language_Menu
;
// List menu for languages
wxMenu
*
m_Language_Menu
;
// List menu for languages
wxString
m_PdfBrowser
;
// Name of the selected browser, for browsing pdf datasheets
wxString
m_PdfBrowser
;
// Name of the selected browser, for browsing pdf datasheets
bool
m_PdfBrowserIsDefault
;
// True if the pdf browser is the default (m_PdfBrowser not used)
bool
m_PdfBrowserIsDefault
;
// True if the pdf browser is the default (m_PdfBrowser not used)
public
:
public
:
WinEDA_App
(
void
);
WinEDA_App
(
void
);
~
WinEDA_App
(
void
);
~
WinEDA_App
(
void
);
bool
OnInit
(
void
);
bool
OnInit
(
void
);
int
OnRun
(
void
);
int
OnRun
(
void
);
bool
SetBinDir
(
void
);
bool
SetBinDir
(
void
);
void
InitEDA_Appl
(
const
wxString
&
name
);
void
InitEDA_Appl
(
const
wxString
&
name
);
bool
SetLanguage
(
bool
first_time
=
FALSE
);
bool
SetLanguage
(
bool
first_time
=
FALSE
);
wxMenu
*
SetLanguageList
(
wxMenu
*
MasterMenu
);
wxMenu
*
SetLanguageList
(
wxMenu
*
MasterMenu
);
void
SetLanguageIdentifier
(
int
menu_id
);
void
SetLanguageIdentifier
(
int
menu_id
);
void
InitOnLineHelp
(
void
);
void
InitOnLineHelp
(
void
);
// Sauvegarde de configurations et options:
// Sauvegarde de configurations et options:
void
GetSettings
(
void
);
void
GetSettings
(
void
);
void
SaveSettings
(
void
);
void
SaveSettings
(
void
);
void
SetLastProject
(
const
wxString
&
FullFileName
);
void
SetLastProject
(
const
wxString
&
FullFileName
);
void
WriteProjectConfig
(
const
wxString
&
local_config_filename
,
void
WriteProjectConfig
(
const
wxString
&
local_config_filename
,
const
wxString
&
GroupName
,
PARAM_CFG_BASE
**
List
);
const
wxString
&
GroupName
,
PARAM_CFG_BASE
**
List
);
bool
ReadProjectConfig
(
const
wxString
&
local_config_filename
,
bool
ReadProjectConfig
(
const
wxString
&
local_config_filename
,
const
wxString
&
GroupName
,
PARAM_CFG_BASE
**
List
,
const
wxString
&
GroupName
,
PARAM_CFG_BASE
**
List
,
bool
Load_Only_if_New
);
bool
Load_Only_if_New
);
void
ReadPdfBrowserInfos
(
void
);
void
ReadPdfBrowserInfos
(
void
);
void
WritePdfBrowserInfos
(
void
);
void
WritePdfBrowserInfos
(
void
);
};
};
#endif
/* APPL_WXSTRUCT_H */
#endif
/* APPL_WXSTRUCT_H */
include/common.h
View file @
51fc26e1
...
@@ -12,9 +12,6 @@
...
@@ -12,9 +12,6 @@
#define COMMON_GLOBL extern
#define COMMON_GLOBL extern
#endif
#endif
/* Numero de ports TCP/IP utilis�s par KICAD */
#define KICAD_PCB_PORT_SERVICE_NUMBER 4242
/* Etat des touches speciales du clavier */
/* Etat des touches speciales du clavier */
...
...
include/eda_dde.h
View file @
51fc26e1
...
@@ -11,17 +11,20 @@
...
@@ -11,17 +11,20 @@
#define WinEDA_Server wxSocketServer
#define WinEDA_Server wxSocketServer
/********************/
// TCP/IP ports used by PCBNEW and EESCHEMA respectively.
/* autres fonctions */
#define KICAD_PCB_PORT_SERVICE_NUMBER 4242 ///< PCBNEW listens on this port for commands from EESCHEMA
/********************/
#define KICAD_SCH_PORT_SERVICE_NUMBER 4243 ///< EESCHEMA listens on this port for commands from PCBNEW
WinEDA_Server
*
CreateServer
(
wxWindow
*
window
,
int
service
);
bool
SendCommand
(
int
service
,
char
*
cmdline
);
void
SetupServerFunction
(
void
(
*
remotefct
)(
char
*
remotecmd
)
);
#define MSG_TO_PCB KICAD_PCB_PORT_SERVICE_NUMBER
#define MSG_TO_SCH KICAD_SCH_PORT_SERVICE_NUMBER
/********************/
/* autres fonctions */
/********************/
WinEDA_Server
*
CreateServer
(
wxWindow
*
window
,
int
port
);
bool
SendCommand
(
int
port
,
const
char
*
cmdline
);
void
SetupServerFunction
(
void
(
*
remotefct
)
(
const
char
*
remotecmd
)
);
include/wxstruct.h
View file @
51fc26e1
...
@@ -700,6 +700,14 @@ public:
...
@@ -700,6 +700,14 @@ public:
// divers
// divers
void
InstallFindFrame
(
const
wxPoint
&
pos
,
wxDC
*
DC
);
void
InstallFindFrame
(
const
wxPoint
&
pos
,
wxDC
*
DC
);
/**
* Function SendMessageToEESCHEMA
* sends a message to the schematic editor so that it may move its cursor
* to a part with the same reference as the objectToSync
* @param objectToSync The object whose reference is used to syncronize eeschema.
*/
void
SendMessageToEESCHEMA
(
EDA_BaseStruct
*
objectToSync
);
/* Special micro_ondes */
/* Special micro_ondes */
void
Edit_Gap
(
wxDC
*
DC
,
MODULE
*
Module
);
void
Edit_Gap
(
wxDC
*
DC
,
MODULE
*
Module
);
MODULE
*
Create_MuWaveBasicShape
(
wxDC
*
DC
,
const
wxString
&
name
,
int
pad_count
);
MODULE
*
Create_MuWaveBasicShape
(
wxDC
*
DC
,
const
wxString
&
name
,
int
pad_count
);
...
@@ -974,7 +982,17 @@ public:
...
@@ -974,7 +982,17 @@ public:
bool
LoadOneSheet
(
SCH_SCREEN
*
screen
,
const
wxString
&
FullFileName
);
bool
LoadOneSheet
(
SCH_SCREEN
*
screen
,
const
wxString
&
FullFileName
);
// General search:
// General search:
EDA_BaseStruct
*
FindSchematicItem
(
const
wxString
&
pattern
,
int
SearchType
);
/**
* Function FindSchematicItem
* finds a string in the schematic.
* @param pattern The text to search for, either in value, reference or elsewhere.
* @param SearchType: 0 => Search is made in current sheet
* 1 => the whole hierarchy
* 2 => or for the next item
* @param mouseWarp If true, then move the mouse cursor to the item.
*/
EDA_BaseStruct
*
FindSchematicItem
(
const
wxString
&
pattern
,
int
SearchType
,
bool
mouseWarp
=
true
);
EDA_BaseStruct
*
FindMarker
(
int
SearchType
);
EDA_BaseStruct
*
FindMarker
(
int
SearchType
);
private
:
private
:
...
...
pcbnew/class_text_mod.h
View file @
51fc26e1
...
@@ -2,6 +2,11 @@
...
@@ -2,6 +2,11 @@
/* class_text_module.h : texts module description */
/* class_text_module.h : texts module description */
/***************************************************/
/***************************************************/
#ifndef TEXT_MODULE_H
#define TEXT_MODULE_H
/* Description des Textes sur Modules : */
/* Description des Textes sur Modules : */
#define TEXT_is_REFERENCE 0
#define TEXT_is_REFERENCE 0
#define TEXT_is_VALUE 1
#define TEXT_is_VALUE 1
...
@@ -80,3 +85,6 @@ public:
...
@@ -80,3 +85,6 @@ public:
virtual
void
Show
(
int
nestLevel
,
std
::
ostream
&
os
);
virtual
void
Show
(
int
nestLevel
,
std
::
ostream
&
os
);
#endif
#endif
};
};
#endif // TEXT_MODULE_H
pcbnew/controle.cpp
View file @
51fc26e1
...
@@ -22,52 +22,56 @@
...
@@ -22,52 +22,56 @@
/* Variables Locales */
/* Variables Locales */
/**********************************/
/**********************************/
void
RemoteCommand
(
char
*
cmdline
)
void
RemoteCommand
(
c
onst
c
har
*
cmdline
)
/**********************************/
/**********************************/
/* Read a remote command send by eeschema via a socket,
/* Read a remote command send by eeschema via a socket,
* port KICAD_PCB_PORT_SERVICE_NUMBER (currently 4242)
* port KICAD_PCB_PORT_SERVICE_NUMBER (currently 4242)
*/
*/
{
{
char
L
ine
[
1024
];
char
l
ine
[
1024
];
wxString
msg
;
wxString
msg
;
char
*
idcmd
,
*
text
;
char
*
idcmd
,
*
text
;
WinEDA_PcbFrame
*
frame
=
EDA_Appl
->
m_PcbFrame
;
WinEDA_PcbFrame
*
frame
=
EDA_Appl
->
m_PcbFrame
;
strncpy
(
Line
,
cmdline
,
sizeof
(
L
ine
)
-
1
);
strncpy
(
line
,
cmdline
,
sizeof
(
l
ine
)
-
1
);
msg
=
CONV_FROM_UTF8
(
L
ine
);
msg
=
CONV_FROM_UTF8
(
l
ine
);
idcmd
=
strtok
(
L
ine
,
"
\n\r
"
);
idcmd
=
strtok
(
l
ine
,
"
\n\r
"
);
text
=
strtok
(
NULL
,
"
\n\r
"
);
text
=
strtok
(
NULL
,
"
\n\r
"
);
if
(
(
idcmd
==
NULL
)
||
(
text
==
NULL
)
)
if
(
(
idcmd
==
NULL
)
||
(
text
==
NULL
)
)
return
;
return
;
if
(
strcmp
(
idcmd
,
"$PART:"
)
==
0
)
if
(
strcmp
(
idcmd
,
"$PART:"
)
==
0
)
{
{
MODULE
*
Module
;
msg
=
CONV_FROM_UTF8
(
text
);
msg
=
CONV_FROM_UTF8
(
text
);
Module
=
ReturnModule
(
frame
->
m_Pcb
,
msg
);
MODULE
*
module
=
ReturnModule
(
frame
->
m_Pcb
,
msg
);
msg
.
Printf
(
_
(
"Locate module %s %s"
),
msg
.
GetData
(),
msg
.
Printf
(
_
(
"Locate module %s %s"
),
msg
.
GetData
(),
Module
?
wxT
(
"Ok"
)
:
wxT
(
"not found"
)
);
module
?
wxT
(
"Ok"
)
:
wxT
(
"not found"
)
);
frame
->
Affiche_Message
(
msg
);
frame
->
Affiche_Message
(
msg
);
if
(
M
odule
)
if
(
m
odule
)
{
{
wxClientDC
dc
(
frame
->
DrawPanel
);
wxClientDC
dc
(
frame
->
DrawPanel
);
frame
->
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
frame
->
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
frame
->
DrawPanel
->
CursorOff
(
&
dc
);
frame
->
DrawPanel
->
CursorOff
(
&
dc
);
frame
->
GetScreen
()
->
m_Curseur
=
M
odule
->
m_Pos
;
frame
->
GetScreen
()
->
m_Curseur
=
m
odule
->
m_Pos
;
frame
->
DrawPanel
->
CursorOn
(
&
dc
);
frame
->
DrawPanel
->
CursorOn
(
&
dc
);
}
}
}
}
if
(
idcmd
&&
strcmp
(
idcmd
,
"$PIN:"
)
==
0
)
if
(
idcmd
&&
strcmp
(
idcmd
,
"$PIN:"
)
==
0
)
{
{
wxString
PinName
,
M
odName
;
wxString
pinName
,
m
odName
;
MODULE
*
M
odule
;
MODULE
*
m
odule
;
D_PAD
*
Pad
=
NULL
;
D_PAD
*
pad
=
NULL
;
int
netcode
=
-
1
;
int
netcode
=
-
1
;
PinName
=
CONV_FROM_UTF8
(
text
);
pinName
=
CONV_FROM_UTF8
(
text
);
text
=
strtok
(
NULL
,
"
\n\r
"
);
text
=
strtok
(
NULL
,
"
\n\r
"
);
if
(
text
&&
strcmp
(
text
,
"$PART:"
)
==
0
)
if
(
text
&&
strcmp
(
text
,
"$PART:"
)
==
0
)
text
=
strtok
(
NULL
,
"
\n\r
"
);
text
=
strtok
(
NULL
,
"
\n\r
"
);
...
@@ -76,30 +80,34 @@ void RemoteCommand( char* cmdline )
...
@@ -76,30 +80,34 @@ void RemoteCommand( char* cmdline )
frame
->
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
frame
->
DrawPanel
->
PrepareGraphicContext
(
&
dc
);
ModName
=
CONV_FROM_UTF8
(
text
);
modName
=
CONV_FROM_UTF8
(
text
);
Module
=
ReturnModule
(
frame
->
m_Pcb
,
ModName
);
module
=
ReturnModule
(
frame
->
m_Pcb
,
modName
);
if
(
Module
)
if
(
module
)
Pad
=
ReturnPad
(
Module
,
PinName
);
pad
=
ReturnPad
(
module
,
pinName
);
if
(
Pad
)
netcode
=
Pad
->
m_NetCode
;
if
(
pad
)
netcode
=
pad
->
m_NetCode
;
if
(
netcode
>
0
)
if
(
netcode
>
0
)
{
{
/* effacement surbrillance ancienne */
/* effacement surbrillance ancienne */
if
(
g_HightLigt_Status
)
if
(
g_HightLigt_Status
)
frame
->
Hight_Light
(
&
dc
);
frame
->
Hight_Light
(
&
dc
);
g_HightLigth_NetCode
=
netcode
;
g_HightLigth_NetCode
=
netcode
;
frame
->
Hight_Light
(
&
dc
);
frame
->
Hight_Light
(
&
dc
);
frame
->
DrawPanel
->
CursorOff
(
&
dc
);
frame
->
DrawPanel
->
CursorOff
(
&
dc
);
frame
->
GetScreen
()
->
m_Curseur
=
P
ad
->
m_Pos
;
frame
->
GetScreen
()
->
m_Curseur
=
p
ad
->
m_Pos
;
frame
->
DrawPanel
->
CursorOn
(
&
dc
);
frame
->
DrawPanel
->
CursorOn
(
&
dc
);
}
}
if
(
M
odule
==
NULL
)
if
(
m
odule
==
NULL
)
msg
.
Printf
(
_
(
"module %s not found"
),
text
);
msg
.
Printf
(
_
(
"module %s not found"
),
text
);
else
if
(
P
ad
==
NULL
)
else
if
(
p
ad
==
NULL
)
msg
.
Printf
(
_
(
"Pin %s (module %s) not found"
),
PinName
.
GetData
(),
M
odName
.
GetData
()
);
msg
.
Printf
(
_
(
"Pin %s (module %s) not found"
),
pinName
.
GetData
(),
m
odName
.
GetData
()
);
else
else
msg
.
Printf
(
_
(
"Locate Pin %s (module %s)"
),
PinName
.
GetData
(),
M
odName
.
GetData
()
);
msg
.
Printf
(
_
(
"Locate Pin %s (module %s)"
),
pinName
.
GetData
(),
m
odName
.
GetData
()
);
frame
->
Affiche_Message
(
msg
);
frame
->
Affiche_Message
(
msg
);
}
}
}
}
...
...
pcbnew/edit.cpp
View file @
51fc26e1
...
@@ -11,8 +11,9 @@
...
@@ -11,8 +11,9 @@
#include "autorout.h"
#include "autorout.h"
#include "id.h"
#include "id.h"
#include "protos.h"
#include "protos.h"
#include "eda_dde.h"
#define CURRENT_ITEM (GetScreen()->m_CurrentItem)
#define CURRENT_ITEM (GetScreen()->m_CurrentItem)
...
@@ -94,6 +95,8 @@ void WinEDA_PcbFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
...
@@ -94,6 +95,8 @@ void WinEDA_PcbFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
else
else
{
{
DrawStruct
=
PcbGeneralLocateAndDisplay
();
DrawStruct
=
PcbGeneralLocateAndDisplay
();
if
(
DrawStruct
)
SendMessageToEESCHEMA
(
DrawStruct
);
}
}
}
}
...
@@ -128,6 +131,9 @@ void WinEDA_PcbFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
...
@@ -128,6 +131,9 @@ void WinEDA_PcbFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
DrawStruct
=
m_Pcb
->
FindPadOrModule
(
GetScreen
()
->
RefPos
(
true
),
DrawStruct
=
m_Pcb
->
FindPadOrModule
(
GetScreen
()
->
RefPos
(
true
),
GetScreen
()
->
m_Active_Layer
);
GetScreen
()
->
m_Active_Layer
);
Show_1_Ratsnest
(
DrawStruct
,
DC
);
Show_1_Ratsnest
(
DrawStruct
,
DC
);
if
(
DrawStruct
)
SendMessageToEESCHEMA
(
DrawStruct
);
break
;
break
;
case
ID_PCB_MIRE_BUTT
:
case
ID_PCB_MIRE_BUTT
:
...
@@ -311,6 +317,27 @@ out:
...
@@ -311,6 +317,27 @@ out:
}
}
// see wxstruct.h
void
WinEDA_PcbFrame
::
SendMessageToEESCHEMA
(
EDA_BaseStruct
*
objectToSync
)
{
char
cmd
[
1024
];
MODULE
*
module
=
NULL
;
if
(
objectToSync
->
m_StructType
==
TYPEMODULE
)
module
=
(
MODULE
*
)
objectToSync
;
else
if
(
objectToSync
->
m_StructType
==
TYPEPAD
)
module
=
(
MODULE
*
)((
D_PAD
*
)
objectToSync
)
->
m_Parent
;
// ask only for the reference for now, maybe pins later.
if
(
module
)
{
sprintf
(
cmd
,
"$PART: %s"
,
CONV_TO_UTF8
(
module
->
m_Reference
->
m_Text
)
);
SendCommand
(
MSG_TO_SCH
,
cmd
);
}
}
/*********************************************************************/
/*********************************************************************/
void
WinEDA_PcbFrame
::
Process_Special_Functions
(
wxCommandEvent
&
event
)
void
WinEDA_PcbFrame
::
Process_Special_Functions
(
wxCommandEvent
&
event
)
/*********************************************************************/
/*********************************************************************/
...
...
pcbnew/files.cpp
View file @
51fc26e1
...
@@ -235,7 +235,9 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
...
@@ -235,7 +235,9 @@ int WinEDA_PcbFrame::LoadOnePcbFile( const wxString& FullFileName, wxDC* DC, boo
g_SaveTime
=
time
(
NULL
);
g_SaveTime
=
time
(
NULL
);
#if defined(DEBUG)
#if 0 && defined(DEBUG)
// note this seems to freeze up pcbnew when run under the kicad project
// manager. runs fine from command prompt.
// output the board object tree to stdout:
// output the board object tree to stdout:
m_Pcb->Show( 0, std::cout );
m_Pcb->Show( 0, std::cout );
#endif
#endif
...
...
pcbnew/protos.h
View file @
51fc26e1
...
@@ -394,7 +394,7 @@ TRACK * CreateLockPoint(int *pX, int *pY, TRACK * ptsegm, TRACK * refsegm);
...
@@ -394,7 +394,7 @@ TRACK * CreateLockPoint(int *pX, int *pY, TRACK * ptsegm, TRACK * refsegm);
/****************/
/****************/
/* CONTROLE.CPP */
/* CONTROLE.CPP */
/****************/
/****************/
void
RemoteCommand
(
char
*
cmdline
);
void
RemoteCommand
(
const
char
*
cmdline
);
/*************/
/*************/
/* STRUCT.CPP */
/* STRUCT.CPP */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment