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.

79 lines
2.5 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 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 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. void onFontSelected( wxCommandEvent &aEvent ) override;
  38. void onBoldToggle( wxCommandEvent &aEvent ) override;
  39. void onAlignButton( wxCommandEvent &aEvent ) override;
  40. void onThickness( wxCommandEvent &aEvent ) override;
  41. void updateDimensionFromDialog( PCB_DIMENSION_BASE* aTarget );
  42. void updatePreviewText();
  43. private:
  44. PCB_BASE_EDIT_FRAME* m_frame;
  45. PCB_DIMENSION_BASE* m_dimension;
  46. PCB_DIMENSION_BASE* m_previewDimension;
  47. PCB_LAYER_BOX_SELECTOR* m_cbLayerActual; // The active layer box control
  48. wxTextCtrl* m_txtValueActual; // The active value control
  49. UNIT_BINDER m_textWidth;
  50. UNIT_BINDER m_textHeight;
  51. UNIT_BINDER m_textThickness;
  52. UNIT_BINDER m_textPosX;
  53. UNIT_BINDER m_textPosY;
  54. UNIT_BINDER m_orientation; // rotation in degrees
  55. UNIT_BINDER m_lineThickness;
  56. UNIT_BINDER m_arrowLength;
  57. UNIT_BINDER m_extensionOffset;
  58. UNIT_BINDER m_extensionOvershoot;
  59. };
  60. #endif // KICAD_DIALOG_DIMENSION_PROPERTIES_H