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.

76 lines
2.2 KiB

  1. /*
  2. * This program source code file is part of KiCad, a free EDA CAD application.
  3. *
  4. * Copyright (C) 2020 Jon Evans <jon@craftyjon.com>
  5. * Copyright (C) 2020 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 KICAD_DIALOG_DIMENSION_PROPERTIES_H
  21. #define KICAD_DIALOG_DIMENSION_PROPERTIES_H
  22. #include <widgets/unit_binder.h>
  23. #include <wx/valnum.h>
  24. #include "dialog_dimension_properties_base.h"
  25. class BOARD_ITEM;
  26. class PCB_DIMENSION_BASE;
  27. class PCB_BASE_EDIT_FRAME;
  28. class DIALOG_DIMENSION_PROPERTIES : public DIALOG_DIMENSION_PROPERTIES_BASE
  29. {
  30. public:
  31. DIALOG_DIMENSION_PROPERTIES( PCB_BASE_EDIT_FRAME* aParent, BOARD_ITEM* aItem );
  32. ~DIALOG_DIMENSION_PROPERTIES();
  33. protected:
  34. bool TransferDataToWindow() override;
  35. bool TransferDataFromWindow() override;
  36. private:
  37. PCB_BASE_EDIT_FRAME* m_frame;
  38. PCB_DIMENSION_BASE* m_dimension;
  39. PCB_DIMENSION_BASE* m_previewDimension;
  40. PCB_LAYER_BOX_SELECTOR* m_cbLayerActual; // The active layer box control
  41. wxTextCtrl* m_txtValueActual; // The active value control
  42. UNIT_BINDER m_textWidth;
  43. UNIT_BINDER m_textHeight;
  44. UNIT_BINDER m_textThickness;
  45. UNIT_BINDER m_textPosX;
  46. UNIT_BINDER m_textPosY;
  47. wxFloatingPointValidator<double> m_orientValidator;
  48. double m_orientValue;
  49. UNIT_BINDER m_lineThickness;
  50. UNIT_BINDER m_arrowLength;
  51. UNIT_BINDER m_extensionOffset;
  52. void updateDimensionFromDialog( PCB_DIMENSION_BASE* aTarget );
  53. void updatePreviewText();
  54. };
  55. #endif // KICAD_DIALOG_DIMENSION_PROPERTIES_H