Loading pcbnew/bitmaps/general_ratsnet.xpm→bitmaps/general_ratsnet.xpm +7 −1 Original line number Original line Diff line number Diff line /* XPM */ /* XPM */ static char * general_ratsnet_xpm[] = { #ifndef XPMMAIN extern char *general_ratsnet_xpm[]; #else char * general_ratsnet_xpm[] = { "16 16 41 1", "16 16 41 1", " c None", " c None", ". c #FFFFFF", ". c #FFFFFF", Loading Loading @@ -58,3 +62,5 @@ static char * general_ratsnet_xpm[] = { "...'123 4-;5 ", "...'123 4-;5 ", "...6-78 90a ", "...6-78 90a ", " b( .. "}; " b( .. "}; #endif change_log.txt +8 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,14 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with email address. email address. 2007-sept-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> ================================================================================ + pcbnew: * add class_board_item.cpp file and move BOARD_ITEM::MenuText() and BOARD_ITEM::MenuIcon() in it * Add zone detection, forgotten in PcbGeneralLocateAndDisplay() + class_collector.h: add void COLLECTOR::Remove( unsigned int item_position ), needed by zone detection, see PcbGeneralLocateAndDisplay 2007-Sep-25 UPDATE Geoff Harland <gharlandau@yahoo.com.au> 2007-Sep-25 UPDATE Geoff Harland <gharlandau@yahoo.com.au> ================================================================================ ================================================================================ Loading include/bitmaps.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -181,6 +181,7 @@ #include "../bitmaps/library_update.xpm" #include "../bitmaps/library_update.xpm" #include "../bitmaps/transistor.xpm" #include "../bitmaps/transistor.xpm" #include "../bitmaps/kicad_icon_small.xpm" #include "../bitmaps/kicad_icon_small.xpm" #include "../bitmaps/general_ratsnet.xpm" // Largeur du toolbar vertical // Largeur du toolbar vertical #define VTOOLBAR_WIDTH 26 #define VTOOLBAR_WIDTH 26 Loading include/class_collector.h +10 −27 Original line number Original line Diff line number Diff line Loading @@ -109,6 +109,15 @@ public: m_List.push_back( item ); m_List.push_back( item ); } } /** * Function Remove * removes the item at item_position (first position is 0); * @param item_position index. */ void Remove( unsigned int item_position ) { m_List.erase( m_List.begin() + item_position ); } /** /** * Function operator[int] * Function operator[int] Loading Loading @@ -220,32 +229,6 @@ public: } } */ */ /** * Function Collect * scans an EDA_BaseStruct using this class's Inspector method, which does * the collection. * @param container An EDA_BaseStruct to scan, including those items it contains. * @param aRefBox An EDA_Rect to use in bounds-testing. * * example implementation, in derived class: * virtual void Collect( EDA_BaseStruct* container, const EDA_Rect& aRefBox ) { example implementation: SetBoundingBox( aRefBox ); // pass box to Inspect() Empty(); // empty the collection // visit the board with the INSPECTOR (me). container->Visit( this, // INSPECTOR* inspector NULL, // const void* testData, m_ScanTypes); SetTimeNow(); // when it was taken } */ }; }; #endif // COLLECTOR_H #endif // COLLECTOR_H Loading pcbnew/class_board_item.cpp 0 → 100644 +249 −0 Original line number Original line Diff line number Diff line /*****************************************/ /* class BOARD_ITEM: som basic functions */ /*****************************************/ #include "fctsys.h" #include "gr_basic.h" #include "common.h" #include "pcbnew.h" #include "id.h" #include "collectors.h" #include "bitmaps.h" #include "add_cotation.xpm" #include "Add_Mires.xpm" #include "Add_Zone.xpm" /********************************************************/ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const /********************************************************/ /** return a specific comment for "this". Used in pop up menus * @param aPcb = the parent board */ { wxString text; const BOARD_ITEM* item = this; EQUIPOT* net; switch( item->Type() ) { case PCB_EQUIPOT_STRUCT_TYPE: text << _( "Net" ) << ( (EQUIPOT*) item )->m_Netname << wxT( " " ) << ( (EQUIPOT*) item )->m_NetCode; break; case TYPEMODULE: text << _( "Footprint" ) << wxT( " " ) << ( (MODULE*) item )->GetReference(); text << wxT( " (" ) << ReturnPcbLayerName( item->m_Layer ) << wxT( ")" ); break; case TYPEPAD: text << _( "Pad" ) << wxT( " " ) << ( (D_PAD*) item )->ReturnStringPadName() << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; case TYPEDRAWSEGMENT: text << _( "Pcb Graphic" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); // @todo: extend text break; case TYPETEXTE: text << _( "Pcb Text" ) << wxT( " " );; if( ( (TEXTE_PCB*) item )->m_Text.Len() < 12 ) text << ( (TEXTE_PCB*) item )->m_Text; else text += ( (TEXTE_PCB*) item )->m_Text.Left( 10 ) + wxT( ".." ); text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); break; case TYPETEXTEMODULE: switch( ( (TEXTE_MODULE*) item )->m_Type ) { case TEXT_is_REFERENCE: text << _( "Reference" ) << wxT( " " ) << ( (TEXTE_MODULE*) item )->m_Text; break; case TEXT_is_VALUE: text << _( "Value" ) << wxT( " " ) << ( (TEXTE_MODULE*) item )->m_Text << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; default: // wrap this one in quotes: text << _( "Text" ) << wxT( " \"" ) << ( (TEXTE_MODULE*) item )->m_Text << wxT( "\"" ) << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; } break; case TYPEEDGEMODULE: text << _( "Graphic" ) << wxT( " " ); const wxChar* cp; switch( ( (EDGE_MODULE*) item )->m_Shape ) { case S_SEGMENT: cp = _( "Line" ); break; case S_RECT: cp = _( "Rect" ); break; case S_ARC: cp = _( "Arc" ); break; case S_CIRCLE: cp = _( "Circle" ); break; /* used in Gerbview: */ case S_ARC_RECT: cp = wxT( "arc_rect" ); break; case S_SPOT_OVALE: cp = wxT( "spot_oval" ); break; case S_SPOT_CIRCLE: cp = wxT( "spot_circle" ); break; case S_SPOT_RECT: cp = wxT( "spot_rect" ); break; case S_POLYGON: cp = wxT( "polygon" ); break; default: cp = wxT( "??EDGE??" ); break; } text << *cp << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; case TYPETRACK: text << _( "Track" ) << wxT( " " ) << ( (TRACK*) item )->m_NetCode; net = aPcb->FindNet( ( (TRACK*) item )->m_NetCode ); if( net ) { text << wxT( " [" ) << net->m_Netname << wxT( "]" ); } text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); break; case TYPEZONE: text << _( "Zone" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); break; case TYPEVIA: text << _( "Via" ) << wxT( " " ) << ( (SEGVIA*) item )->m_NetCode; net = aPcb->FindNet( ( (TRACK*) item )->m_NetCode ); if( net ) { text << wxT( " [" ) << net->m_Netname << wxT( "]" ); } break; case TYPEMARQUEUR: text << _( "Marker" ); break; case TYPECOTATION: text << _( "Dimension" ) << wxT(" \"") << ((COTATION*) item)->GetText() << wxT("\""); break; case TYPEMIRE: text << _( "Mire" ); // @todo: extend text, Mire is not an english word! break; case TYPEEDGEZONE: text << _( "Edge Zone" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); // @todo: extend text break; default: text << item->GetClass() << wxT( " Unexpected item type: BUG!!" ); break; } return text; } /*****************************************/ const char** BOARD_ITEM::MenuIcon() const /*****************************************/ /** return a specific icon pointer (an xpm icon) for "this". Used in pop up menus * @return an icon pointer (can be NULL) */ { char** xpm; const BOARD_ITEM* item = this; switch( item->Type() ) { case PCB_EQUIPOT_STRUCT_TYPE: xpm = general_ratsnet_xpm; break; case TYPEMODULE: xpm = module_xpm; break; case TYPEPAD: xpm = pad_xpm; break; case TYPEDRAWSEGMENT: xpm = add_dashed_line_xpm; break; case TYPETEXTE: xpm = add_text_xpm; break; case TYPETEXTEMODULE: xpm = footprint_text_xpm; break; case TYPEEDGEMODULE: xpm = show_mod_edge_xpm; break; case TYPETRACK: xpm = showtrack_xpm; break; case TYPEZONE: xpm = add_zone_xpm; break; case TYPEVIA: xpm = pad_sketch_xpm; break; case TYPEMARQUEUR: xpm = pad_xpm; // @todo: create and use marker xpm break; case TYPECOTATION: xpm = add_cotation_xpm; break; case TYPEMIRE: xpm = add_mires_xpm; break; case TYPEEDGEZONE: xpm = show_mod_edge_xpm; // @todo: pcb edge xpm break; default: xpm = 0; break; } return (const char**) xpm; } Loading
pcbnew/bitmaps/general_ratsnet.xpm→bitmaps/general_ratsnet.xpm +7 −1 Original line number Original line Diff line number Diff line /* XPM */ /* XPM */ static char * general_ratsnet_xpm[] = { #ifndef XPMMAIN extern char *general_ratsnet_xpm[]; #else char * general_ratsnet_xpm[] = { "16 16 41 1", "16 16 41 1", " c None", " c None", ". c #FFFFFF", ". c #FFFFFF", Loading Loading @@ -58,3 +62,5 @@ static char * general_ratsnet_xpm[] = { "...'123 4-;5 ", "...'123 4-;5 ", "...6-78 90a ", "...6-78 90a ", " b( .. "}; " b( .. "}; #endif
change_log.txt +8 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,14 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with Please add newer entries at the top, list the date and your name with email address. email address. 2007-sept-25 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> ================================================================================ + pcbnew: * add class_board_item.cpp file and move BOARD_ITEM::MenuText() and BOARD_ITEM::MenuIcon() in it * Add zone detection, forgotten in PcbGeneralLocateAndDisplay() + class_collector.h: add void COLLECTOR::Remove( unsigned int item_position ), needed by zone detection, see PcbGeneralLocateAndDisplay 2007-Sep-25 UPDATE Geoff Harland <gharlandau@yahoo.com.au> 2007-Sep-25 UPDATE Geoff Harland <gharlandau@yahoo.com.au> ================================================================================ ================================================================================ Loading
include/bitmaps.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -181,6 +181,7 @@ #include "../bitmaps/library_update.xpm" #include "../bitmaps/library_update.xpm" #include "../bitmaps/transistor.xpm" #include "../bitmaps/transistor.xpm" #include "../bitmaps/kicad_icon_small.xpm" #include "../bitmaps/kicad_icon_small.xpm" #include "../bitmaps/general_ratsnet.xpm" // Largeur du toolbar vertical // Largeur du toolbar vertical #define VTOOLBAR_WIDTH 26 #define VTOOLBAR_WIDTH 26 Loading
include/class_collector.h +10 −27 Original line number Original line Diff line number Diff line Loading @@ -109,6 +109,15 @@ public: m_List.push_back( item ); m_List.push_back( item ); } } /** * Function Remove * removes the item at item_position (first position is 0); * @param item_position index. */ void Remove( unsigned int item_position ) { m_List.erase( m_List.begin() + item_position ); } /** /** * Function operator[int] * Function operator[int] Loading Loading @@ -220,32 +229,6 @@ public: } } */ */ /** * Function Collect * scans an EDA_BaseStruct using this class's Inspector method, which does * the collection. * @param container An EDA_BaseStruct to scan, including those items it contains. * @param aRefBox An EDA_Rect to use in bounds-testing. * * example implementation, in derived class: * virtual void Collect( EDA_BaseStruct* container, const EDA_Rect& aRefBox ) { example implementation: SetBoundingBox( aRefBox ); // pass box to Inspect() Empty(); // empty the collection // visit the board with the INSPECTOR (me). container->Visit( this, // INSPECTOR* inspector NULL, // const void* testData, m_ScanTypes); SetTimeNow(); // when it was taken } */ }; }; #endif // COLLECTOR_H #endif // COLLECTOR_H Loading
pcbnew/class_board_item.cpp 0 → 100644 +249 −0 Original line number Original line Diff line number Diff line /*****************************************/ /* class BOARD_ITEM: som basic functions */ /*****************************************/ #include "fctsys.h" #include "gr_basic.h" #include "common.h" #include "pcbnew.h" #include "id.h" #include "collectors.h" #include "bitmaps.h" #include "add_cotation.xpm" #include "Add_Mires.xpm" #include "Add_Zone.xpm" /********************************************************/ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const /********************************************************/ /** return a specific comment for "this". Used in pop up menus * @param aPcb = the parent board */ { wxString text; const BOARD_ITEM* item = this; EQUIPOT* net; switch( item->Type() ) { case PCB_EQUIPOT_STRUCT_TYPE: text << _( "Net" ) << ( (EQUIPOT*) item )->m_Netname << wxT( " " ) << ( (EQUIPOT*) item )->m_NetCode; break; case TYPEMODULE: text << _( "Footprint" ) << wxT( " " ) << ( (MODULE*) item )->GetReference(); text << wxT( " (" ) << ReturnPcbLayerName( item->m_Layer ) << wxT( ")" ); break; case TYPEPAD: text << _( "Pad" ) << wxT( " " ) << ( (D_PAD*) item )->ReturnStringPadName() << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; case TYPEDRAWSEGMENT: text << _( "Pcb Graphic" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); // @todo: extend text break; case TYPETEXTE: text << _( "Pcb Text" ) << wxT( " " );; if( ( (TEXTE_PCB*) item )->m_Text.Len() < 12 ) text << ( (TEXTE_PCB*) item )->m_Text; else text += ( (TEXTE_PCB*) item )->m_Text.Left( 10 ) + wxT( ".." ); text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); break; case TYPETEXTEMODULE: switch( ( (TEXTE_MODULE*) item )->m_Type ) { case TEXT_is_REFERENCE: text << _( "Reference" ) << wxT( " " ) << ( (TEXTE_MODULE*) item )->m_Text; break; case TEXT_is_VALUE: text << _( "Value" ) << wxT( " " ) << ( (TEXTE_MODULE*) item )->m_Text << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; default: // wrap this one in quotes: text << _( "Text" ) << wxT( " \"" ) << ( (TEXTE_MODULE*) item )->m_Text << wxT( "\"" ) << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; } break; case TYPEEDGEMODULE: text << _( "Graphic" ) << wxT( " " ); const wxChar* cp; switch( ( (EDGE_MODULE*) item )->m_Shape ) { case S_SEGMENT: cp = _( "Line" ); break; case S_RECT: cp = _( "Rect" ); break; case S_ARC: cp = _( "Arc" ); break; case S_CIRCLE: cp = _( "Circle" ); break; /* used in Gerbview: */ case S_ARC_RECT: cp = wxT( "arc_rect" ); break; case S_SPOT_OVALE: cp = wxT( "spot_oval" ); break; case S_SPOT_CIRCLE: cp = wxT( "spot_circle" ); break; case S_SPOT_RECT: cp = wxT( "spot_rect" ); break; case S_POLYGON: cp = wxT( "polygon" ); break; default: cp = wxT( "??EDGE??" ); break; } text << *cp << _( " of " ) << ( (MODULE*) GetParent() )->GetReference(); break; case TYPETRACK: text << _( "Track" ) << wxT( " " ) << ( (TRACK*) item )->m_NetCode; net = aPcb->FindNet( ( (TRACK*) item )->m_NetCode ); if( net ) { text << wxT( " [" ) << net->m_Netname << wxT( "]" ); } text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); break; case TYPEZONE: text << _( "Zone" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); break; case TYPEVIA: text << _( "Via" ) << wxT( " " ) << ( (SEGVIA*) item )->m_NetCode; net = aPcb->FindNet( ( (TRACK*) item )->m_NetCode ); if( net ) { text << wxT( " [" ) << net->m_Netname << wxT( "]" ); } break; case TYPEMARQUEUR: text << _( "Marker" ); break; case TYPECOTATION: text << _( "Dimension" ) << wxT(" \"") << ((COTATION*) item)->GetText() << wxT("\""); break; case TYPEMIRE: text << _( "Mire" ); // @todo: extend text, Mire is not an english word! break; case TYPEEDGEZONE: text << _( "Edge Zone" ) << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ); // @todo: extend text break; default: text << item->GetClass() << wxT( " Unexpected item type: BUG!!" ); break; } return text; } /*****************************************/ const char** BOARD_ITEM::MenuIcon() const /*****************************************/ /** return a specific icon pointer (an xpm icon) for "this". Used in pop up menus * @return an icon pointer (can be NULL) */ { char** xpm; const BOARD_ITEM* item = this; switch( item->Type() ) { case PCB_EQUIPOT_STRUCT_TYPE: xpm = general_ratsnet_xpm; break; case TYPEMODULE: xpm = module_xpm; break; case TYPEPAD: xpm = pad_xpm; break; case TYPEDRAWSEGMENT: xpm = add_dashed_line_xpm; break; case TYPETEXTE: xpm = add_text_xpm; break; case TYPETEXTEMODULE: xpm = footprint_text_xpm; break; case TYPEEDGEMODULE: xpm = show_mod_edge_xpm; break; case TYPETRACK: xpm = showtrack_xpm; break; case TYPEZONE: xpm = add_zone_xpm; break; case TYPEVIA: xpm = pad_sketch_xpm; break; case TYPEMARQUEUR: xpm = pad_xpm; // @todo: create and use marker xpm break; case TYPECOTATION: xpm = add_cotation_xpm; break; case TYPEMIRE: xpm = add_mires_xpm; break; case TYPEEDGEZONE: xpm = show_mod_edge_xpm; // @todo: pcb edge xpm break; default: xpm = 0; break; } return (const char**) xpm; }