Give the footprint viewer a toolbar and remove the options dialog

CHANGED: Cvpcb fpviewer and the pcbnew fpviewer no longer have an options dialog
ADDED: Add a side toolbar to the pcbnew footprint viewer (and the measure tool)

This also cleans up some of the settings structs in the viewers, since
it was somewhat confusing before.

Fixes https://gitlab.com/kicad/code/kicad/issues/2205
This commit is contained in:
Ian McInerney 2020-05-23 18:14:49 +01:00
parent f08057b629
commit 4ecf99e7c8
31 changed files with 630 additions and 1058 deletions

View File

@ -379,6 +379,7 @@ set( BMAPS_MID
pad_sketch
pad
pad_enumerate
pad_number
pads_mask_layers
path
pagelayout_load
@ -517,6 +518,7 @@ set( BMAPS_MID
zone_unfill
zoom
zoom_area
zoom_auto_fit_in_page
zoom_fit_in_page
zoom_center_on_screen
zoom_in

View File

@ -0,0 +1,53 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps_png/bitmaps_list.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, 0x02, 0x38, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x95, 0xbf, 0x4f, 0xdb,
0x50, 0x10, 0xc7, 0xdf, 0x88, 0x94, 0x99, 0x9f, 0x5b, 0x16, 0xfe, 0x00, 0x60, 0x25, 0x52, 0xc4,
0x14, 0xe5, 0x2f, 0x68, 0xbb, 0x44, 0x85, 0x88, 0xc1, 0xff, 0x42, 0xa5, 0x60, 0x44, 0x80, 0x74,
0xa9, 0xd4, 0x39, 0x52, 0xa7, 0x6c, 0x4c, 0xb8, 0x64, 0x28, 0x0a, 0xc5, 0x84, 0xc5, 0x55, 0x33,
0x90, 0x08, 0x04, 0xb1, 0x20, 0x94, 0x0c, 0x49, 0xab, 0x4a, 0xad, 0xd2, 0xa6, 0xad, 0x44, 0x52,
0xf7, 0xee, 0x7c, 0x2f, 0xb5, 0x8d, 0x0b, 0xc6, 0xa0, 0x4e, 0x3c, 0xe9, 0x2b, 0x3f, 0xd9, 0x7e,
0xf7, 0xf1, 0xfb, 0xde, 0xbd, 0xb3, 0x10, 0x0f, 0xe3, 0xbf, 0x8c, 0x25, 0x31, 0x21, 0x96, 0xc5,
0x34, 0x29, 0x2b, 0xc6, 0xef, 0x37, 0x78, 0x56, 0x8c, 0x02, 0xe0, 0x39, 0xe8, 0x1c, 0x64, 0x79,
0xd4, 0x00, 0xe5, 0x40, 0x23, 0x77, 0x83, 0xa8, 0x62, 0x11, 0x82, 0x74, 0xe1, 0xda, 0x83, 0x6b,
0x0b, 0x54, 0x15, 0x19, 0x61, 0x90, 0x54, 0x98, 0xe3, 0xbd, 0x8c, 0xe8, 0xf3, 0x3b, 0xe9, 0xb0,
0x36, 0xe5, 0xe8, 0xab, 0x55, 0xd1, 0x86, 0x6b, 0x09, 0xb4, 0x19, 0xcb, 0xc7, 0xf4, 0x7a, 0xab,
0xde, 0x45, 0xcd, 0xe6, 0x67, 0x75, 0xbc, 0x07, 0x20, 0x7c, 0xf6, 0x91, 0x77, 0xb8, 0x1e, 0x66,
0x27, 0xb8, 0xf0, 0x0c, 0x02, 0x69, 0x18, 0x70, 0xf2, 0xe5, 0xe4, 0xb6, 0xf9, 0xc1, 0xbc, 0x4c,
0x24, 0x12, 0x56, 0x32, 0x99, 0xb4, 0x10, 0x46, 0x20, 0x1b, 0xa6, 0x81, 0x1a, 0xfc, 0x61, 0xe9,
0xdb, 0xe4, 0xa4, 0x4b, 0x3b, 0x71, 0x40, 0x2a, 0xc7, 0x95, 0x6e, 0x2a, 0x95, 0xb2, 0xe2, 0xf1,
0x38, 0xe9, 0xe2, 0xd3, 0xc5, 0xaf, 0x01, 0xe8, 0x2f, 0x0c, 0x77, 0xf6, 0x3d, 0x58, 0xce, 0x30,
0xf1, 0x76, 0x4e, 0xc8, 0xae, 0x48, 0x36, 0xf2, 0xba, 0x52, 0x77, 0x43, 0x50, 0xa5, 0x93, 0x52,
0x1f, 0x02, 0x57, 0x5c, 0x30, 0x7b, 0x4d, 0x2f, 0x98, 0x85, 0x76, 0x25, 0xb5, 0xe4, 0xe2, 0xb9,
0x57, 0x73, 0x7b, 0x85, 0x42, 0x81, 0x82, 0x3b, 0x61, 0xba, 0xa9, 0x7f, 0x21, 0xab, 0xae, 0xc2,
0xda, 0x64, 0xf9, 0x8d, 0xe7, 0xc4, 0xce, 0x4d, 0x55, 0x2e, 0x8c, 0xac, 0x44, 0xb6, 0xca, 0x87,
0xe5, 0xdf, 0x08, 0x6b, 0x36, 0x9b, 0x3f, 0x25, 0xa8, 0xd3, 0xe9, 0xbc, 0x85, 0xe7, 0x58, 0x10,
0x3f, 0x3c, 0x16, 0xd6, 0x38, 0xc6, 0xd8, 0x75, 0xa0, 0x19, 0x7e, 0xc9, 0x70, 0x2c, 0xde, 0x19,
0x5a, 0x19, 0xb2, 0x14, 0x4d, 0x79, 0x06, 0xc1, 0x75, 0x0f, 0xe8, 0x31, 0xbf, 0x5f, 0x72, 0xbc,
0x6f, 0xd0, 0x3d, 0x3c, 0xd4, 0xff, 0x1c, 0xf8, 0xd0, 0xb6, 0xc3, 0xf0, 0xf8, 0x8e, 0xd5, 0xf4,
0x08, 0x83, 0xbb, 0x40, 0xaa, 0x78, 0xc2, 0xef, 0x3b, 0x41, 0xef, 0x18, 0x3e, 0x75, 0x5d, 0xc5,
0x8d, 0x73, 0xd0, 0xaa, 0xcb, 0x0e, 0x95, 0xec, 0xd1, 0x7d, 0x40, 0x7b, 0xe1, 0xac, 0xf3, 0x29,
0x06, 0x5e, 0x8c, 0x09, 0xa7, 0x02, 0x90, 0xa0, 0x5d, 0x73, 0xf7, 0x2b, 0x7f, 0xd4, 0x7b, 0x9f,
0x62, 0x38, 0x0d, 0xd6, 0x11, 0xb0, 0xad, 0xb8, 0xed, 0x20, 0x58, 0xf1, 0xa8, 0xd8, 0x97, 0x20,
0x9c, 0xfb, 0x40, 0x64, 0x79, 0xaf, 0x05, 0x01, 0x8d, 0xd0, 0xa1, 0x73, 0x1c, 0x58, 0xa9, 0x7d,
0x73, 0xff, 0xb3, 0x04, 0xe1, 0xdc, 0x03, 0xd1, 0xb8, 0x15, 0x7d, 0x13, 0xab, 0x62, 0x38, 0x68,
0x0b, 0x4a, 0x73, 0x92, 0x1b, 0x4e, 0xd8, 0xc6, 0xc1, 0x46, 0x53, 0x51, 0x14, 0x0b, 0x85, 0x73,
0x0f, 0x44, 0xb6, 0xa0, 0xf9, 0xdb, 0x36, 0xd5, 0x75, 0x6f, 0x53, 0x8d, 0xbe, 0x88, 0xbe, 0x41,
0x00, 0x0a, 0xe7, 0x03, 0xbb, 0x32, 0x83, 0xa6, 0xba, 0x1a, 0xb6, 0x83, 0x2f, 0x70, 0xef, 0xea,
0x51, 0x92, 0xed, 0x8a, 0x32, 0x58, 0x35, 0x4e, 0x7c, 0x8f, 0xec, 0x5a, 0x12, 0x4f, 0xef, 0xf6,
0x4f, 0x42, 0xbf, 0xed, 0xdd, 0x9d, 0xf9, 0xfc, 0xf8, 0x4e, 0x29, 0xf1, 0x81, 0x73, 0x12, 0x7c,
0x87, 0x63, 0x7c, 0xa8, 0xa7, 0x6e, 0x3e, 0x27, 0x0f, 0xe3, 0x9e, 0xc6, 0x1f, 0x80, 0xd2, 0xc3,
0x58, 0x34, 0x45, 0x77, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60,
0x82,
};
const BITMAP_OPAQUE pad_number_xpm[1] = {{ png, sizeof( png ), "pad_number_xpm" }};
//EOF

View File

@ -0,0 +1,63 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps_png/bitmaps_list.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, 0x04, 0x00, 0x00, 0x00, 0x03, 0x43, 0x84,
0x45, 0x00, 0x00, 0x02, 0xe2, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0xb5, 0x94, 0x7b, 0x48, 0x53,
0x71, 0x14, 0xc7, 0xcf, 0xdd, 0xbd, 0x7b, 0xf8, 0x58, 0x9a, 0x62, 0x3e, 0x33, 0x65, 0xe9, 0x7c,
0x64, 0xfa, 0x47, 0x81, 0x39, 0xaa, 0xa5, 0x21, 0x51, 0x94, 0x28, 0x15, 0x14, 0x98, 0x14, 0xce,
0x4d, 0xc3, 0x0a, 0x94, 0xec, 0x61, 0x91, 0x29, 0xb2, 0x72, 0x86, 0x94, 0x96, 0x6d, 0x4d, 0xac,
0x20, 0x14, 0x6b, 0xa8, 0xcb, 0x99, 0x58, 0x9a, 0x69, 0x12, 0x81, 0x86, 0x0f, 0x6a, 0x19, 0xcb,
0x9c, 0x0f, 0x9a, 0x19, 0xa6, 0x29, 0x98, 0x61, 0xa7, 0xcb, 0x2d, 0x9b, 0xd3, 0xdb, 0xe3, 0x9f,
0xce, 0xf7, 0x9f, 0xfb, 0xfb, 0x71, 0x3e, 0xf7, 0xfc, 0xce, 0xe3, 0xf7, 0x03, 0x58, 0x62, 0x48,
0x20, 0x0f, 0x05, 0xc8, 0x45, 0x02, 0xfe, 0xcd, 0xd0, 0x01, 0xbd, 0x31, 0x00, 0x03, 0x19, 0xad,
0x46, 0x4f, 0x14, 0xfc, 0x0d, 0x20, 0xd1, 0x67, 0x32, 0x48, 0x94, 0xc9, 0x6b, 0x20, 0x5e, 0x13,
0x83, 0xc4, 0x4b, 0x7e, 0x75, 0x84, 0x8c, 0x46, 0x3d, 0xfe, 0x10, 0x11, 0x29, 0xf4, 0x3f, 0x14,
0xcb, 0xe9, 0x84, 0xf7, 0x30, 0x00, 0x26, 0xc2, 0x08, 0x26, 0x30, 0x83, 0x85, 0x6a, 0x2e, 0x8c,
0x42, 0x5f, 0xe4, 0xb0, 0x23, 0x04, 0xfa, 0x26, 0xee, 0x24, 0x4c, 0xd0, 0xe7, 0x7b, 0xb7, 0x28,
0xeb, 0x83, 0x02, 0xe5, 0xe6, 0xb4, 0x73, 0xd9, 0xae, 0x0f, 0x68, 0xbc, 0x37, 0x5f, 0x82, 0x9e,
0xec, 0x90, 0x53, 0x7b, 0x18, 0xe7, 0x05, 0x74, 0xed, 0xb8, 0x34, 0x78, 0x64, 0x60, 0xef, 0x2b,
0x69, 0x4f, 0x94, 0x31, 0xda, 0xbc, 0xcf, 0x74, 0x2c, 0x42, 0x0d, 0x3d, 0x54, 0xd3, 0x8c, 0x18,
0xed, 0xd9, 0x20, 0x3f, 0xf7, 0x3c, 0xe8, 0x5c, 0xa3, 0xa9, 0x54, 0x9d, 0x9a, 0x50, 0x59, 0x0a,
0x46, 0x2e, 0x0e, 0x17, 0x8c, 0xa8, 0x2c, 0x19, 0x13, 0x4f, 0xb3, 0x56, 0x54, 0x41, 0x77, 0x58,
0x0a, 0x7a, 0x2f, 0x45, 0x78, 0x18, 0x48, 0xea, 0xa1, 0xe5, 0x7e, 0x8a, 0xea, 0xa8, 0x61, 0x76,
0x12, 0xe7, 0xa5, 0x19, 0xd3, 0x25, 0x28, 0x33, 0xa1, 0x45, 0x70, 0x93, 0xae, 0xe8, 0xe2, 0x72,
0xa0, 0xe3, 0x9b, 0x10, 0x68, 0x73, 0xbc, 0x87, 0x92, 0x3c, 0x45, 0xdd, 0x17, 0x2b, 0xa4, 0x1e,
0x2d, 0x8f, 0xed, 0xdf, 0x06, 0x0f, 0xc9, 0x5a, 0xba, 0x8a, 0xfc, 0x25, 0x19, 0xa9, 0xd7, 0x43,
0x83, 0x87, 0x16, 0x83, 0x72, 0x64, 0x0b, 0xa1, 0xeb, 0x16, 0x4d, 0x34, 0x86, 0xf3, 0xab, 0x89,
0x1a, 0x1a, 0xb2, 0x5b, 0x0c, 0x09, 0x3f, 0x86, 0x12, 0x35, 0xe4, 0x9d, 0x19, 0x71, 0xae, 0xdc,
0x36, 0xd2, 0x8d, 0x98, 0x5b, 0xeb, 0x40, 0xef, 0x50, 0xce, 0x16, 0x89, 0x87, 0xe2, 0x95, 0xc5,
0xa0, 0x4f, 0xd8, 0x55, 0x9a, 0x6d, 0xf8, 0x6a, 0x85, 0xb4, 0x93, 0x75, 0xfb, 0x83, 0xd3, 0x40,
0x17, 0x92, 0xc3, 0x92, 0x13, 0x8d, 0xf9, 0x27, 0x1d, 0x86, 0x0a, 0x9e, 0xc1, 0x71, 0xd8, 0xe7,
0x9b, 0x08, 0x4b, 0xb0, 0x95, 0x91, 0xf2, 0xb3, 0x3a, 0x9e, 0xd4, 0x41, 0x45, 0x5e, 0x12, 0x7a,
0xb1, 0x95, 0xdc, 0xf9, 0x53, 0xac, 0xdb, 0x15, 0xe8, 0x23, 0xc7, 0x84, 0x96, 0x65, 0x96, 0x0d,
0x1d, 0x9a, 0xb2, 0x6b, 0x25, 0xca, 0xdc, 0x9c, 0xbc, 0x65, 0xb7, 0xa1, 0x96, 0x5b, 0x36, 0x2e,
0x45, 0x21, 0xfb, 0x44, 0x88, 0xda, 0x53, 0x88, 0x21, 0x98, 0x22, 0xc6, 0xb9, 0x03, 0xae, 0xdd,
0x53, 0xb1, 0xef, 0xb6, 0x84, 0x1f, 0x24, 0x0d, 0xd0, 0x08, 0x65, 0x82, 0xd2, 0xb7, 0x6b, 0xd1,
0x0b, 0x79, 0xac, 0xb3, 0x77, 0x3a, 0x71, 0xf9, 0x10, 0x39, 0x0a, 0x46, 0x98, 0x86, 0x69, 0xa2,
0x03, 0x9e, 0xc3, 0x33, 0xd0, 0xd9, 0x5f, 0x76, 0x2e, 0x02, 0x2d, 0xaf, 0x72, 0x7b, 0x1c, 0x3d,
0xf3, 0x76, 0x2c, 0x18, 0x75, 0xdc, 0xa1, 0xcf, 0xbd, 0xff, 0x42, 0x86, 0xc0, 0xcc, 0x19, 0xe3,
0x76, 0xf8, 0x14, 0xc7, 0x65, 0x19, 0x52, 0xe7, 0xe4, 0x73, 0xf2, 0xc8, 0x6c, 0xd0, 0x41, 0x5b,
0x68, 0x32, 0x3b, 0x66, 0x80, 0x2e, 0x27, 0x2d, 0xc6, 0x48, 0x1a, 0xdc, 0x86, 0xfc, 0x8c, 0xb3,
0x0a, 0x4c, 0x44, 0x09, 0x7d, 0x31, 0x44, 0xad, 0x07, 0xa8, 0x42, 0xb8, 0x0a, 0x8f, 0x42, 0x65,
0x34, 0xb6, 0x68, 0x06, 0x43, 0xa0, 0x8b, 0xd6, 0x1e, 0x00, 0x32, 0x9e, 0xea, 0xa5, 0x7a, 0x23,
0x24, 0x3f, 0x8f, 0xcd, 0xc5, 0xc8, 0x5a, 0x39, 0xa5, 0x84, 0x22, 0x68, 0x10, 0xa7, 0xd2, 0xa5,
0xb7, 0xc1, 0xd2, 0x19, 0x28, 0x15, 0x76, 0x83, 0x8c, 0xf9, 0xca, 0xf8, 0x95, 0x2d, 0x1f, 0xb7,
0xd6, 0xa7, 0xf0, 0xce, 0x43, 0x01, 0x18, 0x02, 0x14, 0x74, 0x34, 0xae, 0x15, 0xaa, 0x66, 0x5c,
0xad, 0xaa, 0x07, 0x62, 0x41, 0xf3, 0xa5, 0xcd, 0x72, 0xfb, 0xb3, 0x90, 0x4f, 0xe8, 0x4f, 0x6e,
0x44, 0x97, 0xf9, 0x7d, 0x11, 0xe3, 0xf8, 0x18, 0xea, 0x18, 0x35, 0x31, 0xab, 0x60, 0x9b, 0x99,
0x91, 0x3e, 0x49, 0x16, 0x9e, 0x70, 0x39, 0x53, 0xb3, 0x09, 0x9d, 0xe7, 0x77, 0x15, 0x36, 0x6e,
0x3f, 0x7e, 0x91, 0x6e, 0xd3, 0x12, 0x2e, 0x6e, 0x9e, 0x94, 0x4d, 0xcb, 0x30, 0xd8, 0x7a, 0xf9,
0xab, 0x68, 0xa7, 0x46, 0xeb, 0x81, 0x40, 0x4f, 0xaf, 0x6b, 0x17, 0x75, 0x92, 0x83, 0xab, 0xd0,
0xe7, 0x37, 0xef, 0xc5, 0x7f, 0xb2, 0xef, 0x59, 0xf3, 0x82, 0x79, 0x52, 0x11, 0xe0, 0xf4, 0x00,
0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE zoom_auto_fit_in_page_xpm[1] = {{ png, sizeof( png ), "zoom_auto_fit_in_page_xpm" }};
//EOF

View File

@ -319,6 +319,7 @@ EXTERN_BITMAP( opt_show_polygon_xpm )
EXTERN_BITMAP( pad_sketch_xpm )
EXTERN_BITMAP( pad_xpm )
EXTERN_BITMAP( pad_enumerate_xpm )
EXTERN_BITMAP( pad_number_xpm )
EXTERN_BITMAP( pads_mask_layers_xpm )
EXTERN_BITMAP( pagelayout_load_xpm )
EXTERN_BITMAP( pagelayout_normal_view_mode_xpm )
@ -492,6 +493,7 @@ EXTERN_BITMAP( zip_xpm )
EXTERN_BITMAP( zone_duplicate_xpm )
EXTERN_BITMAP( zone_unfill_xpm )
EXTERN_BITMAP( zoom_area_xpm )
EXTERN_BITMAP( zoom_auto_fit_in_page_xpm )
EXTERN_BITMAP( zoom_center_on_screen_xpm )
EXTERN_BITMAP( zoom_redraw_xpm )
EXTERN_BITMAP( zoom_fit_in_page_xpm )

View File

@ -0,0 +1,106 @@
<?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"
sodipodi:docname="pad_number.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
id="svg2"
version="1.1"
width="26"
height="26">
<metadata
id="metadata40">
<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
inkscape:document-rotation="0"
inkscape:snap-nodes="true"
inkscape:current-layer="svg2"
inkscape:window-maximized="1"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:cy="12.716364"
inkscape:cx="12.752357"
inkscape:zoom="45.923076"
inkscape:snap-grids="true"
inkscape:snap-to-guides="false"
showgrid="true"
id="namedview38"
inkscape:window-height="1052"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff">
<inkscape:grid
originy="0"
originx="0"
spacingy="0.5"
spacingx="0.5"
snapvisiblegridlinesonly="true"
enabled="true"
visible="true"
empspacing="2"
id="grid3017"
type="xygrid" />
</sodipodi:namedview>
<defs
id="defs4" />
<g
id="g16"
transform="matrix(1.6382539,0,0,1.5572263,1.2572207,0.36314149)">
<rect
style="fill-opacity:0"
id="rect18"
x="0"
y="0"
width="16"
height="16" />
</g>
<path
inkscape:connector-curvature="0"
id="path3763"
d="m 13,4.5 c -4.69442,0 -8.5,3.8055796 -8.5,8.5 0,4.69442 3.80558,8.5 8.5,8.5 4.69442,0 8.5,-3.80558 8.5,-8.5 0,-4.6944204 -3.80558,-8.5 -8.5,-8.5 z m 0,5 c 1.932997,0 3.5,1.567003 3.5,3.5 0,1.932997 -1.567003,3.5 -3.5,3.5 -1.932997,0 -3.5,-1.567003 -3.5,-3.5 0,-1.932997 1.567003,-3.5 3.5,-3.5 z"
style="fill:#008000;fill-opacity:0.69803922;stroke:#008000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#f2f2f2;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 13,18 V 8"
id="path4086"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4088"
d="M 10.5,10.5 13,8"
style="fill:none;stroke:#f2f2f2;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#414141;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 13,18 V 8"
id="path3801"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path3803"
d="M 10.5,10.5 13,8"
style="fill:none;stroke:#414141;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cc" />
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,154 @@
<?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"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:docname="zoom_auto_fit.svg"
version="1.0"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:version="0.32"
id="svg2"
height="26"
width="26">
<defs
id="defs4">
<linearGradient
gradientUnits="userSpaceOnUse"
y2="19.285688"
x2="10.558969"
y1="3.0148761"
x1="10.558969"
gradientTransform="scale(1.0003344,0.9996657)"
id="StandardGradient">
<stop
style="stop-color:#000000;stop-opacity:0.86274511;"
offset="0"
id="stop3309" />
<stop
id="stop3311"
offset="1"
style="stop-color:#000000;stop-opacity:0.47058824;" />
</linearGradient>
<linearGradient
y2="19.285688"
x2="10.558969"
y1="3.0148761"
x1="10.558969"
gradientTransform="matrix(1.2548423,0,0,1.2400195,0.14050495,-5.6670931)"
gradientUnits="userSpaceOnUse"
id="linearGradient2999"
xlink:href="#StandardGradient"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
inkscape:snap-grids="false"
inkscape:snap-to-guides="false"
inkscape:window-maximized="1"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:window-height="1052"
inkscape:window-width="1920"
inkscape:guide-bbox="true"
showguides="true"
inkscape:showpageshadow="false"
showgrid="true"
inkscape:current-layer="layer3"
inkscape:document-units="px"
inkscape:cy="12.276533"
inkscape:cx="10.312207"
inkscape:zoom="23.391981"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1"
bordercolor="#9a9a9a"
pagecolor="#ffffff"
id="base">
<sodipodi:guide
id="guide2383"
position="0,112"
orientation="1,0" />
<sodipodi:guide
id="guide2385"
position="26.278146,128"
orientation="0,1" />
<sodipodi:guide
id="guide2387"
position="128,54.082119"
orientation="1,0" />
<sodipodi:guide
id="guide2389"
position="78.156291,0"
orientation="0,1" />
<inkscape:grid
snapvisiblegridlinesonly="true"
empspacing="5"
enabled="true"
visible="true"
id="grid3672"
type="xygrid" />
</sodipodi:namedview>
<metadata
id="metadata7">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,4)"
style="display:inline"
inkscape:label="Cross"
id="layer3"
inkscape:groupmode="layer">
<path
inkscape:connector-curvature="0"
id="path4393"
d="m 11.430311,-3.2249884 c -2.272799,2e-7 -4.5578053,0.8632038 -6.2721144,2.55839553 -3.4356178,3.39730547 -3.4356183,8.96827317 0,12.36557787 2.7196488,2.689321 6.8218914,3.24191 10.1137844,1.666833 0.03751,-0.01794 0.0748,-0.05652 0.117602,-0.07753 0.03518,-0.01374 0.107341,-0.02278 0.156804,-0.03877 0.160051,-0.05173 0.349162,-0.103526 0.509608,-0.116291 0.105009,-0.0083 0.144253,-0.0017 0.156803,0 -0.0082,-0.01685 -0.02118,-0.04359 0.0784,0.232581 0.120337,0.333705 0.352186,0.929711 0.862416,1.434252 a 1.3070475,1.2924718 0 0 0 0.0392,0 l 3.998473,3.91512 a 1.3070475,1.2924718 0 0 0 0.0392,0.03877 c 0.0045,0.004 0.01627,0.01902 0.0392,0.03876 0.01797,0.01394 0.03946,0.03893 0.0392,0.03876 -9.4e-5,-6.8e-5 0.04647,0.01938 0.0784,0.03877 0.03013,0.02378 0.04121,0.05064 0.0784,0.07753 0.0065,0.004 0.03923,9e-6 0.0392,0 0.16814,0.119615 0.386998,0.279494 0.705612,0.387635 0.664623,0.225578 1.83589,0.122766 2.587248,-0.620217 0.753587,-0.745171 0.848364,-1.895396 0.627227,-2.558397 -0.221138,-0.663002 -0.542269,-0.960939 -0.54881,-0.96909 a 1.3070475,1.2924718 0 0 0 -0.0784,-0.116291 L 20.83848,11.156296 c -0.501428,-0.495837 -1.083421,-0.73316 -1.411225,-0.852799 -0.288243,-0.105198 -0.249911,-0.124223 -0.235205,-0.116291 -0.0095,-0.0425 -0.02681,-0.120768 0,-0.2713454 0.05055,-0.2840013 0.20669,-0.6004507 0.196004,-0.5814533 -6.46e-4,0.00117 0.0018,-0.042783 0,-0.038763 1.572319,-3.2491642 1.024585,-7.2822472 -1.685628,-9.96223757 -1.71431,-1.69519183 -3.999315,-2.55839553 -6.272115,-2.55839553 z m 0,1.2791978 c 1.926588,0 3.862407,0.7570135 5.331297,2.20952333 2.325743,2.29980727 2.80711,5.71665237 1.450427,8.48922117 -0.04417,0.093233 -0.739321,1.6335001 0,2.3645781 0.448448,0.443446 0.999618,0.290727 1.685631,0.969088 l 3.959272,3.915121 c 0.01308,0.0163 0.900222,0.892941 0,1.783124 -0.896758,0.886757 -1.759277,-0.0047 -1.764032,0 l -3.998473,-3.91512 c -0.686012,-0.678363 -0.531569,-1.262149 -0.980018,-1.705598 -0.6046,-0.597858 -1.740094,-0.255275 -2.19524,-0.07753 -0.07283,0.03782 -0.161419,0.081 -0.235204,0.116291 -2.803837,1.341554 -6.2592143,0.865556 -8.5849572,-1.434251 -2.9377802,-2.9050193 -2.93778,-7.599908 0,-10.50492726 C 7.5679039,-1.1887789 9.5037239,-1.9457926 11.430311,-1.9457927 z m 0,1.89941478 c -3.1159859,0 -5.6449027,2.50071542 -5.6449028,5.58195372 0,3.0812379 2.5289167,5.5819541 5.6449028,5.5819541 3.115987,0 5.644903,-2.5007162 5.644903,-5.5819541 0,-3.0812383 -2.528917,-5.58195394 -5.644903,-5.58195372 z m -1.293623,1.86065132 2.587247,0 0,2.5583954 2.548046,0 0,2.5583954 -2.548046,0 0,2.2870501 -2.587247,0 0,-2.2870501 -2.4696456,0 0,-2.5583954 2.4696456,0 0,-2.5583954 z m -1.2936241,0.3876355 0,0.8915621 -0.8624157,0 C 8.2281095,2.7520729 8.5064679,2.4573947 8.8430639,2.201911 z m 5.1744941,0 c 0.336596,0.2554837 0.614954,0.5501619 0.862416,0.8915621 l -0.862416,0 0,-0.8915621 z m -5.880107,6.008353 0.7056129,0 0,0.6589808 C 8.5812669,8.6705342 8.3466877,8.4622929 8.137451,8.210264 z m 5.880107,0 0.705613,0 c -0.209236,0.2520289 -0.443816,0.4602702 -0.705613,0.6589808 l 0,-0.6589808 z"
style="opacity:0.15;fill:#ffffff;fill-opacity:1;stroke:none;display:inline" />
<path
sodipodi:nodetypes="sssccsccscsscsssssss"
inkscape:connector-curvature="0"
id="Symbol"
d="m 11.430311,-1.9457906 c -1.9265871,1e-7 -3.8624071,0.7570137 -5.3312972,2.20952333 -2.93778,2.90501937 -2.9377802,7.59990807 0,10.50492727 2.3257429,2.299807 5.7811202,2.775806 8.5849572,1.434251 0.07379,-0.03531 0.162379,-0.07847 0.235204,-0.116291 0.455146,-0.177748 1.59064,-0.520331 2.19524,0.07753 0.448449,0.443448 0.294006,1.027234 0.980018,1.705597 l 3.998473,3.915121 c 0.0048,-0.0047 0.867274,0.886757 1.764032,0 0.900222,-0.890184 0.01308,-1.766824 0,-1.783125 l -3.959272,-3.915125 c -0.686013,-0.678362 -1.237183,-0.525642 -1.685631,-0.969088 -0.739321,-0.731078 -0.04417,-2.2713486 0,-2.3645782 C 19.568718,5.9803851 19.087351,2.56354 16.761608,0.26373273 15.292718,-1.1887771 13.356899,-1.9457906 11.430311,-1.9457906 z m 0,1.89941478 c 3.115986,-2.2e-7 5.644903,2.50071542 5.644903,5.58195372 0,3.0812379 -2.528916,5.5819541 -5.644903,5.5819541 -3.1159861,0 -5.6449028,-2.5007162 -5.6449028,-5.5819541 1e-7,-3.0812383 2.5289169,-5.58195372 5.6449028,-5.58195372 z"
style="fill:url(#linearGradient2999);fill-opacity:1;stroke:none;display:inline" />
<path
sodipodi:nodetypes="sscssscsscssscsccsscccssc"
inkscape:connector-curvature="0"
id="BevelShadow"
d="m 11.430311,-1.9457906 c -1.9265871,1e-7 -3.8624071,0.7570137 -5.3312972,2.20952333 C 4.4871895,1.8575828 3.7861316,3.9980578 3.9429745,6.0782679 4.1036342,4.4219058 4.813735,2.7751128 6.0990138,1.5041669 7.5679039,0.05165731 9.5037239,-0.7053565 11.430311,-0.7053565 c 1.926588,0 3.862407,0.7570137 5.331297,2.2095234 1.293265,1.2788424 2.00228,2.9073039 2.15604,4.574101 C 19.077923,3.9951049 18.375523,1.8596493 16.761608,0.26373273 15.292718,-1.1887771 13.356899,-1.9457906 11.430311,-1.9457906 z M 5.8638095,6.1557949 c -0.023521,0.2067874 -0.078402,0.4072492 -0.078402,0.6202171 0,3.0812387 2.5289169,5.581954 5.6449035,5.581954 3.115987,0 5.644903,-2.5007153 5.644903,-5.581954 0,-0.2129679 -0.05488,-0.4134297 -0.0784,-0.6202171 -0.316787,2.785029 -2.665885,4.9617371 -5.566502,4.9617371 -2.9006169,0 -5.2497143,-2.1767081 -5.5665025,-4.9617371 z M 17.976831,10.76866 c -0.12596,0.525781 -0.188389,1.170434 0.235204,1.589306 0.448448,0.443446 0.999618,0.290726 1.685631,0.969089 l 3.959272,3.915121 c 0.0041,0.0052 0.100009,0.156441 0.196003,0.310109 0.539869,-0.799711 -0.184123,-1.535741 -0.196003,-1.550544 L 19.897666,12.08662 C 19.211653,11.408259 18.660483,11.560978 18.212035,11.117532 18.100115,11.00686 18.030239,10.908585 17.976831,10.76866 z"
style="opacity:0.5;fill:#000000;fill-opacity:1;stroke:none;display:inline" />
<path
inkscape:connector-curvature="0"
id="BevelHighlight"
d="m 14.958376,-1.0542286 c 0.341013,0.17949368 0.66436,0.38673795 0.980018,0.62021706 -0.308316,-0.22976633 -0.647179,-0.44214634 -0.980018,-0.62021706 z m -3.528065,1.00785278 c -3.1159859,0 -5.6449027,2.50071542 -5.6449028,5.58195372 0,0.2129679 0.05488,0.4134297 0.078402,0.620217 0.3167875,-2.785029 2.6658851,-4.9617367 5.5665007,-4.9617367 2.900617,-1e-7 5.249714,2.1767081 5.566502,4.9617367 0.02352,-0.2067873 0.0784,-0.4072491 0.0784,-0.620217 0,-3.0812383 -2.528917,-5.58195394 -5.644903,-5.58195372 z M 6.059813,0.26373273 C 5.5001517,0.81715291 5.0892415,1.4250119 4.7661896,2.0856204 5.1104606,1.4386761 5.54818,0.80842379 6.0990138,0.26373273 c -0.00701,0.006892 -0.03221,-0.006913 -0.0392,0 z M 18.956849,5.7293958 c -0.03028,1.0374903 -0.276797,2.067104 -0.744814,3.0235581 -0.03698,0.078048 -0.509316,1.1943772 -0.235204,1.9769421 0.09181,-0.369173 0.217209,-0.69852 0.235204,-0.7365081 0.60228,-1.2308408 0.730177,-2.5834111 0.744814,-3.91512 0.0012,-0.1168279 0.0028,-0.2318067 0,-0.3488721 z M 3.9037737,5.8456864 c -0.00152,0.07749 0,0.1552642 0,0.2325815 1e-7,0.052643 -0.00508,0.1026337 0,0.1550542 0,2.0802402 0.5834157,4.1819219 2.1952401,5.7757709 2.3257429,2.299808 5.7811202,2.775807 8.5849572,1.434252 0.07379,-0.0353 0.162379,-0.07847 0.235204,-0.11629 0.455146,-0.177748 1.59064,-0.52033 2.19524,0.07753 0.448449,0.443448 0.294006,1.027235 0.980018,1.705597 l 3.998473,3.91512 c 0.0048,-0.0047 0.867274,0.886758 1.764032,0 0.437107,-0.432231 0.392008,-1.138027 0.392008,-1.473014 0,-0.159901 0.0044,-0.264831 0,-0.387637 -0.04321,0.207621 -0.166951,0.397671 -0.392008,0.620218 -0.896758,0.886757 -1.759277,-0.0047 -1.764032,0 l -3.998473,-3.91512 c -0.686012,-0.678364 -0.531569,-1.26215 -0.980018,-1.705598 -0.6046,-0.597859 -1.740094,-0.255275 -2.19524,-0.07753 -0.07283,0.03782 -0.161419,0.081 -0.235204,0.116291 C 11.880134,13.544466 8.4247567,13.068467 6.0990138,10.76866 4.7114775,9.3965969 3.9806218,7.6391372 3.9037737,5.8456864 z m 3.7632687,1.0853799 0,1.2404341 2.4696456,0 0,-1.2404341 -2.4696456,0 z m 5.0568926,0 0,1.2404341 2.548046,0 0,-1.2404341 -2.548046,0 z M 6.1382146,7.318702 C 6.2195902,7.5550531 6.3012759,7.7955174 6.4126195,8.0164463 6.3008047,7.7932821 6.2199278,7.5575612 6.1382146,7.318702 z m 3.9984734,1.8994144 0,1.2404356 2.587247,0 0,-1.2404356 -2.587247,0 z"
style="opacity:0.3;fill:#ffffff;fill-opacity:1;stroke:none;display:inline" />
<rect
y="2.3044744"
x="8.0482569"
height="6.7461538"
width="6.7461538"
id="rect8125"
style="display:inline;fill:#f2f2f2;fill-opacity:1;stroke:#666666;stroke-width:0.749573;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:3;stroke-opacity:1" />
<g
id="text2996"
style="font-size:47.41636276px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:0.81960784;stroke:none;font-family:Sans"
transform="scale(0.93434702,1.0702662)">
<path
id="path2998"
style="font-size:15.41031837px;font-weight:bold;fill:#000000;-inkscape-font-specification:Sans Bold"
d="m 11.381565,16.668254 -4.5297905,0 -0.7148341,2.046683 -2.9120084,0 4.161087,-11.2341821 3.453777,0 4.161087,11.2341821 -2.912008,0 -0.70731,-2.046683 m -3.8074318,-2.084305 3.0775488,0 -1.535012,-4.469595 -1.5425368,4.469595" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -221,9 +221,6 @@ bool APP_SETTINGS_BASE::migrateWindowConfig( wxConfigBase* aCfg, const std::stri
ret &= fromLegacy<int>( aCfg, aFrame + gd + "GridStyle", aJsonPath + ".grid.style" );
ret &= fromLegacyColor( aCfg, aFrame + gd + "GridColor", aJsonPath + ".grid.color" );
ret &= fromLegacy<bool>( aCfg, aFrame + "AutoZoom", aJsonPath + ".auto_zoom" );
ret &= fromLegacy<double>( aCfg, aFrame + "Zoom", aJsonPath + ".zoom" );
return ret;
}

