diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /include/svx/svdglev.hxx | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'include/svx/svdglev.hxx')
-rw-r--r-- | include/svx/svdglev.hxx | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/include/svx/svdglev.hxx b/include/svx/svdglev.hxx new file mode 100644 index 000000000..5a7d3a2eb --- /dev/null +++ b/include/svx/svdglev.hxx @@ -0,0 +1,85 @@ +/* -*- 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/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_SVX_SVDGLEV_HXX +#define INCLUDED_SVX_SVDGLEV_HXX + +#include <svx/svxdllapi.h> +#include <svx/svdpoev.hxx> + +class SdrGluePoint; + + +// Edit GluePoints at the objects (GluePoints for connector) + + +class SVXCORE_DLLPUBLIC SdrGlueEditView : public SdrPolyEditView +{ + // copy marked GluePoints and mark instead of the old ones + void ImpCopyMarkedGluePoints(); + typedef void (*PGlueDoFunc)(SdrGluePoint&, const SdrObject* pObj, const void*, const void*, const void*, const void*); + typedef void (*PGlueTrFunc)(Point&, const void*, const void*, const void*, const void*); + void ImpDoMarkedGluePoints(PGlueDoFunc pDoFunc, bool bConst, const void* p1, const void* p2=nullptr, const void* p3=nullptr, const void* p4=nullptr); + void ImpTransformMarkedGluePoints(PGlueTrFunc pTrFunc, const void* p1, const void* p2=nullptr, const void* p3=nullptr, const void* p4=nullptr); + +protected: + // #i71538# make constructors of SdrView sub-components protected to avoid incomplete incarnations which may get casted to SdrView + SdrGlueEditView( + SdrModel& rSdrModel, + OutputDevice* pOut); + + virtual ~SdrGlueEditView() override; + +public: + // the parameter nThisEsc is used to hand over the direction, + // which one wished to check,set or delete + // possible values for nThisEsc are: + // SdrEscapeDirection::LEFT, SdrEscapeDirection::RIGHT, SdrEscapeDirection::TOP and SdrEscapeDirection::BOTTOM + TriState IsMarkedGluePointsEscDir(SdrEscapeDirection nThisEsc) const; + void SetMarkedGluePointsEscDir(SdrEscapeDirection nThisEsc, bool bOn); + + // check/set, if the GluePoints are relative to the + // object size (Percent=sal_True) or not (Percent=sal_False) + TriState IsMarkedGluePointsPercent() const; + void SetMarkedGluePointsPercent(bool bOn); + + // bVert=FALSE: check/set horizontal alignment + // SdrAlign::HORZ_CENTER + // SdrAlign::HORZ_LEFT + // SdrAlign::HORZ_RIGHT + // SdrAlign::HORZ_DONTCARE (only at Get()) + // bVert=TRUE: check/set vertical alignment + // SdrAlign::VERT_CENTER + // SdrAlign::VERT_TOP + // SdrAlign::VERT_BOTTOM + // SdrAlign::VERT_DONTCARE (only at Get()) + SdrAlign GetMarkedGluePointsAlign(bool bVert) const; + void SetMarkedGluePointsAlign(bool bVert, SdrAlign nAlign); + + // delete all marked GluePoints + void DeleteMarkedGluePoints(); + + void MoveMarkedGluePoints (const Size& rSiz, bool bCopy); + void ResizeMarkedGluePoints(const Point& rRef, const Fraction& xFact, const Fraction& yFact, bool bCopy); + void RotateMarkedGluePoints(const Point& rRef, Degree100 nAngle, bool bCopy); +}; + +#endif // INCLUDED_SVX_SVDGLEV_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |