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.

115 lines
3.0 KiB

  1. /*
  2. * This program source code file is part of KiCad, a free EDA CAD application.
  3. *
  4. * Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com>
  5. * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
  6. *
  7. * This program is free software: you can redistribute it and/or modify it
  8. * under the terms of the GNU General Public License as published by the
  9. * Free Software Foundation, either version 3 of the License, or (at your
  10. * option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful, but
  13. * WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License along
  18. * with this program. If not, see <http://www.gnu.org/licenses/>.
  19. */
  20. #ifndef JOB_EXPORT_SCH_PLOT_H
  21. #define JOB_EXPORT_SCH_PLOT_H
  22. #include <vector>
  23. #include <kicommon.h>
  24. #include "job.h"
  25. enum class JOB_PAGE_SIZE
  26. {
  27. PAGE_SIZE_AUTO,
  28. PAGE_SIZE_A4,
  29. PAGE_SIZE_A
  30. };
  31. enum class SCH_PLOT_FORMAT
  32. {
  33. HPGL,
  34. POST,
  35. DXF,
  36. PDF,
  37. SVG
  38. };
  39. class KICOMMON_API JOB_EXPORT_SCH_PLOT : public JOB
  40. {
  41. public:
  42. JOB_EXPORT_SCH_PLOT( bool aOutputIsDirectory );
  43. SCH_PLOT_FORMAT m_plotFormat;
  44. wxString m_filename;
  45. wxString m_drawingSheet;
  46. wxString m_defaultFont;
  47. bool m_plotAll;
  48. bool m_plotDrawingSheet;
  49. std::vector<wxString> m_plotPages;
  50. bool m_show_hop_over;
  51. bool m_blackAndWhite;
  52. JOB_PAGE_SIZE m_pageSizeSelect;
  53. bool m_useBackgroundColor;
  54. int m_minPenWidth;
  55. bool m_PDFPropertyPopups;
  56. bool m_PDFHierarchicalLinks;
  57. bool m_PDFMetadata;
  58. wxString m_theme;
  59. };
  60. class KICOMMON_API JOB_EXPORT_SCH_PLOT_PDF : public JOB_EXPORT_SCH_PLOT
  61. {
  62. public:
  63. JOB_EXPORT_SCH_PLOT_PDF( bool aOutputIsDirectory = true );
  64. wxString GetDefaultDescription() const override;
  65. wxString GetSettingsDialogTitle() const override;
  66. };
  67. class KICOMMON_API JOB_EXPORT_SCH_PLOT_DXF : public JOB_EXPORT_SCH_PLOT
  68. {
  69. public:
  70. JOB_EXPORT_SCH_PLOT_DXF();
  71. wxString GetDefaultDescription() const override;
  72. wxString GetSettingsDialogTitle() const override;
  73. };
  74. class KICOMMON_API JOB_EXPORT_SCH_PLOT_SVG : public JOB_EXPORT_SCH_PLOT
  75. {
  76. public:
  77. JOB_EXPORT_SCH_PLOT_SVG();
  78. wxString GetDefaultDescription() const override;
  79. wxString GetSettingsDialogTitle() const override;
  80. };
  81. class KICOMMON_API JOB_EXPORT_SCH_PLOT_PS : public JOB_EXPORT_SCH_PLOT
  82. {
  83. public:
  84. JOB_EXPORT_SCH_PLOT_PS();
  85. wxString GetDefaultDescription() const override;
  86. wxString GetSettingsDialogTitle() const override;
  87. };
  88. class KICOMMON_API JOB_EXPORT_SCH_PLOT_HPGL : public JOB_EXPORT_SCH_PLOT
  89. {
  90. public:
  91. JOB_EXPORT_SCH_PLOT_HPGL();
  92. wxString GetDefaultDescription() const override;
  93. };
  94. #endif