30 changed files with 3600 additions and 4219 deletions
-
43CMakeLists.txt
-
1bitmaps_png/CMakeLists.txt
-
137bitmaps_png/cpp_26/wizard_add_fplib_small.cpp
-
715bitmaps_png/sources/wizard_add_fplib_small.svg
-
1cvpcb/CMakeLists.txt
-
1include/bitmaps.h
-
1pcbnew/CMakeLists.txt
-
77pcbnew/dialogs/dialog_fp_lib_table.cpp
-
12pcbnew/dialogs/dialog_fp_lib_table_base.cpp
-
24pcbnew/dialogs/dialog_fp_lib_table_base.fbp
-
6pcbnew/dialogs/dialog_fp_lib_table_base.h
-
65pcbnew/dialogs/dialog_select_dirlist_base.cpp
-
391pcbnew/dialogs/dialog_select_dirlist_base.fbp
-
60pcbnew/dialogs/dialog_select_dirlist_base.h
-
1219pcbnew/dialogs/wizard_add_fplib.cpp
-
402pcbnew/dialogs/wizard_add_fplib.h
-
331pcbnew/dialogs/wizard_add_fplib_base.cpp
-
3033pcbnew/dialogs/wizard_add_fplib_base.fbp
-
85pcbnew/dialogs/wizard_add_fplib_base.h
-
17pcbnew/invoke_pcb_dialog.h
-
6pcbnew/menubar_modedit.cpp
-
6pcbnew/menubar_pcbframe.cpp
-
12pcbnew/moduleframe.cpp
-
1pcbnew/pcbframe.cpp
-
8pcbnew/pcbnew_config.cpp
-
1pcbnew/pcbnew_id.h
-
15webviewer/CMakeLists.txt
-
70webviewer/html_link_parser.cpp
-
109webviewer/html_link_parser.h
-
970webviewer/webviewer.cpp
@ -0,0 +1,137 @@ |
|||
|
|||
/* 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, 0x07, 0x7e, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xa5, 0x56, 0x6b, 0x50, 0x93, |
|||
0xe9, 0x15, 0x4e, 0xb5, 0x56, 0x2b, 0x20, 0x38, 0x28, 0x63, 0x87, 0x76, 0xa6, 0x63, 0xfd, 0xb1, |
|||
0xe5, 0x47, 0xad, 0xda, 0xce, 0x56, 0x64, 0x67, 0x9d, 0x62, 0x71, 0x99, 0x56, 0x91, 0x9d, 0x81, |
|||
0x1d, 0xca, 0x02, 0xae, 0xcb, 0x52, 0x06, 0xb9, 0x2a, 0x14, 0x65, 0x16, 0x17, 0x51, 0x61, 0x01, |
|||
0x03, 0x04, 0x17, 0x08, 0x04, 0x02, 0x01, 0xc5, 0x22, 0x08, 0x04, 0x48, 0x02, 0x81, 0x90, 0x00, |
|||
0x49, 0xc0, 0x70, 0x47, 0x90, 0x90, 0x90, 0x40, 0xf8, 0xc2, 0x45, 0x44, 0xee, 0x21, 0x5c, 0x73, |
|||
0x7a, 0xde, 0x54, 0xb7, 0xb6, 0xd3, 0x0b, 0xdb, 0xbe, 0x33, 0x67, 0xbe, 0x6f, 0xbe, 0xf7, 0xf2, |
|||
0x9c, 0xf3, 0x9c, 0xe7, 0x9c, 0xf7, 0xa3, 0xd1, 0xfe, 0x3e, 0x4e, 0x1f, 0x3a, 0x74, 0x28, 0x69, |
|||
0xcf, 0x9e, 0x3d, 0xa7, 0xf0, 0xfd, 0x7b, 0xb4, 0xff, 0x6f, 0x7c, 0x1f, 0xc7, 0x07, 0x07, 0x0f, |
|||
0x1e, 0x4c, 0xc2, 0xf7, 0x33, 0xe6, 0x2f, 0xbb, 0x77, 0xef, 0xfe, 0x3d, 0x3e, 0x4e, 0xa0, 0x7d, |
|||
0xe4, 0xeb, 0xeb, 0xcb, 0x76, 0x77, 0x77, 0xcf, 0x46, 0x40, 0x3a, 0x02, 0x9e, 0xfc, 0x1f, 0x00, |
|||
0x2c, 0xac, 0xad, 0xad, 0x3f, 0x41, 0xcb, 0xf6, 0xf2, 0xf2, 0xca, 0xbd, 0x70, 0xe1, 0x42, 0x39, |
|||
0x02, 0xc6, 0x1f, 0x38, 0x70, 0x20, 0x88, 0x4c, 0x72, 0x9c, 0x9d, 0x9d, 0x99, 0x7b, 0xf7, 0xee, |
|||
0xad, 0xb9, 0x7c, 0xf9, 0x72, 0xbf, 0x52, 0xa9, 0x14, 0xf7, 0xf6, 0xf6, 0x96, 0x9e, 0x3f, 0x7f, |
|||
0x3e, 0xdb, 0xce, 0xce, 0xee, 0x36, 0xce, 0xff, 0x64, 0x27, 0x00, 0x96, 0x96, 0x96, 0x9e, 0x08, |
|||
0x90, 0x1b, 0x12, 0x12, 0x52, 0x25, 0x16, 0x8b, 0x3b, 0xd0, 0x54, 0x7e, 0x7e, 0x7e, 0x43, 0x78, |
|||
0x8e, 0x60, 0xff, 0xfe, 0xfd, 0x39, 0xb4, 0x5d, 0xbb, 0x76, 0x15, 0x6e, 0x6d, 0x6d, 0x71, 0x2a, |
|||
0x2a, 0x2a, 0xf8, 0x69, 0x69, 0x69, 0x2a, 0xa9, 0x54, 0xaa, 0xcd, 0xc9, 0xc9, 0xd1, 0xc9, 0x64, |
|||
0xb2, 0xe7, 0x8f, 0x1f, 0x3f, 0xae, 0x3f, 0x7a, 0xf4, 0x28, 0xd3, 0xc6, 0xc6, 0xc6, 0xed, 0xdf, |
|||
0xd1, 0x89, 0x1e, 0x9f, 0x46, 0x8f, 0x8b, 0xfc, 0xfd, 0xfd, 0xe5, 0x35, 0x35, 0x35, 0xaa, 0x96, |
|||
0x96, 0x16, 0x35, 0x97, 0xcb, 0xa5, 0x16, 0x16, 0x16, 0x34, 0x59, 0x59, 0x59, 0xaa, 0xcc, 0xcc, |
|||
0x4c, 0x01, 0xce, 0x67, 0x12, 0xea, 0xd8, 0xeb, 0xeb, 0xeb, 0x1c, 0x9c, 0xe4, 0xa7, 0xa7, 0xa7, |
|||
0x6b, 0x5e, 0xbd, 0x7a, 0x45, 0xcd, 0xcf, 0xcf, 0x8f, 0x09, 0x04, 0x02, 0x0a, 0xbf, 0x69, 0x1b, |
|||
0x1a, 0x1a, 0x94, 0x17, 0x2f, 0x5e, 0xe4, 0x63, 0x74, 0x5f, 0x11, 0xcf, 0xdf, 0xc1, 0xb0, 0xc2, |
|||
0x91, 0xe0, 0xe0, 0xe0, 0xd0, 0x56, 0x5a, 0x5a, 0x3a, 0x8c, 0x43, 0x23, 0x91, 0x48, 0xa8, 0xbe, |
|||
0xbe, 0xbe, 0xf1, 0xd5, 0xd5, 0xd5, 0xd1, 0xc5, 0xc5, 0x45, 0x5d, 0x6a, 0x6a, 0xaa, 0x3a, 0x23, |
|||
0x23, 0x83, 0x8f, 0x8e, 0xa6, 0xd3, 0x30, 0x17, 0xf9, 0x2b, 0x2b, 0x2b, 0x1c, 0x1e, 0x8f, 0x57, |
|||
0x8b, 0x1e, 0x0c, 0x03, 0xc0, 0x08, 0x59, 0x34, 0x33, 0x33, 0x43, 0x21, 0x8d, 0x54, 0x55, 0x55, |
|||
0xd5, 0x44, 0x57, 0x57, 0x97, 0xfa, 0xfa, 0xf5, 0xeb, 0x43, 0xe8, 0xd9, 0xc3, 0x37, 0x60, 0x3f, |
|||
0x45, 0x9a, 0x44, 0xa1, 0xa1, 0xa1, 0x4a, 0x8a, 0xa2, 0x46, 0x70, 0x7e, 0x1c, 0x99, 0xd0, 0xa3, |
|||
0x83, 0x3a, 0xb2, 0x77, 0x6d, 0x6d, 0x6d, 0x94, 0x9c, 0x83, 0x40, 0xc3, 0x68, 0x3c, 0x14, 0x45, |
|||
0x32, 0x0d, 0x73, 0x93, 0x87, 0x93, 0x9c, 0xba, 0xba, 0xba, 0x1a, 0xe2, 0x01, 0x89, 0x68, 0x63, |
|||
0x63, 0x43, 0x4b, 0x16, 0x1a, 0x0c, 0x86, 0xb1, 0x81, 0x81, 0x81, 0x49, 0x1f, 0x1f, 0x17, 0x43, |
|||
0x67, 0x67, 0xa7, 0xee, 0xd6, 0xad, 0x5b, 0x4a, 0xf4, 0x4e, 0x84, 0x20, 0xbd, 0x85, 0x85, 0x85, |
|||
0x2a, 0x8d, 0x46, 0x33, 0xe6, 0xef, 0xef, 0xb4, 0xea, 0xed, 0xfd, 0xa1, 0x71, 0x69, 0x69, 0x69, |
|||
0x8c, 0xec, 0x21, 0x46, 0x80, 0xc8, 0x39, 0x89, 0x89, 0x89, 0xaa, 0x94, 0x94, 0x94, 0x5a, 0x5b, |
|||
0x5b, 0xdb, 0x7b, 0xb4, 0x7d, 0xfb, 0xf6, 0xe5, 0xce, 0xce, 0xce, 0x72, 0x1a, 0x1b, 0x1b, 0xab, |
|||
0x31, 0x47, 0xc3, 0x98, 0x2f, 0x4d, 0x7b, 0x7b, 0xfb, 0x24, 0x59, 0x38, 0x37, 0x37, 0x37, 0xbe, |
|||
0xbd, 0xbd, 0x3d, 0x12, 0x1c, 0x7c, 0x74, 0x93, 0x4e, 0x3f, 0xb2, 0x1d, 0x10, 0xe0, 0xb4, 0x7a, |
|||
0xf2, 0xe4, 0x2f, 0x0c, 0x61, 0x61, 0x61, 0x53, 0x77, 0xee, 0x5c, 0x9d, 0xbf, 0x76, 0xed, 0xc7, |
|||
0x5b, 0x73, 0x73, 0x16, 0x70, 0xf3, 0xa6, 0xe7, 0x92, 0xd1, 0x68, 0x34, 0x1f, 0x3e, 0x35, 0x35, |
|||
0x45, 0x75, 0x77, 0x77, 0x4f, 0x10, 0xc0, 0x84, 0x84, 0x84, 0x61, 0x3a, 0x9d, 0x5e, 0x83, 0x40, |
|||
0x77, 0x69, 0xa8, 0x08, 0x26, 0x4e, 0x72, 0x90, 0x5f, 0x6e, 0x52, 0x52, 0xd2, 0x30, 0x82, 0x52, |
|||
0x48, 0xdb, 0x28, 0x8a, 0x81, 0xea, 0xe9, 0xe9, 0xa1, 0xc8, 0xe6, 0xc8, 0x48, 0x27, 0x23, 0x80, |
|||
0x25, 0x6c, 0x6c, 0x58, 0x02, 0x93, 0x69, 0x69, 0x0a, 0x08, 0x38, 0xb2, 0xa9, 0x54, 0x5a, 0x01, |
|||
0xf9, 0x36, 0x31, 0x61, 0x01, 0x89, 0x89, 0x11, 0x8b, 0x3a, 0x9d, 0x8e, 0x22, 0x7b, 0x14, 0x0a, |
|||
0xc5, 0x38, 0x32, 0x34, 0xfa, 0xfa, 0xf5, 0xeb, 0xf1, 0xf8, 0xf8, 0x78, 0x25, 0xe6, 0x9d, 0x8b, |
|||
0x40, 0x77, 0x68, 0x28, 0xcb, 0x6c, 0xbd, 0x5e, 0xcf, 0x69, 0x6e, 0x6e, 0xe6, 0x26, 0x27, 0x27, |
|||
0x2b, 0x31, 0x02, 0x0d, 0x89, 0x84, 0x00, 0x8c, 0x8c, 0x8c, 0xe8, 0xd1, 0x01, 0x7d, 0x74, 0xb4, |
|||
0xd7, 0xf2, 0xc2, 0x82, 0x85, 0xf9, 0x60, 0x62, 0x46, 0xe3, 0x41, 0x10, 0x4b, 0xdc, 0xa0, 0x45, |
|||
0xea, 0x02, 0x62, 0xb1, 0x0d, 0x24, 0x27, 0xdf, 0x9d, 0x45, 0x6a, 0xf5, 0x64, 0xcf, 0x1b, 0x31, |
|||
0x8d, 0x9b, 0x4c, 0x26, 0x4d, 0x5c, 0x5c, 0x9c, 0x32, 0x35, 0x2d, 0x9d, 0x8f, 0x75, 0x79, 0x9b, |
|||
0x86, 0x09, 0xce, 0x42, 0x6f, 0x38, 0xa8, 0xfb, 0x6a, 0xe4, 0xd3, 0x1c, 0xd1, 0xdb, 0x1c, 0x11, |
|||
0x1a, 0xc9, 0x46, 0x06, 0x23, 0x65, 0x4e, 0x28, 0x3c, 0x60, 0x7a, 0x0b, 0xd4, 0xf7, 0xfc, 0x14, |
|||
0x74, 0xf7, 0x48, 0x60, 0x74, 0x74, 0x14, 0x9e, 0x56, 0xe6, 0x40, 0x5e, 0x1e, 0x73, 0xe1, 0x9f, |
|||
0x73, 0x34, 0x33, 0xf3, 0x8a, 0xca, 0xc8, 0x2d, 0x5e, 0xce, 0x2f, 0xa9, 0x5e, 0xfa, 0xb5, 0xa3, |
|||
0x53, 0xa6, 0x99, 0xba, 0xc9, 0xc9, 0x49, 0x8e, 0x48, 0x24, 0xaa, 0x26, 0x2a, 0x21, 0x87, 0xa3, |
|||
0xa4, 0xa7, 0xc7, 0xc7, 0xc7, 0xcd, 0x1e, 0xa2, 0xf4, 0x35, 0x21, 0x21, 0xae, 0x06, 0xad, 0xd6, |
|||
0xea, 0xdb, 0x88, 0x88, 0xf5, 0xf4, 0x9e, 0x81, 0xae, 0xee, 0x26, 0x18, 0x1b, 0x1b, 0x83, 0x6c, |
|||
0x66, 0x8c, 0xa9, 0xb4, 0x94, 0x39, 0x4b, 0xd6, 0xbf, 0x78, 0xf1, 0x62, 0x42, 0xde, 0xd6, 0x3e, |
|||
0xc5, 0x6f, 0x6c, 0x33, 0x36, 0x77, 0xa9, 0xa1, 0xb5, 0x57, 0x03, 0x29, 0x19, 0x05, 0x93, 0x04, |
|||
0x28, 0x07, 0x73, 0xc2, 0xc1, 0xc3, 0x6b, 0x88, 0x18, 0xde, 0x88, 0x40, 0x87, 0x54, 0x98, 0x25, |
|||
0x1b, 0x16, 0x76, 0xd1, 0x30, 0x30, 0x60, 0x6d, 0x32, 0x1a, 0x6d, 0x40, 0xd1, 0xf1, 0xc1, 0x3f, |
|||
0x80, 0xb5, 0xca, 0x58, 0x80, 0xf2, 0x86, 0x96, 0xd6, 0x02, 0x8c, 0xca, 0x6e, 0x2b, 0x3a, 0xda, |
|||
0x77, 0x51, 0xad, 0x56, 0xeb, 0xea, 0x24, 0x6d, 0x06, 0x49, 0x97, 0x12, 0x1a, 0xdb, 0x07, 0xa0, |
|||
0xba, 0x41, 0xbe, 0xf9, 0xc9, 0xa7, 0x9f, 0x57, 0x13, 0x79, 0xb3, 0x90, 0x53, 0xb3, 0xbc, 0x1f, |
|||
0x3c, 0x78, 0x30, 0xfc, 0xae, 0x3c, 0x23, 0x22, 0xdc, 0x51, 0xd6, 0x7f, 0xa3, 0xac, 0x45, 0xea, |
|||
0x0a, 0x1a, 0xed, 0x10, 0x1e, 0xea, 0x05, 0x2b, 0x2b, 0xb6, 0x48, 0xdd, 0xef, 0x40, 0xa5, 0xea, |
|||
0x00, 0x4c, 0x3c, 0xc8, 0xe4, 0xb9, 0xd0, 0xdf, 0xbf, 0x1f, 0xfc, 0xfc, 0x6c, 0xb7, 0xe3, 0xe2, |
|||
0xae, 0x2d, 0xf2, 0x1a, 0xa5, 0x6b, 0xb5, 0x4d, 0xed, 0xc0, 0x15, 0xb6, 0xc2, 0x37, 0x39, 0x45, |
|||
0x7a, 0x14, 0xc3, 0xd7, 0xe6, 0x82, 0x45, 0x7e, 0xcd, 0x05, 0x8b, 0x0a, 0x51, 0x4f, 0x4c, 0x4c, |
|||
0xe8, 0x5f, 0xbe, 0x7c, 0x49, 0xf5, 0xf6, 0xf6, 0xe8, 0x3f, 0xfb, 0xcc, 0xd1, 0x18, 0x13, 0xf3, |
|||
0x9b, 0xb5, 0xa8, 0xa8, 0xf7, 0x36, 0xa2, 0xfe, 0x7c, 0x7a, 0x6b, 0x60, 0xb0, 0x1f, 0xd4, 0x6a, |
|||
0x25, 0xb4, 0x3d, 0xe3, 0xc3, 0xe0, 0x60, 0x27, 0x20, 0xbd, 0xa0, 0xd5, 0x6a, 0x11, 0x5c, 0x62, |
|||
0xca, 0xca, 0x4e, 0x5b, 0xc4, 0x02, 0xd7, 0xd5, 0x0a, 0x9b, 0x57, 0x05, 0x22, 0x19, 0x54, 0xd6, |
|||
0x36, 0xae, 0xd1, 0x33, 0x98, 0x73, 0xe9, 0xe9, 0x0c, 0x81, 0xb9, 0x60, 0x11, 0x88, 0x8d, 0x35, |
|||
0xc0, 0xa9, 0xad, 0xad, 0xe5, 0x61, 0x5f, 0x52, 0xe1, 0xbb, 0x56, 0x2e, 0x97, 0x53, 0xa8, 0xb6, |
|||
0x49, 0x52, 0x13, 0x44, 0x41, 0x24, 0x4a, 0x74, 0x80, 0x62, 0x73, 0xf2, 0x37, 0x91, 0x56, 0x58, |
|||
0x5e, 0x5e, 0x36, 0x1b, 0x3a, 0x08, 0x95, 0x95, 0x55, 0xc0, 0x17, 0x08, 0xa1, 0xa3, 0xb3, 0x73, |
|||
0xbb, 0xe4, 0x09, 0x77, 0x5d, 0xd4, 0xd2, 0x0e, 0x65, 0xdc, 0x3a, 0x23, 0xe6, 0x5a, 0x8b, 0x39, |
|||
0x57, 0x31, 0x18, 0x0c, 0x1e, 0x16, 0xf9, 0xfd, 0x6f, 0x9b, 0x2a, 0x36, 0x44, 0x5e, 0x78, 0x78, |
|||
0xb8, 0xba, 0xbe, 0xbe, 0x9e, 0x42, 0x71, 0x50, 0x24, 0x2a, 0x52, 0x17, 0xfd, 0xfd, 0xfd, 0xd4, |
|||
0xf4, 0xf4, 0xb4, 0x1e, 0xdb, 0xd4, 0x18, 0x11, 0x46, 0x78, 0x84, 0x9f, 0x49, 0x2a, 0x67, 0x40, |
|||
0x15, 0x37, 0xd1, 0xc4, 0x2e, 0x64, 0xaf, 0x0d, 0x0c, 0xbe, 0x30, 0x09, 0x85, 0xcd, 0x50, 0x52, |
|||
0xc6, 0x03, 0xb1, 0x4c, 0x01, 0xe5, 0x35, 0xc2, 0x0d, 0x54, 0xa3, 0x1e, 0x1d, 0xa7, 0x82, 0x83, |
|||
0x83, 0xd5, 0xc8, 0x12, 0xe9, 0x75, 0xa9, 0xa4, 0x39, 0x16, 0x12, 0xea, 0xd0, 0xc3, 0x87, 0x65, |
|||
0x65, 0x65, 0x02, 0x2c, 0x32, 0x85, 0xb7, 0xb7, 0xb7, 0x32, 0x37, 0x37, 0x57, 0x8d, 0xb4, 0x98, |
|||
0x55, 0x84, 0x8a, 0x9c, 0x20, 0x02, 0x21, 0x7d, 0xcc, 0xc9, 0xe9, 0xcc, 0x4a, 0x6c, 0xec, 0xa1, |
|||
0xad, 0xc0, 0xc0, 0x5f, 0xae, 0x0f, 0x8d, 0xe8, 0xa9, 0x9b, 0x49, 0x45, 0xeb, 0xe5, 0x55, 0x42, |
|||
0x90, 0x48, 0x15, 0x18, 0x89, 0x10, 0xa3, 0x13, 0x6c, 0xf8, 0xf8, 0xf8, 0x8c, 0xde, 0xb8, 0x71, |
|||
0x43, 0x11, 0x1b, 0x1b, 0xdb, 0x80, 0x51, 0x3d, 0x42, 0x20, 0x06, 0x0d, 0xf9, 0x8b, 0xc1, 0x36, |
|||
0xc4, 0xb2, 0xb7, 0xb7, 0x67, 0xe2, 0xa5, 0xc7, 0x64, 0xb1, 0x58, 0x1c, 0x54, 0x52, 0x71, 0x41, |
|||
0x41, 0x81, 0x08, 0x37, 0x28, 0x8b, 0x8b, 0x8b, 0x49, 0xde, 0x28, 0xa1, 0x50, 0x38, 0x8d, 0x54, |
|||
0x8e, 0x9e, 0x3b, 0x77, 0x6e, 0xd1, 0xdd, 0xfd, 0x57, 0xab, 0xd1, 0xf1, 0xf7, 0x16, 0x83, 0x52, |
|||
0xf8, 0x5b, 0x49, 0x25, 0x5d, 0xe0, 0xfb, 0xe5, 0x5f, 0x4c, 0x65, 0x08, 0x26, 0x12, 0x77, 0x80, |
|||
0x54, 0xf6, 0x1c, 0x8a, 0x1f, 0x3d, 0x9a, 0xff, 0x91, 0xbd, 0x7d, 0xf1, 0xe1, 0xc3, 0x87, 0xef, |
|||
0x62, 0xd7, 0x8f, 0xc2, 0x2e, 0xff, 0x87, 0xb7, 0x2d, 0x9f, 0xdc, 0x35, 0x76, 0x68, 0xef, 0xa3, |
|||
0x42, 0x82, 0x89, 0xe4, 0x8f, 0x1f, 0x3f, 0x9e, 0x8d, 0xde, 0x14, 0x61, 0x63, 0x6c, 0x0d, 0x0a, |
|||
0x0a, 0x52, 0x22, 0x1d, 0x5a, 0xbc, 0x0a, 0xf4, 0x78, 0x49, 0x2e, 0x46, 0x7e, 0x99, 0xf0, 0x3a, |
|||
0x30, 0x89, 0xbf, 0xe9, 0xfb, 0x75, 0x13, 0xb8, 0xc5, 0x54, 0xc1, 0xa5, 0x9b, 0x95, 0xe0, 0x19, |
|||
0x74, 0x6f, 0xe1, 0x99, 0xe2, 0xb9, 0xa9, 0xbe, 0xa1, 0x1b, 0x65, 0x3f, 0x08, 0x4f, 0xca, 0xca, |
|||
0xfa, 0x2e, 0x87, 0x87, 0xdb, 0xfc, 0xb7, 0x1b, 0x73, 0x17, 0xda, 0xcf, 0x31, 0xda, 0xab, 0x08, |
|||
0xca, 0x72, 0x75, 0x75, 0x2d, 0x73, 0x73, 0x73, 0x1b, 0x6a, 0x6d, 0x6d, 0x1d, 0x71, 0x74, 0xf1, |
|||
0x34, 0xf8, 0x7e, 0x55, 0xbe, 0xe9, 0x7f, 0xbf, 0x05, 0xbe, 0xb8, 0x57, 0x01, 0xbf, 0xbd, 0x5a, |
|||
0x08, 0x67, 0x03, 0xf2, 0x66, 0x8e, 0x9c, 0x70, 0x73, 0xc8, 0x2b, 0x28, 0xa8, 0x97, 0xca, 0x7b, |
|||
0x4d, 0xbc, 0xba, 0x6e, 0x68, 0x6a, 0x1e, 0x80, 0x87, 0x25, 0x25, 0x32, 0xbc, 0xb5, 0xf7, 0xed, |
|||
0xf8, 0x3f, 0x00, 0x6f, 0xd1, 0x8f, 0xac, 0xac, 0x6d, 0xf2, 0xde, 0x73, 0xfe, 0xd3, 0x4b, 0xef, |
|||
0xd8, 0xa7, 0xa6, 0xb4, 0xa7, 0xfd, 0x10, 0xc5, 0xe0, 0xc3, 0xd9, 0x40, 0x16, 0x9c, 0x0b, 0x2d, |
|||
0xd1, 0x1f, 0xbb, 0x94, 0xea, 0x42, 0x16, 0x7a, 0xc4, 0x79, 0xfc, 0x80, 0xc5, 0xce, 0x13, 0x8b, |
|||
0xc4, 0xdd, 0xc0, 0xad, 0xed, 0x01, 0x49, 0x4b, 0x1f, 0xb0, 0xd8, 0x6c, 0xb1, 0x87, 0x87, 0xc7, |
|||
0xee, 0x1d, 0xff, 0x75, 0x9c, 0xfc, 0x34, 0xeb, 0x49, 0x5c, 0x51, 0xb7, 0xa9, 0xbe, 0x83, 0x82, |
|||
0x6b, 0x0c, 0x21, 0x38, 0x5d, 0xc9, 0x84, 0xf3, 0x61, 0xa5, 0x53, 0xc7, 0x2e, 0x65, 0xb8, 0xbc, |
|||
0xbb, 0x2e, 0x22, 0x22, 0xe2, 0x87, 0x2c, 0x76, 0xbe, 0xac, 0xb1, 0xa9, 0x03, 0xeb, 0x4b, 0x0e, |
|||
0x78, 0xe5, 0x6c, 0xa7, 0xd0, 0xe9, 0x71, 0x3b, 0x06, 0xfa, 0xf8, 0x46, 0x85, 0xbc, 0xb0, 0x7e, |
|||
0x18, 0xbc, 0xe2, 0x05, 0xe0, 0xe8, 0xc7, 0x00, 0xd7, 0xeb, 0xe5, 0xeb, 0x0e, 0x9e, 0x0f, 0x22, |
|||
0xff, 0xd5, 0x5a, 0x9f, 0xc8, 0x48, 0x8b, 0xfc, 0x02, 0xb6, 0x02, 0xa9, 0x06, 0xac, 0x49, 0x40, |
|||
0xa0, 0xac, 0x1d, 0x03, 0x9d, 0xf2, 0xcb, 0x0e, 0xfd, 0x63, 0x5c, 0x8d, 0xe1, 0xc3, 0xc0, 0x3c, |
|||
0x70, 0x8e, 0x78, 0x0a, 0xef, 0x7f, 0x5e, 0xd8, 0xfc, 0x9f, 0xd6, 0x5f, 0xb9, 0x72, 0xc5, 0xea, |
|||
0x7e, 0x1a, 0xbd, 0x80, 0x9e, 0x96, 0x96, 0x4f, 0xde, 0xbf, 0xd3, 0x4f, 0xdb, 0x09, 0xaf, 0x6f, |
|||
0x6e, 0x9f, 0x0d, 0x2a, 0x56, 0x3a, 0x7e, 0xc1, 0x79, 0xf6, 0x33, 0x8f, 0xd4, 0x63, 0xdf, 0x65, |
|||
0xef, 0x5f, 0x01, 0x80, 0xfb, 0x59, 0x6e, 0xd0, 0xcc, 0xfa, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x49, |
|||
0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, |
|||
}; |
|||
|
|||
const BITMAP_OPAQUE wizard_add_fplib_small_xpm[1] = {{ png, sizeof( png ), "wizard_add_fplib_small_xpm" }}; |
|||
|
|||
//EOF
|
@ -0,0 +1,715 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<!-- Created with Inkscape (http://www.inkscape.org/) --> |
|||
|
|||
<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" |
|||
version="1.0" |
|||
width="26" |
|||
height="26" |
|||
id="svg2" |
|||
inkscape:version="0.91 r13725" |
|||
sodipodi:docname="wizard_add_fplib_small.svg"> |
|||
<metadata |
|||
id="metadata166"> |
|||
<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="1916" |
|||
inkscape:window-height="1176" |
|||
id="namedview164" |
|||
showgrid="true" |
|||
inkscape:zoom="16.9375" |
|||
inkscape:cx="24.383764" |
|||
inkscape:cy="21.423973" |
|||
inkscape:window-x="1920" |
|||
inkscape:window-y="20" |
|||
inkscape:window-maximized="1" |
|||
inkscape:current-layer="svg2" |
|||
inkscape:snap-to-guides="false" |
|||
inkscape:snap-grids="false" |
|||
showborder="true"> |
|||
<inkscape:grid |
|||
type="xygrid" |
|||
id="grid3041" |
|||
empspacing="1" |
|||
visible="true" |
|||
enabled="true" |
|||
snapvisiblegridlinesonly="true" /> |
|||
</sodipodi:namedview> |
|||
<defs |
|||
id="defs4"> |
|||
<clipPath |
|||
id="ba"> |
|||
<path |
|||
style="fill:#ffffff" |
|||
d="m 0,96 0,60 96,0 0,-60 -96,0 z m 68,20 c 9.9411,0 18,8.0589 18,18 0,9.9411 -8.0589,18 -18,18 -9.9411,0 -18,-8.0589 -18,-18 0,-9.9411 8.0589,-18 18,-18 z" |
|||
id="path125" |
|||
inkscape:connector-curvature="0" /> |
|||
</clipPath> |
|||
<linearGradient |
|||
id="bl" |
|||
y2="5.9782" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="69" |
|||
gradientTransform="matrix(-0.2255,-0.071329,0.05452,-0.20327,7.6326,90.834)" |
|||
y1="122" |
|||
x1="69"> |
|||
<stop |
|||
stop-color="#1e71ac" |
|||
offset="0" |
|||
id="stop128" /> |
|||
<stop |
|||
stop-color="#81c1e9" |
|||
offset="1" |
|||
id="stop130" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="bm" |
|||
y2="67.706001" |
|||
xlink:href="#a" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="118.33" |
|||
gradientTransform="matrix(0.39018,0.62586,-0.63862,0.30043,3.5817,-20.909)" |
|||
y1="87.488998" |
|||
x1="120.65" /> |
|||
<linearGradient |
|||
id="a"> |
|||
<stop |
|||
offset="0" |
|||
id="stop15" /> |
|||
<stop |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop17" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="bn" |
|||
y2="5.9782" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="69" |
|||
gradientTransform="matrix(-0.2255,-0.071329,0.05452,-0.20327,7.6018,90.825)" |
|||
y1="122" |
|||
x1="69"> |
|||
<stop |
|||
stop-color="#cd2323" |
|||
offset="0" |
|||
id="stop134" /> |
|||
<stop |
|||
stop-color="#ef7474" |
|||
offset="1" |
|||
id="stop136" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="ao" |
|||
y2="67.706001" |
|||
xlink:href="#a" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="118.33" |
|||
y1="87.488998" |
|||
x1="120.65" /> |
|||
<clipPath |
|||
id="aq"> |
|||
<path |
|||
style="fill:url(#linearGradient4033)" |
|||
d="m 118,56 c -9.9411,0 -18,8.0589 -18,18 0,9.9411 8.0589,18 18,18 9.7305,0 17.637,-7.7253 17.969,-17.375 l 0,-1.25 C 135.639,63.725 127.729,56 117.999,56 Z m -6,10.75 c 5.9493,0.05747 10.832,4.9413 11.031,10.875 l 3.75,0.03125 -6,8.7188 -6.1562,-8.8125 3.9688,0.03125 c -0.25101,-4.9057 -4.4893,-9.9506 -11.719,-9.625 1.5223,-0.80073 3.2718,-1.2367 5.125,-1.2188 z" |
|||
id="path122" |
|||
inkscape:connector-curvature="0" /> |
|||
</clipPath> |
|||
<linearGradient |
|||
id="bo" |
|||
y2="5.1837001" |
|||
xlink:href="#an" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="84.360001" |
|||
gradientTransform="matrix(0.21868,0.069171,-0.053262,0.19858,-13.124,56.327)" |
|||
y1="79.417" |
|||
x1="84.360001" /> |
|||
<linearGradient |
|||
id="an"> |
|||
<stop |
|||
stop-color="#fff" |
|||
offset="0" |
|||
id="stop65" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity=".49804" |
|||
offset=".43290" |
|||
id="stop67" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop69" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
id="bp" |
|||
y2="67.706001" |
|||
xlink:href="#a" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="118.33" |
|||
gradientTransform="matrix(-0.39018,-0.62586,0.63862,-0.30043,-9.9736,166.82)" |
|||
y1="87.488998" |
|||
x1="120.65" /> |
|||
<linearGradient |
|||
y2="67.706001" |
|||
x2="118.33" |
|||
y1="87.488998" |
|||
x1="120.65" |
|||
gradientUnits="userSpaceOnUse" |
|||
id="linearGradient3263" |
|||
xlink:href="#a" |
|||
inkscape:collect="always" /> |
|||
<linearGradient |
|||
y2="5.1837001" |
|||
x2="84.360001" |
|||
y1="79.417" |
|||
x1="84.360001" |
|||
gradientTransform="matrix(-0.21868,-0.069171,0.053262,-0.19858,6.7324,89.587)" |
|||
gradientUnits="userSpaceOnUse" |
|||
id="linearGradient3265" |
|||
xlink:href="#an" |
|||
inkscape:collect="always" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#i" |
|||
id="linearGradient4444" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.771702,0,0,0.7696371,58.469287,27.525353)" |
|||
x1="19.648001" |
|||
y1="42.254002" |
|||
x2="20.631001" |
|||
y2="6.7758002" /> |
|||
<linearGradient |
|||
id="i" |
|||
y2="6.7758002" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="20.631001" |
|||
gradientTransform="matrix(0.87827,0,0,0.87827,56.157,5.6701)" |
|||
y1="42.254002" |
|||
x1="19.648001"> |
|||
<stop |
|||
stop-color="#b6b6b6" |
|||
offset="0" |
|||
id="stop3120" /> |
|||
<stop |
|||
stop-color="#f2f2f2" |
|||
offset=".5" |
|||
id="stop3122" /> |
|||
<stop |
|||
stop-color="#fafafa" |
|||
offset=".67613" |
|||
id="stop3124" /> |
|||
<stop |
|||
stop-color="#d8d8d8" |
|||
offset=".84052" |
|||
id="stop3126" /> |
|||
<stop |
|||
stop-color="#f2f2f2" |
|||
offset=".875" |
|||
id="stop3128" /> |
|||
<stop |
|||
stop-color="#dbdbdb" |
|||
offset="1" |
|||
id="stop3130" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#j" |
|||
id="linearGradient4446" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.77064365,0,0,0.77069683,60.490409,-22.581269)" |
|||
x1="50.153" |
|||
y1="-3.6324" |
|||
x2="25.291" |
|||
y2="-4.3003001" /> |
|||
<linearGradient |
|||
id="j" |
|||
y2="-4.3003001" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="25.291" |
|||
gradientTransform="matrix(0.87827,0,0,0.87827,43.255,-36.26)" |
|||
y1="-3.6324" |
|||
x1="50.153"> |
|||
<stop |
|||
stop-color="#fff" |
|||
offset="0" |
|||
id="stop3133" |
|||
style="stop-color:#4754ba;stop-opacity:1;" /> |
|||
<stop |
|||
offset="1" |
|||
id="stop3135" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#k" |
|||
id="linearGradient4448" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.771702,0,0,0.7696371,58.741672,28.069542)" |
|||
x1="38.228001" |
|||
y1="13.603" |
|||
x2="37.535" |
|||
y2="6.6286001" /> |
|||
<linearGradient |
|||
id="k" |
|||
y2="6.6286001" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="37.535" |
|||
gradientTransform="matrix(0.87827,0,0,0.87827,56.467,6.2911)" |
|||
y1="13.603" |
|||
x1="38.228001"> |
|||
<stop |
|||
stop-color="#98a0a9" |
|||
offset="0" |
|||
id="stop3138" /> |
|||
<stop |
|||
stop-color="#c3d0dd" |
|||
offset="1" |
|||
id="stop3140" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#l" |
|||
id="linearGradient4450" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.87866146,0,0,0.87631036,56.240123,23.172115)" |
|||
x1="31.177" |
|||
y1="19.822001" |
|||
x2="40.859001" |
|||
y2="9.6569004" /> |
|||
<linearGradient |
|||
id="l" |
|||
y2="9.6569004" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="40.859001" |
|||
gradientTransform="translate(53.62,0.70241)" |
|||
y1="19.822001" |
|||
x1="31.177"> |
|||
<stop |
|||
stop-color="#fff" |
|||
offset="0" |
|||
id="stop3143" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop3145" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#m" |
|||
id="linearGradient4452" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.771702,0,0,0.7696371,58.469287,27.525353)" |
|||
x1="9.7503004" |
|||
y1="32.284" |
|||
x2="16.915001" |
|||
y2="39.443001" /> |
|||
<linearGradient |
|||
id="m" |
|||
y2="39.443001" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="16.915001" |
|||
gradientTransform="matrix(0.87827,0,0,0.87827,56.157,5.6701)" |
|||
y1="32.284" |
|||
x1="9.7503004"> |
|||
<stop |
|||
stop-color="#3465a4" |
|||
offset="0" |
|||
id="stop3148" /> |
|||
<stop |
|||
stop-color="#9fbce1" |
|||
offset="0" |
|||
id="stop3150" /> |
|||
<stop |
|||
stop-color="#6b95ca" |
|||
offset="0" |
|||
id="stop3152" /> |
|||
<stop |
|||
stop-color="#3d6aa5" |
|||
offset=".75" |
|||
id="stop3154" /> |
|||
<stop |
|||
stop-color="#386eb4" |
|||
offset="1" |
|||
id="stop3156" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#n" |
|||
id="linearGradient4454" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.88507569,-0.02310392,0.02316591,0.88270743,57.63983,23.24151)" |
|||
x1="12.005" |
|||
y1="35.688" |
|||
x2="10.651" |
|||
y2="33.195" /> |
|||
<linearGradient |
|||
id="n" |
|||
y2="33.195" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="10.651" |
|||
gradientTransform="matrix(1.0073,-0.026365,0.026365,1.0073,55.213,0.7816)" |
|||
y1="35.688" |
|||
x1="12.005"> |
|||
<stop |
|||
stop-color="#fff" |
|||
offset="0" |
|||
id="stop3159" /> |
|||
<stop |
|||
stop-color="#fff" |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop3161" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#o" |
|||
id="linearGradient4456" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.77155263,-0.0151812,0.01522193,0.76948813,58.140667,26.736849)" |
|||
x1="14.018" |
|||
y1="36.943001" |
|||
x2="15.416" |
|||
y2="38.268002" /> |
|||
<linearGradient |
|||
id="o" |
|||
y2="38.268002" |
|||
gradientUnits="userSpaceOnUse" |
|||
x2="15.416" |
|||
gradientTransform="matrix(0.8781,-0.017324,0.017324,0.8781,55.783,4.7703)" |
|||
y1="36.943001" |
|||
x1="14.018"> |
|||
<stop |
|||
offset="0" |
|||
id="stop3164" /> |
|||
<stop |
|||
stop-opacity="0" |
|||
offset="1" |
|||
id="stop3166" /> |
|||
</linearGradient> |
|||
<linearGradient |
|||
y2="38.268002" |
|||
x2="15.416" |
|||
y1="36.943001" |
|||
x1="14.018" |
|||
gradientTransform="matrix(0.77155263,-0.0151812,0.01522193,0.76948813,58.140667,26.736849)" |
|||
gradientUnits="userSpaceOnUse" |
|||
id="linearGradient3113" |
|||
xlink:href="#o" |
|||
inkscape:collect="always" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#i" |
|||
id="linearGradient3123" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.771702,0,0,0.7696371,58.469287,27.525353)" |
|||
x1="19.648001" |
|||
y1="42.254002" |
|||
x2="20.631001" |
|||
y2="6.7758002" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#j" |
|||
id="linearGradient3125" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.77064365,0,0,0.77069683,60.490409,-22.581269)" |
|||
x1="50.153" |
|||
y1="-3.6324" |
|||
x2="25.291" |
|||
y2="-4.3003001" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#k" |
|||
id="linearGradient3127" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.771702,0,0,0.7696371,58.741672,28.069542)" |
|||
x1="38.228001" |
|||
y1="13.603" |
|||
x2="37.535" |
|||
y2="6.6286001" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#l" |
|||
id="linearGradient3129" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.87866146,0,0,0.87631036,56.240123,23.172115)" |
|||
x1="31.177" |
|||
y1="19.822001" |
|||
x2="40.859001" |
|||
y2="9.6569004" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#m" |
|||
id="linearGradient3131" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.771702,0,0,0.7696371,58.469287,27.525353)" |
|||
x1="9.7503004" |
|||
y1="32.284" |
|||
x2="16.915001" |
|||
y2="39.443001" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#n" |
|||
id="linearGradient3133" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.88507569,-0.02310392,0.02316591,0.88270743,57.63983,23.24151)" |
|||
x1="12.005" |
|||
y1="35.688" |
|||
x2="10.651" |
|||
y2="33.195" /> |
|||
<linearGradient |
|||
inkscape:collect="always" |
|||
xlink:href="#o" |
|||
id="linearGradient3135" |
|||
gradientUnits="userSpaceOnUse" |
|||
gradientTransform="matrix(0.77155263,-0.0151812,0.01522193,0.76948813,58.140667,26.736849)" |
|||
x1="14.018" |
|||
y1="36.943001" |
|||
x2="15.416" |
|||
y2="38.268002" /> |
|||
</defs> |
|||
<g |
|||
id="g3081" |
|||
transform="matrix(0.99830098,0,0,1.0116601,-0.13462695,-22.374948)"> |
|||
<g |
|||
transform="matrix(0.67065061,0,0,0.63959329,-0.72214704,21.74289)" |
|||
id="g2983"> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path37" |
|||
d="M 20.333126,12.035343 C 18.444903,8.7606248 7.1884028,4.4572113 2.002648,3.5893247 2.2763155,13.787163 2.2815758,19.371068 1.9989109,28.797982 8.7625485,29.718551 15.3015,32.559393 20.481394,35.368247 c 0,1.371479 -0.147987,-22.510084 -0.147987,-23.332904 z" |
|||
style="opacity:0.62891002;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.49013674;stroke-linejoin:round" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path39" |
|||
d="M 20.333126,11.970474 C 25.181266,7.2735751 31.736244,5.3619712 39.289996,3.2656597 38.720347,14.174674 39.085048,19.823107 39.145718,28.603715 c -6.837879,0.0801 -13.928975,3.438089 -18.664576,6.764191 0,-0.05087 -0.147988,-22.574613 -0.147988,-23.397432 z" |
|||
style="opacity:0.62891002;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.49013674;stroke-linejoin:round" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path49" |
|||
d="m 36.25809,7.3432246 c 0,0 -7.632679,1.948204 -13.700376,6.5238304" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.29802737" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path51" |
|||
d="m 35.804819,10.900809 c 0,0 -7.023496,1.140338 -13.24437,5.519376" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path53" |
|||
d="m 35.56254,14.052787 c 0,0 -6.549106,1.123473 -13.002872,5.151669" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path55" |
|||
d="m 35.566457,17.2611 c 0,0 -6.346312,0.591814 -13.006399,4.875119" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path57" |
|||
d="m 35.480491,19.937482 c -0.07397,0.01638 -5.754704,1.122073 -12.920433,5.032513" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path59" |
|||
d="m 35.800902,22.548312 c -0.07397,0.01638 -6.168897,1.212856 -13.241234,5.294723" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path61" |
|||
d="m 35.898595,25.338215 c 0,0 -6.670244,1.368338 -13.339709,5.367787" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path63" |
|||
d="M 20.385488,11.950671 C 24.65765,6.7675925 30.434622,4.1994401 37.091192,1.3458617 36.589184,12.311893 36.9106,17.923793 36.964002,26.698257 c -6.025886,0.765461 -12.274893,4.834149 -16.448193,8.634823 0,-0.05086 -0.130412,-22.559589 -0.130412,-23.38275 z" |
|||
style="opacity:0.62891002;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.39885914;stroke-linejoin:round" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path65" |
|||
d="m 34.421527,5.7269479 c 0,0 -6.726511,2.7132211 -12.07326,7.8970171" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path67" |
|||
d="m 33.808038,12.506501 c 0,0 -5.771109,1.779851 -11.458599,6.454864" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path69" |
|||
d="m 33.733798,18.399732 c -0.06521,0.0238 -5.071265,1.698866 -11.385922,6.327515" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path71" |
|||
d="m 34.105021,23.7583 c 0,0 -5.878183,2.03687 -11.755582,6.704783" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path73" |
|||
d="m 6.5280219,7.278355 c 0,0 6.7331581,1.948204 12.0853761,6.523831" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path75" |
|||
d="m 6.9301115,10.83628 c 0,0 6.1954755,1.140339 11.6828965,5.519377" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path77" |
|||
d="m 7.1434661,13.988259 c 0,0 5.7769719,1.123473 11.4699319,5.151669" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path79" |
|||
d="m 7.1399494,17.196572 c 0,0 5.5980056,0.591815 11.4730586,4.875118" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path81" |
|||
d="m 7.2161475,19.872953 c 0.06527,0.01638 5.0763425,1.122074 11.3972505,5.032514" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path83" |
|||
d="m 6.9328473,22.483442 c 0.06527,0.01638 5.4417017,1.212856 11.6805507,5.294723" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path85" |
|||
d="m 6.846099,25.273585 c 0,0 5.88365,1.368339 11.767299,5.367786" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path87" |
|||
d="M 20.53085,11.886143 C 16.762376,6.7030643 11.666495,4.134912 5.794568,1.2813335 6.2373751,12.247364 5.9538765,17.859266 5.9067195,26.633729 c 5.3154875,0.765427 10.8279155,4.834149 14.5092515,8.634824 0,-0.05087 0.115038,-22.55959 0.115038,-23.382751 z" |
|||
style="opacity:0.62891002;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.3138274;stroke-linejoin:round" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path89" |
|||
d="m 8.1500592,5.6624197 c 0,0 5.9332768,2.7132213 10.6501218,7.8970173" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path91" |
|||
d="m 8.6920411,12.441973 c 0,0 5.0908019,1.779851 10.1077489,6.454864" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path93" |
|||
d="m 8.7565163,18.335203 c 0.057513,0.0238 4.4734027,1.698866 10.0436647,6.327515" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
<path |
|||
inkscape:connector-curvature="0" |
|||
id="path95" |
|||
d="m 8.4302331,23.693771 c 0,0 5.1849739,2.036871 10.3699479,6.704783" |
|||
style="opacity:0.62891002;fill:none;stroke:#000000;stroke-width:0.45657057" /> |
|||
</g> |
|||
<path |
|||
transform="matrix(0.50801926,0,0,0.48580948,5.5625851,26.972236)" |
|||
inkscape:transform-center-y="0.54370049" |
|||
inkscape:transform-center-x="-0.11555406" |
|||
d="m 16.807071,28.248623 -4.548546,-8.111888 -9.26102,-0.851769 6.3092852,-6.832635 -2.0517319,-9.0709646 8.4478987,3.8890862 7.99298,-4.7543951 -1.088197,9.2362235 6.991665,6.132586 -9.120441,1.819214 z" |
|||
inkscape:randomized="0" |
|||
inkscape:rounded="0" |
|||
inkscape:flatsided="false" |
|||
sodipodi:arg2="2.1465318" |
|||
sodipodi:arg1="1.5182133" |
|||
sodipodi:r2="7.0024018" |
|||
sodipodi:r1="14.004804" |
|||
sodipodi:cy="14.263176" |
|||
sodipodi:cx="16.070995" |
|||
sodipodi:sides="5" |
|||
id="path3036" |
|||
style="fill:#ffff0c;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" |
|||
sodipodi:type="star" /> |
|||
<g |
|||
transform="matrix(0.4598514,0,0,0.4598514,-17.558632,18.880619)" |
|||
id="g4431"> |
|||
<path |
|||
id="path3174" |
|||
d="m 71.973435,41.763556 16.688417,17.028463 c 0.675242,0.769637 2.814792,1.364503 4.244374,0 1.380465,-1.31762 1.061072,-3.174784 -0.289387,-4.521586 L 76.604112,37.145576 c 1.976989,-5.47694 -2.024348,-10.077569 -7.186484,-9.09172 l -1.10931,1.010123 3.472646,3.270916 0.192928,2.886128 -2.592755,2.36043 -3.098511,-0.340131 -3.183303,-2.982347 -1.115988,1.099682 c -0.519078,4.943529 4.663672,9.361623 9.990381,6.404251 z" |
|||
style="color:#000000;fill:url(#linearGradient3123);stroke:#676b6a;stroke-width:0.8774851;stroke-opacity:1" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
sodipodi:nodetypes="cccccscccccccccc" |
|||
id="path3176" |
|||
d="m 72.158832,40.646261 16.872936,17.550744 c 0.522725,0.595794 2.178993,1.056304 3.285667,0 1.068716,-1.020026 0.821417,-2.4577 -0.224023,-3.500334 L 75.846082,37.501709 c 1.067774,-4.614639 -0.66655,-7.506665 -3.699649,-8.380002 -0.710766,-0.204655 -1.492852,-0.298456 -2.326914,-0.277594 l -0.237353,0.239566 3.16573,2.836003 0.114375,3.664554 -3.175395,2.89051 -3.727545,-0.401534 -2.791156,-2.621482 -0.309851,0.376866 c -0.274582,5.230521 5.704006,7.61058 9.300631,4.817341 z" |
|||
style="color:#000000;opacity:0.42613998;fill:none;stroke:#ffffff;stroke-width:0.8774851" |
|||
inkscape:connector-curvature="0" /> |
|||
<rect |
|||
id="rect3178" |
|||
x="80.546432" |
|||
y="-26.326511" |
|||
width="20.416656" |
|||
height="1.8037362" |
|||
ry="0.77561975" |
|||
rx="0.77556622" |
|||
transform="matrix(0.69889898,0.7152204,-0.71708981,0.69698078,0,0)" |
|||
style="color:#000000;opacity:0.55416667;fill:none;stroke:url(#linearGradient3125);stroke-width:0.87700158;stroke-miterlimit:4;stroke-dasharray:none" /> |
|||
<path |
|||
id="path3180" |
|||
d="M 76.008248,49.571482 C 76.741052,48.94492 87.680387,37.785984 87.680387,37.785984 l 2.700918,-0.192412 4.244374,-5.868475 -3.535998,-3.141748 -5.498399,4.714024 0,2.693691 -11.189754,11.592709 c -0.530545,0.529125 0.931557,2.564523 1.606808,1.987297 z" |
|||
style="color:#000000;fill:url(#linearGradient3127);stroke:#878f9d;stroke-width:0.8774851" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
id="path3182" |
|||
d="M 75.923897,48.660119 C 76.491512,48.173767 87.367584,37.066533 87.367584,37.066533 l 2.573248,-0.217325 3.702591,-4.961757 -2.539068,-2.233715 -4.812077,4.133994 0.136421,2.498361 -11.137913,11.647917 c -0.41167,0.410569 0.108919,1.173555 0.632865,0.725682 z" |
|||
style="color:#000000;opacity:0.53977003;fill:none;stroke:url(#linearGradient3129);stroke-width:0.8774851" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
id="path3184" |
|||
d="m 63.677992,61.389403 c 1.156846,1.28397 4.370198,1.864964 5.795124,-0.622101 0.62131,-1.084347 1.839829,-4.121113 7.276283,-9.000584 0.913017,-0.818623 1.880248,-2.691237 1.060281,-3.701447 l -2.122143,-2.116465 c -0.868162,-0.962014 -3.281274,-0.513299 -4.271349,0.833266 -2.951248,4.027698 -7.772727,7.233854 -8.860422,7.621096 -2.080583,0.741078 -1.84642,3.799769 -0.469926,5.254795 l 1.591607,1.731677 z" |
|||
style="color:#000000;fill:url(#linearGradient3131);stroke:#204a87;stroke-width:0.8774851" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
id="path3186" |
|||
d="m 91.748745,56.482963 a 1.0610902,1.058251 0 0 1 -2.12218,0 1.0610902,1.058251 0 1 1 2.12218,0 z" |
|||
style="color:#000000;fill:#ffffff;stroke:#a1a1a1;stroke-width:0.87748355" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
id="path3188" |
|||
d="m 74.702337,47.14006 a 0.8867466,0.88437388 0 1 1 -1.773444,0 0.8867466,0.88437388 0 1 1 1.773444,0 z" |
|||
style="color:#000000;opacity:0.60227003;fill:#ffffff" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
id="path3190" |
|||
d="m 72.65264,49.13245 c 0,0 -6.299915,6.396715 -9.251426,7.481062" |
|||
style="color:#000000;fill:none;stroke:url(#linearGradient3133);stroke-width:2.01338983;stroke-linecap:round;stroke-linejoin:round" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
id="path3192" |
|||
d="m 63.977616,60.403554 c 1.266414,1.529688 4.041403,1.893882 4.912771,-0.324752 0.598641,-1.524342 2.929106,-4.964999 7.202916,-8.800785 0.717787,-0.643544 1.478172,-2.115676 0.833559,-2.909788 l -1.668314,-1.663851 c -0.682492,-0.756299 -2.579574,-0.403523 -3.357805,0.65506 -2.320018,3.166284 -7.453949,7.308078 -8.69497,7.716438 -1.921457,0.632355 -1.561381,2.822859 -0.479257,3.966619 l 1.251214,1.361348 z" |
|||
style="color:#000000;opacity:0.19886002;fill:none;stroke:#ffffff;stroke-width:0.8774851" |
|||
inkscape:connector-curvature="0" /> |
|||
<path |
|||
id="path3194" |
|||
d="m 74.537369,50.566094 c 0,0 -6.434262,5.798896 -7.832213,9.516731" |
|||
style="color:#000000;opacity:0.27841001;fill:none;stroke:url(#linearGradient3135);stroke-width:2.01338983;stroke-linecap:round;stroke-linejoin:round" |
|||
inkscape:connector-curvature="0" /> |
|||
</g> |
|||
</g> |
|||
</svg> |
@ -1,65 +0,0 @@ |
|||
///////////////////////////////////////////////////////////////////////////
|
|||
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
|||
// http://www.wxformbuilder.org/
|
|||
//
|
|||
// PLEASE DO "NOT" EDIT THIS FILE!
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#include "dialog_select_dirlist_base.h"
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
DIALOG_SELECT_DIRLIST_BASE::DIALOG_SELECT_DIRLIST_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( wxSize( 400,300 ), wxDefaultSize ); |
|||
|
|||
wxBoxSizer* bSizerMain; |
|||
bSizerMain = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_staticText = new wxStaticText( this, wxID_ANY, _("The footprint library is a folder.\nFootprints are files inside this folder."), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText->Wrap( -1 ); |
|||
m_staticText->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); |
|||
|
|||
bSizerMain->Add( m_staticText, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); |
|||
|
|||
m_dirCtrl = new wxGenericDirCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDIRCTRL_3D_INTERNAL|wxDIRCTRL_DIR_ONLY|wxDIRCTRL_MULTIPLE|wxDIRCTRL_SHOW_FILTERS|wxSUNKEN_BORDER, _("*.pretty|*"), 0 ); |
|||
|
|||
m_dirCtrl->ShowHidden( false ); |
|||
m_dirCtrl->SetMinSize( wxSize( 400,350 ) ); |
|||
|
|||
bSizerMain->Add( m_dirCtrl, 1, wxEXPAND | wxALL, 5 ); |
|||
|
|||
m_staticline = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); |
|||
bSizerMain->Add( m_staticline, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_sdbSizer = new wxStdDialogButtonSizer(); |
|||
m_sdbSizerOK = new wxButton( this, wxID_OK ); |
|||
m_sdbSizer->AddButton( m_sdbSizerOK ); |
|||
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL ); |
|||
m_sdbSizer->AddButton( m_sdbSizerCancel ); |
|||
m_sdbSizer->Realize(); |
|||
|
|||
bSizerMain->Add( m_sdbSizer, 0, wxALIGN_RIGHT|wxALL, 5 ); |
|||
|
|||
|
|||
this->SetSizer( bSizerMain ); |
|||
this->Layout(); |
|||
|
|||
this->Centre( wxBOTH ); |
|||
|
|||
// Connect Events
|
|||
m_dirCtrl->Connect( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnSelectFolder ), NULL, this ); |
|||
m_dirCtrl->Connect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnSelectFolder ), NULL, this ); |
|||
m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnCancelClick ), NULL, this ); |
|||
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnOKClick ), NULL, this ); |
|||
} |
|||
|
|||
DIALOG_SELECT_DIRLIST_BASE::~DIALOG_SELECT_DIRLIST_BASE() |
|||
{ |
|||
// Disconnect Events
|
|||
m_dirCtrl->Disconnect( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnSelectFolder ), NULL, this ); |
|||
m_dirCtrl->Disconnect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnSelectFolder ), NULL, this ); |
|||
m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnCancelClick ), NULL, this ); |
|||
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SELECT_DIRLIST_BASE::OnOKClick ), NULL, this ); |
|||
|
|||
} |
@ -1,391 +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_select_dirlist_base</property> |
|||
<property name="first_id">1000</property> |
|||
<property name="help_provider">none</property> |
|||
<property name="internationalize">1</property> |
|||
<property name="name">dialog_select_dirlist_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">wxBOTH</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">400,300</property> |
|||
<property name="name">DIALOG_SELECT_DIRLIST_BASE</property> |
|||
<property name="pos"></property> |
|||
<property name="size">400,321</property> |
|||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property> |
|||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property> |
|||
<property name="title">Select Footprint Library Folder</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">wxALL|wxALIGN_CENTER_HORIZONTAL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStaticText" 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">,90,92,-1,70,0</property> |
|||
<property name="gripper">0</property> |
|||
<property name="hidden">0</property> |
|||
<property name="id">wxID_ANY</property> |
|||
<property name="label">The footprint library is a folder.
Footprints are files inside this folder.</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_staticText</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="window_extra_style"></property> |
|||
<property name="window_name"></property> |
|||
<property name="window_style"></property> |
|||
<property name="wrap">-1</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">1</property> |
|||
<object class="wxGenericDirCtrl" 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="defaultfilter">0</property> |
|||
<property name="defaultfolder"></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="filter">*.pretty|*</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">400,350</property> |
|||
<property name="moveable">1</property> |
|||
<property name="name">m_dirCtrl</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="show_hidden">0</property> |
|||
<property name="size"></property> |
|||
<property name="style">wxDIRCTRL_3D_INTERNAL|wxDIRCTRL_DIR_ONLY|wxDIRCTRL_MULTIPLE|wxDIRCTRL_SHOW_FILTERS</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">wxSUNKEN_BORDER</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="OnTreeBeginDrag"></event> |
|||
<event name="OnTreeBeginLabelEdit"></event> |
|||
<event name="OnTreeBeginRDrag"></event> |
|||
<event name="OnTreeDeleteItem"></event> |
|||
<event name="OnTreeEndDrag"></event> |
|||
<event name="OnTreeEndLabelEdit"></event> |
|||
<event name="OnTreeItemActivated">OnSelectFolder</event> |
|||
<event name="OnTreeItemCollapsed"></event> |
|||
<event name="OnTreeItemCollapsing"></event> |
|||
<event name="OnTreeItemExpanded"></event> |
|||
<event name="OnTreeItemExpanding"></event> |
|||
<event name="OnTreeItemMenu"></event> |
|||
<event name="OnTreeItemMiddleClick"></event> |
|||
<event name="OnTreeItemRightClick"></event> |
|||
<event name="OnTreeKeyDown"></event> |
|||
<event name="OnTreeSelChanged">OnSelectFolder</event> |
|||
<event name="OnTreeSelChanging"></event> |
|||
<event name="OnUpdateUI"></event> |
|||
</object> |
|||
</object> |
|||
<object class="sizeritem" expanded="1"> |
|||
<property name="border">5</property> |
|||
<property name="flag">wxEXPAND|wxTOP|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_staticline</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">wxALIGN_RIGHT|wxALL</property> |
|||
<property name="proportion">0</property> |
|||
<object class="wxStdDialogButtonSizer" expanded="1"> |
|||
<property name="Apply">0</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"></event> |
|||
<event name="OnCancelButtonClick">OnCancelClick</event> |
|||
<event name="OnContextHelpButtonClick"></event> |
|||
<event name="OnHelpButtonClick"></event> |
|||
<event name="OnNoButtonClick"></event> |
|||
<event name="OnOKButtonClick">OnOKClick</event> |
|||
<event name="OnSaveButtonClick"></event> |
|||
<event name="OnYesButtonClick"></event> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</object> |
|||
</wxFormBuilder_Project> |
@ -1,60 +0,0 @@ |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
// C++ code generated with wxFormBuilder (version Jun 5 2014) |
|||
// http://www.wxformbuilder.org/ |
|||
// |
|||
// PLEASE DO "NOT" EDIT THIS FILE! |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#ifndef __DIALOG_SELECT_DIRLIST_BASE_H__ |
|||
#define __DIALOG_SELECT_DIRLIST_BASE_H__ |
|||
|
|||
#include <wx/artprov.h> |
|||
#include <wx/xrc/xmlres.h> |
|||
#include <wx/intl.h> |
|||
class DIALOG_SHIM; |
|||
|
|||
#include "dialog_shim.h" |
|||
#include <wx/string.h> |
|||
#include <wx/stattext.h> |
|||
#include <wx/gdicmn.h> |
|||
#include <wx/font.h> |
|||
#include <wx/colour.h> |
|||
#include <wx/settings.h> |
|||
#include <wx/dirctrl.h> |
|||
#include <wx/statline.h> |
|||
#include <wx/sizer.h> |
|||
#include <wx/button.h> |
|||
#include <wx/dialog.h> |
|||
|
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
|
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
/// Class DIALOG_SELECT_DIRLIST_BASE |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
class DIALOG_SELECT_DIRLIST_BASE : public DIALOG_SHIM |
|||
{ |
|||
private: |
|||
|
|||
protected: |
|||
wxStaticText* m_staticText; |
|||
wxGenericDirCtrl* m_dirCtrl; |
|||
wxStaticLine* m_staticline; |
|||
wxStdDialogButtonSizer* m_sdbSizer; |
|||
wxButton* m_sdbSizerOK; |
|||
wxButton* m_sdbSizerCancel; |
|||
|
|||
// Virtual event handlers, overide them in your derived class |
|||
virtual void OnSelectFolder( wxTreeEvent& event ) { event.Skip(); } |
|||
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } |
|||
virtual void OnOKClick( wxCommandEvent& event ) { event.Skip(); } |
|||
|
|||
|
|||
public: |
|||
|
|||
DIALOG_SELECT_DIRLIST_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Footprint Library Folder"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 400,321 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); |
|||
~DIALOG_SELECT_DIRLIST_BASE(); |
|||
|
|||
}; |
|||
|
|||
#endif //__DIALOG_SELECT_DIRLIST_BASE_H__ |
1219
pcbnew/dialogs/wizard_add_fplib.cpp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
3033
pcbnew/dialogs/wizard_add_fplib_base.fbp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,15 +0,0 @@ |
|||
|
|||
include_directories(BEFORE ${INC_BEFORE}) |
|||
include_directories( |
|||
${INC_AFTER} |
|||
) |
|||
|
|||
set( WEBVIEW_SRCS |
|||
html_link_parser.cpp |
|||
webviewer.cpp |
|||
) |
|||
|
|||
add_library( webviewer STATIC ${WEBVIEW_SRCS}) |
|||
|
|||
add_dependencies( webviewer lib-dependencies ) |
|||
|
@ -1,70 +0,0 @@ |
|||
/**
|
|||
* @file html_link_parse.cpp |
|||
*/ |
|||
|
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 1992-2014 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 |
|||
*/ |
|||
|
|||
/*
|
|||
* wxWidgets gives very few info about wxwebkit. For more info and more comments: |
|||
* see https://forums.wxwidgets.org/viewtopic.php?f=1&t=1119#
|
|||
*/ |
|||
|
|||
#include <wx/wx.h>
|
|||
#include <wx/html/htmlpars.h>
|
|||
#include "html_link_parser.h"
|
|||
|
|||
bool LINK_TAGHANDLER::HandleTag(const wxHtmlTag& tag) |
|||
{ |
|||
if( tag.HasParam( wxT("HREF") ) ) |
|||
{ |
|||
wxString href( tag.GetParam( wxT("HREF") ) ); |
|||
// Add the first parameter (the link)
|
|||
m_Parser->AddString( href ); |
|||
// Parse other params, but do nothing, becuse the AddText() callback
|
|||
// do nothing
|
|||
ParseInner(tag); |
|||
return true; |
|||
} |
|||
else |
|||
return false; |
|||
} |
|||
|
|||
HTML_LINK_PARSER::HTML_LINK_PARSER( const wxString& aSrc, wxArrayString& aUrls ) |
|||
: m_src( aSrc ), stringUrls( aUrls ) |
|||
{ |
|||
AddTagHandler( new LINK_TAGHANDLER(this) ); |
|||
} |
|||
|
|||
|
|||
void HTML_LINK_PARSER::AddString( const wxString& aText ) |
|||
{ |
|||
wxString text = aText; |
|||
text.Trim( true ); |
|||
text.Trim( false ); |
|||
|
|||
if( ! m_filter || m_filter( text ) ) |
|||
{ |
|||
stringUrls.Add( text ); |
|||
} |
|||
} |
@ -1,109 +0,0 @@ |
|||
/** |
|||
* @file html_link_parse.h |
|||
*/ |
|||
|
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 1992-2014 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 |
|||
*/ |
|||
|
|||
/* |
|||
* wxWidgets gives very few info about wxwebkit. For more info and more comments: |
|||
* see https://forums.wxwidgets.org/viewtopic.php?f=1&t=1119# |
|||
*/ |
|||
|
|||
#ifndef HTML_LINK_PARSE_H |
|||
#define HTML_LINK_PARSE_H |
|||
|
|||
|
|||
#include <wx/wx.h> |
|||
#include <wx/html/htmlpars.h> |
|||
|
|||
class HTML_LINK_PARSER ; |
|||
|
|||
/** |
|||
* a Tag parser, to extract tagged data in html text. |
|||
* this tag handler extract a url link, givent by tag "A" |
|||
* like: |
|||
* "<a href="/KiCad/Valves.pretty" itemprop="name codeRepository"> Valves.pretty</a>" |
|||
* the tag is "a" |
|||
* and the link is the parameter given by "href" |
|||
*/ |
|||
class LINK_TAGHANDLER : public wxHtmlTagHandler |
|||
{ |
|||
HTML_LINK_PARSER* m_Parser; |
|||
|
|||
public: |
|||
LINK_TAGHANDLER() : m_Parser( NULL ) |
|||
{ |
|||
} |
|||
|
|||
LINK_TAGHANDLER( HTML_LINK_PARSER* aParser ) : m_Parser( aParser ) |
|||
{ |
|||
} |
|||
|
|||
wxString GetSupportedTags() |
|||
{ |
|||
return "A"; |
|||
} |
|||
|
|||
bool HandleTag(const wxHtmlTag& tag); |
|||
}; |
|||
|
|||
/** |
|||
* The engine to parse a html text and extract useful data |
|||
* Here, the useful data are url links |
|||
*/ |
|||
class HTML_LINK_PARSER : public wxHtmlParser |
|||
{ |
|||
const wxString& m_src; // the html text to parse |
|||
wxArrayString& stringUrls; // the strings extracted from html text |
|||
bool (*m_filter)( const wxString& aData ); // a callback function to filter strings |
|||
|
|||
public: |
|||
|
|||
HTML_LINK_PARSER( const wxString& aSrc, wxArrayString& aUrls ); |
|||
|
|||
/** |
|||
* Parse the html text and store links in stringUrls |
|||
* Stored links can be filtered if aFilter is non NULL |
|||
* @param aFilter a filtering function ( bool aFilter( const wxString& aData ) ) |
|||
* which return true if the tex(t aData must be stored. |
|||
*/ |
|||
void ParseLinks( bool (*aFilter)( const wxString& aData ) ) |
|||
{ |
|||
m_filter = aFilter; |
|||
Parse(m_src); |
|||
} |
|||
|
|||
// virtual pure from wxHtmlParser, do nothing here, but needed. |
|||
void AddText( const wxString& aText ){} |
|||
|
|||
// Our "AddText" used to store selected text (the url link) |
|||
void AddString( const wxString& aText ); |
|||
|
|||
wxObject* GetProduct() |
|||
{ |
|||
return NULL; |
|||
} |
|||
}; |
|||
|
|||
#endif // ifndef HTML_LINK_PARSE_H |
@ -1,970 +0,0 @@ |
|||
/*
|
|||
* This code comes from wxWebView sample webview.cpp and is modified to be used in Kicad |
|||
* the wxWidgets sample code webview.cpp is under wxWindows licence (author Marianne Gagnon) |
|||
* |
|||
* Webviewer runs in a dialog to allows an user to select a list of URLs which are .pretty library |
|||
* folder accessible from http or https using the Github plugin. |
|||
* |
|||
* The Web viewer just return a list of URLs selected from the context menu (command copy link) |
|||
* when mouse cursor in on a http link. |
|||
* URLs strings are filtered |
|||
* Only URLs starting by "http" and ending by ".pretty" can be currently selected and stored in fp lib list |
|||
*/ |
|||
|
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 1992-2014 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 |
|||
*/ |
|||
|
|||
/*
|
|||
* wxWidgets gives very few info about wxwebkit. For more info and more comments: |
|||
* see https://forums.wxwidgets.org/viewtopic.php?f=1&t=1119#
|
|||
*/ |
|||
|
|||
#include "wx/wx.h"
|
|||
|
|||
#if !wxUSE_WEBVIEW_WEBKIT && !wxUSE_WEBVIEW_IE
|
|||
#error "wxWidgets must be built with wxWebView support enabled. Please rebuild wxWidgets"
|
|||
#endif
|
|||
|
|||
#include "wx/artprov.h"
|
|||
#include "wx/cmdline.h"
|
|||
#include "wx/notifmsg.h"
|
|||
#include "wx/settings.h"
|
|||
#include "wx/webview.h"
|
|||
#include "wx/webviewarchivehandler.h"
|
|||
#include "wx/webviewfshandler.h"
|
|||
#include "wx/infobar.h"
|
|||
#include "wx/filesys.h"
|
|||
#include "wx/fs_arc.h"
|
|||
#include <wx/clipbrd.h>
|
|||
#include <wx/uri.h>
|
|||
#if wxUSE_STC
|
|||
#include "wx/stc/stc.h"
|
|||
#else
|
|||
#error "wxWidgets must be built with wxStyledTextControl enabled. Please rebuild wxWidgets"
|
|||
#endif
|
|||
|
|||
#include <dialog_shim.h>
|
|||
#include <bitmaps.h>
|
|||
#include "html_link_parser.h"
|
|||
|
|||
// We map menu items to their history items
|
|||
WX_DECLARE_HASH_MAP( int, wxSharedPtr<wxWebViewHistoryItem>, |
|||
wxIntegerHash, wxIntegerEqual, wxMenuHistoryMap ); |
|||
|
|||
|
|||
class WEB_NAVIGATOR : public DIALOG_SHIM |
|||
{ |
|||
wxArrayString* urlListSelection; |
|||
|
|||
public: |
|||
WEB_NAVIGATOR( wxWindow* aParent, |
|||
const wxString& aUrlOnStart, |
|||
wxArrayString* aUrlListSelection = NULL ); |
|||
virtual ~WEB_NAVIGATOR(); |
|||
|
|||
void InitNavigator( const wxString& aUrlOnStart ); |
|||
|
|||
private: |
|||
void buildToolBar(); |
|||
void buildToolMenu(); |
|||
void CreateFindToolBar( wxWindow* aParent ); |
|||
|
|||
void UpdateState(); |
|||
|
|||
// wxWebViewEvents:
|
|||
/** Callback invoked when a navigation request was accepted
|
|||
*/ |
|||
void OnNavigationComplete( wxWebViewEvent& evt ) |
|||
{ |
|||
UpdateState(); |
|||
} |
|||
|
|||
/** Callback invoked when a page is finished loading
|
|||
*/ |
|||
void OnDocumentLoaded( wxWebViewEvent& evt ) |
|||
{ |
|||
UpdateState(); |
|||
} |
|||
|
|||
/** On new window, we veto to stop extra windows appearing
|
|||
*/ |
|||
void OnNewWindow( wxWebViewEvent& evt ) |
|||
{ |
|||
UpdateState(); |
|||
} |
|||
|
|||
void OnTitleChanged( wxWebViewEvent& evt ) |
|||
{ |
|||
SetTitle( evt.GetString() ); |
|||
} |
|||
|
|||
// event functions:
|
|||
void OnIdle( wxIdleEvent& evt ); |
|||
void OnUrl( wxCommandEvent& evt ); |
|||
void OnBack( wxCommandEvent& evt ); |
|||
void OnForward( wxCommandEvent& evt ); |
|||
void OnStop( wxCommandEvent& evt ); |
|||
void OnReload( wxCommandEvent& evt ); |
|||
void OnClearHistory( wxCommandEvent& evt ); |
|||
void OnNavigationRequest( wxWebViewEvent& evt ); |
|||
void OnViewSourceRequest( wxCommandEvent& evt ); |
|||
void OnToolsClicked( wxCommandEvent& evt ); |
|||
void OnSetZoom( wxCommandEvent& evt ); |
|||
void OnError( wxWebViewEvent& evt ); |
|||
|
|||
void OnPrint( wxCommandEvent& evt ) |
|||
{ |
|||
m_browser->Print(); |
|||
} |
|||
|
|||
void OnZoomLayout( wxCommandEvent& evt ); |
|||
|
|||
void OnHistory( wxCommandEvent& evt ) |
|||
{ |
|||
m_browser->LoadHistoryItem( m_histMenuItems[evt.GetId()] ); |
|||
} |
|||
|
|||
void OnFind( wxCommandEvent& evt ); |
|||
void OnFindDone( wxCommandEvent& evt ); |
|||
void OnFindText( wxCommandEvent& evt ); |
|||
void OnFindOptions( wxCommandEvent& evt ); |
|||
|
|||
// only for fp lib wizard called if there is a non null
|
|||
// aUrlListSelection from idle event, to see if a valid
|
|||
// footprint lib was selected by user, from the context menu
|
|||
// (command copy link)
|
|||
void TestAndStoreFootprintLibLink(); |
|||
// Alternate way to list and select fp libraries:
|
|||
void OnListPrettyLibURLs( wxCommandEvent& event ); |
|||
|
|||
private: |
|||
wxTextCtrl* m_url; |
|||
wxWebView* m_browser; |
|||
|
|||
wxToolBar* m_toolbar; |
|||
wxToolBarToolBase* m_toolbar_back; |
|||
wxToolBarToolBase* m_toolbar_forward; |
|||
wxToolBarToolBase* m_toolbar_stop; |
|||
wxToolBarToolBase* m_toolbar_reload; |
|||
wxToolBarToolBase* m_toolbar_tools; |
|||
wxToolBarToolBase* m_toolbar_ListLibs; |
|||
|
|||
wxToolBarToolBase* m_find_toolbar_done; |
|||
wxToolBarToolBase* m_find_toolbar_next; |
|||
wxToolBarToolBase* m_find_toolbar_previous; |
|||
wxToolBarToolBase* m_find_toolbar_options; |
|||
|
|||
wxMenuItem* m_find_toolbar_wrap; |
|||
wxMenuItem* m_find_toolbar_highlight; |
|||
wxMenuItem* m_find_toolbar_matchcase; |
|||
wxMenuItem* m_find_toolbar_wholeword; |
|||
|
|||
wxMenu* m_tools_menu; |
|||
wxMenuItem* m_tools_viewSource; |
|||
wxMenuItem* m_tools_print; |
|||
wxMenu* m_tools_history_menu; |
|||
wxMenuItem* m_tools_clearhist; |
|||
wxMenuItem* m_tools_layout; |
|||
wxMenuItem* m_tools_tiny; |
|||
wxMenuItem* m_tools_small; |
|||
wxMenuItem* m_tools_medium; |
|||
wxMenuItem* m_tools_large; |
|||
wxMenuItem* m_tools_largest; |
|||
wxMenuItem* m_find; |
|||
|
|||
wxInfoBar* m_info; |
|||
wxStaticText* m_info_text; |
|||
wxTextCtrl* m_find_ctrl; |
|||
wxToolBar* m_find_toolbar; |
|||
|
|||
wxMenuHistoryMap m_histMenuItems; |
|||
wxString m_findText; |
|||
int m_findFlags, m_findCount; |
|||
}; |
|||
|
|||
class SourceViewDialog : public wxDialog |
|||
{ |
|||
public: |
|||
SourceViewDialog( wxWindow* parent, wxString source ); |
|||
}; |
|||
|
|||
// Helper function to run the web viewer from an other dialog or frame:
|
|||
int RunWebViewer( wxWindow* aParent, const wxString& aUrlOnStart, wxArrayString* aUrlListSelection ) |
|||
{ |
|||
WEB_NAVIGATOR dlg( aParent, aUrlOnStart, aUrlListSelection ); |
|||
return dlg.ShowModal(); |
|||
} |
|||
|
|||
|
|||
WEB_NAVIGATOR::WEB_NAVIGATOR( wxWindow* aParent, |
|||
const wxString& aUrlOnStart, wxArrayString* aUrlListSelection ) : |
|||
DIALOG_SHIM( aParent, wxID_ANY, "Web Viewer", wxDefaultPosition, wxDefaultSize, |
|||
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ) |
|||
{ |
|||
urlListSelection = aUrlListSelection; |
|||
InitNavigator( aUrlOnStart ); |
|||
|
|||
SetMinSize( wxSize( 700, 500 ) ); |
|||
|
|||
GetSizer()->Fit( this ); |
|||
Centre(); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::InitNavigator( const wxString& aUrlOnStart ) |
|||
{ |
|||
// To collect URLs, the Web Viewer can use the clipboard.
|
|||
// Clear it before running the viewer
|
|||
// For an unknown reason, wxTheClipboard->Clear() does not work,
|
|||
// so use a trick
|
|||
if( wxTheClipboard->Open() ) |
|||
{ |
|||
wxTheClipboard->SetData( new wxTextDataObject( "" ) ); |
|||
wxTheClipboard->Close(); |
|||
} |
|||
|
|||
wxBoxSizer* topsizer = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
// Create the main toolbar
|
|||
m_toolbar = new wxToolBar( this, wxID_ANY ); |
|||
buildToolBar(); |
|||
topsizer->Add( m_toolbar ); |
|||
|
|||
// Shows the tool to choose and select fp libs only if a selected URL list
|
|||
// exists
|
|||
if( urlListSelection == NULL ) |
|||
m_toolbar_ListLibs->Enable( false ); |
|||
|
|||
// Set find parameters and create the find toolbar.
|
|||
m_findFlags = wxWEBVIEW_FIND_DEFAULT; |
|||
m_findCount = 0; |
|||
CreateFindToolBar( this ); |
|||
topsizer->Add( m_find_toolbar, wxSizerFlags().Expand() ); |
|||
m_find_toolbar->Hide(); |
|||
|
|||
// Create the info panel
|
|||
m_info = new wxInfoBar( this ); |
|||
topsizer->Add( m_info, wxSizerFlags().Expand() ); |
|||
|
|||
// Create the webview engine
|
|||
if( aUrlOnStart.IsEmpty() ) // Start on a blank page:
|
|||
m_browser = wxWebView::New( this, wxID_ANY, wxT( "about:blank") ); |
|||
else |
|||
m_browser = wxWebView::New( this, wxID_ANY, aUrlOnStart, |
|||
wxDefaultPosition, wxSize( 900, 600 ) ); |
|||
|
|||
m_browser->EnableHistory( true ); |
|||
|
|||
topsizer->Add( m_browser, wxSizerFlags().Expand().Proportion( 1 ) ); |
|||
|
|||
SetSizer( topsizer ); |
|||
|
|||
// Create the Tools menu
|
|||
buildToolMenu(); |
|||
|
|||
if( !m_browser->CanSetZoomType( wxWEBVIEW_ZOOM_TYPE_LAYOUT ) ) |
|||
m_tools_layout->Enable( false ); |
|||
|
|||
// Connect the toolbar events
|
|||
Connect( m_toolbar_back->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnBack ), NULL, this ); |
|||
Connect( m_toolbar_forward->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnForward ), NULL, this ); |
|||
Connect( m_toolbar_stop->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnStop ), NULL, this ); |
|||
Connect( m_toolbar_reload->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnReload ), NULL, this ); |
|||
Connect( m_toolbar_tools->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnToolsClicked ), NULL, this ); |
|||
|
|||
Connect( m_toolbar_ListLibs->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnListPrettyLibURLs ), NULL, this ); |
|||
|
|||
Connect( m_url->GetId(), wxEVT_TEXT_ENTER, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnUrl ), NULL, this ); |
|||
|
|||
// Connect find toolbar events.
|
|||
Connect( m_find_toolbar_done->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnFindDone ), NULL, this ); |
|||
Connect( m_find_toolbar_next->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnFindText ), NULL, this ); |
|||
Connect( m_find_toolbar_previous->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnFindText ), NULL, this ); |
|||
|
|||
// Connect find control events.
|
|||
Connect( m_find_ctrl->GetId(), wxEVT_TEXT, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnFindText ), NULL, this ); |
|||
Connect( m_find_ctrl->GetId(), wxEVT_TEXT_ENTER, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnFindText ), NULL, this ); |
|||
|
|||
// Connect the webview events
|
|||
Connect( m_browser->GetId(), wxEVT_WEBVIEW_NAVIGATING, |
|||
wxWebViewEventHandler( WEB_NAVIGATOR::OnNavigationRequest ), NULL, this ); |
|||
Connect( m_browser->GetId(), wxEVT_WEBVIEW_NAVIGATED, |
|||
wxWebViewEventHandler( WEB_NAVIGATOR::OnNavigationComplete ), NULL, this ); |
|||
Connect( m_browser->GetId(), wxEVT_WEBVIEW_LOADED, |
|||
wxWebViewEventHandler( WEB_NAVIGATOR::OnDocumentLoaded ), NULL, this ); |
|||
Connect( m_browser->GetId(), wxEVT_WEBVIEW_ERROR, |
|||
wxWebViewEventHandler( WEB_NAVIGATOR::OnError ), NULL, this ); |
|||
Connect( m_browser->GetId(), wxEVT_WEBVIEW_NEWWINDOW, |
|||
wxWebViewEventHandler( WEB_NAVIGATOR::OnNewWindow ), NULL, this ); |
|||
Connect( m_browser->GetId(), wxEVT_WEBVIEW_TITLE_CHANGED, |
|||
wxWebViewEventHandler( WEB_NAVIGATOR::OnTitleChanged ), NULL, this ); |
|||
|
|||
// Connect the menu events
|
|||
Connect( m_tools_viewSource->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnViewSourceRequest ), NULL, this ); |
|||
Connect( m_tools_print->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnPrint ), NULL, this ); |
|||
Connect( m_tools_layout->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnZoomLayout ), NULL, this ); |
|||
Connect( m_tools_tiny->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnSetZoom ), NULL, this ); |
|||
Connect( m_tools_small->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnSetZoom ), NULL, this ); |
|||
Connect( m_tools_medium->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnSetZoom ), NULL, this ); |
|||
Connect( m_tools_large->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnSetZoom ), NULL, this ); |
|||
Connect( m_tools_largest->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnSetZoom ), NULL, this ); |
|||
Connect( m_tools_clearhist->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnClearHistory ), NULL, this ); |
|||
Connect( m_find->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnFind ), NULL, this ); |
|||
|
|||
// Connect the idle events
|
|||
Connect( wxID_ANY, wxEVT_IDLE, wxIdleEventHandler( WEB_NAVIGATOR::OnIdle ), NULL, this ); |
|||
} |
|||
|
|||
|
|||
WEB_NAVIGATOR::~WEB_NAVIGATOR() |
|||
{ |
|||
delete m_tools_menu; |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::buildToolMenu() |
|||
{ |
|||
m_tools_menu = new wxMenu(); |
|||
|
|||
m_tools_print = m_tools_menu->Append( wxID_ANY, _( "Print" ) ); |
|||
m_tools_viewSource = m_tools_menu->Append( wxID_ANY, _( "View Source" ) ); |
|||
m_tools_menu->AppendSeparator(); |
|||
m_tools_layout = m_tools_menu->AppendCheckItem( wxID_ANY, _( "Use Layout Zoom" ) ); |
|||
m_tools_tiny = m_tools_menu->AppendCheckItem( wxID_ANY, _( "Tiny" ) ); |
|||
m_tools_small = m_tools_menu->AppendCheckItem( wxID_ANY, _( "Small" ) ); |
|||
m_tools_medium = m_tools_menu->AppendCheckItem( wxID_ANY, _( "Medium" ) ); |
|||
m_tools_large = m_tools_menu->AppendCheckItem( wxID_ANY, _( "Large" ) ); |
|||
m_tools_largest = m_tools_menu->AppendCheckItem( wxID_ANY, _( "Largest" ) ); |
|||
m_tools_menu->AppendSeparator(); |
|||
|
|||
// Find
|
|||
m_find = m_tools_menu->Append( wxID_ANY, _( "Find" ) ); |
|||
m_tools_menu->AppendSeparator(); |
|||
|
|||
// History menu
|
|||
m_tools_history_menu = new wxMenu(); |
|||
m_tools_clearhist = m_tools_history_menu->Append( wxID_ANY, _( "Clear History" ) ); |
|||
m_tools_history_menu->AppendSeparator(); |
|||
|
|||
m_tools_menu->AppendSubMenu( m_tools_history_menu, "History" ); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::buildToolBar() |
|||
{ |
|||
// Populate the toolbar
|
|||
m_toolbar->SetToolBitmapSize( wxSize( 26, 26 ) ); |
|||
m_toolbar->SetMargins( 3, 3 ); |
|||
|
|||
// The tool menu (one cannot have a menubar in a dialog, so uise a tool to display a menu
|
|||
m_toolbar_tools = m_toolbar->AddTool( wxID_ANY, _( "Menu" ), KiBitmap( tools_xpm ), |
|||
_("Access to some options") ); |
|||
m_toolbar->AddSeparator(); |
|||
|
|||
// The navigation tools
|
|||
m_toolbar_back = m_toolbar->AddTool( wxID_ANY, _( "Back" ), KiBitmap( left_xpm ) ); |
|||
m_toolbar_forward = m_toolbar->AddTool( wxID_ANY, _( "Forward" ), KiBitmap( right_xpm ) ); |
|||
m_toolbar_stop = m_toolbar->AddTool( wxID_ANY, _( "Stop" ), KiBitmap( red_xpm ) ); |
|||
m_toolbar_reload = m_toolbar->AddTool( wxID_ANY, _( "Reload" ), KiBitmap( reload2_xpm ) ); |
|||
|
|||
m_toolbar->AddSeparator(); |
|||
m_url = new wxTextCtrl( m_toolbar, wxID_ANY, wxT( "" ), wxDefaultPosition, wxSize( 400, |
|||
-1 ), wxTE_PROCESS_ENTER ); |
|||
m_toolbar->AddControl( m_url, _( "URL" ) ); |
|||
m_toolbar->AddSeparator(); |
|||
|
|||
// The Kicad footprint libraries extractor/selector tool:
|
|||
m_toolbar_ListLibs = |
|||
m_toolbar->AddTool( wxID_ANY, _( "KicadLibs" ), KiBitmap( library_browse_xpm ), |
|||
_("List .pretty kicad footprint libraries and add selected libraries\n" |
|||
"to the footprint library table") ); |
|||
|
|||
m_toolbar->Realize(); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::CreateFindToolBar( wxWindow* aParent ) |
|||
{ |
|||
m_find_toolbar = new wxToolBar( aParent, |
|||
wxID_ANY, wxDefaultPosition, wxDefaultSize, |
|||
wxTB_HORIZONTAL | wxTB_TEXT | wxTB_HORZ_LAYOUT ); |
|||
|
|||
// Create find control.
|
|||
m_find_ctrl = new wxTextCtrl( m_find_toolbar, |
|||
wxID_ANY, wxEmptyString, wxDefaultPosition, |
|||
wxSize( 140, -1 ), wxTE_PROCESS_ENTER ); |
|||
|
|||
// Find options menu
|
|||
wxMenu* findmenu = new wxMenu; |
|||
m_find_toolbar_wrap = findmenu->AppendCheckItem( wxID_ANY, "Wrap" ); |
|||
m_find_toolbar_matchcase = findmenu->AppendCheckItem( wxID_ANY, "Match Case" ); |
|||
m_find_toolbar_wholeword = findmenu->AppendCheckItem( wxID_ANY, "Entire Word" ); |
|||
m_find_toolbar_highlight = findmenu->AppendCheckItem( wxID_ANY, "Highlight" ); |
|||
m_find_toolbar_highlight->Check( true ); |
|||
|
|||
// Add find toolbar tools.
|
|||
m_find_toolbar->SetToolSeparation( 7 ); |
|||
m_find_toolbar_done = m_find_toolbar->AddTool( wxID_ANY, "Close", |
|||
wxArtProvider::GetBitmap( wxART_CROSS_MARK ) ); |
|||
m_find_toolbar->AddSeparator(); |
|||
m_find_toolbar->AddControl( m_find_ctrl, "Find" ); |
|||
m_find_toolbar->AddSeparator(); |
|||
m_find_toolbar_next = m_find_toolbar->AddTool( wxID_ANY, "Next", |
|||
wxArtProvider::GetBitmap( wxART_GO_DOWN, wxART_TOOLBAR, wxSize( 16, 16 ) ) ); |
|||
m_find_toolbar_previous = m_find_toolbar->AddTool( wxID_ANY, "Previous", |
|||
wxArtProvider::GetBitmap( wxART_GO_UP, wxART_TOOLBAR, wxSize( 16, 16 ) ) ); |
|||
m_find_toolbar->AddSeparator(); |
|||
m_find_toolbar_options = m_find_toolbar->AddTool( wxID_ANY, "Options", |
|||
wxArtProvider::GetBitmap( wxART_PLUS, wxART_TOOLBAR, wxSize( 16, 16 ) ), |
|||
"", wxITEM_DROPDOWN ); |
|||
m_find_toolbar_options->SetDropdownMenu( findmenu ); |
|||
m_find_toolbar->Realize(); |
|||
} |
|||
|
|||
|
|||
// A helper function to try to validate urls names
|
|||
// read in github repos.
|
|||
// a valid .pretty github library name ( on github )
|
|||
// is expected ending with .pretty, and to be a path
|
|||
// relative github url
|
|||
static bool urlFilter( const wxString& aText ) |
|||
{ |
|||
if( aText.Length() < 8 ) // unlikely a valid .pretty name
|
|||
return false; |
|||
|
|||
if( !aText.EndsWith( wxT( ".pretty" ) ) ) |
|||
return false; |
|||
|
|||
wxURI uri( aText ); |
|||
|
|||
if( !uri.GetQuery().IsEmpty() ) // the link is a request, not good
|
|||
return false; |
|||
|
|||
return true; |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::OnListPrettyLibURLs( wxCommandEvent& event ) |
|||
{ |
|||
if( m_browser->IsBusy() ) // a page loading is currently in progress
|
|||
return; |
|||
|
|||
wxString source = m_browser->GetPageSource(); |
|||
wxArrayString urls; |
|||
|
|||
HTML_LINK_PARSER parser( source, urls ); |
|||
parser.ParseLinks( urlFilter ); |
|||
|
|||
// Create library list.
|
|||
// From github, the links can be relative to the github server URL
|
|||
// In this case, make url absolute
|
|||
wxString reposUrl( m_browser->GetCurrentURL() ); |
|||
wxURI reposUri( reposUrl ); |
|||
wxString reposName( reposUri.GetScheme() + wxT( "://" ) + reposUri.GetServer() ); |
|||
|
|||
for( unsigned ii = 0; ii < urls.GetCount(); ii++ ) |
|||
{ |
|||
wxString url = urls[ii]; |
|||
wxURI currUri( url ); |
|||
|
|||
if( !currUri.HasServer() ) |
|||
{ |
|||
if( url.StartsWith( wxT( "/" ) ) ) // path relative to the server name
|
|||
url.Prepend( reposName ); |
|||
else // path relative to the server currently open path
|
|||
url.Prepend( reposUrl ); |
|||
|
|||
urls[ii] = url; |
|||
} |
|||
} |
|||
|
|||
// Remove duplicates:
|
|||
// A very basic test, not optimized, but usually we have only few urls
|
|||
for( unsigned ii = 0; ii < urls.GetCount(); ii++ ) |
|||
{ |
|||
for( unsigned jj = urls.GetCount() - 1; jj > ii; jj-- ) |
|||
{ |
|||
if( urls[ii] == urls[jj] ) // Duplicate found
|
|||
urls.RemoveAt( jj ); |
|||
} |
|||
} |
|||
|
|||
wxArrayInt choices; |
|||
wxString msg( _( "Urls detected as footprint .pretty libraries.\n" |
|||
"Selected urls will be added to the current footprint library list,\n" |
|||
"when closing the web viewer") ); |
|||
|
|||
if( wxGetSelectedChoices( choices, msg, |
|||
_( "Footprint libraries" ), urls, this ) <= 0 ) |
|||
return; |
|||
|
|||
// Add selected fp list in list
|
|||
for( unsigned ii = 0; ii < choices.GetCount(); ii++ ) |
|||
{ |
|||
wxString& url = urls[choices[ii]]; |
|||
urlListSelection->Add( url ); |
|||
} |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Method that retrieves the current state from the web control and updates the GUI |
|||
* the reflect this current state. |
|||
*/ |
|||
void WEB_NAVIGATOR::UpdateState() |
|||
{ |
|||
m_toolbar->EnableTool( m_toolbar_back->GetId(), m_browser->CanGoBack() ); |
|||
m_toolbar->EnableTool( m_toolbar_forward->GetId(), m_browser->CanGoForward() ); |
|||
|
|||
if( m_browser->IsBusy() ) |
|||
{ |
|||
m_toolbar->EnableTool( m_toolbar_stop->GetId(), true ); |
|||
} |
|||
else |
|||
{ |
|||
m_toolbar->EnableTool( m_toolbar_stop->GetId(), false ); |
|||
} |
|||
|
|||
SetTitle( m_browser->GetCurrentTitle() ); |
|||
m_url->SetValue( m_browser->GetCurrentURL() ); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::OnIdle( wxIdleEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
if( m_browser->IsBusy() ) |
|||
{ |
|||
wxSetCursor( wxCURSOR_ARROWWAIT ); |
|||
m_toolbar->EnableTool( m_toolbar_stop->GetId(), true ); |
|||
} |
|||
else |
|||
{ |
|||
wxSetCursor( wxNullCursor ); |
|||
m_toolbar->EnableTool( m_toolbar_stop->GetId(), false ); |
|||
|
|||
if( urlListSelection ) |
|||
TestAndStoreFootprintLibLink(); |
|||
} |
|||
} |
|||
|
|||
|
|||
// only for fp lib wizard called if there is a non null
|
|||
// aUrlListSelection from idle event, to see if a valid
|
|||
// footprint lib was selected by user, from the context menu
|
|||
// (command copy link)
|
|||
void WEB_NAVIGATOR::TestAndStoreFootprintLibLink() |
|||
{ |
|||
if( !urlListSelection ) |
|||
return; |
|||
|
|||
if( wxTheClipboard->Open() ) |
|||
{ |
|||
if( wxTheClipboard->IsSupported( wxDF_TEXT ) ) |
|||
{ |
|||
wxTextDataObject data; |
|||
|
|||
if( wxTheClipboard->GetData( data ) ) |
|||
{ |
|||
// A valid text data is found
|
|||
const wxString& text = data.GetText(); |
|||
|
|||
// Be sure it is a valid data for us, i.e. a valid
|
|||
// kicad url
|
|||
if( urlFilter( text ) && ( text.StartsWith( "http" ) ) ) |
|||
{ |
|||
urlListSelection->Add( text ); |
|||
wxTheClipboard->SetData( new wxTextDataObject( wxEmptyString ) ); |
|||
} |
|||
} |
|||
|
|||
wxTheClipboard->Close(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Callback invoked when user entered an URL and pressed enter |
|||
*/ |
|||
void WEB_NAVIGATOR::OnUrl( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
m_browser->LoadURL( m_url->GetValue() ); |
|||
m_browser->SetFocus(); |
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Callback invoked when user pressed the "back" button |
|||
*/ |
|||
void WEB_NAVIGATOR::OnBack( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
m_browser->GoBack(); |
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Callback invoked when user pressed the "forward" button |
|||
*/ |
|||
void WEB_NAVIGATOR::OnForward( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
m_browser->GoForward(); |
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Callback invoked when user pressed the "stop" button |
|||
*/ |
|||
void WEB_NAVIGATOR::OnStop( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
m_browser->Stop(); |
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Callback invoked when user pressed the "reload" button |
|||
*/ |
|||
void WEB_NAVIGATOR::OnReload( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
m_browser->Reload(); |
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::OnClearHistory( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
m_browser->ClearHistory(); |
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::OnFind( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
wxString value = m_browser->GetSelectedText(); |
|||
|
|||
if( value.Len() > 150 ) |
|||
{ |
|||
value.Truncate( 150 ); |
|||
} |
|||
|
|||
m_find_ctrl->SetValue( value ); |
|||
|
|||
if( !m_find_toolbar->IsShown() ) |
|||
{ |
|||
m_find_toolbar->Show( true ); |
|||
SendSizeEvent(); |
|||
} |
|||
|
|||
m_find_ctrl->SelectAll(); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::OnFindDone( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
m_browser->Find( "" ); |
|||
m_find_toolbar->Show( false ); |
|||
SendSizeEvent(); |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::OnFindText( wxCommandEvent& evt ) |
|||
{ |
|||
int flags = 0; |
|||
|
|||
if( m_find_toolbar_wrap->IsChecked() ) |
|||
flags |= wxWEBVIEW_FIND_WRAP; |
|||
|
|||
if( m_find_toolbar_wholeword->IsChecked() ) |
|||
flags |= wxWEBVIEW_FIND_ENTIRE_WORD; |
|||
|
|||
if( m_find_toolbar_matchcase->IsChecked() ) |
|||
flags |= wxWEBVIEW_FIND_MATCH_CASE; |
|||
|
|||
if( m_find_toolbar_highlight->IsChecked() ) |
|||
flags |= wxWEBVIEW_FIND_HIGHLIGHT_RESULT; |
|||
|
|||
if( m_find_toolbar_previous->GetId() == evt.GetId() ) |
|||
flags |= wxWEBVIEW_FIND_BACKWARDS; |
|||
|
|||
wxString find_text = m_find_ctrl->GetValue(); |
|||
|
|||
long count = wxNOT_FOUND; |
|||
|
|||
// On windows, for an unknwon reason (bug ?) some texts in some
|
|||
// html pages hang the search.
|
|||
// Waiting for 2 chars before starting a search reduces the risk
|
|||
// (but the risk still exists)
|
|||
#ifdef __WINDOWS__
|
|||
#define MIN_CHAR_CNT 2
|
|||
if( find_text.Length() >= MIN_CHAR_CNT ) |
|||
count = m_browser->Find( find_text, flags ); |
|||
else // Reset search
|
|||
m_browser->Find( wxEmptyString, flags ); |
|||
#else
|
|||
#define MIN_CHAR_CNT 1
|
|||
count = m_browser->Find( find_text, flags ); |
|||
#endif
|
|||
|
|||
if( m_findText != find_text ) |
|||
{ |
|||
m_findCount = count; |
|||
m_findText = find_text; |
|||
} |
|||
|
|||
if( count != wxNOT_FOUND || find_text.Length() < MIN_CHAR_CNT ) |
|||
m_find_ctrl->SetBackgroundColour( *wxWHITE ); |
|||
else |
|||
m_find_ctrl->SetBackgroundColour( wxColour( 255, 101, 101 ) ); |
|||
|
|||
m_find_ctrl->Refresh(); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Callback invoked when there is a request to load a new page (for instance |
|||
* when the user clicks a link) |
|||
*/ |
|||
void WEB_NAVIGATOR::OnNavigationRequest( wxWebViewEvent& evt ) |
|||
{ |
|||
if( m_info->IsShown() ) |
|||
m_info->Dismiss(); |
|||
|
|||
wxASSERT( m_browser->IsBusy() ); |
|||
|
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Invoked when user selects the "View Source" menu item |
|||
*/ |
|||
void WEB_NAVIGATOR::OnViewSourceRequest( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
SourceViewDialog dlg( this, m_browser->GetPageSource() ); |
|||
|
|||
dlg.ShowModal(); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Invoked when user selects the "Menu" item |
|||
*/ |
|||
void WEB_NAVIGATOR::OnToolsClicked( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
if( m_browser->GetCurrentURL() == "" ) |
|||
return; |
|||
|
|||
m_tools_tiny->Check( false ); |
|||
m_tools_small->Check( false ); |
|||
m_tools_medium->Check( false ); |
|||
m_tools_large->Check( false ); |
|||
m_tools_largest->Check( false ); |
|||
|
|||
wxWebViewZoom zoom = m_browser->GetZoom(); |
|||
|
|||
switch( zoom ) |
|||
{ |
|||
case wxWEBVIEW_ZOOM_TINY: |
|||
m_tools_tiny->Check(); |
|||
break; |
|||
|
|||
case wxWEBVIEW_ZOOM_SMALL: |
|||
m_tools_small->Check(); |
|||
break; |
|||
|
|||
case wxWEBVIEW_ZOOM_MEDIUM: |
|||
m_tools_medium->Check(); |
|||
break; |
|||
|
|||
case wxWEBVIEW_ZOOM_LARGE: |
|||
m_tools_large->Check(); |
|||
break; |
|||
|
|||
case wxWEBVIEW_ZOOM_LARGEST: |
|||
m_tools_largest->Check(); |
|||
break; |
|||
} |
|||
|
|||
// Firstly we clear the existing menu items, then we add the current ones
|
|||
wxMenuHistoryMap::const_iterator it; |
|||
|
|||
for( it = m_histMenuItems.begin(); it != m_histMenuItems.end(); ++it ) |
|||
{ |
|||
m_tools_history_menu->Destroy( it->first ); |
|||
} |
|||
|
|||
m_histMenuItems.clear(); |
|||
|
|||
wxVector<wxSharedPtr<wxWebViewHistoryItem> > back = m_browser->GetBackwardHistory(); |
|||
wxVector<wxSharedPtr<wxWebViewHistoryItem> > forward = m_browser->GetForwardHistory(); |
|||
|
|||
wxMenuItem* item; |
|||
|
|||
unsigned int i; |
|||
|
|||
for( i = 0; i < back.size(); i++ ) |
|||
{ |
|||
item = m_tools_history_menu->AppendRadioItem( wxID_ANY, back[i]->GetTitle() ); |
|||
m_histMenuItems[item->GetId()] = back[i]; |
|||
Connect( item->GetId(), wxEVT_MENU, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnHistory ), NULL, this ); |
|||
} |
|||
|
|||
wxString title = m_browser->GetCurrentTitle(); |
|||
|
|||
if( title.empty() ) |
|||
title = "(untitled)"; |
|||
|
|||
item = m_tools_history_menu->AppendRadioItem( wxID_ANY, title ); |
|||
item->Check(); |
|||
|
|||
// No need to connect the current item
|
|||
m_histMenuItems[item->GetId()] = |
|||
wxSharedPtr<wxWebViewHistoryItem>( new wxWebViewHistoryItem( m_browser->GetCurrentURL(), |
|||
m_browser->GetCurrentTitle() ) ); |
|||
|
|||
for( i = 0; i < forward.size(); i++ ) |
|||
{ |
|||
item = m_tools_history_menu->AppendRadioItem( wxID_ANY, forward[i]->GetTitle() ); |
|||
m_histMenuItems[item->GetId()] = forward[i]; |
|||
Connect( item->GetId(), wxEVT_TOOL, |
|||
wxCommandEventHandler( WEB_NAVIGATOR::OnHistory ), NULL, this ); |
|||
} |
|||
|
|||
wxPoint position = ScreenToClient( wxGetMousePosition() ); |
|||
PopupMenu( m_tools_menu, position.x, position.y ); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Invoked when user selects the zoom size in the menu |
|||
*/ |
|||
void WEB_NAVIGATOR::OnSetZoom( wxCommandEvent& evt ) |
|||
{ |
|||
if( evt.GetId() == m_tools_tiny->GetId() ) |
|||
m_browser->SetZoom( wxWEBVIEW_ZOOM_TINY ); |
|||
else if( evt.GetId() == m_tools_small->GetId() ) |
|||
m_browser->SetZoom( wxWEBVIEW_ZOOM_SMALL ); |
|||
else if( evt.GetId() == m_tools_medium->GetId() ) |
|||
m_browser->SetZoom( wxWEBVIEW_ZOOM_MEDIUM ); |
|||
else if( evt.GetId() == m_tools_large->GetId() ) |
|||
m_browser->SetZoom( wxWEBVIEW_ZOOM_LARGE ); |
|||
else if( evt.GetId() == m_tools_largest->GetId() ) |
|||
m_browser->SetZoom( wxWEBVIEW_ZOOM_LARGEST ); |
|||
else |
|||
wxFAIL; |
|||
} |
|||
|
|||
|
|||
void WEB_NAVIGATOR::OnZoomLayout( wxCommandEvent& WXUNUSED( evt ) ) |
|||
{ |
|||
if( m_tools_layout->IsChecked() ) |
|||
m_browser->SetZoomType( wxWEBVIEW_ZOOM_TYPE_LAYOUT ); |
|||
else |
|||
m_browser->SetZoomType( wxWEBVIEW_ZOOM_TYPE_TEXT ); |
|||
} |
|||
|
|||
|
|||
/**
|
|||
* Callback invoked when a loading error occurs |
|||
*/ |
|||
void WEB_NAVIGATOR::OnError( wxWebViewEvent& evt ) |
|||
{ |
|||
#define WX_ERROR_CASE( type ) case type: \
|
|||
category = # type; break; |
|||
|
|||
wxString category; |
|||
|
|||
switch( evt.GetInt() ) |
|||
{ |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_CONNECTION ); |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_CERTIFICATE ); |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_AUTH ); |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_SECURITY ); |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_NOT_FOUND ); |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_REQUEST ); |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_USER_CANCELLED ); |
|||
WX_ERROR_CASE( wxWEBVIEW_NAV_ERR_OTHER ); |
|||
} |
|||
|
|||
// Show the info bar with an error
|
|||
wxString msg; |
|||
msg.Printf( _( "An error occurred loading %s\n'%s'" ), evt.GetURL().GetData(), |
|||
category.GetData() ); |
|||
m_info->ShowMessage( msg, wxICON_ERROR ); |
|||
|
|||
UpdateState(); |
|||
} |
|||
|
|||
|
|||
SourceViewDialog::SourceViewDialog( wxWindow* parent, wxString source ) : |
|||
wxDialog( parent, wxID_ANY, "Source Code", |
|||
wxDefaultPosition, wxSize( 700, 500 ), |
|||
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ) |
|||
{ |
|||
wxStyledTextCtrl* text = new wxStyledTextCtrl( this, wxID_ANY ); |
|||
|
|||
text->SetMarginWidth( 1, 30 ); |
|||
text->SetMarginType( 1, wxSTC_MARGIN_NUMBER ); |
|||
text->SetText( source ); |
|||
|
|||
text->StyleClearAll(); |
|||
text->SetLexer( wxSTC_LEX_HTML ); |
|||
text->StyleSetForeground( wxSTC_H_DOUBLESTRING, wxColour( 255, 0, 0 ) ); |
|||
text->StyleSetForeground( wxSTC_H_SINGLESTRING, wxColour( 255, 0, 0 ) ); |
|||
text->StyleSetForeground( wxSTC_H_ENTITY, wxColour( 255, 0, 0 ) ); |
|||
text->StyleSetForeground( wxSTC_H_TAG, wxColour( 0, 150, 0 ) ); |
|||
text->StyleSetForeground( wxSTC_H_TAGUNKNOWN, wxColour( 0, 150, 0 ) ); |
|||
text->StyleSetForeground( wxSTC_H_ATTRIBUTE, wxColour( 0, 0, 150 ) ); |
|||
text->StyleSetForeground( wxSTC_H_ATTRIBUTEUNKNOWN, wxColour( 0, 0, 150 ) ); |
|||
text->StyleSetForeground( wxSTC_H_COMMENT, wxColour( 150, 150, 150 ) ); |
|||
|
|||
wxBoxSizer* sizer = new wxBoxSizer( wxVERTICAL ); |
|||
sizer->Add( text, 1, wxEXPAND ); |
|||
SetSizer( sizer ); |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue