Commit 72dbdf7f authored by jerryjacobs's avatar jerryjacobs

Splitted common.h subroutines to seperate include files. Minor code cleanup.

parent a3a4bbc0
...@@ -16,6 +16,14 @@ generated doxygen docs readable and clear using the JavaDoc style comments, ...@@ -16,6 +16,14 @@ generated doxygen docs readable and clear using the JavaDoc style comments,
mostly in the header files. The error and warning output of the doxygen mostly in the header files. The error and warning output of the doxygen
compiler can help with this too. compiler can help with this too.
*** GerbView
Need support for drill files like Excellon, the best is to write small library for parsing
and displaying it.
*** CVPCB
Add preference (checkbox) to close cvpcb after saving netlist instead of automatic
close after saving netlist, because this is not normal program behavoir to quit
after save.
*** Translate comments that are in French to English so there can be a broader *** Translate comments that are in French to English so there can be a broader
understanding by new developers. understanding by new developers.
......
/**
* This file is part of the common libary.
* @file block_commande.h
* @see common.h
*/
#ifndef __INCLUDE__BLOCK_COMMANDE_H__
#define __INCLUDE__BLOCK_COMMANDE_H__ 1
void AbortBlockCurrentCommand( WinEDA_DrawPanel* Panel, wxDC* DC );
/* Cancel Current block operation. */
void InitBlockLocateDatas( WinEDA_DrawPanel* Panel, const wxPoint& startpos );
/* Init the initial values of a BlockLocate, before starting a block command */
void DrawAndSizingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
/* Redraw the outlines of the block which shows the search area for block commands
* The first point of the rectangle showing the area is initialised
* by InitBlockLocateDatas().
* The other point of the rectangle is the mouse cursor */
#endif /* __INCLUDE__BLOCK_COMMANDE_H__ */
This diff is collapsed.
/**
* This file is part of the common libary
* @file confirm.h
* @see common.h
*/
#ifndef __INCLUDE__CONFIRM_H__
#define __INCLUDE__CONFIRM_H__ 1
void DisplayError( wxWindow* parent, const wxString& msg, int displaytime = 0 );
void DisplayInfo( wxWindow* parent, const wxString& msg, int displaytime = 0 );
/* Routines d'affichage messages ( disparait au bout de displaytime 0.1 secondes) */
bool IsOK( wxWindow* parent, const wxString& msg );
/* Routine affichant la fenetre "CONFIRMATION"
* Retourne 1 ou 0 selon reponse Yes / No */
int Get_Message( const wxString& title,
const wxString& frame_caption,
wxString& buffer,
wxWindow* frame );
/* Fonction d'installation du menu de Dialogue
* entree: titre = titre a afficher
* entree/sortie :buffer : contient la reponse
* si a l'appel buffer n'est pas vide, son contenu est aussi
* affiche, mais disparait a la 1ere correction */
#endif /* __INCLUDE__CONFIRM_H__ */
/**
* This file is part of the common libary
* @file drawtxt.h
* @see common.h
*/
#ifndef __INCLUDE__DRAWTXT_H__
#define __INCLUDE__DRAWTXT_H__ 1
/** Function DrawGraphicText
* Draw a graphic text (like module texts)
* @param aPanel = the current DrawPanel
* @param aPos = text position (according to h_justify, v_justify)
* @param aColor (enum EDA_Colors) = text color
* @param aText = text to draw
* @param aOrient = angle in 0.1 degree
* @param aSize = text size (size.x or size.y can be < 0 for mirrored texts)
* @param aH_justify = horizontal justification (Left, center, right)
* @param aV_justify = vertical justification (bottom, center, top)
* @param aWidth = line width (pen width) (default = 0)
* if width < 0 : draw segments in sketch mode, width = abs(width)
* @param aItalic = true to simulate an italic font
* @param aCallback() = function called (if non null) to draw each segment.
* used only to draw 3D texts
*/
void DrawGraphicText( WinEDA_DrawPanel* aPanel,
wxDC* aDC,
const wxPoint& aPos,
enum EDA_Colors aColor,
const wxString& aText,
int aOrient,
const wxSize& aSize,
enum GRTextHorizJustifyType aH_justify,
enum GRTextVertJustifyType aV_justify,
int aWidth = 0,
bool aItalic = false,
void (*aCallback)(int x0, int y0, int xf, int yf) = NULL);
/** Function PlotGraphicText
* same as DrawGraphicText, but plot graphic text insteed of draw it
* @param aFormat_plot = plot format (PLOT_FORMAT_POST, PLOT_FORMAT_HPGL, PLOT_FORMAT_GERBER)
* @param aPos = text position (according to aH_justify, aV_justify)
* @param aColor (enum EDA_Colors) = text color
* @param aText = text to draw
* @param aOrient = angle in 0.1 degree
* @param aSize = text size (size.x or size.y can be < 0 for mirrored texts)
* @param aH_justify = horizontal justification (Left, center, right)
* @param aV_justify = vertical justification (bottom, center, top)
* @param aWidth = line width (pen width) (default = 0)
* if width < 0 : draw segments in sketch mode, width = abs(width)
* @param aItalic = true to simulate an italic font
*/
void PlotGraphicText( int aFormat_plot,
const wxPoint& aPos,
enum EDA_Colors aColor,
const wxString& aText,
int aOrient,
const wxSize& aSize,
enum GRTextHorizJustifyType aH_justify,
enum GRTextVertJustifyType aV_justify,
int aWidth,
bool aItalic = false );
#endif /* __INCLUDE__DRAWTXT_H__ */
/**
* This file is part of the common libary.
* @file eda_doc.h
* @see common.h
*/
#ifndef __INCLUDE__EDA_DOC_H__
#define __INCLUDE__EDA_DOC_H__ 1
int KeyWordOk( const wxString& KeyList,
const wxString& Database );
/* Recherche si dans le texte Database on retrouve tous les mots
* cles donnes dans KeyList ( KeyList = suite de mots cles
* separes par des espaces
* Retourne:
* 0 si aucun mot cle trouv�
* 1 si mot cle trouv�
*/
bool GetAssociatedDocument( wxFrame* frame,
const wxString& LibPath,
const wxString& DocName );
#endif /* __INCLUDE__EDA_DOC_H__ */
/**
* This file is part of the common libary
* TODO brief description
* @file gestfich.h
* @see common.h
*/
#ifndef __INCLUDE__GESTFICH_H__
#define __INCLUDE__GESTFICH_H__ 1
wxString GetEditorName(); // Return the prefered editor name
/** Function OpenPDF
* run the PDF viewer and display a PDF file
* @param file = PDF file to open
* @return true is success, false if no PDF viewer found
*/
bool OpenPDF( const wxString& file );
void OpenFile( const wxString& file );
bool EDA_DirectorySelector( const wxString& Title, /* Titre de la fenetre */
wxString& Path, /* Chemin par defaut */
int flag, /* reserve */
wxWindow* Frame, /* parent frame */
const wxPoint& Pos );
wxString EDA_FileSelector( const wxString &Title, /* Window title */
const wxString &Path, /* default path */
const wxString &FileName, /* default filename */
const wxString &Ext, /* default extension */
const wxString &Mask, /* Display filename mask */
wxWindow * Frame, /* parent frame */
int flag, /* wxSAVE, wxOPEN ..*/
const bool keep_working_directory, /* true = do not change the C.W.D. */
const wxPoint& Pos = wxPoint( -1, -1 )
);
wxString MakeFileName( const wxString& dir,
const wxString& shortname, const wxString& ext );
/* Calcule le nom complet d'un file d'apres les chaines
* dir = prefixe (chemin)
* shortname = nom avec ou sans chemin ou extension
* ext = extension
*
* si la chaine name possede deja un chemin ou une extension, elles
* ne seront pas modifiees
*
* retourne la chaine calculee */
wxString MakeReducedFileName( const wxString& fullfilename,
const wxString& default_path,
const wxString& default_ext );
/* Calcule le nom "reduit" d'un file d'apres les chaines
* fullfilename = nom complet
* default_path = prefixe (chemin) par defaut
* default_ext = extension par defaut
*
* retourne le nom reduit, c'est a dire:
* sans le chemin si le chemin est default_path
* avec ./ si si le chemin est le chemin courant
* sans l'extension si l'extension est default_ext
*
* Renvoie un chemin en notation unix ('/' en separateur de repertoire)
*/
WinEDAListBox* GetFileNames( char* Directory, char* Mask );
void ChangeFileNameExt( wxString& FullFileName, const wxString& NewExt );
/* Change l'extension du "filename FullFileName" en NewExt.
* Retourne FullFileName */
int ExecuteFile( wxWindow* frame, const wxString& ExecFile,
const wxString& param = wxEmptyString );
void AddDelimiterString( wxString& string );
void SetRealLibraryPath( const wxString& shortlibname ); /* met a jour
* le chemin des librairies RealLibDirBuffer (global)
* a partir de UserLibDirBuffer (global):
* Si UserLibDirBuffer non vide RealLibDirBuffer = UserLibDirBuffer.
* Sinon si variable d'environnement KICAD definie (KICAD = chemin pour kicad),
* UserLibDirBuffer = <KICAD>/shortlibname;
* Sinon UserLibDirBuffer = <Chemin des binaires>../shortlibname/
*/
wxString FindKicadHelpPath();
/* Find absolute path for kicad/help (or kicad/help/<language>) */
wxString ReturnKicadDatasPath();
/* Retourne le chemin des donnees communes de kicad. */
wxString FindKicadFile( const wxString& shortname );
/* Search the executable file shortname in kicad binary path and return
* full file name if found or shortname */
#endif /* __INCLUDE__GESTFICH_H__ */
/**
* This file is part of the common libary.
* @file get_component_dialog.h
* @see common.h
*/
#ifndef __INCLUDE__GET_COMPONENT_DIALOG_H__
#define __INCLUDE__GET_COMPONENT_DIALOG_H__ 1
wxString GetComponentName( WinEDA_DrawFrame * frame,
wxArrayString & HistoryList, const wxString &Title,
wxString (*AuxTool)( WinEDA_DrawFrame * parent ) );
/* Dialog frame to choose a component name */
void AddHistoryComponentName( wxArrayString& HistoryList, const wxString& Name );
/* Add the string "Name" to the history list */
#endif /* __INCLUDE__GET_COMPONENT_DIALOG_H__ */
/**
* This file is part of the common libary \n
* Custom string manipulation routines.
* @file kicad_string.h
* @see common.h, string.cpp
*/
#ifndef __INCLUDE__KICAD_STRING_H__
#define __INCLUDE__KICAD_STRING_H__ 1
char* strupper( char* Text );
char* strlower( char* Text );
int ReadDelimitedText( char* dest,
char* source,
int NbMaxChar );
/* lit et place dans dest la chaine de caractere trouvee dans source,
* delimitee par " .
* transfere NbMaxChar max
* retourne le nombre de codes lus dans source
* dest est termine par NULL */
char* GetLine( FILE* File,
char* Line,
int* LineNum = NULL,
int SizeLine = 255 );
/* Routine de lecture de 1 ligne utile
* retourne la 1ere ligne utile lue.
* elimine lignes vides et commentaires */
char* StrPurge( char* text );
/* Supprime les caracteres Space en debut de la ligne text
* retourne un pointeur sur le 1er caractere non Space de text */
char* DateAndTime( char* line );
wxString DateAndTime();
/* Retourne la chaine de caractere donnant date+heure */
int StrLenNumCmp( const wxChar* str1,
const wxChar* str2,
int NbMax );
/*
* routine (compatible qsort() ) de comparaision pour classement alphab�tique
* Analogue a strncmp() mais les nombres sont compar�s selon leur valeur num�rique
* et non pas par leur code ascii */
int StrNumICmp( const wxChar* str1,
const wxChar* str2 );
/* routine (compatible qsort() ) de comparaison pour classement alphab�tique,
* avec lower case == upper case.
* Analogue a stricmp() mais les nombres sont compar�s selon leur valeur num�rique
* et non pas par leur code ascii */
int StrLenNumICmp( const wxChar* str1,
const wxChar* str2,
int NbMax );
/* routine (compatible qsort() ) de comparaison pour classement alphab�tique,
* avec lower case == upper case.
* Analogue a stricmp() mais les nombres sont compar�s selon leur valeur num�rique
* et non pas par leur code ascii */
bool WildCompareString( const wxString& pattern,
const wxString& string_to_tst,
bool case_sensitive = TRUE );
/* compare 2 noms de composants, selon regles usuelles
* ( Jokers * , ? , autorises).
* la chaine de reference est "pattern"
* si case_sensitive == TRUE (default), comparaison exacte
* retourne TRUE si match FALSE si differences */
char* to_point( char* Text );
/* convertit les , en . dans une chaine. utilise pour compenser la fct printf
* qui genere les flottants avec une virgule au lieu du point en mode international */
#endif /* __INCLUDE__KICAD_STRING_H__ */
/********************/ /**
/* plot_common.h */ * Common plot library \n
/********************/ * Plot settings, postscript plotting, gerber plotting.
*
* @file plot_common.h
*/
#ifndef PLOT_COMMON_H #ifndef __INCLUDE__PLOT_COMMON_H__
#define PLOT_COMMON_H #define __INCLUDE__PLOT_COMMON_H__ 1
#ifndef EDA_BASE #ifndef EDA_BASE
#define COMMON_GLOBL extern # define COMMON_GLOBL extern
#else #else
#define COMMON_GLOBL # define COMMON_GLOBL
#endif #endif
...@@ -16,7 +19,9 @@ ...@@ -16,7 +19,9 @@
* Enum PlotFormat * Enum PlotFormat
* must be kept in order of the radio buttons in the plot panel/window. * must be kept in order of the radio buttons in the plot panel/window.
*/ */
enum PlotFormat { enum
PlotFormat
{
PLOT_FORMAT_HPGL, PLOT_FORMAT_HPGL,
PLOT_FORMAT_GERBER, PLOT_FORMAT_GERBER,
PLOT_FORMAT_POST PLOT_FORMAT_POST
...@@ -25,7 +30,7 @@ enum PlotFormat { ...@@ -25,7 +30,7 @@ enum PlotFormat {
static inline bool IsPostScript( int aFormat ) static inline bool IsPostScript( int aFormat )
{ {
return aFormat==PLOT_FORMAT_POST; return aFormat == PLOT_FORMAT_POST;
} }
...@@ -90,25 +95,50 @@ void SetColorMapPS( int color ); ...@@ -90,25 +95,50 @@ void SetColorMapPS( int color );
/*********************************/ /*********************************/
/* common_plotHPGL_functions.cpp */ /* common_plotHPGL_functions.cpp */
/*********************************/ /*********************************/
void InitPlotParametresHPGL( wxPoint offset, double aXScale, double aYScale, int orient = 0 ); void InitPlotParametresHPGL( wxPoint offset,
bool PrintHeaderHPGL( FILE* plot_file, int pen_speed, int pen_num ); double aXScale,
double aYScale,
int orient = 0 );
bool PrintHeaderHPGL( FILE* plot_file,
int pen_speed,
int pen_num );
bool CloseFileHPGL( FILE* plot_file ); bool CloseFileHPGL( FILE* plot_file );
void PlotCircleHPGL( wxPoint centre, int diameter, bool fill, int width = -1 ); void PlotCircleHPGL( wxPoint centre,
void PlotRectHPGL( wxPoint t1, wxPoint t2, bool fill, int width = -1 ); int diameter,
void PlotArcHPGL( wxPoint centre, int StAngle, int EndAngle, int rayon, bool fill, int width = -1 ); bool fill,
void PlotPolyHPGL( int nb, int* coord, bool fill, int width = -1 ); int width = -1 );
void Move_Plume_HPGL( wxPoint pos, int plume ); void PlotRectHPGL( wxPoint t1,
wxPoint t2,
bool fill,
int width = -1 );
void PlotArcHPGL( wxPoint centre,
int StAngle,
int EndAngle,
int rayon,
bool fill,
int width = -1 );
void PlotPolyHPGL( int nb,
int* coord,
bool fill,
int width = -1 );
void Move_Plume_HPGL( wxPoint pos,
int plume );
void Plume_HPGL( int plume ); void Plume_HPGL( int plume );
/*********************************/ /*********************************/
/* common_plotGERBER_functions.cpp */ /* common_plotGERBER_functions.cpp */
/*********************************/ /*********************************/
/** function InitPlotParametresGERBER /** Function InitPlotParametresGERBER
* Set the plot offset for the current plotting * Set the plot offset for the current plotting
* @param aOffset = plot offset * @param aOffset = plot offset
* @param aXScale,aYScale = coordinate scale (scale coefficient for coordinates) * @param aXScale,aYScale = coordinate scale (scale coefficient for coordinates)
*/ */
void InitPlotParametresGERBER( wxPoint aOffset, double aXScale, double aYScale ); void InitPlotParametresGERBER( wxPoint aOffset,
double aXScale,
double aYScale );
/** Function Write_Header_GERBER /** Function Write_Header_GERBER
* Write GERBER header to file * Write GERBER header to file
...@@ -116,7 +146,8 @@ void InitPlotParametresGERBER( wxPoint aOffset, double aXScale, double aYScale ) ...@@ -116,7 +146,8 @@ void InitPlotParametresGERBER( wxPoint aOffset, double aXScale, double aYScale )
* @param aTitle: the name of creator (comment) * @param aTitle: the name of creator (comment)
* @param aFile: an opened file to write to * @param aFile: an opened file to write to
*/ */
void Write_Header_GERBER( const wxString aTitle, FILE* aFile ); void Write_Header_GERBER( const wxString aTitle,
FILE* aFile );
/** Function LineTo_GERBER /** Function LineTo_GERBER
* if aCommand = 'U' initialise the starting point of a line * if aCommand = 'U' initialise the starting point of a line
...@@ -124,24 +155,29 @@ void Write_Header_GERBER( const wxString aTitle, FILE* aFile ); ...@@ -124,24 +155,29 @@ void Write_Header_GERBER( const wxString aTitle, FILE* aFile );
* @param aPos = end of the current line. * @param aPos = end of the current line.
* @param aCommand = 'U' or 'D' or 'Z' (Pen up , no moving ) * @param aCommand = 'U' or 'D' or 'Z' (Pen up , no moving )
*/ */
void LineTo_GERBER( wxPoint aPos, int aCommand ); void LineTo_GERBER( wxPoint aPos,
int aCommand );
/** Function PlotGERBERLine /** Function PlotGERBERLine
* Plot a line * Plot a line
* @param aStartPos = starting point of the line * @param aStartPos = starting point of the line
* @param aEndPos = ending point of the line * @param aEndPos = ending point of the line
* @param aThickness = line thickness * @param aThickness = line thickness
*/ */
void PlotGERBERLine( wxPoint aStartPos, wxPoint aEndPos, int aThickness ); void PlotGERBERLine( wxPoint aStartPos,
wxPoint aEndPos,
int aThickness );
/** Function PlotCircle_GERBER /** Function PlotCircle_GERBER
* writes a non filled circle to output file * writes a non filled circle to output file
* Plot one circle as segments (6 to 16 depending on its radius * Plot one circle as segments (6 to 16 depending on its radius
* @param aCentre = centre coordintes * @param aCentre = centre coordintes
* @param aRadius = radius of the circle * @param aRadius = radius of the circle
* @param aWidth = line width (noc currently used, D_CODEs must be selected before) * @param aWidth = line width (noc currently used, D_CODEs must be selected before)
*/ */
void PlotCircle_GERBER( wxPoint aCentre, int aRadius, int aWidth ); void PlotCircle_GERBER( wxPoint aCentre,
int aRadius,
int aWidth );
/** Function PlotPolygon_GERBER /** Function PlotPolygon_GERBER
* writes a closed polyline (not a filled polygon) to output file * writes a closed polyline (not a filled polygon) to output file
...@@ -149,15 +185,17 @@ void PlotCircle_GERBER( wxPoint aCentre, int aRadius, int aWidth ); ...@@ -149,15 +185,17 @@ void PlotCircle_GERBER( wxPoint aCentre, int aRadius, int aWidth );
* @param aCoord = buffer of corners coordinates * @param aCoord = buffer of corners coordinates
* @param aWidth = line width (noc currently used, D_CODEs must be selected before) * @param aWidth = line width (noc currently used, D_CODEs must be selected before)
*/ */
void PlotPolygon_GERBER( int aCornersCount,
int* aCoord,
void PlotPolygon_GERBER( int aCornersCount, int* aCoord, int aWidth ); int aWidth );
/** Function PlotFilledPolygon_GERBER /** Function PlotFilledPolygon_GERBER
* writes a filled polyline to output file * writes a filled polyline to output file
* @param aCornersCount = numer of corners * @param aCornersCount = numer of corners
* @param aCoord = buffer of corners coordinates * @param aCoord = buffer of corners coordinates
*/ */
void PlotFilledPolygon_GERBER( int aCornersCount, int* aCoord ); void PlotFilledPolygon_GERBER( int aCornersCount,
int* aCoord );
#endif /* __INCLUDE__PLOT_COMMON_H__ */
#endif /* #ifndef PLOT_COMMON_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment