CSchemeItem.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include "CSchemeItem.h"
  2. #include "CRectItem.h"
  3. #include "CTextItem.h"
  4. #include "CLineItem.h"
  5. CSchemeItem::CSchemeItem(const QString text, QObject *parent) : QObject(parent)
  6. {
  7. m_rectItem = new CRectItem();
  8. m_textItem = new CTextItem(text, m_rectItem);
  9. m_lineItem = new CLineItem(m_rectItem);
  10. setMinHeight(100);
  11. m_textItem->setAllowEdit(false);
  12. }
  13. CRectItem *CSchemeItem::rectItem() const
  14. {
  15. return m_rectItem;
  16. }
  17. CTextItem *CSchemeItem::textItem() const
  18. {
  19. return m_textItem;
  20. }
  21. CLineItem *CSchemeItem::lineItem() const
  22. {
  23. return m_lineItem;
  24. }
  25. qreal CSchemeItem::xMargin() const
  26. {
  27. return m_xMargin;
  28. }
  29. void CSchemeItem::setXMargin(qreal x)
  30. {
  31. m_xMargin = x;
  32. }
  33. qreal CSchemeItem::yMargin() const
  34. {
  35. return m_yMargin;
  36. }
  37. void CSchemeItem::setYMargin(qreal y)
  38. {
  39. m_yMargin = y;
  40. }
  41. qreal CSchemeItem::minWidth() const
  42. {
  43. return m_minWidth;
  44. }
  45. void CSchemeItem::setMinWidth(qreal w)
  46. {
  47. m_minWidth = w;
  48. }
  49. qreal CSchemeItem::minHeight() const
  50. {
  51. return m_minHeight;
  52. }
  53. void CSchemeItem::setMinHeight(qreal h)
  54. {
  55. m_minHeight = h;
  56. }
  57. qreal CSchemeItem::textWidth() const
  58. {
  59. return m_textItem->boundingRect().width();
  60. }
  61. qreal CSchemeItem::textHeight() const
  62. {
  63. return m_textItem->boundingRect().height();
  64. }
  65. qreal CSchemeItem::borderWidth() const
  66. {
  67. return std::max(textWidth() + m_xMargin * 2, m_minWidth);
  68. }
  69. qreal CSchemeItem::borderHeight() const
  70. {
  71. return std::max(textHeight() + m_yMargin * 2, m_minHeight);
  72. }