summaryrefslogtreecommitdiff
path: root/svx/source/inc/svdobjplusdata.hxx
blob: ef2bc2abd027ba9a3b4f439d7e27d56ef82929e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

#ifndef INCLUDED_SVX_SVDOBJPLUSDATA_HXX
#define INCLUDED_SVX_SVDOBJPLUSDATA_HXX

#include <rtl/ustring.hxx>
#include <memory>

class SdrObject;
class SfxBroadcaster;
class SdrObjUserDataList;
class SdrGluePointList;

// Bitsack for DrawObjects
class SdrObjPlusData final
{
    friend class                SdrObject;

    std::unique_ptr<SfxBroadcaster>      pBroadcast;    // broadcaster, if this object is referenced (bVirtObj=true). Also for connectors etc.
    std::unique_ptr<SdrObjUserDataList>  pUserDataList; // application specific data
    std::unique_ptr<SdrGluePointList>    pGluePoints;   // gluepoints for glueing object connectors

    // #i68101#
    // object name, title and description
    OUString aObjName;
    OUString aObjTitle;
    OUString aObjDescription;
    bool isDecorative = false;

public:
    SdrObjPlusData();
    ~SdrObjPlusData();
    SdrObjPlusData* Clone(SdrObject* pObj1) const;

    void SetGluePoints(const SdrGluePointList& rPts);
};

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */