/src/libreoffice/include/oox/export/utils.hxx
Line | Count | Source |
1 | | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
2 | | /* |
3 | | * This file is part of the LibreOffice project. |
4 | | * |
5 | | * This Source Code Form is subject to the terms of the Mozilla Public |
6 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
8 | | * |
9 | | * This file incorporates work covered by the following license notice: |
10 | | * |
11 | | * Licensed to the Apache Software Foundation (ASF) under one or more |
12 | | * contributor license agreements. See the NOTICE file distributed |
13 | | * with this work for additional information regarding copyright |
14 | | * ownership. The ASF licenses this file to you under the Apache |
15 | | * License, Version 2.0 (the "License"); you may not use this file |
16 | | * except in compliance with the License. You may obtain a copy of |
17 | | * the License at http://www.apache.org/licenses/LICENSE-2.0 . |
18 | | */ |
19 | | |
20 | | #pragma once |
21 | | |
22 | | #include <sal/config.h> |
23 | | |
24 | | #include <o3tl/unit_conversion.hxx> |
25 | | #include <rtl/strbuf.hxx> |
26 | | #include <rtl/string.hxx> |
27 | | #include <sal/types.h> |
28 | | |
29 | | #include <cmath> |
30 | | |
31 | | // Only used to output rgb colors as hex |
32 | | inline OString I32SHEX(sal_Int32 x) |
33 | 0 | { |
34 | 0 | assert(x <= 0xffffff); |
35 | 0 | rtl::OStringBuffer aRes(6); |
36 | 0 | aRes.setLength(6); |
37 | 0 | sal_Int32 n = 0; |
38 | 0 | for (int nShift = 24-4; nShift >=0; nShift -= 4) |
39 | 0 | { |
40 | 0 | char nDigit = static_cast<char>((x >> nShift) & 0xf); |
41 | 0 | if ( nDigit > 9 ) |
42 | 0 | aRes[n] = (nDigit-10) + 'A'; |
43 | 0 | else |
44 | 0 | aRes[n] = (nDigit + '0'); |
45 | 0 | n++; |
46 | 0 | } |
47 | 0 | return aRes.makeStringAndClear(); |
48 | 0 | } |
49 | | |
50 | | /** |
51 | | * @return const char* literal "true" for true value, or literal "false" |
52 | | * for false value. |
53 | | */ |
54 | | static constexpr const char* ToPsz(bool b) |
55 | 0 | { |
56 | 0 | return b ? "true" : "false"; |
57 | 0 | } Unexecuted instantiation: xeroot.cxx:ToPsz(bool) Unexecuted instantiation: xestyle.cxx:ToPsz(bool) Unexecuted instantiation: excdoc.cxx:ToPsz(bool) Unexecuted instantiation: excrecds.cxx:ToPsz(bool) Unexecuted instantiation: xecontent.cxx:ToPsz(bool) Unexecuted instantiation: xedbdata.cxx:ToPsz(bool) Unexecuted instantiation: xeescher.cxx:ToPsz(bool) Unexecuted instantiation: xeextlst.cxx:ToPsz(bool) Unexecuted instantiation: xename.cxx:ToPsz(bool) Unexecuted instantiation: xepage.cxx:ToPsz(bool) Unexecuted instantiation: xepivotxml.cxx:ToPsz(bool) Unexecuted instantiation: xerecord.cxx:ToPsz(bool) Unexecuted instantiation: xestream.cxx:ToPsz(bool) Unexecuted instantiation: xetable.cxx:ToPsz(bool) Unexecuted instantiation: xeview.cxx:ToPsz(bool) Unexecuted instantiation: NamedSheetViews.cxx:ToPsz(bool) Unexecuted instantiation: SparklineExt.cxx:ToPsz(bool) Unexecuted instantiation: XclExpChangeTrack.cxx:ToPsz(bool) Unexecuted instantiation: xcl97esc.cxx:ToPsz(bool) Unexecuted instantiation: xcl97rec.cxx:ToPsz(bool) Unexecuted instantiation: xechart.cxx:ToPsz(bool) Unexecuted instantiation: chartexport.cxx:ToPsz(bool) Unexecuted instantiation: shape.cxx:ToPsz(bool) Unexecuted instantiation: textbodycontext.cxx:ToPsz(bool) Unexecuted instantiation: drawingml.cxx:ToPsz(bool) Unexecuted instantiation: shapes.cxx:ToPsz(bool) Unexecuted instantiation: vmlexport.cxx:ToPsz(bool) Unexecuted instantiation: ThemeExport.cxx:ToPsz(bool) Unexecuted instantiation: imexport.cxx:ToPsz(bool) Unexecuted instantiation: diagram.cxx:ToPsz(bool) Unexecuted instantiation: DMLPresetShapeExport.cxx:ToPsz(bool) Unexecuted instantiation: datamodel_oox.cxx:ToPsz(bool) Unexecuted instantiation: unodoc.cxx:ToPsz(bool) Unexecuted instantiation: unofilter.cxx:ToPsz(bool) Unexecuted instantiation: unomodel.cxx:ToPsz(bool) Unexecuted instantiation: utility.cxx:ToPsz(bool) Unexecuted instantiation: view.cxx:ToPsz(bool) Unexecuted instantiation: mathmlexport.cxx:ToPsz(bool) Unexecuted instantiation: mathmlimport.cxx:ToPsz(bool) Unexecuted instantiation: accessibility.cxx:ToPsz(bool) Unexecuted instantiation: cursor.cxx:ToPsz(bool) Unexecuted instantiation: dialog.cxx:ToPsz(bool) Unexecuted instantiation: document.cxx:ToPsz(bool) Unexecuted instantiation: edit.cxx:ToPsz(bool) Unexecuted instantiation: ooxmlexport.cxx:ToPsz(bool) Unexecuted instantiation: smdll.cxx:ToPsz(bool) Unexecuted instantiation: smmod.cxx:ToPsz(bool) Unexecuted instantiation: action.cxx:ToPsz(bool) Unexecuted instantiation: rtfdocumentimpl.cxx:ToPsz(bool) Unexecuted instantiation: DomainMapper_Impl.cxx:ToPsz(bool) Unexecuted instantiation: GraphicImport.cxx:ToPsz(bool) Unexecuted instantiation: OOXMLFastContextHandler.cxx:ToPsz(bool) Unexecuted instantiation: wrtw8sty.cxx:ToPsz(bool) Unexecuted instantiation: docxattributeoutput.cxx:ToPsz(bool) Unexecuted instantiation: docxexport.cxx:ToPsz(bool) Unexecuted instantiation: docxsdrexport.cxx:ToPsz(bool) Unexecuted instantiation: docxtableexport.cxx:ToPsz(bool) Unexecuted instantiation: rtfattributeoutput.cxx:ToPsz(bool) Unexecuted instantiation: drviews3.cxx:ToPsz(bool) Unexecuted instantiation: eppt.cxx:ToPsz(bool) Unexecuted instantiation: pptx-epptooxml.cxx:ToPsz(bool) Unexecuted instantiation: pptx-animations.cxx:ToPsz(bool) Unexecuted instantiation: pptx-animations-nodectx.cxx:ToPsz(bool) |
58 | | |
59 | | /** |
60 | | * @return literal "1" for true value, or literal "0" for false value. |
61 | | */ |
62 | | static constexpr const char* ToPsz10(bool b) |
63 | 0 | { |
64 | | // xlsx seems to use "1" or "0" for boolean values. I wonder it ever uses |
65 | | // the "true" "false" variant. |
66 | 0 | return b ? "1" : "0"; |
67 | 0 | } Unexecuted instantiation: xeroot.cxx:ToPsz10(bool) Unexecuted instantiation: xestyle.cxx:ToPsz10(bool) Unexecuted instantiation: excdoc.cxx:ToPsz10(bool) Unexecuted instantiation: excrecds.cxx:ToPsz10(bool) Unexecuted instantiation: xecontent.cxx:ToPsz10(bool) Unexecuted instantiation: xedbdata.cxx:ToPsz10(bool) Unexecuted instantiation: xeescher.cxx:ToPsz10(bool) Unexecuted instantiation: xeextlst.cxx:ToPsz10(bool) Unexecuted instantiation: xename.cxx:ToPsz10(bool) Unexecuted instantiation: xepage.cxx:ToPsz10(bool) Unexecuted instantiation: xepivotxml.cxx:ToPsz10(bool) Unexecuted instantiation: xerecord.cxx:ToPsz10(bool) Unexecuted instantiation: xestream.cxx:ToPsz10(bool) Unexecuted instantiation: xetable.cxx:ToPsz10(bool) Unexecuted instantiation: xeview.cxx:ToPsz10(bool) Unexecuted instantiation: NamedSheetViews.cxx:ToPsz10(bool) Unexecuted instantiation: SparklineExt.cxx:ToPsz10(bool) Unexecuted instantiation: XclExpChangeTrack.cxx:ToPsz10(bool) Unexecuted instantiation: xcl97esc.cxx:ToPsz10(bool) Unexecuted instantiation: xcl97rec.cxx:ToPsz10(bool) Unexecuted instantiation: xechart.cxx:ToPsz10(bool) Unexecuted instantiation: chartexport.cxx:ToPsz10(bool) Unexecuted instantiation: shape.cxx:ToPsz10(bool) Unexecuted instantiation: textbodycontext.cxx:ToPsz10(bool) Unexecuted instantiation: drawingml.cxx:ToPsz10(bool) Unexecuted instantiation: shapes.cxx:ToPsz10(bool) Unexecuted instantiation: vmlexport.cxx:ToPsz10(bool) Unexecuted instantiation: ThemeExport.cxx:ToPsz10(bool) Unexecuted instantiation: imexport.cxx:ToPsz10(bool) Unexecuted instantiation: diagram.cxx:ToPsz10(bool) Unexecuted instantiation: DMLPresetShapeExport.cxx:ToPsz10(bool) Unexecuted instantiation: datamodel_oox.cxx:ToPsz10(bool) Unexecuted instantiation: unodoc.cxx:ToPsz10(bool) Unexecuted instantiation: unofilter.cxx:ToPsz10(bool) Unexecuted instantiation: unomodel.cxx:ToPsz10(bool) Unexecuted instantiation: utility.cxx:ToPsz10(bool) Unexecuted instantiation: view.cxx:ToPsz10(bool) Unexecuted instantiation: mathmlexport.cxx:ToPsz10(bool) Unexecuted instantiation: mathmlimport.cxx:ToPsz10(bool) Unexecuted instantiation: accessibility.cxx:ToPsz10(bool) Unexecuted instantiation: cursor.cxx:ToPsz10(bool) Unexecuted instantiation: dialog.cxx:ToPsz10(bool) Unexecuted instantiation: document.cxx:ToPsz10(bool) Unexecuted instantiation: edit.cxx:ToPsz10(bool) Unexecuted instantiation: ooxmlexport.cxx:ToPsz10(bool) Unexecuted instantiation: smdll.cxx:ToPsz10(bool) Unexecuted instantiation: smmod.cxx:ToPsz10(bool) Unexecuted instantiation: action.cxx:ToPsz10(bool) Unexecuted instantiation: rtfdocumentimpl.cxx:ToPsz10(bool) Unexecuted instantiation: DomainMapper_Impl.cxx:ToPsz10(bool) Unexecuted instantiation: GraphicImport.cxx:ToPsz10(bool) Unexecuted instantiation: OOXMLFastContextHandler.cxx:ToPsz10(bool) Unexecuted instantiation: wrtw8sty.cxx:ToPsz10(bool) Unexecuted instantiation: docxattributeoutput.cxx:ToPsz10(bool) Unexecuted instantiation: docxexport.cxx:ToPsz10(bool) Unexecuted instantiation: docxsdrexport.cxx:ToPsz10(bool) Unexecuted instantiation: docxtableexport.cxx:ToPsz10(bool) Unexecuted instantiation: rtfattributeoutput.cxx:ToPsz10(bool) Unexecuted instantiation: drviews3.cxx:ToPsz10(bool) Unexecuted instantiation: eppt.cxx:ToPsz10(bool) Unexecuted instantiation: pptx-epptooxml.cxx:ToPsz10(bool) Unexecuted instantiation: pptx-animations.cxx:ToPsz10(bool) Unexecuted instantiation: pptx-animations-nodectx.cxx:ToPsz10(bool) |
68 | | |
69 | | static constexpr sal_Int64 PPTtoEMU( sal_Int32 nPPT ) |
70 | 0 | { |
71 | 0 | return o3tl::convert(nPPT, o3tl::Length::master, o3tl::Length::emu); |
72 | 0 | } Unexecuted instantiation: xeroot.cxx:PPTtoEMU(int) Unexecuted instantiation: xestyle.cxx:PPTtoEMU(int) Unexecuted instantiation: excdoc.cxx:PPTtoEMU(int) Unexecuted instantiation: excrecds.cxx:PPTtoEMU(int) Unexecuted instantiation: xecontent.cxx:PPTtoEMU(int) Unexecuted instantiation: xedbdata.cxx:PPTtoEMU(int) Unexecuted instantiation: xeescher.cxx:PPTtoEMU(int) Unexecuted instantiation: xeextlst.cxx:PPTtoEMU(int) Unexecuted instantiation: xename.cxx:PPTtoEMU(int) Unexecuted instantiation: xepage.cxx:PPTtoEMU(int) Unexecuted instantiation: xepivotxml.cxx:PPTtoEMU(int) Unexecuted instantiation: xerecord.cxx:PPTtoEMU(int) Unexecuted instantiation: xestream.cxx:PPTtoEMU(int) Unexecuted instantiation: xetable.cxx:PPTtoEMU(int) Unexecuted instantiation: xeview.cxx:PPTtoEMU(int) Unexecuted instantiation: NamedSheetViews.cxx:PPTtoEMU(int) Unexecuted instantiation: SparklineExt.cxx:PPTtoEMU(int) Unexecuted instantiation: XclExpChangeTrack.cxx:PPTtoEMU(int) Unexecuted instantiation: xcl97esc.cxx:PPTtoEMU(int) Unexecuted instantiation: xcl97rec.cxx:PPTtoEMU(int) Unexecuted instantiation: xechart.cxx:PPTtoEMU(int) Unexecuted instantiation: chartexport.cxx:PPTtoEMU(int) Unexecuted instantiation: shape.cxx:PPTtoEMU(int) Unexecuted instantiation: textbodycontext.cxx:PPTtoEMU(int) Unexecuted instantiation: drawingml.cxx:PPTtoEMU(int) Unexecuted instantiation: shapes.cxx:PPTtoEMU(int) Unexecuted instantiation: vmlexport.cxx:PPTtoEMU(int) Unexecuted instantiation: ThemeExport.cxx:PPTtoEMU(int) Unexecuted instantiation: imexport.cxx:PPTtoEMU(int) Unexecuted instantiation: diagram.cxx:PPTtoEMU(int) Unexecuted instantiation: DMLPresetShapeExport.cxx:PPTtoEMU(int) Unexecuted instantiation: datamodel_oox.cxx:PPTtoEMU(int) Unexecuted instantiation: unodoc.cxx:PPTtoEMU(int) Unexecuted instantiation: unofilter.cxx:PPTtoEMU(int) Unexecuted instantiation: unomodel.cxx:PPTtoEMU(int) Unexecuted instantiation: utility.cxx:PPTtoEMU(int) Unexecuted instantiation: view.cxx:PPTtoEMU(int) Unexecuted instantiation: mathmlexport.cxx:PPTtoEMU(int) Unexecuted instantiation: mathmlimport.cxx:PPTtoEMU(int) Unexecuted instantiation: accessibility.cxx:PPTtoEMU(int) Unexecuted instantiation: cursor.cxx:PPTtoEMU(int) Unexecuted instantiation: dialog.cxx:PPTtoEMU(int) Unexecuted instantiation: document.cxx:PPTtoEMU(int) Unexecuted instantiation: edit.cxx:PPTtoEMU(int) Unexecuted instantiation: ooxmlexport.cxx:PPTtoEMU(int) Unexecuted instantiation: smdll.cxx:PPTtoEMU(int) Unexecuted instantiation: smmod.cxx:PPTtoEMU(int) Unexecuted instantiation: action.cxx:PPTtoEMU(int) Unexecuted instantiation: rtfdocumentimpl.cxx:PPTtoEMU(int) Unexecuted instantiation: DomainMapper_Impl.cxx:PPTtoEMU(int) Unexecuted instantiation: GraphicImport.cxx:PPTtoEMU(int) Unexecuted instantiation: OOXMLFastContextHandler.cxx:PPTtoEMU(int) Unexecuted instantiation: wrtw8sty.cxx:PPTtoEMU(int) Unexecuted instantiation: docxattributeoutput.cxx:PPTtoEMU(int) Unexecuted instantiation: docxexport.cxx:PPTtoEMU(int) Unexecuted instantiation: docxsdrexport.cxx:PPTtoEMU(int) Unexecuted instantiation: docxtableexport.cxx:PPTtoEMU(int) Unexecuted instantiation: rtfattributeoutput.cxx:PPTtoEMU(int) Unexecuted instantiation: drviews3.cxx:PPTtoEMU(int) Unexecuted instantiation: eppt.cxx:PPTtoEMU(int) Unexecuted instantiation: pptx-epptooxml.cxx:PPTtoEMU(int) Unexecuted instantiation: pptx-animations.cxx:PPTtoEMU(int) Unexecuted instantiation: pptx-animations-nodectx.cxx:PPTtoEMU(int) |
73 | | |
74 | | static constexpr sal_Int64 TwipsToEMU( sal_Int32 nTwips ) |
75 | 0 | { |
76 | 0 | return o3tl::convert(nTwips, o3tl::Length::twip, o3tl::Length::emu); |
77 | 0 | } Unexecuted instantiation: xeroot.cxx:TwipsToEMU(int) Unexecuted instantiation: xestyle.cxx:TwipsToEMU(int) Unexecuted instantiation: excdoc.cxx:TwipsToEMU(int) Unexecuted instantiation: excrecds.cxx:TwipsToEMU(int) Unexecuted instantiation: xecontent.cxx:TwipsToEMU(int) Unexecuted instantiation: xedbdata.cxx:TwipsToEMU(int) Unexecuted instantiation: xeescher.cxx:TwipsToEMU(int) Unexecuted instantiation: xeextlst.cxx:TwipsToEMU(int) Unexecuted instantiation: xename.cxx:TwipsToEMU(int) Unexecuted instantiation: xepage.cxx:TwipsToEMU(int) Unexecuted instantiation: xepivotxml.cxx:TwipsToEMU(int) Unexecuted instantiation: xerecord.cxx:TwipsToEMU(int) Unexecuted instantiation: xestream.cxx:TwipsToEMU(int) Unexecuted instantiation: xetable.cxx:TwipsToEMU(int) Unexecuted instantiation: xeview.cxx:TwipsToEMU(int) Unexecuted instantiation: NamedSheetViews.cxx:TwipsToEMU(int) Unexecuted instantiation: SparklineExt.cxx:TwipsToEMU(int) Unexecuted instantiation: XclExpChangeTrack.cxx:TwipsToEMU(int) Unexecuted instantiation: xcl97esc.cxx:TwipsToEMU(int) Unexecuted instantiation: xcl97rec.cxx:TwipsToEMU(int) Unexecuted instantiation: xechart.cxx:TwipsToEMU(int) Unexecuted instantiation: chartexport.cxx:TwipsToEMU(int) Unexecuted instantiation: shape.cxx:TwipsToEMU(int) Unexecuted instantiation: textbodycontext.cxx:TwipsToEMU(int) Unexecuted instantiation: drawingml.cxx:TwipsToEMU(int) Unexecuted instantiation: shapes.cxx:TwipsToEMU(int) Unexecuted instantiation: vmlexport.cxx:TwipsToEMU(int) Unexecuted instantiation: ThemeExport.cxx:TwipsToEMU(int) Unexecuted instantiation: imexport.cxx:TwipsToEMU(int) Unexecuted instantiation: diagram.cxx:TwipsToEMU(int) Unexecuted instantiation: DMLPresetShapeExport.cxx:TwipsToEMU(int) Unexecuted instantiation: datamodel_oox.cxx:TwipsToEMU(int) Unexecuted instantiation: unodoc.cxx:TwipsToEMU(int) Unexecuted instantiation: unofilter.cxx:TwipsToEMU(int) Unexecuted instantiation: unomodel.cxx:TwipsToEMU(int) Unexecuted instantiation: utility.cxx:TwipsToEMU(int) Unexecuted instantiation: view.cxx:TwipsToEMU(int) Unexecuted instantiation: mathmlexport.cxx:TwipsToEMU(int) Unexecuted instantiation: mathmlimport.cxx:TwipsToEMU(int) Unexecuted instantiation: accessibility.cxx:TwipsToEMU(int) Unexecuted instantiation: cursor.cxx:TwipsToEMU(int) Unexecuted instantiation: dialog.cxx:TwipsToEMU(int) Unexecuted instantiation: document.cxx:TwipsToEMU(int) Unexecuted instantiation: edit.cxx:TwipsToEMU(int) Unexecuted instantiation: ooxmlexport.cxx:TwipsToEMU(int) Unexecuted instantiation: smdll.cxx:TwipsToEMU(int) Unexecuted instantiation: smmod.cxx:TwipsToEMU(int) Unexecuted instantiation: action.cxx:TwipsToEMU(int) Unexecuted instantiation: rtfdocumentimpl.cxx:TwipsToEMU(int) Unexecuted instantiation: DomainMapper_Impl.cxx:TwipsToEMU(int) Unexecuted instantiation: GraphicImport.cxx:TwipsToEMU(int) Unexecuted instantiation: OOXMLFastContextHandler.cxx:TwipsToEMU(int) Unexecuted instantiation: wrtw8sty.cxx:TwipsToEMU(int) Unexecuted instantiation: docxattributeoutput.cxx:TwipsToEMU(int) Unexecuted instantiation: docxexport.cxx:TwipsToEMU(int) Unexecuted instantiation: docxsdrexport.cxx:TwipsToEMU(int) Unexecuted instantiation: docxtableexport.cxx:TwipsToEMU(int) Unexecuted instantiation: rtfattributeoutput.cxx:TwipsToEMU(int) Unexecuted instantiation: drviews3.cxx:TwipsToEMU(int) Unexecuted instantiation: eppt.cxx:TwipsToEMU(int) Unexecuted instantiation: pptx-epptooxml.cxx:TwipsToEMU(int) Unexecuted instantiation: pptx-animations.cxx:TwipsToEMU(int) Unexecuted instantiation: pptx-animations-nodectx.cxx:TwipsToEMU(int) |
78 | | |
79 | | template <typename T> |
80 | | OString write1000thOfAPercent(T number) |
81 | 0 | { |
82 | 0 | return OString::number( lround(number * 1000.0) ); |
83 | 0 | } |
84 | | |
85 | | namespace oox::drawingml { |
86 | | enum DocumentType { DOCUMENT_DOCX, DOCUMENT_PPTX, DOCUMENT_XLSX }; |
87 | | } |
88 | | |
89 | | /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |