CSchemeItem.cpp 1.5 KB

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