ctkDynamicSpacer.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*=========================================================================
  2. Library: CTK
  3. Copyright (c) Kitware Inc.
  4. All rights reserved.
  5. Distributed under a BSD License. See LICENSE.txt file.
  6. This software is distributed "AS IS" WITHOUT ANY WARRANTY; without even
  7. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8. See the above copyright notice for more information.
  9. =========================================================================*/
  10. // CTK includes
  11. #include "ctkDynamicSpacer.h"
  12. // -----------------------------------------------------------------------------
  13. class ctkDynamicSpacerPrivate : public ctkPrivate<ctkDynamicSpacer>
  14. {
  15. CTK_DECLARE_PUBLIC(ctkDynamicSpacer);
  16. public:
  17. void init();
  18. QSizePolicy ActiveSizePolicy;
  19. QSizePolicy InactiveSizePolicy;
  20. };
  21. // -----------------------------------------------------------------------------
  22. void ctkDynamicSpacerPrivate::init()
  23. {
  24. CTK_P(ctkDynamicSpacer);
  25. this->ActiveSizePolicy = p->sizePolicy();
  26. this->InactiveSizePolicy = p->sizePolicy();
  27. }
  28. // -----------------------------------------------------------------------------
  29. ctkDynamicSpacer::ctkDynamicSpacer(QWidget *_parent)
  30. :QWidget(_parent)
  31. {
  32. CTK_INIT_PRIVATE(ctkDynamicSpacer);
  33. ctk_d()->init();
  34. }
  35. // -----------------------------------------------------------------------------
  36. ctkDynamicSpacer::~ctkDynamicSpacer()
  37. {
  38. }
  39. // -----------------------------------------------------------------------------
  40. QSizePolicy ctkDynamicSpacer::activeSizePolicy() const
  41. {
  42. CTK_D(const ctkDynamicSpacer);
  43. return d->ActiveSizePolicy;
  44. }
  45. // -----------------------------------------------------------------------------
  46. void ctkDynamicSpacer::setActiveSizePolicy(QSizePolicy newActiveSizePolicy)
  47. {
  48. CTK_D(ctkDynamicSpacer);
  49. d->ActiveSizePolicy = newActiveSizePolicy;
  50. }
  51. // -----------------------------------------------------------------------------
  52. QSizePolicy ctkDynamicSpacer::inactiveSizePolicy() const
  53. {
  54. CTK_D(const ctkDynamicSpacer);
  55. return d->InactiveSizePolicy;
  56. }
  57. // -----------------------------------------------------------------------------
  58. void ctkDynamicSpacer::setInactiveSizePolicy(QSizePolicy newInactiveSizePolicy)
  59. {
  60. CTK_D(ctkDynamicSpacer);
  61. d->InactiveSizePolicy = newInactiveSizePolicy;
  62. }
  63. // -----------------------------------------------------------------------------
  64. void ctkDynamicSpacer::activate(bool enableSizePolicy)
  65. {
  66. CTK_D(ctkDynamicSpacer);
  67. this->setSizePolicy(
  68. enableSizePolicy ? d->ActiveSizePolicy : d->InactiveSizePolicy);
  69. }