ExpandCollapseToggler.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <SceneAPI/SceneUI/CommonWidgets/ExpandCollapseToggler.h>
  9. #include <QPainter>
  10. namespace AZ
  11. {
  12. namespace SceneAPI
  13. {
  14. namespace SceneUI
  15. {
  16. ExpandCollapseToggler::ExpandCollapseToggler(QWidget* parent)
  17. : QAbstractButton(parent)
  18. , m_expandActionImage(":/SceneUI/Common/ExpandIcon.png")
  19. , m_collapseActionImage(":/SceneUI/Common/CollapseIcon.png")
  20. {
  21. setCheckable(true);
  22. connect(this, &ExpandCollapseToggler::toggled, this, &ExpandCollapseToggler::ExpandedChanged);
  23. }
  24. void ExpandCollapseToggler::SetExpanded(bool isExpanded)
  25. {
  26. setChecked(isExpanded);
  27. }
  28. bool ExpandCollapseToggler::IsExpanded() const
  29. {
  30. return isChecked();
  31. }
  32. const QImage* ExpandCollapseToggler::CurrentTargetImage() const
  33. {
  34. return IsExpanded() ? &m_collapseActionImage : &m_expandActionImage;
  35. }
  36. QSize ExpandCollapseToggler::sizeHint() const
  37. {
  38. return CurrentTargetImage()->size();
  39. }
  40. void ExpandCollapseToggler::paintEvent([[maybe_unused]] QPaintEvent* evt)
  41. {
  42. QPainter painter(this);
  43. const QImage* target = CurrentTargetImage();
  44. painter.drawImage(QPoint(0,0), *target);
  45. }
  46. } // SceneUI
  47. } // SceneAPI
  48. } // AZ
  49. #include <CommonWidgets/moc_ExpandCollapseToggler.cpp>