Commit 2c150e48 authored by jean-pierre charras's avatar jean-pierre charras

All: fix compatibility issues with wxWidgets 2.9.3

Minor cosmetic enhancements.
Pcbnew: more workd abput connection algorithms (work in progress)
parent 0e27f45f
......@@ -156,6 +156,7 @@ set( BMAPS_MID
browse_files
cancel_tool
cancel
change_entry_orient
create_cmp_file
checked_ok
component_select_unit
......@@ -239,9 +240,10 @@ set( BMAPS_MID
gbr_select_mode2
gerber_file
gerber_recent_files
gerber_open_dcode_file
gerbview_drill_file
gerbview_clear_layers
gerber_open_dcode_file
gerbview_open_recent_drill_files
general_deletions
general_ratsnest
glabel2label
......@@ -478,6 +480,7 @@ set( BMAPS_MID
unzip
update_module_board
up
via
via_sketch
warning
web_support
......
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include "bitmaps.h"
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x04, 0x45, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xad, 0xd6, 0xdb, 0x53, 0x1b,
0x55, 0x1c, 0x07, 0xf0, 0x85, 0x96, 0x4d, 0x68, 0x02, 0x09, 0xe5, 0x52, 0xeb, 0x40, 0x99, 0xa9,
0xd5, 0xb1, 0x40, 0x8a, 0x34, 0x85, 0xbd, 0xe4, 0x0a, 0x41, 0xd2, 0x4d, 0xc8, 0x86, 0x6c, 0xd8,
0x92, 0x0b, 0x24, 0x54, 0xa0, 0x1d, 0x4a, 0x01, 0xdb, 0xa0, 0x63, 0x7d, 0x70, 0x3a, 0xe8, 0x8c,
0x4f, 0x3e, 0xb5, 0x33, 0xb6, 0x85, 0x04, 0x8b, 0x15, 0x5a, 0x15, 0x98, 0x04, 0x9c, 0x0e, 0xa3,
0x96, 0x7b, 0x47, 0x2c, 0x84, 0x4a, 0x8d, 0xd3, 0x07, 0x7d, 0xf2, 0x45, 0xeb, 0x1f, 0x11, 0xcf,
0x59, 0x58, 0xd8, 0x8d, 0x09, 0x05, 0xc6, 0x87, 0xef, 0xcb, 0xee, 0x2f, 0xfb, 0xc9, 0xd9, 0xf3,
0x3b, 0xe7, 0x2c, 0x72, 0x35, 0x2a, 0xa1, 0x41, 0xe6, 0xdf, 0x5d, 0xce, 0xfc, 0x50, 0xdf, 0x6a,
0x57, 0x91, 0x2d, 0x8e, 0x32, 0x8c, 0xa2, 0xb2, 0xe3, 0xf1, 0x38, 0xb2, 0xdf, 0x20, 0xc8, 0xf5,
0xf4, 0x83, 0xc4, 0x94, 0x19, 0xc5, 0x27, 0x9b, 0x10, 0x72, 0xba, 0x80, 0xbb, 0x16, 0x88, 0xa2,
0xbf, 0x83, 0xc4, 0x61, 0x2e, 0x3f, 0x52, 0x3e, 0x24, 0xfc, 0xf5, 0x35, 0x98, 0xdb, 0xa1, 0x55,
0xb3, 0xb5, 0x8a, 0xfd, 0x21, 0xf1, 0xb4, 0x0c, 0x62, 0xd2, 0x07, 0x72, 0x83, 0x0b, 0x1e, 0xee,
0xe4, 0xae, 0x83, 0xd1, 0x2c, 0xf2, 0x10, 0x87, 0xcd, 0x28, 0xa7, 0x71, 0x9f, 0xd5, 0x04, 0xb1,
0xb7, 0x1a, 0x8c, 0xca, 0x3d, 0x23, 0x64, 0xa4, 0x05, 0xe4, 0x26, 0x4a, 0x4e, 0xdc, 0x92, 0x90,
0x13, 0xb7, 0xa5, 0xf8, 0xb8, 0x87, 0xbb, 0xf7, 0xde, 0xcf, 0xb2, 0x57, 0xfa, 0xa2, 0xe8, 0x6f,
0x22, 0x6c, 0x56, 0xf1, 0x3d, 0xd6, 0x62, 0xa9, 0xdd, 0x0b, 0x06, 0x11, 0x94, 0x0c, 0x37, 0x67,
0x10, 0x91, 0x9b, 0x52, 0xcd, 0xb7, 0x83, 0x72, 0xdd, 0xc8, 0xfd, 0x6c, 0xfd, 0xd0, 0xe7, 0x27,
0x6d, 0x17, 0x4a, 0x4a, 0xd9, 0x52, 0x94, 0x2b, 0xea, 0x7d, 0x26, 0x3b, 0x02, 0x80, 0x98, 0x10,
0xeb, 0x9a, 0x51, 0xfc, 0x20, 0xc4, 0xc0, 0x93, 0xd2, 0x52, 0x23, 0x48, 0x1a, 0x98, 0x0f, 0x2f,
0x40, 0x6e, 0x48, 0x35, 0x63, 0x10, 0x79, 0xa0, 0x34, 0x0e, 0x84, 0xca, 0xcf, 0xb5, 0xd8, 0xf0,
0x26, 0xc7, 0x49, 0x82, 0x65, 0x33, 0xb7, 0x8a, 0xfb, 0x7e, 0x91, 0x17, 0x00, 0xe0, 0x57, 0x11,
0x36, 0xab, 0x78, 0xc4, 0x63, 0x2a, 0xab, 0x36, 0x27, 0x19, 0xb6, 0x81, 0x84, 0x13, 0x90, 0x60,
0xe8, 0x54, 0xe3, 0x79, 0x1a, 0xf3, 0x32, 0xb8, 0x8e, 0x61, 0x8e, 0xb2, 0x2c, 0x7b, 0x40, 0xf4,
0xa3, 0xee, 0x28, 0x92, 0x1f, 0x58, 0x45, 0x9f, 0x89, 0x5e, 0xe3, 0x5c, 0xf6, 0x0c, 0xe9, 0xa7,
0xde, 0xd6, 0xb8, 0xec, 0x3a, 0x95, 0xd5, 0x2a, 0xc2, 0x38, 0x84, 0x88, 0xb8, 0x37, 0x10, 0xf8,
0xba, 0xbe, 0x7a, 0xa0, 0xac, 0x1e, 0x04, 0x88, 0x8f, 0x26, 0xdd, 0x0e, 0xa2, 0xd2, 0x65, 0x2f,
0x2a, 0x65, 0x59, 0x94, 0xab, 0x4d, 0xfc, 0x87, 0x81, 0x15, 0x24, 0x0f, 0x00, 0xeb, 0x09, 0xd8,
0x1c, 0x8f, 0x95, 0x9a, 0xcd, 0x87, 0x21, 0xc0, 0x21, 0xe4, 0x94, 0x6b, 0x73, 0x24, 0x03, 0x72,
0xfd, 0xc8, 0x7d, 0x65, 0x75, 0x70, 0x13, 0xa9, 0x27, 0xd4, 0xac, 0xed, 0x18, 0x8f, 0x24, 0x85,
0x04, 0xd8, 0x53, 0x11, 0x36, 0x9f, 0x3d, 0x4f, 0x9c, 0x37, 0xd7, 0x41, 0xec, 0x4d, 0x93, 0x29,
0x17, 0xc5, 0x26, 0x36, 0x10, 0x12, 0x20, 0xba, 0x51, 0x0e, 0x51, 0x39, 0x5b, 0xed, 0xc9, 0x90,
0x94, 0x10, 0xcc, 0xb5, 0x65, 0x24, 0x17, 0x00, 0x6b, 0x42, 0xac, 0x7b, 0x2e, 0x6b, 0x11, 0x62,
0xc5, 0xe6, 0xfe, 0x8f, 0x64, 0xda, 0x7b, 0x03, 0x52, 0xe2, 0x9b, 0x41, 0x88, 0x28, 0x8c, 0xc1,
0x21, 0x15, 0xdb, 0x6a, 0x27, 0x9a, 0xed, 0x64, 0x05, 0x63, 0x29, 0x86, 0x5d, 0xf6, 0x9f, 0xb9,
0xdc, 0xa9, 0x65, 0xaf, 0xc4, 0x90, 0xc3, 0x60, 0xce, 0xa2, 0x42, 0xac, 0xed, 0xbb, 0xc2, 0xe7,
0x85, 0x96, 0x4f, 0xc3, 0x47, 0xeb, 0x3e, 0x9b, 0xcc, 0x31, 0x0c, 0x8e, 0x2b, 0x0c, 0x03, 0x5f,
0xc0, 0x91, 0x70, 0x88, 0xc7, 0x52, 0x7c, 0x82, 0xa2, 0x24, 0x49, 0x3b, 0xf3, 0x65, 0xeb, 0xe3,
0x83, 0x75, 0x24, 0xe7, 0x6a, 0x14, 0x5d, 0x15, 0x62, 0xbe, 0xf1, 0xd7, 0xff, 0x3e, 0x66, 0xfd,
0x64, 0xae, 0x88, 0xea, 0x7f, 0x58, 0xce, 0xb8, 0x5b, 0x30, 0x77, 0xbd, 0x76, 0x27, 0x64, 0x57,
0x10, 0x8f, 0x75, 0x2d, 0xe4, 0xfe, 0x21, 0xc4, 0xfc, 0x13, 0xc7, 0x5f, 0x9c, 0x69, 0x66, 0xfa,
0x09, 0x2f, 0xdd, 0x75, 0xba, 0xb1, 0xae, 0xa2, 0x90, 0x20, 0x32, 0x77, 0x5c, 0xd0, 0xbb, 0x81,
0x50, 0x7c, 0x8a, 0x51, 0x52, 0x43, 0x77, 0xda, 0xa7, 0x8b, 0x5e, 0x08, 0xb1, 0x4b, 0x3f, 0x2a,
0x63, 0x9a, 0xb6, 0x3a, 0x3f, 0xee, 0xa6, 0x4d, 0x6a, 0x9b, 0x2d, 0x0f, 0x74, 0x62, 0xfa, 0xbe,
0x21, 0x94, 0x98, 0x74, 0xc0, 0xcd, 0x11, 0xb6, 0x70, 0x3e, 0x75, 0x6b, 0xac, 0x63, 0xba, 0xf0,
0x1f, 0x51, 0x83, 0x2c, 0xc8, 0x57, 0xf4, 0xed, 0xb5, 0x67, 0x49, 0x0f, 0xad, 0xaf, 0xa0, 0xa8,
0xfc, 0x54, 0xd8, 0xcb, 0x90, 0x06, 0x1e, 0x91, 0xe9, 0x46, 0x46, 0xb3, 0x8d, 0xa1, 0xbb, 0x78,
0xa7, 0xd3, 0xdb, 0xfb, 0x93, 0x2c, 0x96, 0x80, 0x3d, 0xd9, 0xc2, 0xd8, 0xe4, 0x58, 0x6a, 0x84,
0x8c, 0xd8, 0x85, 0x08, 0x58, 0x27, 0x77, 0xcb, 0xd8, 0x36, 0x07, 0xee, 0x65, 0x34, 0xe6, 0x6b,
0x95, 0xaa, 0xc0, 0xaa, 0x64, 0x59, 0x84, 0x2d, 0xca, 0x57, 0x75, 0x17, 0x4d, 0x14, 0xc4, 0x4e,
0x39, 0xea, 0x0a, 0x12, 0xb1, 0xa4, 0x88, 0x04, 0x0f, 0xd3, 0x1c, 0x42, 0xf2, 0x48, 0x68, 0x98,
0x47, 0x2a, 0x9d, 0xd6, 0xe3, 0x46, 0xa3, 0x51, 0xfa, 0xfe, 0x73, 0x24, 0x0b, 0x00, 0x4b, 0x42,
0xac, 0x67, 0x49, 0x16, 0x35, 0x76, 0x26, 0xc7, 0x92, 0x20, 0x93, 0x36, 0x88, 0x48, 0xc8, 0xb1,
0x3b, 0x1c, 0x62, 0x0c, 0x0e, 0x97, 0x36, 0xbe, 0xc3, 0xe0, 0x7e, 0x80, 0x78, 0x36, 0x10, 0xbe,
0x16, 0x62, 0x89, 0xe7, 0x59, 0xcf, 0xa2, 0x6c, 0x0d, 0x62, 0x84, 0xdb, 0x61, 0x28, 0xa3, 0x4d,
0x47, 0x78, 0x4c, 0x84, 0x1c, 0x20, 0x22, 0xf5, 0x62, 0x24, 0x04, 0x90, 0x0e, 0x06, 0xf3, 0x81,
0x13, 0xb7, 0x89, 0x7a, 0xcd, 0xd8, 0xba, 0x8d, 0xf0, 0xb9, 0x14, 0x43, 0xe4, 0x81, 0x35, 0xc9,
0x82, 0x10, 0xeb, 0x5d, 0x92, 0x3f, 0x35, 0x74, 0xd5, 0x58, 0x20, 0x86, 0x6d, 0x62, 0xdb, 0x08,
0x19, 0xb6, 0x0a, 0x11, 0x85, 0x21, 0x34, 0x5c, 0xe2, 0x6c, 0x77, 0xf2, 0x08, 0xc1, 0xa6, 0x5e,
0x27, 0x1c, 0x16, 0x95, 0xcc, 0x89, 0x46, 0xf6, 0x58, 0xbe, 0xae, 0xef, 0xae, 0xb6, 0x6e, 0x61,
0xb0, 0xf0, 0x20, 0x16, 0xae, 0xde, 0x40, 0xc6, 0x01, 0x32, 0x3a, 0xc2, 0x21, 0xcc, 0x85, 0xc6,
0xdd, 0x20, 0xdb, 0xe7, 0x19, 0x22, 0xeb, 0x8b, 0x4a, 0x66, 0x45, 0x0d, 0x32, 0x9f, 0xf5, 0xb8,
0xca, 0x6d, 0xab, 0xc1, 0xcf, 0xd1, 0x9a, 0xcd, 0x05, 0x19, 0xf9, 0x58, 0xba, 0x85, 0x04, 0xbf,
0xdc, 0x2b, 0xc2, 0xe7, 0xfa, 0x0a, 0x72, 0x28, 0x10, 0xcd, 0x98, 0xe1, 0xa1, 0x2b, 0x4f, 0xa4,
0x7f, 0x61, 0x1e, 0xba, 0x9a, 0x60, 0x1b, 0xaa, 0xb8, 0x02, 0xa9, 0xf6, 0xeb, 0x0e, 0x0e, 0x01,
0x73, 0x52, 0xd2, 0x74, 0xd1, 0xb9, 0x1f, 0x44, 0x88, 0x81, 0x06, 0x19, 0x04, 0xd0, 0x9f, 0x3d,
0xcb, 0xd2, 0xcb, 0x1a, 0x17, 0xfd, 0x2a, 0xdc, 0x03, 0xe1, 0x29, 0x99, 0x8e, 0x79, 0xbd, 0x85,
0x6f, 0x34, 0x74, 0xd9, 0xcb, 0x5d, 0x6e, 0xba, 0x0a, 0x9c, 0x37, 0xa7, 0x59, 0xf3, 0x89, 0xfd,
0x20, 0xa9, 0xbe, 0x27, 0xb6, 0xba, 0x4e, 0xed, 0xb6, 0xe5, 0x01, 0xf9, 0x0c, 0xdc, 0xea, 0x21,
0xa2, 0xb6, 0xa9, 0x0f, 0xfd, 0x1f, 0x88, 0x30, 0xff, 0x02, 0x94, 0x7c, 0x89, 0xd7, 0x2c, 0xef,
0xcc, 0x31, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE change_entry_orient_xpm[1] = {{ png, sizeof( png ), "change_entry_orient_xpm" }};
//EOF
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include "bitmaps.h"
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x06, 0x3d, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x95, 0x95, 0x5b, 0x6c, 0x5c,
0x57, 0x15, 0x86, 0xbf, 0x7d, 0x2e, 0x73, 0xf7, 0xdc, 0xc7, 0x63, 0x4f, 0x6c, 0xc7, 0x8e, 0xc7,
0x26, 0x69, 0x94, 0xc8, 0xce, 0x45, 0x6d, 0xa2, 0xb6, 0x0a, 0x69, 0xa9, 0xd2, 0x50, 0x68, 0xa9,
0x10, 0x0f, 0x40, 0x44, 0x48, 0x51, 0x5f, 0x2a, 0x50, 0x8b, 0x92, 0x20, 0x21, 0x01, 0x85, 0x20,
0xae, 0x0d, 0x2d, 0x14, 0xa4, 0x4a, 0x14, 0x8a, 0x88, 0x04, 0x0f, 0x3c, 0x34, 0xa0, 0xa6, 0xa5,
0x4a, 0x1e, 0x48, 0xd2, 0x38, 0x24, 0x52, 0xa0, 0xbe, 0x94, 0xb8, 0x71, 0x6c, 0xc7, 0x63, 0x37,
0x8e, 0x9d, 0xf1, 0x6d, 0xe6, 0xcc, 0xe5, 0x9c, 0x33, 0xe7, 0x6c, 0x1e, 0x32, 0x51, 0xac, 0x92,
0x38, 0x61, 0x4b, 0x4b, 0xfb, 0x69, 0xe9, 0xdb, 0x7b, 0xfd, 0xff, 0x5a, 0x4b, 0x48, 0x29, 0xb9,
0xd7, 0xf3, 0xef, 0x3d, 0x42, 0x0d, 0x35, 0x26, 0xbf, 0x17, 0xea, 0xec, 0xd9, 0xa9, 0x37, 0xc4,
0xdb, 0xfc, 0x21, 0x3d, 0xad, 0x07, 0x74, 0x8f, 0x5d, 0xad, 0xd5, 0xaa, 0x25, 0x3b, 0x5f, 0xab,
0x54, 0x66, 0xcb, 0x93, 0xc3, 0xc3, 0x8b, 0xa3, 0x97, 0x9e, 0xeb, 0x3d, 0x22, 0xf3, 0xcb, 0x73,
0xc5, 0xbd, 0x82, 0x06, 0x9e, 0xd1, 0xbb, 0xa2, 0x5d, 0x1b, 0x8e, 0xa4, 0x37, 0x6d, 0xdd, 0xa2,
0x96, 0xc7, 0x55, 0xb7, 0x90, 0xc7, 0x98, 0x2f, 0x59, 0xc5, 0xb2, 0xb4, 0x82, 0x7e, 0xa1, 0x87,
0xa2, 0x5e, 0xaf, 0x16, 0x8a, 0x22, 0x1b, 0xda, 0x59, 0xf8, 0x68, 0x31, 0x37, 0x3f, 0x70, 0xf2,
0xd0, 0xda, 0x5f, 0x2e, 0xbd, 0xfe, 0x7f, 0x81, 0x2e, 0xbd, 0x10, 0xdf, 0x17, 0xdf, 0xfc, 0xa9,
0x43, 0xb1, 0x38, 0x99, 0xd2, 0x95, 0x41, 0x6b, 0x22, 0xef, 0x37, 0x8d, 0x50, 0x56, 0x37, 0x3b,
0x1e, 0xf1, 0xa9, 0xcd, 0xdd, 0xc8, 0xf9, 0x49, 0x94, 0xdc, 0xd9, 0x9a, 0x7f, 0xee, 0x83, 0x6a,
0x46, 0x9f, 0x26, 0xd5, 0xd9, 0x1a, 0x32, 0x3d, 0x1d, 0x95, 0xd9, 0x0b, 0xa7, 0xff, 0xde, 0xf1,
0xe2, 0x87, 0x4f, 0xdf, 0x13, 0x68, 0xf0, 0x6b, 0x9e, 0x35, 0x99, 0x4f, 0x3e, 0x75, 0x5a, 0x51,
0xe6, 0x33, 0xc6, 0x95, 0x5c, 0x31, 0xd7, 0xf0, 0x90, 0x98, 0x6e, 0xd9, 0x15, 0x6a, 0x6f, 0x5d,
0x4d, 0x24, 0x1a, 0xe6, 0xd4, 0x7b, 0x7d, 0x3c, 0xfc, 0xf0, 0x76, 0xa4, 0xeb, 0x62, 0x5a, 0x26,
0x0b, 0x1f, 0x9c, 0xaa, 0x25, 0x07, 0x5e, 0xab, 0x74, 0x74, 0xf8, 0x42, 0xa2, 0x79, 0x8b, 0x93,
0x3b, 0x7e, 0xf4, 0x07, 0xdd, 0x87, 0xaf, 0x1f, 0x52, 0xee, 0xa2, 0x89, 0x08, 0x67, 0xd7, 0xff,
0x31, 0x1a, 0xd7, 0x32, 0x7f, 0xc9, 0x6d, 0x74, 0x4e, 0x26, 0x9f, 0x0d, 0x4e, 0xa6, 0x1f, 0x09,
0x3d, 0xb0, 0xf5, 0x01, 0xb2, 0x9d, 0x5d, 0x08, 0xa1, 0x70, 0xfa, 0x74, 0x1f, 0x3e, 0x8f, 0x0f,
0x8f, 0xc7, 0x47, 0xc0, 0x1f, 0x24, 0xdd, 0xf3, 0xa8, 0x66, 0x3c, 0xf9, 0xdb, 0x86, 0xd1, 0x9c,
0x30, 0x54, 0x63, 0x44, 0x4b, 0x6c, 0xda, 0xf9, 0xdc, 0xd0, 0xb3, 0xbe, 0x4f, 0x68, 0x2b, 0x81,
0x82, 0x8d, 0x89, 0x6f, 0xa7, 0x7b, 0xb6, 0xde, 0x5f, 0xcd, 0xf5, 0x39, 0xdb, 0x76, 0x3e, 0xa1,
0xc4, 0x1a, 0xdb, 0x44, 0x30, 0x10, 0x44, 0x88, 0x3c, 0x43, 0xfd, 0xff, 0x20, 0x9b, 0xed, 0xc4,
0x2a, 0x8f, 0x10, 0xf0, 0x5c, 0xc7, 0x72, 0x33, 0xd4, 0x1c, 0x05, 0x21, 0x04, 0xe1, 0x48, 0x8c,
0xa5, 0x07, 0xbf, 0x15, 0x9c, 0xe9, 0xff, 0xb9, 0xd1, 0xbc, 0xb6, 0x29, 0x5d, 0xca, 0x6e, 0x78,
0xe3, 0xb6, 0xa5, 0xdb, 0xb7, 0xf7, 0xab, 0x3b, 0xd2, 0x29, 0xfb, 0xf1, 0x1f, 0x3d, 0x3f, 0xb8,
0xff, 0xec, 0x5b, 0x43, 0xca, 0xf6, 0xcf, 0xf6, 0x82, 0xde, 0x05, 0x42, 0x80, 0x74, 0x97, 0x7b,
0x09, 0xa8, 0xe7, 0xd7, 0x26, 0x98, 0x67, 0x3f, 0x86, 0xb3, 0x09, 0xd3, 0x32, 0xb1, 0x2c, 0x13,
0xe3, 0xf8, 0x4b, 0xe5, 0x9e, 0xd4, 0xd5, 0x40, 0x49, 0x36, 0x5d, 0x17, 0x52, 0x4a, 0x5e, 0xfa,
0xd9, 0x2f, 0x5e, 0x2c, 0x9b, 0xa5, 0x87, 0x9e, 0xd8, 0xfd, 0xe9, 0x9d, 0xfe, 0x60, 0x80, 0xbe,
0x33, 0x7d, 0x24, 0x62, 0x3e, 0x9e, 0xea, 0xdc, 0x03, 0x52, 0x82, 0x80, 0xf7, 0x2f, 0x4b, 0x16,
0xcb, 0x70, 0x6e, 0x30, 0x82, 0xa6, 0x2a, 0xa8, 0xaa, 0x4a, 0x6f, 0x97, 0xc9, 0xba, 0xc6, 0x22,
0x63, 0x39, 0x58, 0xdb, 0xad, 0x10, 0x5c, 0xb5, 0x9b, 0x99, 0x86, 0xdf, 0x60, 0x5a, 0x26, 0xa6,
0x59, 0xa5, 0x3c, 0x3d, 0xc2, 0x9a, 0x91, 0x5f, 0x99, 0xfe, 0xa6, 0xd5, 0xba, 0x9a, 0x48, 0x24,
0x9f, 0x54, 0x15, 0xf5, 0xb5, 0xb9, 0xfc, 0xf5, 0x8e, 0xa9, 0x5c, 0x8e, 0xb1, 0xd1, 0x11, 0x4e,
0x1c, 0x3f, 0xce, 0x60, 0xff, 0x00, 0x9f, 0x5f, 0x77, 0x09, 0x59, 0x02, 0x69, 0xc0, 0x9f, 0x8e,
0xc3, 0xf8, 0x65, 0xf8, 0xc3, 0x51, 0x8b, 0xf9, 0x99, 0x2a, 0xfd, 0x43, 0x65, 0xc2, 0x58, 0x74,
0x87, 0x61, 0x70, 0x08, 0xce, 0xff, 0x47, 0xb2, 0xb5, 0x71, 0x94, 0x52, 0xd3, 0xf3, 0x38, 0x4e,
0x0d, 0xc7, 0x75, 0x90, 0xde, 0x20, 0xda, 0xe8, 0xc9, 0x6a, 0xa4, 0xb1, 0xc1, 0xab, 0x1d, 0x7b,
0xfb, 0xed, 0x13, 0xc0, 0xf7, 0x67, 0x66, 0xae, 0x6d, 0xf3, 0x79, 0x7c, 0x8f, 0x69, 0x1e, 0x0d,
0xaf, 0xd7, 0xc7, 0xda, 0x6c, 0x3b, 0x63, 0xc3, 0xb7, 0x8a, 0xb4, 0x39, 0x02, 0xe5, 0x00, 0x5c,
0xe9, 0xaa, 0x57, 0x2c, 0x22, 0xf0, 0x3b, 0x92, 0x4a, 0x11, 0x5a, 0x9b, 0x61, 0x5d, 0x14, 0xc6,
0x3e, 0x04, 0xff, 0x46, 0x89, 0x94, 0xb7, 0xa2, 0x86, 0x2e, 0x85, 0x63, 0xde, 0xde, 0xde, 0xd9,
0xae, 0xae, 0xaf, 0x37, 0x78, 0x9c, 0xfd, 0x2f, 0x6c, 0x1f, 0x6f, 0x03, 0x98, 0x5c, 0x80, 0xd6,
0xd8, 0xca, 0xbd, 0x16, 0x8f, 0x6a, 0xbc, 0x35, 0xb9, 0x96, 0xf1, 0x52, 0x3b, 0xbd, 0x3d, 0x1b,
0xf9, 0xf2, 0x97, 0xbe, 0x80, 0x69, 0x96, 0x69, 0x3a, 0xff, 0x13, 0x23, 0xbd, 0x2a, 0x18, 0xba,
0x63, 0x1f, 0xfd, 0xee, 0x1b, 0x6b, 0x7c, 0x1b, 0x9a, 0x53, 0xa3, 0x91, 0x50, 0x35, 0x73, 0xfa,
0xa2, 0xe9, 0x54, 0x96, 0xa6, 0xd4, 0x7f, 0x5e, 0x91, 0x04, 0x75, 0x49, 0x7b, 0x02, 0x34, 0x55,
0xa2, 0xa9, 0x82, 0x29, 0x7d, 0x33, 0xf1, 0xec, 0x36, 0x1e, 0x7d, 0xfc, 0x69, 0x62, 0xb1, 0x08,
0x9a, 0xa6, 0x62, 0xd9, 0x16, 0x96, 0x6d, 0x62, 0x4d, 0x0f, 0xd3, 0x3d, 0xfb, 0xa6, 0xa5, 0x69,
0x8e, 0xb6, 0x62, 0xc3, 0x4e, 0xfd, 0xb4, 0xf7, 0x9d, 0xa6, 0xee, 0xd4, 0xae, 0xf1, 0x91, 0x62,
0xe1, 0xe0, 0xd9, 0x44, 0x38, 0x6b, 0x1c, 0x23, 0x15, 0x06, 0xaf, 0x06, 0x5e, 0x1d, 0x02, 0xc1,
0x00, 0x3b, 0xbe, 0x3b, 0x84, 0x94, 0xe0, 0xba, 0x0e, 0x8e, 0xe3, 0x60, 0xd7, 0xec, 0x1b, 0x61,
0x5b, 0x28, 0xef, 0xfd, 0xba, 0xb4, 0x7e, 0x35, 0xc1, 0xc2, 0xb5, 0xd9, 0xe9, 0x15, 0x1b, 0xb6,
0x7c, 0xed, 0xca, 0xbb, 0x96, 0x1b, 0xb0, 0x5a, 0x32, 0x6a, 0x68, 0x57, 0x4b, 0xb5, 0x9c, 0xd9,
0xf4, 0x19, 0x32, 0x31, 0xc8, 0x24, 0x04, 0xab, 0xe2, 0xd0, 0x92, 0x70, 0xa9, 0x56, 0x4b, 0x98,
0x66, 0xf5, 0x86, 0xd3, 0x2c, 0x13, 0xdb, 0xb6, 0xb0, 0x6d, 0x8b, 0xda, 0xcc, 0x88, 0xd3, 0x1a,
0x71, 0x84, 0xe2, 0x16, 0x30, 0xa6, 0xc6, 0x2f, 0xae, 0x08, 0xea, 0x7e, 0x79, 0xe1, 0x95, 0x99,
0xfe, 0x81, 0x53, 0x5a, 0x38, 0xac, 0x7c, 0x6e, 0xbd, 0xed, 0x6e, 0x7f, 0x70, 0x97, 0x1d, 0xdb,
0xb2, 0x97, 0xa6, 0xa8, 0xa4, 0x35, 0x0e, 0xd9, 0x44, 0x15, 0x7d, 0x69, 0x88, 0xaa, 0x55, 0xc5,
0xb4, 0xaa, 0x58, 0x75, 0x98, 0x55, 0x29, 0x92, 0xbc, 0xf8, 0xe7, 0x4a, 0x2c, 0x6a, 0x07, 0xe6,
0x26, 0xe7, 0x72, 0x85, 0x89, 0xf1, 0x7d, 0xda, 0xdd, 0x06, 0x6a, 0x21, 0x37, 0xf1, 0x95, 0x7c,
0x32, 0x79, 0x26, 0xd5, 0x1a, 0x69, 0x97, 0xd3, 0x47, 0x2b, 0xe5, 0xfc, 0x92, 0xdb, 0x9a, 0x89,
0x7a, 0x15, 0x73, 0x11, 0x4d, 0x07, 0xd7, 0xad, 0x60, 0x9a, 0x55, 0xa4, 0x74, 0x71, 0x5d, 0x17,
0xc6, 0xfa, 0xec, 0xcc, 0xfc, 0x59, 0xbb, 0x79, 0x4d, 0x24, 0x54, 0x29, 0xe6, 0xcd, 0xb9, 0xe1,
0xc1, 0x57, 0x36, 0xfe, 0xde, 0x9e, 0x58, 0x11, 0x24, 0x84, 0x10, 0x40, 0xe1, 0x5d, 0x86, 0x7f,
0x7c, 0x5f, 0x2d, 0xfb, 0x9d, 0x74, 0x47, 0xbc, 0x65, 0x5b, 0xa2, 0xd9, 0xcd, 0x8d, 0x5f, 0x20,
0xe2, 0x05, 0x45, 0x05, 0xf7, 0xda, 0x09, 0x6c, 0xc7, 0xc0, 0xf3, 0xd1, 0x85, 0x5a, 0x83, 0xb3,
0x64, 0x37, 0x37, 0x47, 0xd5, 0x50, 0x93, 0x13, 0x28, 0xcc, 0x4c, 0x16, 0x27, 0x06, 0x2f, 0xbd,
0xb3, 0xe9, 0xd5, 0xc2, 0x1b, 0xbc, 0x2a, 0xf4, 0x15, 0xcd, 0x20, 0x84, 0x50, 0x80, 0x20, 0x10,
0xdc, 0x73, 0x9f, 0x68, 0xff, 0xe6, 0x63, 0xe9, 0xc3, 0x1d, 0x3d, 0x9d, 0x5b, 0xca, 0x72, 0xd2,
0xe3, 0xab, 0xe5, 0x10, 0x02, 0xbc, 0x6d, 0xbb, 0x70, 0x0a, 0x51, 0xd7, 0x1b, 0xd0, 0x14, 0xc5,
0x29, 0x53, 0x2b, 0x2f, 0x90, 0xbb, 0x38, 0x35, 0x76, 0xae, 0x7f, 0xf2, 0xe5, 0x3d, 0x6f, 0x56,
0x8f, 0x02, 0x65, 0xc0, 0xb8, 0xeb, 0x9a, 0xa8, 0xc3, 0x02, 0xf5, 0xf0, 0xfd, 0xf5, 0x8b, 0xc1,
0xbd, 0xbd, 0x9b, 0x95, 0x67, 0xd2, 0xcd, 0xe5, 0x36, 0x21, 0x1c, 0xd4, 0x48, 0x96, 0x85, 0x89,
0x48, 0xa5, 0xb0, 0x60, 0xe4, 0x2b, 0x65, 0x7b, 0x76, 0x31, 0xbf, 0x38, 0x7a, 0xf0, 0x6f, 0xf3,
0x3f, 0x3c, 0x73, 0x95, 0x3c, 0x50, 0x01, 0xca, 0x52, 0x4a, 0xeb, 0xae, 0x1a, 0x49, 0x29, 0x5d,
0xc0, 0x70, 0xde, 0x3f, 0x50, 0x72, 0x82, 0xdd, 0x07, 0x6a, 0xf9, 0xf3, 0x01, 0x7f, 0x65, 0xa0,
0x4d, 0x2c, 0x9e, 0xbf, 0x31, 0x21, 0xac, 0xcb, 0xc4, 0x5a, 0x82, 0x6e, 0xd1, 0x6b, 0x1f, 0x5e,
0xbf, 0xcf, 0x3a, 0x02, 0xd8, 0x80, 0x09, 0xd8, 0x72, 0xd9, 0x2f, 0xee, 0x79, 0x95, 0x73, 0x72,
0xc7, 0xb1, 0x73, 0xff, 0x1a, 0xd9, 0x7d, 0x7f, 0xc7, 0x55, 0x50, 0xea, 0x63, 0xa8, 0x7e, 0x3b,
0x2e, 0x9c, 0xbb, 0x28, 0xd8, 0x7e, 0xc0, 0x15, 0x77, 0xac, 0xcc, 0xbd, 0x82, 0x3a, 0x5b, 0x53,
0xb3, 0xba, 0xae, 0xa7, 0xfc, 0x7e, 0x1f, 0x3e, 0xaf, 0x07, 0x55, 0x55, 0x91, 0x52, 0x62, 0xdb,
0x36, 0xd5, 0xaa, 0x49, 0xb1, 0x54, 0x62, 0x7c, 0x6a, 0xee, 0x8e, 0x20, 0x65, 0xb9, 0xc3, 0x84,
0x10, 0x9a, 0x10, 0xc2, 0x2b, 0x84, 0xf0, 0x09, 0x21, 0x02, 0xf5, 0xf0, 0x09, 0x21, 0x7c, 0x52,
0x0f, 0x13, 0x4e, 0xb5, 0x31, 0x35, 0x6b, 0xb0, 0x50, 0x51, 0x98, 0x5d, 0xb2, 0x99, 0x2f, 0x41,
0xc1, 0xd4, 0xc8, 0x17, 0x6b, 0x28, 0xbe, 0x18, 0xf5, 0xfc, 0xdb, 0xc2, 0xb4, 0x65, 0x82, 0x47,
0x81, 0x24, 0xa0, 0x2f, 0x7f, 0xc0, 0x4d, 0xa9, 0xa2, 0xb1, 0x98, 0xe6, 0xf7, 0xfb, 0x08, 0x04,
0x02, 0x24, 0x93, 0x49, 0xf2, 0xd7, 0x67, 0x49, 0xa6, 0x52, 0xb8, 0xae, 0xc4, 0x30, 0x8a, 0xc4,
0x62, 0x71, 0x60, 0x74, 0x35, 0x30, 0x2b, 0x84, 0x30, 0xe4, 0xc7, 0x4a, 0x75, 0xd3, 0x0c, 0x12,
0xa8, 0xd6, 0xad, 0x18, 0xaa, 0x83, 0x6e, 0x2a, 0x21, 0x00, 0x6a, 0x35, 0xfb, 0xa0, 0xeb, 0xba,
0x3d, 0x8a, 0xaa, 0xa0, 0xe9, 0x3a, 0x35, 0xc7, 0x91, 0x9a, 0xae, 0x03, 0x52, 0xba, 0xae, 0xeb,
0x08, 0x21, 0x2e, 0x01, 0x25, 0xc0, 0xba, 0xb5, 0x76, 0xef, 0xa0, 0x51, 0xfd, 0xdb, 0x6a, 0x3d,
0xb4, 0x8f, 0x01, 0xff, 0xc7, 0x90, 0x80, 0x0b, 0x38, 0x40, 0xad, 0x7e, 0xbb, 0xf2, 0x0e, 0xa2,
0xff, 0x17, 0x66, 0x9b, 0xf9, 0x0b, 0x88, 0x97, 0x4b, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE gerbview_open_recent_drill_files_xpm[1] = {{ png, sizeof( png ), "gerbview_open_recent_drill_files_xpm" }};
//EOF
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include "bitmaps.h"
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x04, 0x13, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x96, 0x5f, 0x4c, 0xd3,
0x57, 0x14, 0xc7, 0x2f, 0xb4, 0xe0, 0x80, 0x2a, 0xfd, 0x03, 0x32, 0x05, 0x5b, 0x8a, 0x13, 0x06,
0xb5, 0x53, 0x68, 0x69, 0x19, 0x3e, 0x68, 0xc6, 0xbf, 0x3a, 0xe8, 0x6a, 0x11, 0xda, 0x01, 0x41,
0xec, 0x68, 0x29, 0x6d, 0x21, 0x41, 0x7d, 0xd1, 0xe8, 0x03, 0xf1, 0x85, 0x8c, 0x07, 0x89, 0x8b,
0x89, 0x8a, 0x38, 0x5c, 0x34, 0x59, 0x9c, 0x89, 0x99, 0x31, 0x1a, 0x75, 0xc6, 0xed, 0x65, 0x84,
0x2c, 0xcb, 0x0c, 0x66, 0x4b, 0xdc, 0xc3, 0xc6, 0xb6, 0xc4, 0x98, 0xf8, 0x07, 0x86, 0x62, 0x36,
0x23, 0xe5, 0xee, 0x7b, 0x7e, 0xf9, 0xdd, 0xa6, 0x92, 0x6a, 0x06, 0x33, 0x3e, 0xec, 0xe1, 0x93,
0xa6, 0xe7, 0x9e, 0x73, 0xbe, 0xf7, 0x9e, 0x7b, 0x7e, 0xe7, 0xf7, 0x63, 0x9c, 0x73, 0xf6, 0x3a,
0x58, 0x9c, 0x33, 0x63, 0x49, 0x40, 0x01, 0x94, 0x20, 0x05, 0x2c, 0x93, 0x7f, 0xc9, 0x96, 0xfc,
0x4a, 0x84, 0xe4, 0xe4, 0x2b, 0xcb, 0xca, 0xca, 0x1a, 0x1c, 0x0e, 0x47, 0x7f, 0x7d, 0x7d, 0xfd,
0x71, 0xab, 0xd5, 0x7a, 0x40, 0xad, 0x56, 0xbb, 0x61, 0xaf, 0x00, 0xeb, 0xc0, 0x1b, 0xb4, 0x99,
0x25, 0x09, 0x51, 0xa0, 0xd7, 0xeb, 0x5d, 0xdb, 0xd9, 0xd9, 0x79, 0x2d, 0x14, 0x0a, 0xcd, 0xf6,
0xf4, 0xf4, 0xf0, 0x05, 0x44, 0x83, 0xc1, 0xe0, 0x64, 0x4d, 0x4d, 0xcd, 0x10, 0x7c, 0xeb, 0xc0,
0x9b, 0xb4, 0xa9, 0x45, 0x09, 0x51, 0x39, 0x20, 0xb0, 0x2b, 0x1c, 0x0e, 0x3f, 0x59, 0x90, 0xfc,
0x57, 0x30, 0x0e, 0x9e, 0xb3, 0xc3, 0x77, 0x4c, 0xaf, 0xd7, 0x07, 0x11, 0x67, 0x5e, 0x28, 0xf6,
0x52, 0x21, 0x08, 0x9c, 0x8c, 0x4b, 0x34, 0x19, 0x89, 0x44, 0xb6, 0x03, 0x9d, 0xd8, 0x84, 0xc5,
0x62, 0x49, 0x81, 0xdd, 0x0c, 0x86, 0xc1, 0x3c, 0xf9, 0x61, 0xfd, 0x91, 0xd1, 0x68, 0x8c, 0x60,
0x3d, 0x2f, 0xfe, 0xde, 0xe2, 0x2f, 0xf9, 0x39, 0x50, 0xa6, 0x6d, 0x42, 0x04, 0xa5, 0x39, 0xea,
0xf1, 0x78, 0x54, 0x71, 0xcd, 0x90, 0x06, 0xde, 0x02, 0x25, 0x80, 0xec, 0x4a, 0xf8, 0x6d, 0x01,
0xbf, 0x93, 0x7f, 0x57, 0x57, 0xd7, 0x4d, 0x85, 0x42, 0xe1, 0x84, 0x3d, 0x23, 0xae, 0x3a, 0x2c,
0x19, 0x68, 0x81, 0x4e, 0x60, 0xb3, 0xd9, 0x0a, 0xb1, 0xb3, 0x7b, 0x14, 0xe4, 0xf3, 0xf9, 0xbe,
0xa2, 0x26, 0x90, 0xd7, 0xb2, 0x21, 0x51, 0x91, 0xe1, 0xd3, 0x1e, 0xce, 0x08, 0xe8, 0x46, 0x15,
0x99, 0x0a, 0x3f, 0x6c, 0x1f, 0x82, 0x4a, 0xea, 0x40, 0x54, 0xa0, 0x1c, 0x31, 0xcf, 0x28, 0xce,
0xed, 0x76, 0x7f, 0x0a, 0xdb, 0x06, 0xda, 0x98, 0x10, 0xa2, 0x4e, 0xd9, 0x06, 0xbc, 0x02, 0x97,
0xcb, 0xf5, 0x85, 0x7c, 0x92, 0x29, 0xad, 0x56, 0x1b, 0x10, 0xf6, 0x8c, 0xb0, 0x6e, 0x54, 0x7d,
0x24, 0xef, 0xa1, 0xe6, 0xc4, 0x1a, 0x2e, 0x71, 0x34, 0x6f, 0x76, 0xf9, 0xee, 0xec, 0x8b, 0x38,
0x63, 0x3b, 0xd6, 0xd7, 0xd2, 0xa6, 0x7b, 0x7b, 0x7b, 0x0f, 0xc8, 0x25, 0x7c, 0xa2, 0x54, 0x2a,
0xab, 0xc5, 0x5d, 0xb1, 0x67, 0x8c, 0x9d, 0x9b, 0x61, 0xec, 0xce, 0x34, 0x63, 0x77, 0xa7, 0x64,
0x86, 0x5c, 0xae, 0xbf, 0xc9, 0xf9, 0x6c, 0x65, 0xe5, 0x63, 0x61, 0x1b, 0xcb, 0x4b, 0xb9, 0x4f,
0xc9, 0xb5, 0xa0, 0x64, 0x74, 0x5d, 0xf4, 0x9d, 0xd1, 0xc2, 0xa8, 0x4e, 0x16, 0x4c, 0x73, 0xaf,
0x38, 0x24, 0x77, 0x5c, 0x0a, 0x4e, 0xa5, 0xa2, 0x4e, 0xa4, 0x78, 0x93, 0xc9, 0xb4, 0x0b, 0xb6,
0x54, 0x49, 0x28, 0xca, 0xd8, 0x77, 0xd2, 0x55, 0xc5, 0xb1, 0xd7, 0xef, 0x97, 0xee, 0xe6, 0x27,
0x83, 0x21, 0x66, 0xdb, 0xd3, 0xa6, 0x91, 0x92, 0x16, 0xdd, 0xb0, 0xf1, 0x8a, 0x9f, 0x1d, 0x12,
0xeb, 0xc7, 0x36, 0x49, 0xb6, 0xcc, 0x81, 0x55, 0xb7, 0x90, 0xb0, 0x0d, 0xac, 0xa0, 0x7b, 0x44,
0xec, 0x04, 0xc5, 0xd7, 0xd6, 0xd6, 0x1e, 0xc7, 0xff, 0x4c, 0xe9, 0x6e, 0x17, 0x0a, 0x4d, 0xab,
0x54, 0xb1, 0x76, 0x7d, 0x94, 0x9e, 0x2e, 0xd9, 0xa2, 0x49, 0x8c, 0x1b, 0x3e, 0xc9, 0x95, 0x92,
0x96, 0xff, 0x58, 0x1d, 0x13, 0xb2, 0xdf, 0xae, 0xe3, 0xd9, 0xc3, 0xfa, 0x39, 0xcd, 0xf0, 0x9a,
0x79, 0x45, 0x41, 0x6a, 0x0b, 0x9d, 0x88, 0x76, 0x8f, 0xb2, 0x9d, 0xa2, 0x78, 0x3c, 0x7f, 0x57,
0xe8, 0x6a, 0x12, 0x9e, 0x68, 0x2e, 0x39, 0x99, 0xf7, 0x85, 0x42, 0x92, 0xd0, 0x64, 0x4e, 0x4e,
0xcc, 0xde, 0x1e, 0xce, 0x92, 0x84, 0x4c, 0xdf, 0x56, 0xc6, 0x84, 0x36, 0x7e, 0xbf, 0x59, 0xb2,
0xa9, 0x0f, 0xad, 0xfe, 0x0d, 0x09, 0x8b, 0x44, 0x3b, 0x23, 0xf6, 0x1b, 0x8a, 0x6f, 0x6c, 0x6c,
0x1c, 0x11, 0xe2, 0x6c, 0x9e, 0xb1, 0x2f, 0x21, 0xf6, 0x47, 0x3c, 0x1f, 0x7b, 0x3c, 0x4f, 0xc9,
0xf1, 0x52, 0x69, 0xe9, 0xec, 0x53, 0xdc, 0x1f, 0xd9, 0xae, 0xad, 0x4f, 0xbb, 0x47, 0x49, 0xb3,
0x3e, 0xcb, 0xe7, 0x85, 0xd7, 0xad, 0xfc, 0xed, 0xaf, 0x6d, 0x7c, 0xe5, 0xe9, 0x02, 0x49, 0x48,
0x15, 0xd0, 0x1e, 0x43, 0xc2, 0x74, 0x4a, 0xd8, 0xdc, 0xdc, 0xac, 0x40, 0xac, 0x34, 0x41, 0xaa,
0xaa, 0xaa, 0x82, 0xb1, 0xae, 0x4b, 0xf4, 0x1c, 0xe1, 0xe8, 0x87, 0xc9, 0x31, 0x10, 0x08, 0xdc,
0xc4, 0x7f, 0xa7, 0xfc, 0xac, 0x24, 0xe9, 0x4e, 0x1a, 0xce, 0x69, 0x46, 0xf4, 0x3c, 0xd6, 0x75,
0x20, 0x67, 0xc4, 0xf8, 0x00, 0x6d, 0xbe, 0x5d, 0xec, 0xbc, 0xbb, 0xbb, 0xbb, 0x41, 0x2e, 0xfd,
0x7c, 0x71, 0x71, 0xb1, 0x41, 0xcc, 0xbe, 0x84, 0x13, 0x01, 0x42, 0x76, 0x38, 0xce, 0x51, 0x80,
0xd3, 0xe9, 0x3c, 0x26, 0x0f, 0xcd, 0x65, 0xb6, 0x1b, 0xd5, 0x3a, 0xcb, 0xc4, 0x7b, 0xbc, 0xe0,
0xf2, 0x46, 0x9e, 0x7f, 0xd1, 0xcc, 0x4b, 0x7f, 0xd8, 0xc2, 0x4b, 0x4e, 0x97, 0x5f, 0xc2, 0x5a,
0x03, 0x09, 0x75, 0x74, 0x74, 0xe8, 0x10, 0x7b, 0x47, 0x1e, 0x47, 0x57, 0xc5, 0x69, 0x5e, 0x3a,
0x82, 0xe0, 0x3c, 0x20, 0x3f, 0x0f, 0x7f, 0x61, 0x4a, 0xef, 0x47, 0xd0, 0x66, 0x43, 0x6f, 0x91,
0x51, 0xdc, 0x8f, 0x40, 0x16, 0x72, 0xc2, 0x27, 0x0b, 0x13, 0xe1, 0x2a, 0xc5, 0xa0, 0xc5, 0xa7,
0x9b, 0x9a, 0x9a, 0x72, 0xff, 0xd5, 0xac, 0xeb, 0xef, 0xef, 0x4f, 0x45, 0xd0, 0x2d, 0x31, 0xa1,
0x5b, 0x5b, 0x5b, 0xcf, 0xe7, 0x6c, 0x58, 0xe5, 0x4f, 0x24, 0x64, 0xb7, 0xdb, 0x0f, 0xa2, 0x64,
0x77, 0x45, 0xb7, 0xa2, 0xe4, 0x9e, 0x45, 0x4d, 0xef, 0xbe, 0xbe, 0xbe, 0x7c, 0x3c, 0xe9, 0xd7,
0x45, 0x82, 0x30, 0x06, 0xe6, 0x8e, 0xc1, 0x8f, 0x78, 0xd3, 0xa9, 0x36, 0xfe, 0xc1, 0x59, 0x2f,
0x6f, 0x39, 0xd2, 0xc1, 0xfd, 0x7b, 0x02, 0x8f, 0xe3, 0x06, 0xef, 0x0c, 0x66, 0x64, 0xd7, 0x92,
0x5f, 0x7c, 0x48, 0xe0, 0x03, 0x53, 0x09, 0xde, 0x45, 0x31, 0x50, 0xe2, 0x0b, 0x38, 0x55, 0xee,
0x7f, 0x7e, 0xc3, 0xe2, 0x74, 0xea, 0xce, 0x7d, 0x81, 0x66, 0xf7, 0x99, 0x16, 0xde, 0x36, 0xb4,
0x93, 0xef, 0x1c, 0xf0, 0x73, 0xcf, 0x89, 0x76, 0xbe, 0x75, 0xd0, 0x35, 0x61, 0x36, 0x9b, 0x23,
0xa2, 0xeb, 0x5e, 0xc9, 0x37, 0xc3, 0xbb, 0xe3, 0x75, 0xda, 0x17, 0x34, 0x43, 0xc3, 0xff, 0x48,
0xe8, 0x8c, 0xed, 0xf5, 0x08, 0x99, 0x3e, 0xb7, 0x5f, 0x80, 0xc8, 0xfb, 0x89, 0x3e, 0x48, 0x96,
0x2c, 0x64, 0xf9, 0xa5, 0x3a, 0xb3, 0xe2, 0xb6, 0xe3, 0x4f, 0x30, 0x23, 0xb0, 0x8e, 0x57, 0x0d,
0x42, 0x44, 0xf3, 0xa2, 0xcf, 0x2c, 0xc1, 0x3f, 0xcc, 0xc3, 0x66, 0x7a, 0x03, 0x39, 0xbc, 0xd6,
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE via_xpm[1] = {{ png, sizeof( png ), "via_xpm" }};
//EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48"
width="48"
version="1.1"
id="svg2"
inkscape:version="0.48.1 "
sodipodi:docname="change_entry_orient.svg">
<metadata
id="metadata53">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="968"
id="namedview51"
showgrid="false"
inkscape:zoom="9.7321397"
inkscape:cx="8.2414503"
inkscape:cy="26.142558"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<defs
id="defs4">
<mask
id="e">
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-72.949"
x="35.044"
fill="#fff"
id="rect7" />
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-87.48"
x="35.044"
fill="#fff"
id="rect9" />
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-102.01"
x="35.044"
fill="#fff"
id="rect11" />
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-116.54"
x="35.044"
fill="#fff"
id="rect13" />
</mask>
<mask
id="f">
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-72.949"
x="35.044"
fill="#fff"
id="rect16" />
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-87.48"
x="35.044"
fill="#fff"
id="rect18" />
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-102.01"
x="35.044"
fill="#fff"
id="rect20" />
<rect
transform="rotate(90)"
height="8.6868"
width="9.3725"
y="-116.54"
x="35.044"
fill="#fff"
id="rect22" />
</mask>
<filter
id="d"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="0.76169817"
id="feGaussianBlur25" />
</filter>
<mask
id="e-1">
<rect
style="fill:#ffffff"
transform="matrix(0,1,-1,0,0,0)"
height="8.6868"
width="9.3725004"
y="-72.948997"
x="35.043999"
id="rect7-7" />
<rect
style="fill:#ffffff"
transform="matrix(0,1,-1,0,0,0)"
height="8.6868"
width="9.3725004"
y="-87.480003"
x="35.043999"
id="rect9-4" />
<rect
style="fill:#ffffff"
transform="matrix(0,1,-1,0,0,0)"
height="8.6868"
width="9.3725004"
y="-102.01"
x="35.043999"
id="rect11-0" />
<rect
style="fill:#ffffff"
transform="matrix(0,1,-1,0,0,0)"
height="8.6868"
width="9.3725004"
y="-116.54"
x="35.043999"
id="rect13-9" />
</mask>
<filter
inkscape:collect="always"
id="filter3840">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.77409508"
id="feGaussianBlur3842" />
</filter>
<filter
color-interpolation-filters="sRGB"
inkscape:collect="always"
id="filter3840-8">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.77409508"
id="feGaussianBlur3842-2" />
</filter>
</defs>
<g
id="g3890"
transform="translate(34.422029,34.730287)">
<g
id="g35-5"
transform="matrix(0,2.9379,-2.1996,0,8.491481,-32.124217)">
<rect
style="fill-opacity:0"
id="rect37-5"
x="0"
y="0"
width="16"
height="16" />
</g>
<path
transform="matrix(0,0.91790986,-0.91920821,0,11.841319,-33.997331)"
inkscape:connector-curvature="0"
id="path3800-8-1"
d="m 7.8690809,3.4934004 41.1855461,40.6965116 0,0"
style="opacity:0.26068373;fill:none;stroke:#37574d;stroke-width:6.38199997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3840-8)" />
<path
inkscape:connector-curvature="0"
id="path3800-7"
d="m 8.5224219,-31.309913 -38.1711689,38.464589 0,0"
style="opacity:0.57692309;fill:none;stroke:#0539b2;stroke-width:5.9735837;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
id="g3844">
<g
id="g35"
transform="matrix(2.9379,0,0,2.1996,2.1067,3.2221)">
<rect
id="rect37"
x="0"
y="0"
width="16"
height="16"
fill-opacity="0" />
</g>
<path
transform="matrix(0.91790986,0,0,0.91920821,0.23358571,-0.12773803)"
inkscape:connector-curvature="0"
id="path3800-8"
d="m 7.8690809,3.4934004 41.1855461,40.6965116 0,0"
style="opacity:0.26068373;fill:none;stroke:#37574d;stroke-width:6.38199997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3840)" />
<path
inkscape:connector-curvature="0"
id="path3800"
d="m 2.9210036,3.1911591 38.4645894,38.1711689 0,0"
style="fill:none;stroke:#73ce06;stroke-width:5.9735837;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48"
width="48"
version="1.0"
id="svg2"
inkscape:version="0.48.1 "
sodipodi:docname="gerbview_open_recent_drill_files.svg">
<metadata
id="metadata93">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1130"
inkscape:window-height="875"
id="namedview91"
showgrid="false"
inkscape:zoom="14.166667"
inkscape:cx="24"
inkscape:cy="24"
inkscape:window-x="46"
inkscape:window-y="28"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<defs
id="defs4">
<radialGradient
id="p"
gradientUnits="userSpaceOnUse"
cy="27.875"
cx="16"
gradientTransform="matrix(1 0 0 .28866 0 19.829)"
r="12.125">
<stop
offset="0"
id="stop7" />
<stop
stop-opacity="0"
offset="1"
id="stop9" />
</radialGradient>
<radialGradient
id="q"
gradientUnits="userSpaceOnUse"
cy="15.491"
cx="10.783"
gradientTransform="matrix(.40447 0 0 .42758 4.3012 2.4766)"
r="17.709">
<stop
stop-color="#fff"
offset="0"
id="stop12" />
<stop
stop-color="#c1c7bc"
offset="1"
id="stop14" />
</radialGradient>
<radialGradient
id="r"
gradientUnits="userSpaceOnUse"
cy="10.499"
cx="10.5"
gradientTransform="matrix(2.1471,4.6915e-7,-4.6925e-7,2.1471,1.4265,-49.569)"
r="10.496">
<stop
stop-color="#f57900"
offset="0"
id="stop17" />
<stop
stop-color="#fcaf3e"
offset="1"
id="stop19" />
</radialGradient>
<linearGradient
id="j"
y2="51.027"
gradientUnits="userSpaceOnUse"
x2="26.14"
y1="20.927"
x1="25.594">
<stop
stop-color="#fff"
offset="0"
id="stop22" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop24" />
</linearGradient>
<linearGradient
id="k"
y2="-49.625"
gradientUnits="userSpaceOnUse"
x2="23.732"
y1="-40.465"
x1="25.866">
<stop
stop-color="#fff"
offset="0"
id="stop27" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop29" />
</linearGradient>
<linearGradient
id="l"
y2="14.781"
gradientUnits="userSpaceOnUse"
x2="83.625"
y1="15.75"
x1="79.25">
<stop
offset="0"
id="stop32" />
<stop
stop-opacity="0"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
id="m"
y2="13.875"
gradientUnits="userSpaceOnUse"
x2="83.219"
gradientTransform="translate(1)"
y1="14.062"
x1="80.625">
<stop
stop-color="#eeeeec"
offset="0"
id="stop37" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="1"
id="stop39" />
</linearGradient>
<linearGradient
id="n"
y2="12.093"
gradientUnits="userSpaceOnUse"
x2="83.203"
gradientTransform="translate(1)"
y1="12.312"
x1="78.312">
<stop
stop-color="#555753"
offset="0"
id="stop42" />
<stop
stop-color="#888a85"
stop-opacity="0"
offset="1"
id="stop44" />
</linearGradient>
<linearGradient
id="o"
y2="16.438"
gradientUnits="userSpaceOnUse"
x2="83.031"
gradientTransform="translate(1)"
y1="16.406"
x1="78.5">
<stop
stop-color="#fff"
offset="0"
id="stop47" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop49" />
</linearGradient>
</defs>
<g
transform="matrix(.83844 0 0 .82825 10.704 39.853)"
id="g51">
<path
opacity=".4"
style="color:#000000"
d="m28.125 27.875a12.125 3.5 0 1 1 -24.25 0 12.125 3.5 0 1 1 24.25 0z"
transform="matrix(1.732,0,0,2,-3.7113,-65.75)"
fill="url(#p)"
id="path53" />
<path
stroke-linejoin="round"
d="m15.092 10.078a6.43 7.0998 0 1 1 -12.86 0 6.43 7.0998 0 1 1 12.86 0z"
transform="matrix(2.7108 0 0 2.4649 .44798 -51.842)"
stroke="#babdb6"
stroke-linecap="round"
stroke-width=".38686"
fill="url(#q)"
id="path55" />
<path
opacity=".11856"
d="m23.969-44.661c-9.5044 0-17.219 7.6827-17.219 17.188 0 0.38564 0.037527 0.77693 0.0625 1.1562 0.60042-8.9602 8.0444-16.031 17.156-16.031 9.1119 0 16.556 7.0711 17.156 16.031 0.02497-0.37932 0.0625-0.77061 0.0625-1.1562 0-9.5048-7.7144-17.188-17.219-17.188z"
id="path57" />
<path
stroke-linejoin="round"
d="m23.166-48.493c-11.463 0.436-20.666 9.901-20.666 21.468 0 11.846 9.6239 21.468 21.471 21.468s21.471-9.6229 21.471-21.468c0-11.846-9.6239-21.468-21.471-21.468-0.27766 0-0.53004-0.01047-0.80516 0zm-0.0671 4.2937c0.29278-0.01484 0.57581 0 0.87225 0 9.4863 0 17.177 7.698 17.177 17.175 0 9.4768-7.6904 17.175-17.177 17.175-9.4863 0-17.177-7.698-17.177-17.175 0-9.1807 7.2284-16.715 16.304-17.175z"
stroke="#ce5c00"
stroke-linecap="round"
fill="url(#r)"
id="path59" />
<path
opacity=".51031"
stroke-linejoin="round"
style="color:#000000"
d="m43.375 24.75a19.875 19.875 0 1 1 -39.75 0 19.875 19.875 0 1 1 39.75 0z"
transform="matrix(1.0299 0 0 1.0299 -.23329 -52.458)"
stroke="url(#j)"
stroke-linecap="round"
stroke-width=".97099"
fill="none"
id="path61" />
<path
stroke-linejoin="round"
d="m23.205-23.188 12.357-1.375-11.2-1.6748-1.1568 3.0498z"
fill-rule="evenodd"
stroke="#2e3436"
stroke-linecap="round"
fill="#555753"
id="path63" />
<path
stroke-linejoin="round"
d="m23.569-40.703-1.6232 16.549 3.0751-1.0879-1.4519-15.461z"
fill-rule="evenodd"
stroke="#2e3436"
stroke-linecap="round"
fill="#555753"
id="path65" />
<path
stroke-linejoin="round"
style="color:#000000"
d="m26.25 25.062a2.6875 2.6875 0 1 1 -5.375 0 2.6875 2.6875 0 1 1 5.375 0z"
fill-rule="evenodd"
transform="translate(0,-50)"
stroke="#2e3436"
stroke-linecap="round"
fill="#555753"
id="path67" />
<path
opacity=".47423"
style="color:#000000"
d="m23.5 23.656a1.25 1.25 0 1 1 -2.5 0 1.25 1.25 0 1 1 2.5 0z"
fill-rule="evenodd"
transform="matrix(-.6 0 0 -.6 36.498 -11.335)"
fill="#fff"
id="path69" />
<path
opacity=".5"
stroke-linejoin="round"
d="m40.835-46.712a17.103 7.1153 0 1 1 -34.206 0 17.103 7.1153 0 1 1 34.206 0z"
transform="matrix(1.0598,0,0,2.5476,-1.1523,92)"
stroke-dashoffset=".7"
stroke="url(#k)"
stroke-linecap="round"
stroke-width=".60858"
fill="none"
id="path71" />
<g
transform="translate(-62,-52)"
id="g73">
<path
opacity=".1"
d="m85 9.9688c-4.3134 0-8.1444 1.9886-10.719 5.0625l-2.406-2.406a0.5313 0.5313 0 0 0 -0.90625 0.28125l-2 10.5a0.5313 0.5313 0 0 0 0.625 0.625l10.5-2a0.5313 0.5313 0 0 0 0.281 -0.906l-2.5-2.5c1.635-2.1625 4.2032-3.5938 7.125-3.5938 0.06101 0 0.66768-0.0067 1.25 0s1.2312 0.0319 1.2188 0.03125a0.5313 0.5313 0 0 0 0.5625 -0.53125v-4a0.5313 0.5313 0 0 0 -0.501 -0.531c-0.283-0.0105-2.309-0.0312-2.531-0.0312z"
fill-rule="evenodd"
transform="translate(1,1)"
fill="url(#l)"
id="path75" />
<path
d="m86 10.5c-4.3611 0-8.252 2.0648-10.719 5.2812l-2.781-2.781-2 10.5 10.5-2-2.844-2.844c1.708-2.505 4.584-5.156 7.844-5.156 0.16914 0 2.333 0.02251 2.5 0.03125v-3c-0.168-0.006-2.331-0.031-2.5-0.031z"
fill-rule="evenodd"
stroke-dashoffset=".7"
stroke="url(#n)"
stroke-linecap="round"
stroke-miterlimit="10"
fill="url(#m)"
id="path77" />
<path
d="m86 11.5c-4.0454 0-7.654 1.8975-9.9375 4.875-0.17123 0.23202-0.43428 0.37884-0.72164 0.40279-0.288 0.024-0.571-0.078-0.779-0.278l-1.437-1.438-1.375 7.188 7.1875-1.375-1.5-1.5c-0.338-0.348-0.378-0.888-0.094-1.281 1.886-2.768 5.058-5.594 8.656-5.594 0.12892 0 1.6658-0.0067 2.25 0 0.11122 0.0013 0.14936-0.000915 0.25 0v-0.96875c-0.703-0.009-2.457-0.031-2.5-0.031z"
stroke-dashoffset=".7"
stroke="url(#o)"
stroke-linecap="round"
stroke-miterlimit="10"
fill="none"
id="path79" />
</g>
</g>
<g
transform="matrix(2.4304674,0,0,2.534659,-200.00066,-1427.9547)"
id="g4"
style="opacity:1">
<image
xlink:href="data:image/png;base64,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 A1IAAAAASUVORK5CYII= "
height="15.242"
width="16.108999"
y="567.08002"
x="82.260002"
id="image6" />
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="48"
height="48"
viewBox="0 0 0.24 0.24"
id="svg2"
version="1.1"
inkscape:version="0.48.1 "
sodipodi:docname="lang_bg.svg">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1123"
inkscape:window-height="807"
id="namedview10"
showgrid="false"
inkscape:zoom="11.244203"
inkscape:cx="26.61597"
inkscape:cy="26.235738"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<g
id="g2991"
transform="matrix(0.04798479,0,0,0.07959657,0,0.22089684)">
<rect
style="fill:#ffffff"
y="-2.76"
x="0"
id="rect4"
height="3"
width="5" />
<rect
style="fill:#00966e"
x="0"
id="rect6"
y="-1.76"
height="2"
width="5" />
<rect
style="fill:#d62612"
x="0"
id="rect8"
y="-0.75999999"
height="1"
width="5" />
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48"
width="48"
version="1.1"
id="svg2"
inkscape:version="0.48.1 "
sodipodi:docname="via_sketch.svg">
<metadata
id="metadata16">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs14">
<filter
inkscape:collect="always"
id="filter3808">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.79203718"
id="feGaussianBlur3810" />
</filter>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="968"
id="namedview12"
showgrid="false"
inkscape:snap-grids="false"
inkscape:snap-to-guides="false"
inkscape:zoom="10.873341"
inkscape:cx="10.68511"
inkscape:cy="22.398101"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<g
id="g3798"
style="opacity:0.38671875;filter:url(#filter3808)"
transform="translate(-90.843526,3.6539241)">
<rect
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-opacity:1"
id="rect4-4"
x="93.149178"
y="11.34338"
width="29.813433"
height="8.7306871"
ry="2.3031542"
rx="0" />
<rect
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-opacity:1"
id="rect6-8"
x="11.503523"
y="-123.2624"
width="30.819489"
height="8.5042381"
ry="2.243417"
rx="0"
transform="matrix(0,1,-1,0,0,0)" />
<path
style="fill:none;stroke:#000000;stroke-width:2.2720027;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path8-1"
d="m 134.31482,15.979044 a 15.30449,14.862257 0 1 1 -30.60898,0 15.30449,14.862257 0 1 1 30.60898,0 z" />
<path
style="fill:#000000;stroke:#000000;stroke-width:3.44060159;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path10-0"
d="m 124.433,15.872462 a 5.7326026,5.8850078 0 0 1 -11.4652,0 5.7326026,5.8850078 0 1 1 11.4652,0 z" />
</g>
<rect
rx="0"
ry="2.3031542"
height="8.7306871"
width="29.813433"
y="16.90716"
x="0.41774505"
id="rect4"
style="fill:#ff0000;fill-rule:evenodd" />
<rect
transform="matrix(0,1,-1,0,0,0)"
rx="0"
ry="2.243417"
height="8.5042381"
width="30.819489"
y="-30.530968"
x="17.067303"
id="rect6"
style="fill:#38d948;fill-rule:evenodd" />
<path
d="m 41.583387,21.542825 a 15.304489,14.862256 0 1 1 -30.608977,0 15.304489,14.862256 0 1 1 30.608977,0 z"
id="path8"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c6c6c;stroke-width:4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="m 31.701569,21.436243 a 5.7326025,5.8850077 0 1 1 -11.465205,0 5.7326025,5.8850077 0 1 1 11.465205,0 z"
id="path10"
inkscape:connector-curvature="0"
style="fill:none;stroke:#119b1d;stroke-width:3.44060159" />
</svg>
......@@ -63,7 +63,7 @@ BEGIN_EVENT_TABLE( EDA_DRAW_PANEL, wxScrolledWindow )
EVT_MOUSEWHEEL( EDA_DRAW_PANEL::OnMouseWheel )
EVT_MOUSE_EVENTS( EDA_DRAW_PANEL::OnMouseEvent )
EVT_CHAR( EDA_DRAW_PANEL::OnKeyEvent )
EVT_CHAR_HOOK( EDA_DRAW_PANEL::OnKeyEvent )
EVT_CHAR_HOOK( EDA_DRAW_PANEL::OnCharHook )
EVT_PAINT( EDA_DRAW_PANEL::OnPaint )
EVT_ERASE_BACKGROUND( EDA_DRAW_PANEL::OnEraseBackground )
EVT_SCROLLWIN( EDA_DRAW_PANEL::OnScroll )
......@@ -1105,6 +1105,12 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
}
void EDA_DRAW_PANEL::OnCharHook( wxKeyEvent& event )
{
event.Skip();
}
void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event )
{
int localkey;
......@@ -1114,14 +1120,8 @@ void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event )
switch( localkey )
{
case WXK_CONTROL:
case WXK_CAPITAL:
case WXK_SHIFT:
case WXK_NUMLOCK:
case WXK_LBUTTON:
case WXK_RBUTTON:
case WXK_ALT:
return;
default:
break;
case WXK_ESCAPE:
m_AbortRequest = true;
......@@ -1130,7 +1130,6 @@ void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event )
EndMouseCapture();
else
EndMouseCapture( ID_NO_TOOL_SELECTED, m_defaultCursor, wxEmptyString );
break;
}
......
......@@ -157,9 +157,11 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu )
}
if( GetBusEntryShape( (SCH_BUS_ENTRY*) item ) == '\\' )
PopMenu->Append( ID_POPUP_SCH_ENTRY_SELECT_SLASH, _( "Set Bus Entry /" ) );
AddMenuItem( PopMenu, ID_POPUP_SCH_ENTRY_SELECT_SLASH,
_( "Set Bus Entry /" ), KiBitmap( change_entry_orient_xpm ) );
else
PopMenu->Append( ID_POPUP_SCH_ENTRY_SELECT_ANTISLASH, _( "Set Bus Entry \\" ) );
AddMenuItem( PopMenu, ID_POPUP_SCH_ENTRY_SELECT_ANTISLASH,
_( "Set Bus Entry \\" ), KiBitmap( change_entry_orient_xpm ) );
AddMenuItem( PopMenu, ID_POPUP_SCH_DELETE, _( "Delete Bus Entry" ),
KiBitmap( delete_bus_xpm ) );
......
......@@ -106,7 +106,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar( void )
wxID_ANY,
_( "Open Recent Dri&ll File" ),
_( "Open a recent opened drill file" ),
KiBitmap( open_project_xpm ) );
KiBitmap( gerbview_open_recent_drill_files_xpm ) );
// Separator
fileMenu->AppendSeparator();
......
......@@ -113,6 +113,7 @@ EXTERN_BITMAP( break_line_xpm )
EXTERN_BITMAP( browse_files_xpm )
EXTERN_BITMAP( cancel_tool_xpm )
EXTERN_BITMAP( cancel_xpm )
EXTERN_BITMAP( change_entry_orient_xpm )
EXTERN_BITMAP( checked_ok_xpm )
EXTERN_BITMAP( component_select_alternate_shape_xpm )
EXTERN_BITMAP( component_select_unit_xpm )
......@@ -200,6 +201,7 @@ EXTERN_BITMAP( gerber_file_xpm )
EXTERN_BITMAP( gerber_recent_files_xpm )
EXTERN_BITMAP( gerbview_clear_layers_xpm )
EXTERN_BITMAP( gerber_open_dcode_file_xpm )
EXTERN_BITMAP( gerbview_open_recent_drill_files_xpm )
EXTERN_BITMAP( general_deletions_xpm )
EXTERN_BITMAP( general_ratsnest_xpm )
EXTERN_BITMAP( glabel2label_xpm )
......@@ -470,6 +472,7 @@ EXTERN_BITMAP( unlocked_xpm )
EXTERN_BITMAP( unzip_xpm )
EXTERN_BITMAP( update_module_board_xpm )
EXTERN_BITMAP( up_xpm )
EXTERN_BITMAP( via_xpm )
EXTERN_BITMAP( via_sketch_xpm )
EXTERN_BITMAP( viewlibs_icon_xpm )
EXTERN_BITMAP( warning_xpm )
......
......@@ -177,6 +177,7 @@ public:
void OnMouseEvent( wxMouseEvent& event );
void OnMouseLeaving( wxMouseEvent& event );
void OnKeyEvent( wxKeyEvent& event );
void OnCharHook( wxKeyEvent& event );
void OnPan( wxCommandEvent& event );
......
......@@ -19,8 +19,8 @@
/* PADS attributes */
#define PAD_STANDARD 0 // Usual pad
#define PAD_SMD 1 // Smd pad, appears on the layer paste (default)
#define PAD_CONN 2 // Like smd, does not appear on the layer paste (default)
#define PAD_SMD 1 // Smd pad, appears on the solder paste layer (default)
#define PAD_CONN 2 // Like smd, does not appear on the solder paste layer (default)
#define PAD_HOLE_NOT_PLATED 3 // like PAD_STANDARD, but not plated
// mechanical used only
// no connection allowed
......
......@@ -1672,10 +1672,22 @@ static bool sortPadsByXthenYCoord( D_PAD* const & ref, D_PAD* const & comp )
}
void BOARD::GetSortedPadListByXthenYCoord( std::vector<D_PAD*>& aVector )
void BOARD::GetSortedPadListByXthenYCoord( std::vector<D_PAD*>& aVector, int aNetCode )
{
if( aNetCode < 0 )
{
aVector.insert( aVector.end(), m_NetInfo.m_PadsFullList.begin(),
m_NetInfo.m_PadsFullList.end() );
}
else
{
const NETINFO_ITEM* net = m_NetInfo.GetNetItem( aNetCode );
if( net )
{
aVector.insert( aVector.end(), net->m_PadInNetList.begin(),
net->m_PadInNetList.end() );
}
}
sort( aVector.begin(), aVector.end(), sortPadsByXthenYCoord );
}
......
......@@ -1211,8 +1211,11 @@ public:
* those pointers are only references to pads which are owned by the BOARD
* through other links.
* @param aVector Where to put the pad pointers.
* @param aNetCode = the netcode filter:
* = -1 to build the full pad list.
* = a given netcode to build the pad list relative to the given net
*/
void GetSortedPadListByXthenYCoord( std::vector<D_PAD*>& aVector );
void GetSortedPadListByXthenYCoord( std::vector<D_PAD*>& aVector, int aNetCode = -1 );
/**
* Function GetTrace
......
......@@ -222,7 +222,7 @@ public:
int m_Flag; // used in some calculations. Had no
// special meaning
std::vector <D_PAD*> m_ListPad; // List of pads connected to this net
std::vector <D_PAD*> m_PadInNetList; // List of pads connected to this net
unsigned m_RatsnestStartIdx; /* Starting point of ratsnests of this
* net (included) in a general buffer of
......@@ -369,7 +369,7 @@ public:
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
int GetNodesCount() const { return m_ListPad.size(); }
int GetNodesCount() const { return m_PadInNetList.size(); }
/**
* Function GetNetname
......
......@@ -115,7 +115,7 @@ void NETINFO_LIST::buildListOfNets()
}
pad->SetNet( netcode );
net_item->m_ListPad.push_back( pad );
net_item->m_PadInNetList.push_back( pad );
nodes_count ++;
last_pad = pad;
}
......
......@@ -50,17 +50,32 @@ static void RebuildTrackChain( BOARD* pcb );
class CONNECTED_POINT
{
private:
TRACK * m_track; // a link to the parent item (track or via)
BOARD_CONNECTED_ITEM * m_item; // a link to the parent item (track, via or pad)
wxPoint m_point; // the connection point
public:
CONNECTED_POINT( TRACK * aTrack, wxPoint & aPoint)
CONNECTED_POINT( TRACK * aTrack, const wxPoint & aPoint)
{
m_track = aTrack;
m_item = aTrack;
m_point = aPoint;
}
TRACK * GetTrack() const { return m_track; }
CONNECTED_POINT( D_PAD * aPad, const wxPoint & aPoint)
{
m_item = aPad;
m_point = aPoint;
}
TRACK * GetTrack() const
{
return m_item->Type() != PCB_PAD_T ? (TRACK*) m_item : NULL ;
}
D_PAD * GetPad() const
{
return m_item->Type() == PCB_PAD_T ? (D_PAD*) m_item : NULL;
}
const wxPoint & GetPoint() const { return m_point; }
};
......@@ -96,9 +111,8 @@ public:
/**
* Function Build_CurrNet_SubNets_Connections
* Connections to pads are assumed to be already initialized,
* and are not recalculated
* An be called after a track change (delete or add a track):
* should be called after a track change (delete or add a track):
* Connections to pads and to tracks are recalculated
* If a track is deleted, the other pointers to pads do not change.
* When a new track is added in track list, its pointers to pads are already initialized
* Builds the subnets inside a net (tracks from aFirstTrack to aFirstTrack).
......@@ -120,6 +134,13 @@ public:
*/
void BuildTracksCandidatesList( TRACK * aBegin = NULL, TRACK * aEnd = NULL);
/**
* Function BuildPadsCandidatesList
* Fills m_Candidates with all pads connecting points (pads position)
* m_sortedPads must be built
*/
void BuildPadsCandidatesList();
/**
* function SearchConnectedTracks
* Fills m_Connected with tracks/vias connected to aTrack
......@@ -140,9 +161,21 @@ public:
}
/**
* function SearchTracksConnectedToPads
* function SearchConnectionsPadsToIntersectingPads
* Explores the list of pads and adds to m_PadsConnected member
* of each track connected the pad(s) connected to
* of each pad pads connected to
* Here, connections are due to intersecting pads, not tracks
* m_sortedPads must be initialized
*/
void SearchConnectionsPadsToIntersectingPads();
/**
* function SearchTracksConnectedToPads
* Explores the list of pads.
* Adds to m_PadsConnected member of each track the pad(s) connected to
* Adds to m_TracksConnected member of each pad the track(s) connected to
* D_PAD::m_TracksConnected is cleared before adding items
* TRACK::m_PadsConnected is not cleared
*/
void SearchTracksConnectedToPads();
......@@ -188,17 +221,27 @@ private:
/**
* Function Merge_SubNets
* Change a subnet value to a new value, for tracks ans pads which are connected to
* corresponding track for pads and tracks, this is the .m_Subnet member that is tested
* and modified these members are block numbers (or cluster numbers) for a given net
* The result is 2 cluster (or subnets) are merged into only one.
* Note: the resulting sub net value is the smallest between aOldSubNet et aNewSubNet
* Change a subnet old value to a new value, for tracks and pads which are connected to
* tracks from m_firstTrack to m_lastTrack and their connected pads.
* and modify the subnet parameter (change the old value to the new value).
* After that, 2 cluster (or subnets) are merged into only one.
* Note: the resulting sub net value is the smallest between aOldSubNet and aNewSubNet
* @return modification count
* @param aOldSubNet = subnet value to modify
* @param aNewSubNet = new subnet value for each item which have old_val as subnet value
*/
int Merge_SubNets( int aOldSubNet, int aNewSubNet );
/**
* Function Merge_PadsSubNets
* Change a subnet value to a new value, in m_sortedPads pad list
* After that, 2 cluster (or subnets) are merged into only one.
* Note: the resulting subnet value is the smallest between aOldSubNet et aNewSubNet
* @return modification count
* @param aOldSubNet = subnet value to modify
* @param aNewSubNet = new subnet value for each item which have old_val as subnet value
*/
int Merge_PadsSubNets( int aOldSubNet, int aNewSubNet );
};
......@@ -216,28 +259,49 @@ void CONNECTIONS::BuildPadsList( int aNetcode )
{
// Creates sorted pad list if not exists
m_sortedPads.clear();
if( aNetcode < 0 )
m_brd->GetSortedPadListByXthenYCoord( m_sortedPads );
else
m_brd->GetSortedPadListByXthenYCoord( m_sortedPads, aNetcode < 0 ? -1 : aNetcode );
}
/* Explores the list of pads and adds to m_PadsConnected member
* of each pad pads connected to
* Here, connections are due to intersecting pads, not tracks
*/
void CONNECTIONS::SearchConnectionsPadsToIntersectingPads()
{
std::vector<CONNECTED_POINT*> candidates;
BuildPadsCandidatesList();
for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ )
{
D_PAD * pad = m_sortedPads[ii];
pad->m_PadsConnected.clear();
candidates.clear();
CollectItemsNearTo( candidates, pad->ReturnShapePos(), pad->m_ShapeMaxRadius );
// add pads to pad.m_PadsConnected, if they are connected
for( unsigned jj = 0; jj < candidates.size(); jj++ )
{
std::vector<D_PAD*> buffer;
m_brd->GetSortedPadListByXthenYCoord( buffer );
int icnt = 0;
for( unsigned ii = 0; ii < buffer.size(); ii++ )
CONNECTED_POINT * item = candidates[jj];
D_PAD * candidate_pad = item->GetPad();
if( pad == candidate_pad )
continue;
if( (pad->m_layerMask & candidate_pad->m_layerMask) == 0 )
continue;
if( pad->HitTest( item->GetPoint() ) )
{
if( buffer[ii]->GetNet() == aNetcode )
icnt++;
pad->m_PadsConnected.push_back( candidate_pad );
}
m_sortedPads.reserve(icnt);
for( unsigned ii = 0; ii < buffer.size(); ii++ )
{
if( buffer[ii]->GetNet() == aNetcode )
m_sortedPads.push_back( buffer[ii] );
}
}
}
/* Explores the list of pads
* Adds to m_PadsConnected member of each track the pad(s) connected to
* Adds to m_TracksConnected member of each pad the track(s) connected to
* D_PAD::m_TracksConnected is cleared before adding items
* TRACK::m_PadsConnected is not cleared
*/
void CONNECTIONS::SearchTracksConnectedToPads()
{
std::vector<CONNECTED_POINT*> candidates;
......@@ -245,18 +309,21 @@ void CONNECTIONS::SearchTracksConnectedToPads()
for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ )
{
D_PAD * pad = m_sortedPads[ii];
pad->m_TracksConnected.clear();
candidates.clear();
CollectItemsNearTo( candidates, pad->ReturnShapePos(), pad->m_ShapeMaxRadius );
CollectItemsNearTo( candidates, pad->GetPosition(), pad->m_ShapeMaxRadius );
// add this pad to track.m_PadsConnected, if it is connected
for( unsigned jj = 0; jj < candidates.size(); jj++ )
{
CONNECTED_POINT * item = candidates[jj];
if( (pad->m_layerMask & item->GetTrack()->ReturnMaskLayer()) == 0 )
CONNECTED_POINT * cp_item = candidates[jj];
if( (pad->m_layerMask & cp_item->GetTrack()->ReturnMaskLayer()) == 0 )
continue;
if( pad->HitTest( item->GetPoint() ) )
if( pad->HitTest( cp_item->GetPoint() ) )
{
item->GetTrack()->m_PadsConnected.push_back( pad );
pad->m_TracksConnected.push_back( item->GetTrack() );
cp_item->GetTrack()->m_PadsConnected.push_back( pad );
pad->m_TracksConnected.push_back( cp_item->GetTrack() );
}
}
}
......@@ -288,8 +355,11 @@ void CONNECTIONS::CollectItemsNearTo( std::vector<CONNECTED_POINT*>& aList,
CONNECTED_POINT& item = m_candidates[idx];
if( item.GetPoint().x == aPosition.x )
int dist = item.GetPoint().x - aPosition.x;
if( abs(dist) <= aDistMax )
{
break; // A good entry point is found. The list can be scanned from this point.
}
else if( item.GetPoint().x < aPosition.x ) // We should search after this item
{
......@@ -339,6 +409,19 @@ void CONNECTIONS::CollectItemsNearTo( std::vector<CONNECTED_POINT*>& aList,
}
}
void CONNECTIONS::BuildPadsCandidatesList()
{
m_candidates.clear();
m_candidates.reserve( m_sortedPads.size() );
for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ )
{
D_PAD * pad = m_sortedPads[ii];
CONNECTED_POINT candidate( pad, pad->GetPosition() );
m_candidates.push_back( candidate );
}
}
/* sort function used to sort .m_Connected by X the Y values
* items are sorted by X coordinate value,
* and for same X value, by Y coordinate value.
......@@ -498,25 +581,23 @@ int CONNECTIONS::searchEntryPoint( const wxPoint & aPoint)
}
/* Used after a track change (delete a track ou add a track)
* Connections to pads are assumed to be already initialized.
* and are not recalculated
* Connections to pads are recalculated
*/
void CONNECTIONS::Build_CurrNet_SubNets_Connections( TRACK* aFirstTrack, TRACK* aLastTrack, int aNetcode )
{
m_firstTrack = aFirstTrack; // The first track used to build m_Candidates
m_lastTrack = aLastTrack; // The last track used to build m_Candidates
TRACK* curr_track;
// Pads subnets are expected already cleared, because this function
// does not know the full list of pads
BuildTracksCandidatesList( aFirstTrack, aLastTrack );
TRACK* curr_track;
for( curr_track = aFirstTrack; curr_track != NULL; curr_track = curr_track->Next() )
{
// Clear track subnet id (Pads subnets are cleared outside this function)
curr_track->SetSubNet( 0 );
curr_track->m_TracksConnected.clear();
curr_track->m_PadsConnected.clear();
// Update connections between tracks:
SearchConnectedTracks( curr_track );
......@@ -535,6 +616,35 @@ void CONNECTIONS::Build_CurrNet_SubNets_Connections( TRACK* aFirstTrack, TRACK*
}
/**
* Change a subnet value to a new value, in m_sortedPads pad list
* After that, 2 cluster (or subnets) are merged into only one.
* Note: the resulting subnet value is the smallest between aOldSubNet et aNewSubNet
*/
int CONNECTIONS::Merge_PadsSubNets( int aOldSubNet, int aNewSubNet )
{
int change_count = 0;
if( aOldSubNet == aNewSubNet )
return 0;
if( (aOldSubNet > 0) && (aOldSubNet < aNewSubNet) )
EXCHG( aOldSubNet, aNewSubNet );
// Examine connections between intersecting pads
for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ )
{
D_PAD * curr_pad = m_sortedPads[ii];
if( curr_pad->GetSubNet() != aOldSubNet )
continue;
change_count++;
curr_pad->SetSubNet( aNewSubNet );
}
return change_count;
}
/*
* Change a subnet value to a new value, for tracks and pads which are connected to.
* The result is merging 2 clusters (or subnets) into only one cluster.
......@@ -702,11 +812,10 @@ void PCB_BASE_FRAME::TestConnections()
{
// At this point, track is the first track of a given net
int current_net_code = track->GetNet();
// Get last track of the current net
TRACK* lastTrack = track->GetEndNetCode( current_net_code );
if( current_net_code ) // do not spend time if net code = 0 ( dummy net )
if( current_net_code > 0 ) // do not spend time if net code = 0 ( dummy net )
connections.Build_CurrNet_SubNets_Connections( track, lastTrack, current_net_code );
track = lastTrack->Next(); // this is now the first track of the next net
......
......@@ -176,7 +176,12 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC )
g_CurrentTrackSegment->m_End = pos;
if( pad )
{
g_CurrentTrackSegment->m_PadsConnected.push_back( pad );
// Useful to display track length, if the pad has a die length:
g_CurrentTrackSegment->SetState( BEGIN_ONPAD, ON );
g_CurrentTrackSegment->start = pad;
}
if( g_TwoSegmentTrackBuild )
{
......
......@@ -90,7 +90,6 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
if( aHotkeyCode == 0 )
return;
wxPoint pos;
bool itemCurrentlyEdited = (GetCurItem() && GetCurItem()->m_Flags);
MODULE* module = NULL;
int evt_type = 0; //Used to post a wxCommandEvent on demand
......@@ -107,6 +106,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
if( HK_Descr == NULL )
HK_Descr = GetDescriptorFromHotkey( aHotkeyCode, board_edit_Hotkey_List );
if( HK_Descr == NULL )
return;
......@@ -144,8 +144,6 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
int ll;
unsigned int cnt;
......@@ -580,7 +578,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
// get any module, locked or not locked and toggle its locked status
if( !itemCurrentlyEdited )
{
pos = screen->RefPos( true );
wxPoint pos = screen->RefPos( true );
module = GetBoard()->GetFootprint( pos, screen->m_Active_Layer, true );
}
else if( GetCurItem()->Type() == PCB_MODULE_T )
......
......@@ -484,11 +484,12 @@ void PCB_EDIT_FRAME::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu )
}
msg = AddHotkeyName( _( "Place Via" ), g_Board_Editor_Hokeys_Descr, HK_ADD_VIA );
PopMenu->Append( ID_POPUP_PCB_PLACE_VIA, msg );
AddMenuItem( PopMenu, ID_POPUP_PCB_PLACE_VIA, msg, KiBitmap( via_xpm ) );
msg = AddHotkeyName( _( "Switch Track Posture" ), g_Board_Editor_Hokeys_Descr,
HK_SWITCH_TRACK_POSTURE );
PopMenu->Append( ID_POPUP_PCB_SWITCH_TRACK_POSTURE, msg );
AddMenuItem( PopMenu, ID_POPUP_PCB_SWITCH_TRACK_POSTURE, msg,
KiBitmap( change_entry_orient_xpm ) );
// See if we can place a Micro Via (4 or more layers, and start from an external layer):
if( IsMicroViaAcceptable() )
......
......@@ -239,7 +239,7 @@ void PCB_BASE_FRAME::Build_Board_Ratsnest()
net->m_RatsnestStartIdx = m_Pcb->GetRatsnestsCount();
min_spanning_tree.MSP_Init( &net->m_ListPad );
min_spanning_tree.MSP_Init( &net->m_PadInNetList );
min_spanning_tree.BuildTree();
min_spanning_tree.AddTreeToRatsnest( m_Pcb->m_FullRatsnest );
net->m_RatsnestEndIdx = m_Pcb->GetRatsnestsCount();
......@@ -344,11 +344,11 @@ static int tst_links_between_blocks( NETINFO_ITEM* aNetinfo,
EXCHG( min_id, subratsnest_id );
// Merge the 2 blocks in one sub ratsnest:
for( unsigned ii = 0; ii < aNetinfo->m_ListPad.size(); ii++ )
for( unsigned ii = 0; ii < aNetinfo->m_PadInNetList.size(); ii++ )
{
if( aNetinfo->m_ListPad[ii]->GetSubRatsnest() == subratsnest_id )
if( aNetinfo->m_PadInNetList[ii]->GetSubRatsnest() == subratsnest_id )
{
aNetinfo->m_ListPad[ii]->SetSubRatsnest( min_id );
aNetinfo->m_PadInNetList[ii]->SetSubRatsnest( min_id );
}
}
......@@ -457,9 +457,9 @@ void PCB_BASE_FRAME::TestForActiveLinksInRatsnest( int aNetCode )
// Create subratsnests id from subnets created by existing tracks:
int subratsnest = 0;
for( unsigned ip = 0; ip < net->m_ListPad.size(); ip++ )
for( unsigned ip = 0; ip < net->m_PadInNetList.size(); ip++ )
{
pad = net->m_ListPad[ip];
pad = net->m_PadInNetList[ip];
int subnet = pad->GetSubNet();
pad->SetSubRatsnest( subnet );
subratsnest = MAX( subratsnest, subnet );
......@@ -567,9 +567,9 @@ void PCB_BASE_FRAME::build_ratsnest_module( MODULE* aModule )
return;
}
for( unsigned jj = 0; jj < net->m_ListPad.size(); jj++ )
for( unsigned jj = 0; jj < net->m_PadInNetList.size(); jj++ )
{
pad_externe = net->m_ListPad[jj];
pad_externe = net->m_PadInNetList[jj];
if( pad_externe->GetParent() == aModule )
continue;
......@@ -819,9 +819,9 @@ void PCB_BASE_FRAME::BuildAirWiresTargetsList( BOARD_CONNECTED_ITEM* aItemRef,
// Create a list of pads candidates ( pads not already connected to the
// current track ):
for( unsigned ii = 0; ii < net->m_ListPad.size(); ii++ )
for( unsigned ii = 0; ii < net->m_PadInNetList.size(); ii++ )
{
D_PAD* pad = net->m_ListPad[ii];
D_PAD* pad = net->m_PadInNetList[ii];
if( pad == aItemRef )
continue;
......
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