You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

406 lines
9.5 KiB

  1. /*
  2. * This program source code file is part of KiCad, a free EDA CAD application.
  3. *
  4. * Copyright (C) 2018 Jean-Pierre Charras, jp.charras at wanadoo.fr
  5. * Copyright (C) 2008 Wayne Stambaugh <stambaughw@gmail.com>
  6. * Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
  7. *
  8. * This program is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU General Public License
  10. * as published by the Free Software Foundation; either version 2
  11. * of the License, or (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program; if not, you may find one here:
  20. * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  21. * or you may search the http://www.gnu.org website for the version 2 license,
  22. * or you may write to the Free Software Foundation, Inc.,
  23. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
  24. */
  25. /**
  26. * @file wildcards_and_files_ext.cpp
  27. * Definition of file extensions used in Kicad.
  28. */
  29. #include <wildcards_and_files_ext.h>
  30. wxString formatWildcardExt( const wxString& aWildcard )
  31. {
  32. wxString wc;
  33. #if defined( __WXGTK__ )
  34. for( auto ch : aWildcard )
  35. {
  36. if( wxIsalpha( ch ) )
  37. wc += wxString::Format( "[%c%c]", wxTolower( ch ), wxToupper( ch ) );
  38. else
  39. wc += ch;
  40. }
  41. return wc;
  42. #else
  43. wc = aWildcard;
  44. return wc;
  45. #endif
  46. }
  47. wxString AddFileExtListToFilter( const std::vector<std::string>& aExts )
  48. {
  49. if( aExts.size() == 0 )
  50. {
  51. // The "all files" wildcard is different on different systems
  52. wxString filter;
  53. filter << " (" << wxFileSelectorDefaultWildcardStr << ")|"
  54. << wxFileSelectorDefaultWildcardStr;
  55. return filter;
  56. }
  57. wxString files_filter = " (";
  58. // Add extensions to the info message:
  59. for( const auto& ext : aExts )
  60. {
  61. files_filter << " *." << ext;
  62. }
  63. files_filter << ")|*.";
  64. // Add extensions to the filter list, using a formated string (GTK specific):
  65. bool first = true;
  66. for( const auto& ext : aExts )
  67. {
  68. if( !first )
  69. files_filter << ";*.";
  70. first = false;
  71. files_filter << formatWildcardExt( ext );
  72. }
  73. return files_filter;
  74. }
  75. const std::string SchematicSymbolFileExtension( "sym" );
  76. const std::string SchematicLibraryFileExtension( "lib" );
  77. const std::string SchematicBackupFileExtension( "bak" );
  78. const std::string VrmlFileExtension( "wrl" );
  79. const std::string ProjectFileExtension( "pro" );
  80. const std::string SchematicFileExtension( "sch" );
  81. const std::string NetlistFileExtension( "net" );
  82. const std::string ComponentFileExtension( "cmp" );
  83. const std::string GerberFileExtension( "gbr" );
  84. const std::string GerberJobFileExtension( "gbrjob" );
  85. const std::string HtmlFileExtension( "html" );
  86. const std::string LegacyPcbFileExtension( "brd" );
  87. const std::string KiCadPcbFileExtension( "kicad_pcb" );
  88. const std::string PageLayoutDescrFileExtension( "kicad_wks" );
  89. const std::string PdfFileExtension( "pdf" );
  90. const std::string MacrosFileExtension( "mcr" );
  91. const std::string DrillFileExtension( "drl" );
  92. const std::string SVGFileExtension( "svg" );
  93. const std::string ReportFileExtension( "rpt" );
  94. const std::string FootprintPlaceFileExtension( "pos" );
  95. const std::string KiCadLib3DShapesPathExtension( "3dshapes" ); ///< 3D shapes default libpath
  96. const std::string KiCadFootprintLibPathExtension( "pretty" ); ///< KICAD PLUGIN libpath
  97. const std::string LegacyFootprintLibPathExtension( "mod" );
  98. const std::string EagleFootprintLibPathExtension( "lbr" );
  99. const std::string KiCadFootprintFileExtension( "kicad_mod" );
  100. const std::string GedaPcbFootprintLibFileExtension( "fp" );
  101. const std::string SpecctraDsnFileExtension( "dsn" );
  102. const std::string IpcD356FileExtension( "d356" );
  103. const std::string PngFileExtension( "png" );
  104. const std::string JpegFileExtension( "jpg" );
  105. wxString AllFilesWildcard()
  106. {
  107. return _( "All files" ) + AddFileExtListToFilter( {} );
  108. }
  109. wxString SchematicSymbolFileWildcard()
  110. {
  111. return _( "KiCad drawing symbol files" ) + AddFileExtListToFilter( { "sym" } );
  112. }
  113. wxString SchematicLibraryFileWildcard()
  114. {
  115. return _( "KiCad symbol library files" ) + AddFileExtListToFilter( { "lib" } );
  116. }
  117. wxString ProjectFileWildcard()
  118. {
  119. return _( "KiCad project files" ) + AddFileExtListToFilter( { "pro" } );
  120. }
  121. wxString SchematicFileWildcard()
  122. {
  123. return _( "KiCad schematic files" ) + AddFileExtListToFilter( { "sch" } );
  124. }
  125. wxString EagleSchematicFileWildcard()
  126. {
  127. return _( "Eagle XML schematic files" ) + AddFileExtListToFilter( { "sch" } );
  128. }
  129. wxString EagleFilesWildcard()
  130. {
  131. return _( "Eagle XML files" ) + AddFileExtListToFilter( { "sch", "brd" } );
  132. }
  133. wxString NetlistFileWildcard()
  134. {
  135. return _( "KiCad netlist files" ) + AddFileExtListToFilter( { "net" } );
  136. }
  137. wxString GerberFileWildcard()
  138. {
  139. return _( "Gerber files" ) + AddFileExtListToFilter( { "pho" } );
  140. }
  141. wxString LegacyPcbFileWildcard()
  142. {
  143. return _( "KiCad printed circuit board files" ) + AddFileExtListToFilter( { "brd" } );
  144. }
  145. wxString EaglePcbFileWildcard()
  146. {
  147. return _( "Eagle ver. 6.x XML PCB files" ) + AddFileExtListToFilter( { "brd" } );
  148. }
  149. wxString PCadPcbFileWildcard()
  150. {
  151. return _( "P-Cad 200x ASCII PCB files" ) + AddFileExtListToFilter( { "pcb" } );
  152. }
  153. wxString PcbFileWildcard()
  154. {
  155. return _( "KiCad printed circuit board files" ) + AddFileExtListToFilter( { "kicad_pcb" } );
  156. }
  157. wxString KiCadFootprintLibFileWildcard()
  158. {
  159. return _( "KiCad footprint files" ) + AddFileExtListToFilter( { "kicad_mod" } );
  160. }
  161. wxString KiCadFootprintLibPathWildcard()
  162. {
  163. return _( "KiCad footprint library paths" ) + AddFileExtListToFilter( { "pretty" } );
  164. }
  165. wxString LegacyFootprintLibPathWildcard()
  166. {
  167. return _( "Legacy footprint library files" ) + AddFileExtListToFilter( { "mod" } );
  168. }
  169. wxString EagleFootprintLibPathWildcard()
  170. {
  171. return _( "Eagle ver. 6.x XML library files" ) + AddFileExtListToFilter( { "lbr" } );
  172. }
  173. wxString GedaPcbFootprintLibFileWildcard()
  174. {
  175. return _( "Geda PCB footprint library files" ) + AddFileExtListToFilter( { "fp" } );
  176. }
  177. wxString PageLayoutDescrFileWildcard()
  178. {
  179. return _( "Page layout design files" ) + AddFileExtListToFilter( { "kicad_wks" } );
  180. }
  181. // Wildcard for cvpcb component to footprint link file
  182. wxString ComponentFileWildcard()
  183. {
  184. return _( "KiCad symbol footprint link files" ) + AddFileExtListToFilter( { "cmp" } );
  185. }
  186. // Wildcard for reports and fabrication documents
  187. wxString DrillFileWildcard()
  188. {
  189. return _( "Drill files" ) + AddFileExtListToFilter( { "drl", "nc", "xnc" } );
  190. }
  191. wxString SVGFileWildcard()
  192. {
  193. return _( "SVG files" ) + AddFileExtListToFilter( { "svg" } );
  194. }
  195. wxString HtmlFileWildcard()
  196. {
  197. return _( "HTML files" ) + AddFileExtListToFilter( { "htm", "html" } );
  198. }
  199. wxString CsvFileWildcard()
  200. {
  201. return _( "CSV Files" ) + AddFileExtListToFilter( { "csv" } );
  202. }
  203. wxString PdfFileWildcard()
  204. {
  205. return _( "Portable document format files" ) + AddFileExtListToFilter( { "pdf" } );
  206. }
  207. wxString PSFileWildcard()
  208. {
  209. return _( "PostScript files" ) + AddFileExtListToFilter( { "ps" } );
  210. }
  211. wxString ReportFileWildcard()
  212. {
  213. return _( "Report files" ) + AddFileExtListToFilter( { "rpt" } );
  214. }
  215. wxString FootprintPlaceFileWildcard()
  216. {
  217. return _( "Footprint place files" ) + AddFileExtListToFilter( { "pos" } );
  218. }
  219. wxString Shapes3DFileWildcard()
  220. {
  221. return _( "VRML and X3D files" ) + AddFileExtListToFilter( { "wrl", "x3d" } );
  222. }
  223. wxString IDF3DFileWildcard()
  224. {
  225. return _( "IDFv3 footprint files" ) + AddFileExtListToFilter( { "idf" } );
  226. }
  227. wxString TextFileWildcard()
  228. {
  229. return _( "Text files" ) + AddFileExtListToFilter( { "txt" } );
  230. }
  231. wxString ModLegacyExportFileWildcard()
  232. {
  233. return _( "Legacy footprint export files" ) + AddFileExtListToFilter( { "emp" } );
  234. }
  235. wxString ErcFileWildcard()
  236. {
  237. return _( "Electronic rule check file" ) + AddFileExtListToFilter( { "erc" } );
  238. }
  239. wxString SpiceLibraryFileWildcard()
  240. {
  241. return _( "Spice library file" ) + AddFileExtListToFilter( { "lib" } );
  242. }
  243. wxString SpiceNetlistFileWildcard()
  244. {
  245. return _( "SPICE netlist file" ) + AddFileExtListToFilter( { "cir" } );
  246. }
  247. wxString CadstarNetlistFileWildcard()
  248. {
  249. return _( "CadStar netlist file" ) + AddFileExtListToFilter( { "frp" } );
  250. }
  251. wxString EquFileWildcard()
  252. {
  253. return _( "Symbol footprint association files" ) + AddFileExtListToFilter( { "equ" } );
  254. }
  255. wxString ZipFileWildcard()
  256. {
  257. return _( "Zip file" ) + AddFileExtListToFilter( { "zip" } );
  258. }
  259. wxString GencadFileWildcard()
  260. {
  261. return _( "GenCAD 1.4 board files" ) + AddFileExtListToFilter( { "cad" } );
  262. }
  263. wxString DxfFileWildcard()
  264. {
  265. return _( "DXF Files" ) + AddFileExtListToFilter( { "dxf" } );
  266. }
  267. wxString GerberJobFileWildcard()
  268. {
  269. return _( "Gerber job file" ) + AddFileExtListToFilter( { "gbrjob" } );
  270. }
  271. wxString SpecctraDsnFileWildcard()
  272. {
  273. return _( "Specctra DSN file" ) + AddFileExtListToFilter( { "dsn" } );
  274. }
  275. wxString IpcD356FileWildcard()
  276. {
  277. return _( "IPC-D-356 Test Files" ) + AddFileExtListToFilter( { "d356" } );
  278. }
  279. wxString WorkbookFileWildcard()
  280. {
  281. return _( "Workbook file" ) + AddFileExtListToFilter( { "wbk" } );
  282. }
  283. wxString PngFileWildcard()
  284. {
  285. return _( "PNG file" ) + AddFileExtListToFilter( { "png" } );
  286. }
  287. wxString JpegFileWildcard()
  288. {
  289. return _( "Jpeg file" ) + AddFileExtListToFilter( { "jpg", "jpeg" } );
  290. }