diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
commit | 267c6f2ac71f92999e969232431ba04678e7437e (patch) | |
tree | 358c9467650e1d0a1d7227a21dac2e3d08b622b2 /include/vcl/pdf | |
parent | Initial commit. (diff) | |
download | libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip |
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'include/vcl/pdf')
-rw-r--r-- | include/vcl/pdf/PDFAnnotAActionType.hxx | 25 | ||||
-rw-r--r-- | include/vcl/pdf/PDFAnnotationMarker.hxx | 77 | ||||
-rw-r--r-- | include/vcl/pdf/PDFAnnotationSubType.hxx | 50 | ||||
-rw-r--r-- | include/vcl/pdf/PDFBitmapType.hxx | 26 | ||||
-rw-r--r-- | include/vcl/pdf/PDFErrorType.hxx | 28 | ||||
-rw-r--r-- | include/vcl/pdf/PDFFillMode.hxx | 24 | ||||
-rw-r--r-- | include/vcl/pdf/PDFFindFlags.hxx | 35 | ||||
-rw-r--r-- | include/vcl/pdf/PDFFormFieldType.hxx | 29 | ||||
-rw-r--r-- | include/vcl/pdf/PDFObjectType.hxx | 31 | ||||
-rw-r--r-- | include/vcl/pdf/PDFPageObjectType.hxx | 27 | ||||
-rw-r--r-- | include/vcl/pdf/PDFSegmentType.hxx | 25 | ||||
-rw-r--r-- | include/vcl/pdf/PDFTextRenderMode.hxx | 30 |
12 files changed, 407 insertions, 0 deletions
diff --git a/include/vcl/pdf/PDFAnnotAActionType.hxx b/include/vcl/pdf/PDFAnnotAActionType.hxx new file mode 100644 index 0000000000..099dcda813 --- /dev/null +++ b/include/vcl/pdf/PDFAnnotAActionType.hxx @@ -0,0 +1,25 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFAnnotAActionType +{ + KeyStroke = 12, + Format = 13, + Validate = 14, + Calculate = 15, +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFAnnotationMarker.hxx b/include/vcl/pdf/PDFAnnotationMarker.hxx new file mode 100644 index 0000000000..c4be54d693 --- /dev/null +++ b/include/vcl/pdf/PDFAnnotationMarker.hxx @@ -0,0 +1,77 @@ +/* -*- 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/. + * + */ + +#pragma once + +#include <vcl/dllapi.h> +#include <tools/color.hxx> +#include <basegfx/polygon/b2dpolygon.hxx> +#include <basegfx/point/b2dpoint.hxx> + +namespace vcl::pdf +{ +struct VCL_DLLPUBLIC PDFAnnotationMarker +{ + PDFAnnotationMarker() + : mnWidth(0.0f) + , maFillColor(COL_TRANSPARENT) + { + } + + float mnWidth; + Color maFillColor; +}; + +struct VCL_DLLPUBLIC PDFAnnotationMarkerCircle : public PDFAnnotationMarker +{ +}; + +struct VCL_DLLPUBLIC PDFAnnotationMarkerSquare : public PDFAnnotationMarker +{ +}; + +struct VCL_DLLPUBLIC PDFAnnotationMarkerInk : public PDFAnnotationMarker +{ + std::vector<basegfx::B2DPolygon> maStrokes; +}; + +struct VCL_DLLPUBLIC PDFAnnotationMarkerPolygon : public PDFAnnotationMarker +{ + basegfx::B2DPolygon maPolygon; +}; + +struct VCL_DLLPUBLIC PDFAnnotationMarkerLine : public PDFAnnotationMarker +{ + basegfx::B2DPoint maLineStart; + basegfx::B2DPoint maLineEnd; +}; + +enum class PDFTextMarkerType +{ + Highlight, + Underline, + Squiggly, + StrikeOut +}; + +struct VCL_DLLPUBLIC PDFAnnotationMarkerHighlight : public PDFAnnotationMarker +{ + std::vector<basegfx::B2DPolygon> maQuads; + PDFTextMarkerType meTextMarkerType; + + PDFAnnotationMarkerHighlight(PDFTextMarkerType eTextMarkerType) + : meTextMarkerType(eTextMarkerType) + { + } +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFAnnotationSubType.hxx b/include/vcl/pdf/PDFAnnotationSubType.hxx new file mode 100644 index 0000000000..749100e363 --- /dev/null +++ b/include/vcl/pdf/PDFAnnotationSubType.hxx @@ -0,0 +1,50 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFAnnotationSubType +{ + Unknown = 0, + Text = 1, + Link = 2, + FreeText = 3, + Line = 4, + Square = 5, + Circle = 6, + Polygon = 7, + Polyline = 8, + Highlight = 9, + Underline = 10, + Squiggly = 11, + Strikeout = 12, + Stamp = 13, + Caret = 14, + Ink = 15, + Popup = 16, + FileAttachment = 17, + Sound = 18, + Movie = 19, + Widget = 20, + Screen = 21, + Printermark = 22, + Trapnet = 23, + Watermark = 24, + Threed = 25, + Richmedia = 26, + XFAWidget = 27, + Redact = 28 +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFBitmapType.hxx b/include/vcl/pdf/PDFBitmapType.hxx new file mode 100644 index 0000000000..fe5921276e --- /dev/null +++ b/include/vcl/pdf/PDFBitmapType.hxx @@ -0,0 +1,26 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFBitmapType +{ + Unknown = 0, + Gray = 1, + BGR = 2, + BGRx = 3, + BGRA = 4, +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFErrorType.hxx b/include/vcl/pdf/PDFErrorType.hxx new file mode 100644 index 0000000000..82cee9e5e7 --- /dev/null +++ b/include/vcl/pdf/PDFErrorType.hxx @@ -0,0 +1,28 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFErrorType +{ + Success = 0, + Unknown = 1, + File = 2, + Format = 3, + Password = 4, + Security = 5, + Page = 6, +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFFillMode.hxx b/include/vcl/pdf/PDFFillMode.hxx new file mode 100644 index 0000000000..e5bc71f0d1 --- /dev/null +++ b/include/vcl/pdf/PDFFillMode.hxx @@ -0,0 +1,24 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFFillMode +{ + None = 0, + Alternate = 1, + Winding = 2, +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFFindFlags.hxx b/include/vcl/pdf/PDFFindFlags.hxx new file mode 100644 index 0000000000..3ad8c77e39 --- /dev/null +++ b/include/vcl/pdf/PDFFindFlags.hxx @@ -0,0 +1,35 @@ +/* -*- 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/. + * + */ + +#pragma once + +#include <o3tl/typed_flags_set.hxx> +#include <sal/types.h> + +namespace vcl::pdf +{ +enum class PDFFindFlags : sal_uInt32 +{ + MatchCase = 0x00000001, + MatchWholeWord = 0x00000002, + Consecutive = 0x00000004, +}; + +} // namespace vcl::pdf + +namespace o3tl +{ +template <> +struct typed_flags<vcl::pdf::PDFFindFlags> : is_typed_flags<vcl::pdf::PDFFindFlags, 0x00000007> +{ +}; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFFormFieldType.hxx b/include/vcl/pdf/PDFFormFieldType.hxx new file mode 100644 index 0000000000..96be9bffc1 --- /dev/null +++ b/include/vcl/pdf/PDFFormFieldType.hxx @@ -0,0 +1,29 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFFormFieldType +{ + Unknown = 0, + PushButton = 1, + CheckBox = 2, + RadioButton = 3, + ComboBox = 4, + ListBox = 5, + TextField = 6, + Signature = 7 +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFObjectType.hxx b/include/vcl/pdf/PDFObjectType.hxx new file mode 100644 index 0000000000..c3ee6c7526 --- /dev/null +++ b/include/vcl/pdf/PDFObjectType.hxx @@ -0,0 +1,31 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFObjectType +{ + Unknown = 0, + Boolean = 1, + Number = 2, + String = 3, + Name = 4, + Array = 5, + Dictionary = 6, + Stream = 7, + Nullobj = 8, + Reference = 9 +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFPageObjectType.hxx b/include/vcl/pdf/PDFPageObjectType.hxx new file mode 100644 index 0000000000..68e763e64b --- /dev/null +++ b/include/vcl/pdf/PDFPageObjectType.hxx @@ -0,0 +1,27 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFPageObjectType +{ + Unknown = 0, + Text = 1, + Path = 2, + Image = 3, + Shading = 4, + Form = 5 +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFSegmentType.hxx b/include/vcl/pdf/PDFSegmentType.hxx new file mode 100644 index 0000000000..98f74482e6 --- /dev/null +++ b/include/vcl/pdf/PDFSegmentType.hxx @@ -0,0 +1,25 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFSegmentType +{ + Unknown = -1, + Lineto = 0, + Bezierto = 1, + Moveto = 2, +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/pdf/PDFTextRenderMode.hxx b/include/vcl/pdf/PDFTextRenderMode.hxx new file mode 100644 index 0000000000..366a080fb7 --- /dev/null +++ b/include/vcl/pdf/PDFTextRenderMode.hxx @@ -0,0 +1,30 @@ +/* -*- 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/. + * + */ + +#pragma once + +namespace vcl::pdf +{ +enum class PDFTextRenderMode +{ + Unknown = -1, + Fill = 0, + Stroke = 1, + FillStroke = 2, + Invisible = 3, + FillClip = 4, + StrokeClip = 5, + FillStrokeClip = 6, + Clip = 7 +}; + +} // namespace vcl::pdf + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |