Commit b9259f85 authored by dickelbeck's avatar dickelbeck

fixed g++ 4.1.2 compiler warnings, added USE_MATCH_LAYER build option

parent 9ae3184b
......@@ -25,8 +25,8 @@
extern BASE_SCREEN * ActiveScreen;
static bool s_PlotBlackAndWhite = FALSE;
static bool Print_Sheet_Ref = TRUE;
static const bool s_PlotBlackAndWhite = FALSE;
static const bool Print_Sheet_Ref = TRUE;
static bool DrawPage(WinEDA_DrawPanel * panel);
......
......@@ -501,7 +501,7 @@ int margin;
/* Build the screen list */
EDA_ScreenList ScreenList(NULL);
if ( Select_PlotAll == TRUE ) screen = screen = ScreenList.GetFirst();
if ( Select_PlotAll == TRUE ) screen = ScreenList.GetFirst();
else screen = ActiveScreen;
for ( ; screen != NULL; screen = ScreenList.GetNext() )
{
......
......@@ -329,7 +329,7 @@ wxPoint plot_offset;
/* Build the screen list */
EDA_ScreenList ScreenList(NULL);
if ( AllPages == TRUE ) screen = screen = ScreenList.GetFirst();
if ( AllPages == TRUE ) screen = ScreenList.GetFirst();
else screen = ActiveScreen;
for ( ; screen != NULL; screen = ScreenList.GetNext() )
{
......
......@@ -62,6 +62,12 @@ LDFLAGS = -s #-v
endif
# a command line define which affects pcbnew only, causing it to match current layer
ifdef USE_MATCH_LAYER
CPPFLAGS += -DUSE_MATCH_LAYER
endif
# You must comment or uncomment this line to disable/enable python support
#KICAD_PYTHON = 1
......
......@@ -60,7 +60,7 @@ public:
wxSize m_Ext; // marges de "garde": utilise en placement auto.
float m_Surface; // surface du rectangle d'encadrement
long m_Link; // variable temporaire ( pour editions, ...)
unsigned long m_Link; // variable temporaire ( pour editions, ...)
long m_LastEdit_Time; // Date de la derniere modification du module (gestion de librairies)
wxString m_Doc; // Texte de description du module
......
......@@ -22,10 +22,6 @@
#define POS_AFF_NUMSEGM 70
/* Routines locales : */
#if 0
static void ConnectDanglingEndToPad(WinEDA_PcbFrame * frame);
static void Gen_Raccord_Track(WinEDA_PcbFrame * frame, wxDC * DC);
#endif
static int clean_segments(WinEDA_PcbFrame * frame, wxDC * DC);
static void suppression_piste_non_connectee(WinEDA_PcbFrame * frame, wxDC * DC);
static TRACK * AlignSegment(BOARD * Pcb, TRACK * pt_ref, TRACK * pt_segm, int extremite);
......
......@@ -109,7 +109,6 @@ void Build_1_Pad_SegmentsToDrag(WinEDA_DrawPanel * panel, wxDC * DC, D_PAD * PtP
*/
{
TRACK * Track;
DRAG_SEGM * pt_drag;
int net_code = PtPad->m_NetCode;
int MasqueLayer;
wxPoint pos;
......
......@@ -342,7 +342,7 @@ char *layer_name[4] = {"??? ","copper","component","all"} ;
fprintf( rptfile,"$EndPAD\n");
}
fprintf( rptfile,"$EndMODULE %s\n\n", Module->m_Reference->m_Text.GetData());
fprintf( rptfile,"$EndMODULE %s\n\n", (const char*) Module->m_Reference->m_Text.GetData() );
}
/* Write board Edges */
......
......@@ -147,7 +147,11 @@ sous le courseur souris
if ( ItemFree )
{
module = Locate_Prefered_Module(m_Pcb,
CURSEUR_OFF_GRILLE | IGNORE_LOCKED | VISIBLE_ONLY /*MATCH_LAYER */ );
CURSEUR_OFF_GRILLE | IGNORE_LOCKED | VISIBLE_ONLY
#if defined(USE_MATCH_LAYER)
| MATCH_LAYER
#endif
);
if ( module == NULL ) // no footprint found
{
module = Locate_Prefered_Module(m_Pcb, CURSEUR_OFF_GRILLE );
......
......@@ -117,19 +117,25 @@ EDA_BaseStruct * item;
return pt_texte_pcb;
}
if ( (DrawSegm = Locate_Segment_Pcb(m_Pcb, LayerSearch, typeloc)) != NULL)
DrawSegm = Locate_Segment_Pcb(m_Pcb, LayerSearch, typeloc);
if( DrawSegm != NULL )
{
Affiche_Infos_DrawSegment(this, DrawSegm);
return DrawSegm;
}
if ( (item = Locate_Cotation(m_Pcb, LayerSearch, typeloc)) != NULL) return item;
item = Locate_Cotation(m_Pcb, LayerSearch, typeloc);
if( item != NULL )
return item;
if ( (item = Locate_MirePcb(m_Pcb->m_Drawings, LayerSearch, typeloc)) != NULL) return item;
item = Locate_MirePcb(m_Pcb->m_Drawings, LayerSearch, typeloc);
if( item != NULL )
return item;
/* Search for tracks and vias, with via priority */
if ( LayerSearch == -1 ) masque_layer = ALL_LAYERS;
else masque_layer = g_TabOneLayerMask[LayerSearch];
Track = Locate_Pistes( m_Pcb->m_Track, masque_layer,typeloc );
if ( Track != NULL )
{
......@@ -146,7 +152,6 @@ EDA_BaseStruct * item;
return Track;
}
/* Search for Pads */
if( (pt_pad = Locate_Any_Pad(m_Pcb, typeloc)) != NULL )
{
......@@ -157,13 +162,16 @@ EDA_BaseStruct * item;
// First search: locate texts for footprints on copper or component layer
// Priority to the active layer (component or copper.
// this is useful for small smd components when 2 texts overlap but are not on the same layer
if ( (LayerSearch == LAYER_CUIVRE_N) || (LayerSearch == CMP_N ))
if( LayerSearch == LAYER_CUIVRE_N || LayerSearch == CMP_N )
{
for (module = m_Pcb->m_Modules; module != NULL; module = (MODULE*)module->Pnext)
for( module = m_Pcb->m_Modules; module != NULL; module = (MODULE*)module->Pnext )
{
TEXTE_MODULE * pt_texte;
if ( module->m_Layer != LayerSearch) continue;
pt_texte = LocateTexteModule(m_Pcb, &module, typeloc | VISIBLE_ONLY);
TEXTE_MODULE * pt_texte;
if( module->m_Layer != LayerSearch )
continue;
pt_texte = LocateTexteModule( m_Pcb, &module, typeloc | VISIBLE_ONLY );
if( pt_texte != NULL )
{
Affiche_Infos_E_Texte(this, module, pt_texte);
......@@ -175,8 +183,8 @@ EDA_BaseStruct * item;
// Now Search footprint texts on all layers
module = NULL;
{
TEXTE_MODULE * pt_texte;
pt_texte = LocateTexteModule(m_Pcb, &module, typeloc | VISIBLE_ONLY);
TEXTE_MODULE * pt_texte;
pt_texte = LocateTexteModule(m_Pcb, &module, typeloc | VISIBLE_ONLY );
if( pt_texte != NULL )
{
Affiche_Infos_E_Texte(this, module, pt_texte);
......@@ -185,7 +193,8 @@ EDA_BaseStruct * item;
}
/* Search for a footprint */
if ( (module = Locate_Prefered_Module(m_Pcb, typeloc | VISIBLE_ONLY)) != NULL)
module = Locate_Prefered_Module( m_Pcb, typeloc | VISIBLE_ONLY );
if( module != NULL )
{
module->Display_Infos(this);
return module;
......@@ -195,7 +204,8 @@ EDA_BaseStruct * item;
if( (TrackLocate = Locate_Zone((TRACK*)m_Pcb->m_Zone,
GetScreen()->m_Active_Layer,typeloc)) != NULL )
{
Affiche_Infos_Piste(this, TrackLocate) ; return TrackLocate;
Affiche_Infos_Piste(this, TrackLocate);
return TrackLocate;
}
MsgPanel->EraseMsgBox();
......@@ -757,21 +767,35 @@ wxPoint ref_pos;
for( ; module != NULL; module = (MODULE*)module->Pnext )
{
if ( (typeloc & VISIBLE_ONLY) )
int layer = module->m_Layer;
if( layer==ADHESIVE_N_CU || layer==SILKSCREEN_N_CU )
layer = CUIVRE_N;
else if( layer==ADHESIVE_N_CMP || layer==SILKSCREEN_N_CMP )
layer = CMP_N;
if( typeloc & VISIBLE_ONLY )
{
int layer = module->m_Layer;
if( layer==ADHESIVE_N_CU || layer==SILKSCREEN_N_CU ) layer = CUIVRE_N;
else if( layer==ADHESIVE_N_CMP || layer==SILKSCREEN_N_CMP ) layer = CMP_N;
if ( ! IsModuleLayerVisible( layer ) ) continue;
if( !IsModuleLayerVisible( layer ) )
continue;
}
pt_txt_mod = module->m_Reference;
if( typeloc & MATCH_LAYER )
{
if( ((PCB_SCREEN*)ActiveScreen)->m_Active_Layer != layer )
continue;
}
pt_txt_mod = module->m_Reference;
/* la souris est-elle dans le rectangle autour du texte*/
if( pt_txt_mod->Locate(ref_pos) )
{
if( PtModule) *PtModule = module;
return(pt_txt_mod);
}
pt_txt_mod = module->m_Value;
/* la souris est-elle dans le rectangle autour du texte*/
if( pt_txt_mod->Locate(ref_pos) )
{
......
......@@ -20,7 +20,7 @@
/* fonctions importees */
/* Fonctions locales */
static void Exit_Muonde(WinEDA_DrawFrame * frame, wxDC *DC);
//static void Exit_Muonde(WinEDA_DrawFrame * frame, wxDC *DC);
/* Variables locales : */
#define COEFF_COUNT 6
......@@ -87,7 +87,7 @@ wxString Line;
}
#if 0
/**********************************************************/
static void Exit_Muonde(WinEDA_DrawFrame * frame, wxDC *DC )
/**********************************************************/
......@@ -111,6 +111,7 @@ MODULE * Module = (MODULE*) frame->m_CurrentScreen->m_CurrentItem;
frame->DrawPanel->ForceCloseManageCurseur = NULL;
frame->m_CurrentScreen->m_CurrentItem = NULL;
}
#endif
/***************************************************************************/
......
......@@ -25,7 +25,7 @@
#include "Delete_Line.xpm"
#include "Delete_Track.xpm"
#include "Move_Module.xpm"
#include "Move_Track_Segment.xpm"
//#include "Move_Track_Segment.xpm"
#include "Drag_Track_Segment.xpm"
#include "Drag_Segment_WithSlope.xpm"
#include "Drag_Module.xpm"
......
......@@ -202,7 +202,7 @@ wxString title = _("Zone clearance value:") + ReturnUnitSymbol(g_UnitMetric);
if ( Zone_45_Only ) m_OrientEdgesOpt->SetSelection(1);
int GridList[4] = { 50,100,250,500}, selection = 0;
for ( int ii = 0; ii < m_GridCtrl->GetCount(); ii++ )
for ( unsigned ii = 0; ii < m_GridCtrl->GetCount(); ii++ )
{
wxString msg = ReturnStringFromValue(g_UnitMetric, GridList[ii], m_Parent->m_InternalUnits);
m_GridCtrl->SetString(ii,msg);
......@@ -857,7 +857,7 @@ wxString msg;
if( (cell & CELL_is_ZONE) )
{
if ( (cell & CELL_is_FRIEND) == 0)
AndCell(ii,jj,BOTTOM, ~(CELL_is_FRIEND|CELL_is_ZONE) );
AndCell(ii,jj,BOTTOM, (BoardCell) ~(CELL_is_FRIEND|CELL_is_ZONE) );
}
}
}
......
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