View File

@ -20,8 +20,6 @@ include_directories(
set( CVPCB_DIALOGS
dialogs/fp_conflict_assignment_selector_base.cpp
dialogs/fp_conflict_assignment_selector.cpp
dialogs/dialog_display_options.cpp
dialogs/dialog_display_options_base.cpp
dialogs/dialog_config_equfiles_base.cpp
dialogs/dialog_config_equfiles.cpp
)

View File

@ -29,15 +29,16 @@
///! Update the schema version whenever a migration is required
const int cvpcbSchemaVersion = 0;
CVPCB_SETTINGS::CVPCB_SETTINGS() :
APP_SETTINGS_BASE( "cvpcb", cvpcbSchemaVersion )
CVPCB_SETTINGS::CVPCB_SETTINGS()
: APP_SETTINGS_BASE( "cvpcb", cvpcbSchemaVersion ),
m_FootprintViewerAutoZoom( false ),
m_FootprintViewerZoom( 1.0 ),
m_FilterFootprint( 0 )
{
// Make Coverity happy:
m_FilterFootprint = 0;
m_FootprintViewerMagneticSettings.pads = MAGNETIC_OPTIONS::NO_EFFECT;
m_FootprintViewerMagneticSettings.tracks = MAGNETIC_OPTIONS::NO_EFFECT;
m_FootprintViewerMagneticSettings.graphics = false;
// We always snap and don't let the user configure it
m_FootprintViewerMagneticSettings.pads = MAGNETIC_OPTIONS::CAPTURE_ALWAYS;
m_FootprintViewerMagneticSettings.tracks = MAGNETIC_OPTIONS::CAPTURE_ALWAYS;
m_FootprintViewerMagneticSettings.graphics = true;
// Init settings:
m_params.emplace_back( new PARAM<int>( "filter_footprint", &m_FilterFootprint, 0 ) );
@ -57,12 +58,12 @@ CVPCB_SETTINGS::CVPCB_SETTINGS() :
m_params.emplace_back( new PARAM<bool>( "footprint_viewer.graphic_items_fill",
&m_FootprintViewerDisplayOptions.m_DisplayDrawItemsFill, true ) );
m_params.emplace_back( new PARAM<bool>( "footprint_viewer.magnetic_graphics",
&m_FootprintViewerMagneticSettings.graphics, false ) );
m_params.emplace_back( new PARAM<bool>( "footprint_viewer.auto_zoom",
&m_FootprintViewerAutoZoom, false ) );
m_params.emplace_back( new PARAM<double>( "footprint_viewer.zoom",
&m_FootprintViewerZoom, 1.0 ) );
m_params.emplace_back( new PARAM<int>( "footprint_viewer.magnetic_pads",
reinterpret_cast<int*>( &m_FootprintViewerMagneticSettings.pads ),
static_cast<int>( MAGNETIC_OPTIONS::NO_EFFECT ) ) );
}
@ -79,5 +80,8 @@ bool CVPCB_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg )
ret &= fromLegacy<bool>(
aCfg, "FootprintViewerFrameDiModTx", "footprint_viewer.footprint_text_fill" );
ret &= fromLegacy<bool>( aCfg, "FootprintViewerFrameAutoZoom", "footprint_viewer.auto_zoom" );
ret &= fromLegacy<double>( aCfg, "FootprintViewerFrameZoom", "footprint_viewer.zoom" );
return ret;
}

