File indexing completed on 2024-05-12 03:48:24
0001 /* 0002 File : WorksheetElementContainer.h 0003 Project : LabPlot 0004 Description : Worksheet element container - parent of multiple elements. 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2009 Tilman Benkert <thzs@gmx.net> 0007 SPDX-FileCopyrightText: 2012-2021 Alexander Semke <alexander.semke@web.de> 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #ifndef WORKSHEETELEMENTCONTAINER_H 0012 #define WORKSHEETELEMENTCONTAINER_H 0013 0014 #include "backend/worksheet/WorksheetElement.h" 0015 0016 class WorksheetElementContainerPrivate; 0017 class ResizeItem; 0018 0019 class WorksheetElementContainer : public WorksheetElement { 0020 Q_OBJECT 0021 0022 public: 0023 WorksheetElementContainer(const QString&, AspectType); 0024 ~WorksheetElementContainer() override; 0025 0026 void setVisible(bool) override; 0027 bool isFullyVisible() const override; 0028 void setPrinting(bool) override; 0029 void setResizeEnabled(bool); 0030 0031 QRectF rect() const; 0032 virtual void setRect(const QRectF&) = 0; 0033 virtual void setPrevRect(const QRectF&) = 0; 0034 virtual void prepareGeometryChange(); 0035 void handleResize(double horizontalRatio, double verticalRatio, bool pageResize = false) override; 0036 0037 typedef WorksheetElementContainerPrivate Private; 0038 0039 public Q_SLOTS: 0040 virtual void retransform() override; 0041 void childHovered(); 0042 void childUnhovered(); 0043 0044 protected: 0045 WorksheetElementContainer(const QString&, WorksheetElementContainerPrivate*, AspectType); 0046 ResizeItem* m_resizeItem{nullptr}; 0047 0048 protected Q_SLOTS: 0049 virtual void handleAspectAdded(const AbstractAspect*); 0050 0051 private: 0052 Q_DECLARE_PRIVATE(WorksheetElementContainer) 0053 0054 Q_SIGNALS: 0055 friend class WorksheetElementContainerSetVisibleCmd; 0056 }; 0057 0058 #endif