View File

@ -43,6 +43,10 @@ public:
MAGNETIC_SETTINGS m_FootprintViewerMagneticSettings;
bool m_FootprintViewerAutoZoom;
double m_FootprintViewerZoom;
int m_FilterFootprint;
protected:

View File

@ -55,7 +55,6 @@
BEGIN_EVENT_TABLE( DISPLAY_FOOTPRINTS_FRAME, PCB_BASE_FRAME )
EVT_CLOSE( DISPLAY_FOOTPRINTS_FRAME::OnCloseWindow )
EVT_TOOL( ID_OPTIONS_SETUP, DISPLAY_FOOTPRINTS_FRAME::InstallOptionsDisplay )
EVT_CHOICE( ID_ON_ZOOM_SELECT, DISPLAY_FOOTPRINTS_FRAME::OnSelectZoom )
EVT_CHOICE( ID_ON_GRID_SELECT, DISPLAY_FOOTPRINTS_FRAME::OnSelectGrid )
END_EVENT_TABLE()
@ -145,7 +144,9 @@ DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( KIWAY* aKiway, wxWindow* aPa
ActivateGalCanvas();
// Restore last zoom. (If auto-zooming we'll adjust when we load the footprint.)
GetCanvas()->GetView()->SetScale( m_lastZoom );
CVPCB_SETTINGS* cfg = dynamic_cast<CVPCB_SETTINGS*>( config() );
wxASSERT( cfg );
GetCanvas()->GetView()->SetScale( cfg->m_FootprintViewerZoom );
updateView();
@ -192,9 +193,6 @@ void DISPLAY_FOOTPRINTS_FRAME::ReCreateOptToolbar()
m_optionsToolBar = new ACTION_TOOLBAR( this, ID_OPT_TOOLBAR, wxDefaultPosition, wxDefaultSize,
KICAD_AUI_TB_STYLE | wxAUI_TB_VERTICAL );
// TODO: these can be moved to the 'proper' right vertical toolbar if and when there are
// actual tools to put there. That, or I'll get around to implementing configurable
// toolbars.
m_optionsToolBar->Add( ACTIONS::selectionTool, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( ACTIONS::measureTool, ACTION_TOOLBAR::TOGGLE );
@ -206,6 +204,7 @@ void DISPLAY_FOOTPRINTS_FRAME::ReCreateOptToolbar()
m_optionsToolBar->Add( ACTIONS::toggleCursorStyle, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->AddSeparator();
m_optionsToolBar->Add( PCB_ACTIONS::showPadNumbers, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( PCB_ACTIONS::padDisplayMode, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( PCB_ACTIONS::moduleTextOutlines, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( PCB_ACTIONS::moduleEdgeOutlines, ACTION_TOOLBAR::TOGGLE );
@ -222,15 +221,13 @@ void DISPLAY_FOOTPRINTS_FRAME::ReCreateHToolbar()
m_mainToolBar = new ACTION_TOOLBAR( this, ID_H_TOOLBAR, wxDefaultPosition, wxDefaultSize,
KICAD_AUI_TB_STYLE | wxAUI_TB_HORZ_LAYOUT );
m_mainToolBar->AddTool( ID_OPTIONS_SETUP, wxEmptyString, KiScaledBitmap( config_xpm, this ),
_( "Display options" ) );
m_mainToolBar->AddSeparator();
m_mainToolBar->Add( ACTIONS::zoomRedraw );
m_mainToolBar->Add( ACTIONS::zoomInCenter );
m_mainToolBar->Add( ACTIONS::zoomOutCenter );
m_mainToolBar->Add( ACTIONS::zoomFitScreen );
m_mainToolBar->Add( ACTIONS::zoomTool, ACTION_TOOLBAR::TOGGLE );
m_mainToolBar->Add( ACTIONS::zoomTool, ACTION_TOOLBAR::TOGGLE );
m_mainToolBar->Add( PCB_ACTIONS::zoomFootprintAutomatically, ACTION_TOOLBAR::TOGGLE );
m_mainToolBar->AddSeparator();
m_mainToolBar->Add( ACTIONS::show3DViewer );
@ -265,9 +262,6 @@ void DISPLAY_FOOTPRINTS_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
EDA_DRAW_FRAME::LoadSettings( cfg );
SetDisplayOptions( cfg->m_FootprintViewerDisplayOptions );
m_autoZoom = cfg->m_FootprintViewer.auto_zoom;
m_lastZoom = cfg->m_FootprintViewer.zoom;
}
@ -280,8 +274,7 @@ void DISPLAY_FOOTPRINTS_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
cfg->m_FootprintViewerDisplayOptions = GetDisplayOptions();
cfg->m_FootprintViewer.auto_zoom = m_autoZoom;
cfg->m_FootprintViewer.zoom = GetCanvas()->GetView()->GetScale();
cfg->m_FootprintViewerZoom = GetCanvas()->GetView()->GetScale();
}
@ -425,7 +418,7 @@ void DISPLAY_FOOTPRINTS_FRAME::updateView()
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
if( m_autoZoom )
if( GetAutoZoom() )
m_toolManager->RunAction( ACTIONS::zoomFitScreen, true );
else
m_toolManager->RunAction( ACTIONS::centerContents, true );
@ -449,6 +442,7 @@ void DISPLAY_FOOTPRINTS_FRAME::UpdateMsgPanel()
void DISPLAY_FOOTPRINTS_FRAME::SyncToolbars()
{
m_mainToolBar->Toggle( ACTIONS::zoomTool, IsCurrentTool( ACTIONS::zoomTool ) );
m_mainToolBar->Toggle( PCB_ACTIONS::zoomFootprintAutomatically, GetAutoZoom() );
m_mainToolBar->Refresh();
m_optionsToolBar->Toggle( ACTIONS::toggleGrid, IsGridVisible() );
@ -456,6 +450,14 @@ void DISPLAY_FOOTPRINTS_FRAME::SyncToolbars()
m_optionsToolBar->Toggle( ACTIONS::measureTool, IsCurrentTool( ACTIONS::measureTool ) );
m_optionsToolBar->Toggle( ACTIONS::metricUnits, GetUserUnits() != EDA_UNITS::INCHES );
m_optionsToolBar->Toggle( ACTIONS::imperialUnits, GetUserUnits() == EDA_UNITS::INCHES );
const PCB_DISPLAY_OPTIONS& opts = GetDisplayOptions();
m_optionsToolBar->Toggle( PCB_ACTIONS::showPadNumbers, opts.m_DisplayPadNum );
m_optionsToolBar->Toggle( PCB_ACTIONS::padDisplayMode, !opts.m_DisplayPadFill );
m_optionsToolBar->Toggle( PCB_ACTIONS::moduleTextOutlines, !opts.m_DisplayModTextFill );
m_optionsToolBar->Toggle( PCB_ACTIONS::moduleEdgeOutlines, !opts.m_DisplayModEdgeFill );
m_optionsToolBar->Refresh();
}
@ -475,3 +477,19 @@ BOARD_ITEM_CONTAINER* DISPLAY_FOOTPRINTS_FRAME::GetModel() const
{
return GetBoard()->GetFirstModule();
}
void DISPLAY_FOOTPRINTS_FRAME::SetAutoZoom( bool aAutoZoom )
{
CVPCB_SETTINGS* cfg = dynamic_cast<CVPCB_SETTINGS*>( config() );
wxASSERT( cfg );
cfg->m_FootprintViewerAutoZoom = aAutoZoom;
}
bool DISPLAY_FOOTPRINTS_FRAME::GetAutoZoom()
{
CVPCB_SETTINGS* cfg = dynamic_cast<CVPCB_SETTINGS*>( config() );
wxASSERT( cfg );
return cfg->m_FootprintViewerAutoZoom;
}

View File

@ -41,9 +41,6 @@
*/
class DISPLAY_FOOTPRINTS_FRAME : public PCB_BASE_FRAME
{
bool m_autoZoom;
double m_lastZoom;
public:
DISPLAY_FOOTPRINTS_FRAME( KIWAY* aKiway, wxWindow* aParent );
~DISPLAY_FOOTPRINTS_FRAME() override;
@ -83,9 +80,6 @@ public:
///> @copydoc EDA_DRAW_FRAME::UpdateMsgPanel()
void UpdateMsgPanel() override;
bool GetAutoZoom() const { return m_autoZoom; }
void SetAutoZoom( bool aEnable ) { m_autoZoom = aEnable; }
COLOR_SETTINGS* GetColorSettings() override;
/**
@ -94,7 +88,6 @@ public:
*/
COLOR4D GetGridColor() override;
void InstallOptionsDisplay( wxCommandEvent& event );
MODULE* Get_Module( const wxString& CmpName );
/* SaveCopyInUndoList() virtual
@ -124,6 +117,20 @@ public:
void SyncToolbars() override;
/**
* Set if the canvas should automatically zoom to the footprint on load.
*
* @param aAutoZoom is true if it should automatically zoom
*/
void SetAutoZoom( bool aAutoZoom ) override;
/**
* Get if the canvas should automatically zoom to the footprint on load.
*
* @return true if it should automatically zoom
*/
bool GetAutoZoom() override;
DECLARE_EVENT_TABLE()
};

View File

@ -105,8 +105,6 @@ enum main_id
ID_GEN_EXPORT_FILE,
ID_GEN_IMPORT_FILE,
ID_OPTIONS_SETUP,
// id for toolbars
ID_H_TOOLBAR,
ID_V_TOOLBAR,

View File

@ -473,6 +473,18 @@ public:
///> @copydoc EDA_DRAW_FRAME::UseGalCanvas
virtual void ActivateGalCanvas() override;
/**
* Doesn't do anything. Should be overrided in child classes if they
* support an auto zoom setting.
*/
virtual void SetAutoZoom( bool aAutoZoom ) {}
/**
* Always returns false. Should be overriden in child classes if they
* support an autozoom setting.
*/
virtual bool GetAutoZoom() { return false; }
DECLARE_EVENT_TABLE()
};

View File

@ -61,8 +61,6 @@ struct WINDOW_SETTINGS
CURSOR_SETTINGS cursor;
GRID_SETTINGS grid;
bool auto_zoom;
double zoom;
};
/**

View File

@ -83,8 +83,6 @@ set( PCBNEW_DIALOGS
dialogs/dialog_find_base.cpp
dialogs/dialog_footprint_wizard_list.cpp
dialogs/dialog_footprint_wizard_list_base.cpp
dialogs/dialog_fp_browser_display_options.cpp
dialogs/dialog_fp_browser_display_options_base.cpp
dialogs/dialog_fp_plugin_options.cpp
dialogs/dialog_fp_plugin_options_base.cpp
dialogs/dialog_gen_footprint_position_file_base.cpp

View File

@ -1,94 +0,0 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <fctsys.h>
#include <common.h>
#include <footprint_viewer_frame.h>
#include <dialog_fp_browser_display_options.h>
void FOOTPRINT_VIEWER_FRAME::InstallDisplayOptions( wxCommandEvent& event )
{
DIALOG_FP_BROWSER_DISPLAY_OPTIONS dlg( this );
dlg.ShowModal();
}
DIALOG_FP_BROWSER_DISPLAY_OPTIONS::DIALOG_FP_BROWSER_DISPLAY_OPTIONS( FOOTPRINT_VIEWER_FRAME* aParent )
: DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE( aParent ),
m_frame( aParent )
{
initDialog();
m_sdbSizerOK->SetDefault();
FinishDialogSettings();;
}
DIALOG_FP_BROWSER_DISPLAY_OPTIONS::~DIALOG_FP_BROWSER_DISPLAY_OPTIONS( )
{
}
void DIALOG_FP_BROWSER_DISPLAY_OPTIONS::initDialog()
{
SetFocus(); // mandatory to use escape key as cancel under wxGTK.
const PCB_DISPLAY_OPTIONS& displ_opts = m_frame->GetDisplayOptions();
m_EdgesDisplayOption->SetValue( not displ_opts.m_DisplayModEdgeFill );
m_TextDisplayOption->SetValue( not displ_opts.m_DisplayModTextFill );
m_ShowPadSketch->SetValue( not displ_opts.m_DisplayPadFill );
m_ShowPadNum->SetValue( displ_opts.m_DisplayPadNum );
m_autoZoomOption->SetValue( m_frame->GetAutoZoom() );
}
void DIALOG_FP_BROWSER_DISPLAY_OPTIONS::UpdateObjectSettings()
{
PCB_DISPLAY_OPTIONS displ_opts = m_frame->GetDisplayOptions();
displ_opts.m_DisplayModEdgeFill = not m_EdgesDisplayOption->GetValue();
displ_opts.m_DisplayModTextFill = not m_TextDisplayOption->GetValue();
displ_opts.m_DisplayPadNum = m_ShowPadNum->GetValue();
displ_opts.m_DisplayPadFill = not m_ShowPadSketch->GetValue();
m_frame->SetDisplayOptions( displ_opts );
m_frame->ApplyDisplaySettingsToGAL();
m_frame->SetAutoZoom( m_autoZoomOption->GetValue() );
}
bool DIALOG_FP_BROWSER_DISPLAY_OPTIONS::TransferDataFromWindow()
{
UpdateObjectSettings();
return true;
}
void DIALOG_FP_BROWSER_DISPLAY_OPTIONS::OnApplyClick( wxCommandEvent& event )
{
UpdateObjectSettings();
}

View File

@ -1,49 +0,0 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef DIALOG_FP_BROWSER_DISPLAY_OPTIONS_H
#define DIALOG_FP_BROWSER_DISPLAY_OPTIONS_H
#include <dialog_fp_browser_display_options_base.h>
class FOOTPRINT_VIEWER_FRAME;
class DIALOG_FP_BROWSER_DISPLAY_OPTIONS : public DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE
{
private:
FOOTPRINT_VIEWER_FRAME* m_frame;
public:
DIALOG_FP_BROWSER_DISPLAY_OPTIONS( FOOTPRINT_VIEWER_FRAME* aParent );
~DIALOG_FP_BROWSER_DISPLAY_OPTIONS();
private:
void initDialog();
void UpdateObjectSettings();
void OnApplyClick( wxCommandEvent& event ) override;
bool TransferDataFromWindow() override;
};
#endif // DIALOG_FP_BROWSER_DISPLAY_OPTIONS_H

View File

@ -1,84 +0,0 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "dialog_fp_browser_display_options_base.h"
///////////////////////////////////////////////////////////////////////////
DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE::DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bUpperSizer;
bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
wxStaticBoxSizer* sbSizerDrawMode;
sbSizerDrawMode = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Drawing Options") ), wxVERTICAL );
m_EdgesDisplayOption = new wxCheckBox( sbSizerDrawMode->GetStaticBox(), wxID_ANY, _("Graphic items sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizerDrawMode->Add( m_EdgesDisplayOption, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
m_TextDisplayOption = new wxCheckBox( sbSizerDrawMode->GetStaticBox(), wxID_ANY, _("Texts sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizerDrawMode->Add( m_TextDisplayOption, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
m_ShowPadSketch = new wxCheckBox( sbSizerDrawMode->GetStaticBox(), ID_PADFILL_OPT, _("Pad sketch mode"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizerDrawMode->Add( m_ShowPadSketch, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
sbSizerDrawMode->Add( 0, 0, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 );
m_ShowPadNum = new wxCheckBox( sbSizerDrawMode->GetStaticBox(), wxID_ANY, _("Show pad &numbers"), wxDefaultPosition, wxDefaultSize, 0 );
sbSizerDrawMode->Add( m_ShowPadNum, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bUpperSizer->Add( sbSizerDrawMode, 1, wxEXPAND|wxALL, 5 );
wxStaticBoxSizer* sbSizerViewOpt;
sbSizerViewOpt = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Auto-zoom") ), wxVERTICAL );
m_autoZoomOption = new wxCheckBox( sbSizerViewOpt->GetStaticBox(), wxID_ANY, _("Zoom to fit when changing footprint"), wxDefaultPosition, wxDefaultSize, 0 );
m_autoZoomOption->SetValue(true);
sbSizerViewOpt->Add( m_autoZoomOption, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bUpperSizer->Add( sbSizerViewOpt, 1, wxALL|wxEXPAND, 5 );
bSizerMain->Add( bUpperSizer, 1, wxEXPAND|wxALL, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bSizerMain->Add( m_staticline1, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
m_sdbSizer = new wxStdDialogButtonSizer();
m_sdbSizerOK = new wxButton( this, wxID_OK );
m_sdbSizer->AddButton( m_sdbSizerOK );
m_sdbSizerApply = new wxButton( this, wxID_APPLY );
m_sdbSizer->AddButton( m_sdbSizerApply );
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer->AddButton( m_sdbSizerCancel );
m_sdbSizer->Realize();
bSizerMain->Add( m_sdbSizer, 0, wxEXPAND|wxALL, 5 );
this->SetSizer( bSizerMain );
this->Layout();
bSizerMain->Fit( this );
// Connect Events
m_sdbSizerApply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE::OnApplyClick ), NULL, this );
}
DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE::~DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE()
{
// Disconnect Events
m_sdbSizerApply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE::OnApplyClick ), NULL, this );
}

View File

@ -1,697 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="13" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
<property name="disconnect_events">1</property>
<property name="disconnect_mode">source_name</property>
<property name="disconnect_php_events">0</property>
<property name="disconnect_python_events">0</property>
<property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property>
<property name="event_generation">connect</property>
<property name="file">dialog_fp_browser_display_options_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
<property name="internationalize">1</property>
<property name="name">dialog_fp_browser_display_options_base</property>
<property name="namespace"></property>
<property name="path">.</property>
<property name="precompiled_header"></property>
<property name="relative_path">1</property>
<property name="skip_lua_events">1</property>
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="center"></property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="extra_style"></property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">Display Options</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnActivate"></event>
<event name="OnActivateApp"></event>
<event name="OnAuiFindManager"></event>
<event name="OnAuiPaneButton"></event>
<event name="OnAuiPaneClose"></event>
<event name="OnAuiPaneMaximize"></event>
<event name="OnAuiPaneRestore"></event>
<event name="OnAuiRender"></event>
<event name="OnChar"></event>
<event name="OnClose"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnHibernate"></event>
<event name="OnIconize"></event>
<event name="OnIdle"></event>
<event name="OnInitDialog"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerMain</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bUpperSizer</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">1</property>
<object class="wxStaticBoxSizer" expanded="1">
<property name="id">wxID_ANY</property>
<property name="label">Drawing Options</property>
<property name="minimum_size"></property>
<property name="name">sbSizerDrawMode</property>
<property name="orient">wxVERTICAL</property>
<property name="parent">1</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Graphic items sketch mode</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_EdgesDisplayOption</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Texts sketch mode</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_TextDisplayOption</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">ID_PADFILL_OPT</property>
<property name="label">Pad sketch mode</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_ShowPadSketch</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxTOP|wxBOTTOM</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Show pad &amp;numbers</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_ShowPadNum</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxStaticBoxSizer" expanded="1">
<property name="id">wxID_ANY</property>
<property name="label">Auto-zoom</property>
<property name="minimum_size"></property>
<property name="name">sbSizerViewOpt</property>
<property name="orient">wxVERTICAL</property>
<property name="parent">1</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">1</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Zoom to fit when changing footprint</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_autoZoomOption</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticLine" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticline1</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxLI_HORIZONTAL</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">0</property>
<object class="wxStdDialogButtonSizer" expanded="1">
<property name="Apply">1</property>
<property name="Cancel">1</property>
<property name="ContextHelp">0</property>
<property name="Help">0</property>
<property name="No">0</property>
<property name="OK">1</property>
<property name="Save">0</property>
<property name="Yes">0</property>
<property name="minimum_size"></property>
<property name="name">m_sdbSizer</property>
<property name="permission">protected</property>
<event name="OnApplyButtonClick">OnApplyClick</event>
<event name="OnCancelButtonClick"></event>
<event name="OnContextHelpButtonClick"></event>
<event name="OnHelpButtonClick"></event>
<event name="OnNoButtonClick"></event>
<event name="OnOKButtonClick"></event>
<event name="OnSaveButtonClick"></event>
<event name="OnYesButtonClick"></event>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>

View File

@ -1,61 +0,0 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Dec 30 2017)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE_H__
#define __DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/checkbox.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/statline.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
#define ID_PADFILL_OPT 1000
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE : public DIALOG_SHIM
{
private:
protected:
wxCheckBox* m_EdgesDisplayOption;
wxCheckBox* m_TextDisplayOption;
wxCheckBox* m_ShowPadSketch;
wxCheckBox* m_ShowPadNum;
wxCheckBox* m_autoZoomOption;
wxStaticLine* m_staticline1;
wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerApply;
wxButton* m_sdbSizerCancel;
// Virtual event handlers, overide them in your derived class
virtual void OnApplyClick( wxCommandEvent& event ) { event.Skip(); }
public:
DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Display Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE();
};
#endif //__DIALOG_FP_BROWSER_DISPLAY_OPTIONS_BASE_H__

View File

@ -52,6 +52,8 @@
#include <tool/common_tools.h>
#include <tool/tool_dispatcher.h>
#include <tool/tool_manager.h>
#include <tool/zoom_tool.h>
#include <tools/pcb_viewer_tools.h>
#include <tools/pcb_actions.h>
#include <tools/pcbnew_control.h>
#include <tools/pcbnew_picker_tool.h>
@ -77,7 +79,6 @@ BEGIN_EVENT_TABLE( FOOTPRINT_VIEWER_FRAME, EDA_DRAW_FRAME )
EVT_MENU( wxID_CLOSE, FOOTPRINT_VIEWER_FRAME::CloseFootprintViewer )
// Toolbar events
EVT_TOOL( ID_MODVIEW_OPTIONS, FOOTPRINT_VIEWER_FRAME::InstallDisplayOptions )
EVT_TOOL( ID_MODVIEW_NEXT, FOOTPRINT_VIEWER_FRAME::OnIterateFootprintList )
EVT_TOOL( ID_MODVIEW_PREVIOUS, FOOTPRINT_VIEWER_FRAME::OnIterateFootprintList )
EVT_TOOL( ID_ADD_FOOTPRINT_TO_BOARD, FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB )
@ -127,6 +128,11 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
m_AboutTitle = "Footprint Library Viewer";
// Force the items to always snap
m_magneticItems.pads = MAGNETIC_OPTIONS::CAPTURE_ALWAYS;
m_magneticItems.tracks = MAGNETIC_OPTIONS::CAPTURE_ALWAYS;
m_magneticItems.graphics = true;
// Force the frame name used in config. the footprint viewer frame has a name
// depending on aFrameType (needed to identify the frame by wxWidgets),
// but only one configuration is preferable.
@ -210,12 +216,18 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
m_toolManager->RegisterTool( new COMMON_TOOLS ); // for std context menus (zoom & grid)
m_toolManager->RegisterTool( new COMMON_CONTROL );
m_toolManager->RegisterTool( new PCBNEW_PICKER_TOOL ); // for setting grid origin
m_toolManager->RegisterTool( new ZOOM_TOOL );
m_toolManager->RegisterTool( new PCB_VIEWER_TOOLS );
m_toolManager->GetTool<PCB_VIEWER_TOOLS>()->SetFootprintFrame( true );
m_toolManager->InitTools();
m_toolManager->InvokeTool( "pcbnew.InteractiveSelection" );
ReCreateMenuBar();
ReCreateHToolbar();
ReCreateVToolbar();
ReCreateOptToolbar();
ReCreateLibraryList();
UpdateTitle();
@ -236,6 +248,7 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
// Horizontal items; layers 4 - 6
m_auimgr.AddPane( m_mainToolBar, EDA_PANE().VToolbar().Name( "MainToolbar" ).Top().Layer(6) );
m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" ).Left().Layer(3) );
m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" ).Bottom().Layer(6) );
// Vertical items; layers 1 - 3
@ -256,7 +269,9 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
ActivateGalCanvas();
// Restore last zoom. (If auto-zooming we'll adjust when we load the footprint.)
GetCanvas()->GetView()->SetScale( m_lastZoom );
PCBNEW_SETTINGS* cfg = GetPcbNewSettings();
wxASSERT( cfg );
GetCanvas()->GetView()->SetScale( cfg->m_FootprintViewerZoom );
updateView();
InitExitKey();
@ -715,9 +730,6 @@ void FOOTPRINT_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
SetGridVisibility( fpedit->m_Window.grid.show );
GetGalDisplayOptions().ReadWindowSettings( fpedit->m_Window );
m_autoZoom = cfg->m_FootprintViewer.auto_zoom;
m_lastZoom = cfg->m_FootprintViewer.zoom;
}
@ -729,8 +741,7 @@ void FOOTPRINT_VIEWER_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
// We don't want to store anything other than the window settings
EDA_BASE_FRAME::SaveSettings( cfg );
cfg->m_FootprintViewer.auto_zoom = m_autoZoom;
cfg->m_FootprintViewer.zoom = GetCanvas()->GetView()->GetScale();
cfg->m_FootprintViewerZoom = GetCanvas()->GetView()->GetScale();
}
@ -754,6 +765,24 @@ COLOR_SETTINGS* FOOTPRINT_VIEWER_FRAME::GetColorSettings()
}
bool FOOTPRINT_VIEWER_FRAME::GetAutoZoom()
{
// It is stored in pcbnew's settings
PCBNEW_SETTINGS* cfg = GetPcbNewSettings();
wxCHECK( cfg, false );
return cfg->m_FootprintViewerAutoZoom;
}
void FOOTPRINT_VIEWER_FRAME::SetAutoZoom( bool aAutoZoom )
{
// It is stored in pcbnew's settings
PCBNEW_SETTINGS* cfg = GetPcbNewSettings();
wxASSERT( cfg );
cfg->m_FootprintViewerAutoZoom = aAutoZoom;
}
void FOOTPRINT_VIEWER_FRAME::CommonSettingsChanged( bool aEnvVarsChanged )
{
PCB_BASE_FRAME::CommonSettingsChanged( aEnvVarsChanged );
@ -995,7 +1024,7 @@ void FOOTPRINT_VIEWER_FRAME::updateView()
m_toolManager->ResetTools( TOOL_BASE::MODEL_RELOAD );
if( m_autoZoom )
if( GetAutoZoom() )
m_toolManager->RunAction( ACTIONS::zoomFitScreen, true );
else
m_toolManager->RunAction( ACTIONS::centerContents, true );
@ -1020,3 +1049,4 @@ BOARD_ITEM_CONTAINER* FOOTPRINT_VIEWER_FRAME::GetModel() const
{
return GetBoard()->GetFirstModule();
}

View File

@ -28,6 +28,7 @@
#include <wx/gdicmn.h>
#include <pcb_base_frame.h>
#include <pcbnew_settings.h>
class wxSashLayoutWindow;
class wxListBox;
@ -46,6 +47,8 @@ class FOOTPRINT_VIEWER_FRAME : public PCB_BASE_FRAME
protected:
FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrameType );
MAGNETIC_SETTINGS m_magneticItems;
public:
~FOOTPRINT_VIEWER_FRAME();
@ -58,8 +61,13 @@ public:
virtual COLOR4D GetGridColor() override;
bool GetAutoZoom() const { return m_autoZoom; }
void SetAutoZoom( bool aEnable ) { m_autoZoom = aEnable; }
bool GetAutoZoom() override;
void SetAutoZoom( bool aAutoZoom ) override;
MAGNETIC_SETTINGS* GetMagneticItemsSettings() override
{
return &m_magneticItems;
}
/**
* Function ReCreateLibraryList
@ -117,7 +125,9 @@ private:
void ReCreateHToolbar() override;
void ReCreateVToolbar() override;
void ReCreateOptToolbar() override;
void ReCreateMenuBar() override;
void SyncToolbars() override;
void OnLibFilter( wxCommandEvent& aEvent );
void OnFPFilter( wxCommandEvent& aEvent );
@ -129,8 +139,6 @@ private:
void ClickOnFootprintList( wxCommandEvent& aEvent );
void DClickOnFootprintList( wxCommandEvent& aEvent );
void InstallDisplayOptions( wxCommandEvent& aEvent );
void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;

View File

@ -112,7 +112,6 @@ enum pcbnew_ids
ID_MODVIEW_LIB_LIST,
ID_MODVIEW_FOOTPRINT_FILTER,
ID_MODVIEW_FOOTPRINT_LIST,
ID_MODVIEW_OPTIONS,
ID_MODVIEW_PREVIOUS,
ID_MODVIEW_NEXT,

View File

@ -43,11 +43,14 @@
const int pcbnewSchemaVersion = 0;
PCBNEW_SETTINGS::PCBNEW_SETTINGS() : APP_SETTINGS_BASE( "pcbnew", pcbnewSchemaVersion ),
m_Use45DegreeGraphicSegments( false ),
m_FlipLeftRight( false ),
m_ShowPageLimits( true ),
m_PnsSettings( nullptr )
PCBNEW_SETTINGS::PCBNEW_SETTINGS()
: APP_SETTINGS_BASE( "pcbnew", pcbnewSchemaVersion ),
m_Use45DegreeGraphicSegments( false ),
m_FlipLeftRight( false ),
m_ShowPageLimits( true ),
m_PnsSettings( nullptr ),
m_FootprintViewerAutoZoom( false ),
m_FootprintViewerZoom( 1.0 )
{
m_MagneticItems.pads = MAGNETIC_OPTIONS::CAPTURE_CURSOR_IN_TRACK_TOOL;
m_MagneticItems.tracks = MAGNETIC_OPTIONS::CAPTURE_CURSOR_IN_TRACK_TOOL;
@ -75,10 +78,6 @@ PCBNEW_SETTINGS::PCBNEW_SETTINGS() : APP_SETTINGS_BASE( "pcbnew", pcbnewSchemaVe
m_params.emplace_back( new PARAM<int>( "grid.fast_grid_2", &m_FastGrid2, 0 ) );
m_params.emplace_back( new PARAM<bool>( "window.auto_zoom", &m_Window.auto_zoom, true ) );
m_params.emplace_back( new PARAM<double>( "window.zoom", &m_Window.zoom, 10.0 ) );
m_params.emplace_back( new PARAM<bool>( "editing.flip_left_right", &m_FlipLeftRight, true ) );
m_params.emplace_back(
@ -396,6 +395,12 @@ PCBNEW_SETTINGS::PCBNEW_SETTINGS() : APP_SETTINGS_BASE( "pcbnew", pcbnewSchemaVe
addParamsForWindow( &m_FootprintViewer, "footprint_viewer" );
m_params.emplace_back( new PARAM<bool>( "footprint_viewer.auto_zoom",
&m_FootprintViewerAutoZoom, false ) );
m_params.emplace_back( new PARAM<double>( "footprint_viewer.zoom",
&m_FootprintViewerZoom, 1.0 ) );
addParamsForWindow( &m_FootprintWizard, "footprint_wizard" );
}
@ -596,6 +601,9 @@ bool PCBNEW_SETTINGS::MigrateFromLegacy( wxConfigBase* aCfg )
migrateWindowConfig( aCfg, "ModViewFrame", "footprint_viewer" );
ret &= fromLegacy<bool>( aCfg, "ModViewFrameAutoZoom", "footprint_viewer.auto_zoom" );
ret &= fromLegacy<double>( aCfg, "ModViewFrameZoom", "footprint_viewer.zoom" );
migrateWindowConfig( aCfg, "FootprintWizard", "footprint_wizard" );
ret &= fromLegacyString( aCfg, "Fpwizard_auiPerspective", "footprint_wizard.perspective" );

View File

@ -272,6 +272,10 @@ public:
std::unique_ptr<PNS::ROUTING_SETTINGS> m_PnsSettings;
bool m_FootprintViewerAutoZoom; ///< Should the footprint viewer auto zoom on select
double m_FootprintViewerZoom; ///< The last zoom level in the footprint viewer
#if defined(KICAD_SCRIPTING) && defined(KICAD_SCRIPTING_ACTION_MENU)
ACTION_PLUGIN_SETTINGS_LIST m_VisibleActionPlugins;
#endif

View File

@ -50,11 +50,6 @@ void FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar()
KICAD_AUI_TB_STYLE | wxAUI_TB_HORZ_LAYOUT );
// Set up toolbar
m_mainToolBar->AddTool( ID_MODVIEW_OPTIONS, wxEmptyString,
KiScaledBitmap( config_xpm, this ),
_( "Display options" ) );
m_mainToolBar->AddSeparator();
m_mainToolBar->AddTool( ID_MODVIEW_PREVIOUS, wxEmptyString,
KiScaledBitmap( lib_previous_xpm, this ),
_( "Display previous footprint" ) );
@ -67,6 +62,8 @@ void FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar()
m_mainToolBar->Add( ACTIONS::zoomInCenter );
m_mainToolBar->Add( ACTIONS::zoomOutCenter );
m_mainToolBar->Add( ACTIONS::zoomFitScreen );
m_mainToolBar->Add( ACTIONS::zoomTool, ACTION_TOOLBAR::TOGGLE );
m_mainToolBar->Add( PCB_ACTIONS::zoomFootprintAutomatically, ACTION_TOOLBAR::TOGGLE );
KiScaledSeparator( m_mainToolBar, this );
m_mainToolBar->Add( ACTIONS::show3DViewer );
@ -101,11 +98,63 @@ void FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar()
}
void FOOTPRINT_VIEWER_FRAME::ReCreateOptToolbar()
{
if( m_optionsToolBar )
return;
// Create options tool bar.
m_optionsToolBar = new ACTION_TOOLBAR( this, ID_OPT_TOOLBAR, wxDefaultPosition, wxDefaultSize,
KICAD_AUI_TB_STYLE | wxAUI_TB_VERTICAL );
m_optionsToolBar->Add( ACTIONS::selectionTool, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( ACTIONS::measureTool, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->AddSeparator();
m_optionsToolBar->Add( ACTIONS::toggleGrid, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( ACTIONS::togglePolarCoords, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( ACTIONS::imperialUnits, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( ACTIONS::metricUnits, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( ACTIONS::toggleCursorStyle, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->AddSeparator();
m_optionsToolBar->Add( PCB_ACTIONS::showPadNumbers, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( PCB_ACTIONS::padDisplayMode, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( PCB_ACTIONS::moduleTextOutlines, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Add( PCB_ACTIONS::moduleEdgeOutlines, ACTION_TOOLBAR::TOGGLE );
m_optionsToolBar->Realize();
}
void FOOTPRINT_VIEWER_FRAME::ReCreateVToolbar()
{
}
void FOOTPRINT_VIEWER_FRAME::SyncToolbars()
{
m_mainToolBar->Toggle( ACTIONS::zoomTool, IsCurrentTool( ACTIONS::zoomTool ) );
m_mainToolBar->Toggle( PCB_ACTIONS::zoomFootprintAutomatically, GetAutoZoom() );
m_mainToolBar->Refresh();
m_optionsToolBar->Toggle( ACTIONS::toggleGrid, IsGridVisible() );
m_optionsToolBar->Toggle( ACTIONS::selectionTool, IsCurrentTool( ACTIONS::selectionTool ) );
m_optionsToolBar->Toggle( ACTIONS::measureTool, IsCurrentTool( ACTIONS::measureTool ) );
m_optionsToolBar->Toggle( ACTIONS::metricUnits, GetUserUnits() != EDA_UNITS::INCHES );
m_optionsToolBar->Toggle( ACTIONS::imperialUnits, GetUserUnits() == EDA_UNITS::INCHES );
const PCB_DISPLAY_OPTIONS& opts = GetDisplayOptions();
m_optionsToolBar->Toggle( PCB_ACTIONS::showPadNumbers, opts.m_DisplayPadNum );
m_optionsToolBar->Toggle( PCB_ACTIONS::padDisplayMode, !opts.m_DisplayPadFill );
m_optionsToolBar->Toggle( PCB_ACTIONS::moduleTextOutlines, !opts.m_DisplayModTextFill );
m_optionsToolBar->Toggle( PCB_ACTIONS::moduleEdgeOutlines, !opts.m_DisplayModEdgeFill );
m_optionsToolBar->Refresh();
}
void FOOTPRINT_VIEWER_FRAME::ReCreateMenuBar()
{
SELECTION_TOOL* selTool = m_toolManager->GetTool<SELECTION_TOOL>();

View File

@ -698,6 +698,16 @@ TOOL_ACTION PCB_ACTIONS::moduleTextOutlines( "pcbnew.Control.fpTextOutlines",
_( "Line Mode Footprint Text Items" ), _( "Show footprint texts in line mode" ),
text_sketch_xpm );
TOOL_ACTION PCB_ACTIONS::showPadNumbers( "pcbnew.Control.showPadNumbers",
AS_GLOBAL, 0, "",
_( "Show pad numbers" ), _( "Show pad numbers" ),
pad_number_xpm );
TOOL_ACTION PCB_ACTIONS::zoomFootprintAutomatically( "pcbnew.Control.zoomFootprintAutomatically",
AS_GLOBAL, 0, "",
_( "Automatically zoom to fit" ), _( "Zoom to fit when changing footprint" ),
zoom_auto_fit_in_page_xpm );
TOOL_ACTION PCB_ACTIONS::zoneDisplayEnable( "pcbnew.Control.zoneDisplayEnable",
AS_GLOBAL, 0, "",
_( "Fill Zones" ), _( "Show filled areas of zones" ),

View File

@ -227,6 +227,8 @@ public:
static TOOL_ACTION zoneDisplayDisable;
static TOOL_ACTION zoneDisplayOutlines;
static TOOL_ACTION zoneDisplayToggle;
static TOOL_ACTION showPadNumbers;
static TOOL_ACTION zoomFootprintAutomatically;
// Layer control
static TOOL_ACTION layerTop;

View File

@ -86,6 +86,34 @@ template<class T> void Flip( T& aValue )
}
int PCB_VIEWER_TOOLS::ZoomAutomatically( const TOOL_EVENT& aEvent )
{
frame()->SetAutoZoom( !frame()->GetAutoZoom() );
return 0;
}
int PCB_VIEWER_TOOLS::ShowPadNumbers( const TOOL_EVENT& aEvent )
{
auto opts = displayOptions();
Flip( opts.m_DisplayPadNum );
frame()->SetDisplayOptions( opts );
view()->UpdateDisplayOptions( opts );
for( auto module : board()->Modules() )
{
for( auto pad : module->Pads() )
view()->Update( pad, KIGFX::GEOMETRY );
}
canvas()->Refresh();
return 0;
}
int PCB_VIEWER_TOOLS::PadDisplayMode( const TOOL_EVENT& aEvent )
{
auto opts = displayOptions();
@ -292,9 +320,12 @@ void PCB_VIEWER_TOOLS::setTransitions()
Go( &PCB_VIEWER_TOOLS::Show3DViewer, ACTIONS::show3DViewer.MakeEvent() );
// Display modes
Go( &PCB_VIEWER_TOOLS::ShowPadNumbers, PCB_ACTIONS::showPadNumbers.MakeEvent() );
Go( &PCB_VIEWER_TOOLS::PadDisplayMode, PCB_ACTIONS::padDisplayMode.MakeEvent() );
Go( &PCB_VIEWER_TOOLS::ModuleEdgeOutlines, PCB_ACTIONS::moduleEdgeOutlines.MakeEvent() );
Go( &PCB_VIEWER_TOOLS::ModuleTextOutlines, PCB_ACTIONS::moduleTextOutlines.MakeEvent() );
Go( &PCB_VIEWER_TOOLS::ZoomAutomatically,
PCB_ACTIONS::zoomFootprintAutomatically.MakeEvent() );
Go( &PCB_VIEWER_TOOLS::MeasureTool, ACTIONS::measureTool.MakeEvent() );
}

View File

@ -55,9 +55,11 @@ public:
int MeasureTool( const TOOL_EVENT& aEvent );
// Display modes
int ShowPadNumbers( const TOOL_EVENT& aEvent );
int PadDisplayMode( const TOOL_EVENT& aEvent );
int ModuleEdgeOutlines( const TOOL_EVENT& aEvent );
int ModuleTextOutlines( const TOOL_EVENT& aEvent );
int ZoomAutomatically( const TOOL_EVENT& aEvent );
/// Show the 3D viewer
int Show3DViewer( const TOOL_EVENT& aEvent );