diff options
Diffstat (limited to '')
-rw-r--r-- | vcl/inc/bitmap/BitmapColorizeFilter.hxx | 34 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapDisabledImageFilter.hxx | 26 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapFastScaleFilter.hxx | 36 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapInterpolateScaleFilter.hxx | 35 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapLightenFilter.hxx | 24 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapMaskToAlphaFilter.hxx | 21 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapScaleConvolutionFilter.hxx | 78 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapScaleSuperFilter.hxx | 40 | ||||
-rw-r--r-- | vcl/inc/bitmap/BitmapWriteAccess.hxx | 94 | ||||
-rw-r--r-- | vcl/inc/bitmap/Octree.hxx | 82 | ||||
-rw-r--r-- | vcl/inc/bitmap/ScanlineTools.hxx | 236 | ||||
-rw-r--r-- | vcl/inc/bitmap/bmpfast.hxx | 51 | ||||
-rw-r--r-- | vcl/inc/bitmap/impoctree.hxx | 110 | ||||
-rw-r--r-- | vcl/inc/bitmaps.hlst | 227 |
14 files changed, 1094 insertions, 0 deletions
diff --git a/vcl/inc/bitmap/BitmapColorizeFilter.hxx b/vcl/inc/bitmap/BitmapColorizeFilter.hxx new file mode 100644 index 000000000..e05edf219 --- /dev/null +++ b/vcl/inc/bitmap/BitmapColorizeFilter.hxx @@ -0,0 +1,34 @@ +/* -*- 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_VCL_INC_BITMAP_BITMAPCOLORIZEFILTER_HXX +#define INCLUDED_VCL_INC_BITMAP_BITMAPCOLORIZEFILTER_HXX + +#include <tools/color.hxx> + +#include <vcl/BitmapFilter.hxx> + +class BitmapColorizeFilter final : public BitmapFilter +{ +public: + BitmapColorizeFilter(Color aColor) + : maColor(aColor) + { + } + + virtual BitmapEx execute(BitmapEx const& rBitmapEx) const override; + +private: + Color maColor; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapDisabledImageFilter.hxx b/vcl/inc/bitmap/BitmapDisabledImageFilter.hxx new file mode 100644 index 000000000..e1d9d21a9 --- /dev/null +++ b/vcl/inc/bitmap/BitmapDisabledImageFilter.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/. + * + */ + +#ifndef INCLUDED_VCL_INC_BITMAP_BITMAPDISABLEDIMAGEFILTER_HXX +#define INCLUDED_VCL_INC_BITMAP_BITMAPDISABLEDIMAGEFILTER_HXX + +#include <vcl/BitmapFilter.hxx> + +class VCL_DLLPUBLIC BitmapDisabledImageFilter final : public BitmapFilter +{ +public: + BitmapDisabledImageFilter() {} + + virtual BitmapEx execute(BitmapEx const& rBitmapEx) const override; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapFastScaleFilter.hxx b/vcl/inc/bitmap/BitmapFastScaleFilter.hxx new file mode 100644 index 000000000..bea516c9e --- /dev/null +++ b/vcl/inc/bitmap/BitmapFastScaleFilter.hxx @@ -0,0 +1,36 @@ +/* -*- 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 VCL_INC_BITMAP_BITMAPFASTSCALEFILTER_HXX +#define VCL_INC_BITMAP_BITMAPFASTSCALEFILTER_HXX + +#include <vcl/bitmapex.hxx> +#include <vcl/BitmapFilter.hxx> + +class BitmapFastScaleFilter final : public BitmapFilter +{ +public: + explicit BitmapFastScaleFilter(double fScaleX, double fScaleY) + : mfScaleX(fScaleX) + , mfScaleY(fScaleY) + { + } + + virtual BitmapEx execute(BitmapEx const& rBitmapEx) const override; + +private: + double mfScaleX; + double mfScaleY; + Size maSize; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapInterpolateScaleFilter.hxx b/vcl/inc/bitmap/BitmapInterpolateScaleFilter.hxx new file mode 100644 index 000000000..7d17c97d1 --- /dev/null +++ b/vcl/inc/bitmap/BitmapInterpolateScaleFilter.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/. + * + */ + +#ifndef VCL_INC_BITMAP_BITMAPINTERPOLATESCALEFILTER_HXX +#define VCL_INC_BITMAP_BITMAPINTERPOLATESCALEFILTER_HXX + +#include <vcl/bitmapex.hxx> +#include <vcl/BitmapFilter.hxx> + +class BitmapInterpolateScaleFilter final : public BitmapFilter +{ +public: + explicit BitmapInterpolateScaleFilter(double fScaleX, double fScaleY) + : mfScaleX(fScaleX) + , mfScaleY(fScaleY) + { + } + + virtual BitmapEx execute(BitmapEx const& rBitmapEx) const override; + +private: + double mfScaleX; + double mfScaleY; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapLightenFilter.hxx b/vcl/inc/bitmap/BitmapLightenFilter.hxx new file mode 100644 index 000000000..98f249328 --- /dev/null +++ b/vcl/inc/bitmap/BitmapLightenFilter.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/. + * + */ + +#ifndef INCLUDED_VCL_INC_BITMAP_BITMAPLIGHTENFILTER_HXX +#define INCLUDED_VCL_INC_BITMAP_BITMAPLIGHTENFILTER_HXX + +#include <vcl/BitmapFilter.hxx> + +class BitmapLightenFilter final : public BitmapFilter +{ +public: + virtual BitmapEx execute(BitmapEx const& rBitmapEx) const override; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapMaskToAlphaFilter.hxx b/vcl/inc/bitmap/BitmapMaskToAlphaFilter.hxx new file mode 100644 index 000000000..355d06684 --- /dev/null +++ b/vcl/inc/bitmap/BitmapMaskToAlphaFilter.hxx @@ -0,0 +1,21 @@ +/* -*- 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/BitmapFilter.hxx> + +class BitmapMaskToAlphaFilter final : public BitmapFilter +{ +public: + virtual BitmapEx execute(BitmapEx const& rBitmapEx) const override; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapScaleConvolutionFilter.hxx b/vcl/inc/bitmap/BitmapScaleConvolutionFilter.hxx new file mode 100644 index 000000000..1c9bb8e33 --- /dev/null +++ b/vcl/inc/bitmap/BitmapScaleConvolutionFilter.hxx @@ -0,0 +1,78 @@ +/* -*- 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 VCL_INC_BITMAP_BITMAPSCALECONVOLUTIONFILTER_HXX +#define VCL_INC_BITMAP_BITMAPSCALECONVOLUTIONFILTER_HXX + +#include <vcl/BitmapFilter.hxx> + +#include <ResampleKernel.hxx> + +namespace vcl +{ +class BitmapScaleConvolutionFilter : public BitmapFilter +{ +protected: + BitmapScaleConvolutionFilter(const double& rScaleX, const double& rScaleY, + std::unique_ptr<Kernel> pKernel) + : mxKernel(std::move(pKernel)) + , mrScaleX(rScaleX) + , mrScaleY(rScaleY) + { + } + + virtual BitmapEx execute(BitmapEx const& rBitmap) const override; + +private: + std::unique_ptr<Kernel> mxKernel; + double mrScaleX; + double mrScaleY; +}; + +class VCL_DLLPUBLIC BitmapScaleBilinearFilter final : public BitmapScaleConvolutionFilter +{ +public: + BitmapScaleBilinearFilter(const double& rScaleX, const double& rScaleY) + : BitmapScaleConvolutionFilter(rScaleX, rScaleY, std::make_unique<BilinearKernel>()) + { + } +}; + +class VCL_DLLPUBLIC BitmapScaleBicubicFilter final : public BitmapScaleConvolutionFilter +{ +public: + BitmapScaleBicubicFilter(const double& rScaleX, const double& rScaleY) + : BitmapScaleConvolutionFilter(rScaleX, rScaleY, std::make_unique<BicubicKernel>()) + { + } +}; + +class VCL_DLLPUBLIC BitmapScaleLanczos3Filter final : public BitmapScaleConvolutionFilter +{ +public: + BitmapScaleLanczos3Filter(const double& rScaleX, const double& rScaleY) + : BitmapScaleConvolutionFilter(rScaleX, rScaleY, std::make_unique<Lanczos3Kernel>()) + { + } +}; +} + +#endif // VCL_INC_BITMAPSCALECONVOLUTIONFILTER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapScaleSuperFilter.hxx b/vcl/inc/bitmap/BitmapScaleSuperFilter.hxx new file mode 100644 index 000000000..46c21d8d7 --- /dev/null +++ b/vcl/inc/bitmap/BitmapScaleSuperFilter.hxx @@ -0,0 +1,40 @@ +/* -*- 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_VCL_INC_BITMAP_BITMAPSCALESUPER_HXX +#define INCLUDED_VCL_INC_BITMAP_BITMAPSCALESUPER_HXX + +#include <vcl/BitmapFilter.hxx> + +class BitmapScaleSuperFilter final : public BitmapFilter +{ +public: + BitmapScaleSuperFilter(const double& rScaleX, const double& rScaleY); + virtual ~BitmapScaleSuperFilter() override; + + virtual BitmapEx execute(BitmapEx const& rBitmap) const override; + +private: + double mrScaleX; + double mrScaleY; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/BitmapWriteAccess.hxx b/vcl/inc/bitmap/BitmapWriteAccess.hxx new file mode 100644 index 000000000..bc903769d --- /dev/null +++ b/vcl/inc/bitmap/BitmapWriteAccess.hxx @@ -0,0 +1,94 @@ +/* -*- 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_VCL_INC_BITMAP_BITMAPWRITEACCESS_HXX +#define INCLUDED_VCL_INC_BITMAP_BITMAPWRITEACCESS_HXX + +#include <vcl/alpha.hxx> +#include <vcl/bitmap.hxx> +#include <vcl/BitmapReadAccess.hxx> +#include <optional> + +typedef vcl::ScopedBitmapAccess<BitmapWriteAccess, Bitmap, &Bitmap::AcquireWriteAccess> + BitmapScopedWriteAccess; + +typedef vcl::ScopedBitmapAccess<BitmapWriteAccess, AlphaMask, &AlphaMask::AcquireAlphaWriteAccess> + AlphaScopedWriteAccess; + +class VCL_DLLPUBLIC BitmapWriteAccess final : public BitmapReadAccess +{ +public: + BitmapWriteAccess(Bitmap& rBitmap); + virtual ~BitmapWriteAccess() override; + + void CopyScanline(tools::Long nY, const BitmapReadAccess& rReadAcc); + void CopyScanline(tools::Long nY, ConstScanline aSrcScanline, ScanlineFormat nSrcScanlineFormat, + sal_uInt32 nSrcScanlineSize); + + void SetPalette(const BitmapPalette& rPalette) + { + assert(mpBuffer && "Access is not valid!"); + + mpBuffer->maPalette = rPalette; + } + + void SetPaletteEntryCount(sal_uInt16 nCount) + { + assert(mpBuffer && "Access is not valid!"); + + mpBuffer->maPalette.SetEntryCount(nCount); + } + + void SetPaletteColor(sal_uInt16 nColor, const BitmapColor& rBitmapColor) + { + assert(mpBuffer && "Access is not valid!"); + assert(HasPalette() && "Bitmap has no palette!"); + + mpBuffer->maPalette[nColor] = rBitmapColor; + } + + void SetPixel(tools::Long nY, tools::Long nX, const BitmapColor& rBitmapColor) + { + assert(mpBuffer && "Access is not valid!"); + assert(nX < mpBuffer->mnWidth && "x-coordinate out of range!"); + assert(nY < mpBuffer->mnHeight && "y-coordinate out of range!"); + + mFncSetPixel(GetScanline(nY), nX, rBitmapColor, maColorMask); + } + + void SetPixelIndex(tools::Long nY, tools::Long nX, sal_uInt8 cIndex) + { + SetPixel(nY, nX, BitmapColor(cIndex)); + } + + void SetLineColor(const Color& rColor); + + void SetFillColor(); + void SetFillColor(const Color& rColor); + + void Erase(const Color& rColor); + + void DrawLine(const Point& rStart, const Point& rEnd); + + void FillRect(const tools::Rectangle& rRect); + void DrawRect(const tools::Rectangle& rRect); + +private: + std::optional<BitmapColor> mpLineColor; + std::optional<BitmapColor> mpFillColor; + + BitmapWriteAccess() = delete; + BitmapWriteAccess(const BitmapWriteAccess&) = delete; + BitmapWriteAccess& operator=(const BitmapWriteAccess&) = delete; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/Octree.hxx b/vcl/inc/bitmap/Octree.hxx new file mode 100644 index 000000000..4db065022 --- /dev/null +++ b/vcl/inc/bitmap/Octree.hxx @@ -0,0 +1,82 @@ +/* -*- 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_VCL_INC_OCTREE_HXX +#define INCLUDED_VCL_INC_OCTREE_HXX + +#include <vcl/dllapi.h> +#include <vcl/BitmapColor.hxx> +#include <tools/solar.h> + +struct OctreeNode +{ + sal_uLong nCount = 0; + sal_uLong nRed = 0; + sal_uLong nGreen = 0; + sal_uLong nBlue = 0; + std::unique_ptr<OctreeNode> pChild[8]; + OctreeNode* pNext = nullptr; + sal_uInt16 nPalIndex = 0; + bool bLeaf = false; +}; + +class BitmapReadAccess; + +class VCL_PLUGIN_PUBLIC Octree +{ +private: + void CreatePalette(OctreeNode* pNode); + void GetPalIndex(const OctreeNode* pNode, BitmapColor const& color); + + SAL_DLLPRIVATE void add(std::unique_ptr<OctreeNode>& rpNode, BitmapColor const& color); + SAL_DLLPRIVATE void reduce(); + + BitmapPalette maPalette; + sal_uLong mnLeafCount; + sal_uLong mnLevel; + std::unique_ptr<OctreeNode> pTree; + std::vector<OctreeNode*> mpReduce; + sal_uInt16 mnPalIndex; + +public: + Octree(const BitmapReadAccess& rReadAcc, sal_uLong nColors); + ~Octree(); + + const BitmapPalette& GetPalette(); + sal_uInt16 GetBestPaletteIndex(const BitmapColor& rColor); +}; + +class InverseColorMap +{ +private: + std::vector<sal_uInt8> mpBuffer; + std::vector<sal_uInt8> mpMap; + + void ImplCreateBuffers(); + +public: + explicit InverseColorMap(const BitmapPalette& rPal); + ~InverseColorMap(); + + sal_uInt16 GetBestPaletteIndex(const BitmapColor& rColor); +}; + +#endif // INCLUDED_VCL_INC_OCTREE_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/ScanlineTools.hxx b/vcl/inc/bitmap/ScanlineTools.hxx new file mode 100644 index 000000000..c343cf34f --- /dev/null +++ b/vcl/inc/bitmap/ScanlineTools.hxx @@ -0,0 +1,236 @@ +/* -*- 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_VCL_INC_BITMAP_SCANLINETOOLS_HXX +#define INCLUDED_VCL_INC_BITMAP_SCANLINETOOLS_HXX + +#include <tools/color.hxx> +#include <vcl/BitmapPalette.hxx> + +namespace vcl::bitmap +{ +class ScanlineTransformer +{ +public: + virtual void startLine(sal_uInt8* pLine) = 0; + virtual void skipPixel(sal_uInt32 nPixel) = 0; + virtual Color readPixel() = 0; + virtual void writePixel(Color nColor) = 0; + + virtual ~ScanlineTransformer() = default; +}; + +class ScanlineTransformer_ARGB final : public ScanlineTransformer +{ +private: + sal_uInt8* pData; + +public: + virtual void startLine(sal_uInt8* pLine) override { pData = pLine; } + + virtual void skipPixel(sal_uInt32 nPixel) override { pData += nPixel << 2; } + + virtual Color readPixel() override + { + const Color aColor(ColorTransparency, pData[4], pData[1], pData[2], pData[3]); + pData += 4; + return aColor; + } + + virtual void writePixel(Color nColor) override + { + *pData++ = 255 - nColor.GetAlpha(); + *pData++ = nColor.GetRed(); + *pData++ = nColor.GetGreen(); + *pData++ = nColor.GetBlue(); + } +}; + +class ScanlineTransformer_BGR final : public ScanlineTransformer +{ +private: + sal_uInt8* pData; + +public: + virtual void startLine(sal_uInt8* pLine) override { pData = pLine; } + + virtual void skipPixel(sal_uInt32 nPixel) override { pData += (nPixel << 1) + nPixel; } + + virtual Color readPixel() override + { + const Color aColor(pData[2], pData[1], pData[0]); + pData += 3; + return aColor; + } + + virtual void writePixel(Color nColor) override + { + *pData++ = nColor.GetBlue(); + *pData++ = nColor.GetGreen(); + *pData++ = nColor.GetRed(); + } +}; + +class ScanlineTransformer_8BitPalette final : public ScanlineTransformer +{ +private: + sal_uInt8* pData; + const BitmapPalette& mrPalette; + +public: + explicit ScanlineTransformer_8BitPalette(const BitmapPalette& rPalette) + : pData(nullptr) + , mrPalette(rPalette) + { + } + + virtual void startLine(sal_uInt8* pLine) override { pData = pLine; } + + virtual void skipPixel(sal_uInt32 nPixel) override { pData += nPixel; } + + virtual Color readPixel() override + { + const sal_uInt8 nIndex(*pData++); + if (nIndex < mrPalette.GetEntryCount()) + return mrPalette[nIndex]; + else + return COL_BLACK; + } + + virtual void writePixel(Color nColor) override + { + *pData++ = static_cast<sal_uInt8>(mrPalette.GetBestIndex(nColor)); + } +}; + +class ScanlineTransformer_4BitPalette final : public ScanlineTransformer +{ +private: + sal_uInt8* pData; + const BitmapPalette& mrPalette; + sal_uInt32 mnX; + sal_uInt32 mnShift; + +public: + explicit ScanlineTransformer_4BitPalette(const BitmapPalette& rPalette) + : pData(nullptr) + , mrPalette(rPalette) + , mnX(0) + , mnShift(0) + { + } + + virtual void skipPixel(sal_uInt32 nPixel) override + { + mnX += nPixel; + if (nPixel & 1) // is nPixel an odd number + mnShift ^= 4; + } + + virtual void startLine(sal_uInt8* pLine) override + { + pData = pLine; + mnX = 0; + mnShift = 4; + } + + virtual Color readPixel() override + { + const sal_uInt32 nDataIndex = mnX / 2; + const sal_uInt8 nIndex((pData[nDataIndex] >> mnShift) & 0x0f); + mnX++; + mnShift ^= 4; + + if (nIndex < mrPalette.GetEntryCount()) + return mrPalette[nIndex]; + else + return COL_BLACK; + } + + virtual void writePixel(Color nColor) override + { + const sal_uInt32 nDataIndex = mnX / 2; + const sal_uInt8 nColorIndex = mrPalette.GetBestIndex(nColor); + pData[nDataIndex] |= (nColorIndex & 0x0f) << mnShift; + mnX++; + mnShift ^= 4; + } +}; + +class ScanlineTransformer_1BitPalette final : public ScanlineTransformer +{ +private: + sal_uInt8* pData; + const BitmapPalette& mrPalette; + sal_uInt32 mnX; + +public: + explicit ScanlineTransformer_1BitPalette(const BitmapPalette& rPalette) + : pData(nullptr) + , mrPalette(rPalette) + , mnX(0) + { + } + + virtual void skipPixel(sal_uInt32 nPixel) override { mnX += nPixel; } + + virtual void startLine(sal_uInt8* pLine) override + { + pData = pLine; + mnX = 0; + } + + virtual Color readPixel() override + { + const sal_uInt8 nIndex((pData[mnX >> 3] >> (7 - (mnX & 7))) & 1); + mnX++; + + if (nIndex < mrPalette.GetEntryCount()) + return mrPalette[nIndex]; + else + return COL_BLACK; + } + + virtual void writePixel(Color nColor) override + { + if (mrPalette.GetBestIndex(nColor) & 1) + pData[mnX >> 3] |= 1 << (7 - (mnX & 7)); + else + pData[mnX >> 3] &= ~(1 << (7 - (mnX & 7))); + mnX++; + } +}; + +std::unique_ptr<ScanlineTransformer> getScanlineTransformer(sal_uInt16 nBits, + const BitmapPalette& rPalette) +{ + switch (nBits) + { + case 1: + return std::make_unique<ScanlineTransformer_1BitPalette>(rPalette); + case 4: + return std::make_unique<ScanlineTransformer_4BitPalette>(rPalette); + case 8: + return std::make_unique<ScanlineTransformer_8BitPalette>(rPalette); + case 24: + return std::make_unique<ScanlineTransformer_BGR>(); + case 32: + return std::make_unique<ScanlineTransformer_ARGB>(); + default: + assert(false); + break; + } + return nullptr; +} +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/bmpfast.hxx b/vcl/inc/bitmap/bmpfast.hxx new file mode 100644 index 000000000..3234f7a84 --- /dev/null +++ b/vcl/inc/bitmap/bmpfast.hxx @@ -0,0 +1,51 @@ +/* -*- 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_VCL_INC_BMPFAST_HXX +#define INCLUDED_VCL_INC_BMPFAST_HXX + +#include <vcl/dllapi.h> +#include <vcl/Scanline.hxx> +#include <tools/long.hxx> + +class BitmapWriteAccess; +class BitmapReadAccess; +struct BitmapBuffer; +class BitmapColor; +struct SalTwoRect; + +// the bmpfast functions have signatures with good compatibility to +// their canonic counterparts, which employ the GetPixel/SetPixel methods + +VCL_DLLPUBLIC bool ImplFastBitmapConversion( BitmapBuffer& rDst, const BitmapBuffer& rSrc, + const SalTwoRect& rTwoRect ); + +bool ImplFastCopyScanline( tools::Long nY, BitmapBuffer& rDst, const BitmapBuffer& rSrc); +bool ImplFastCopyScanline( tools::Long nY, BitmapBuffer& rDst, ConstScanline aSrcScanline, + ScanlineFormat nSrcScanlineFormat, sal_uInt32 nSrcScanlineSize); + +bool ImplFastBitmapBlending( BitmapWriteAccess const & rDst, + const BitmapReadAccess& rSrc, const BitmapReadAccess& rMask, + const SalTwoRect& rTwoRect ); + +bool ImplFastEraseBitmap( BitmapBuffer&, const BitmapColor& ); + +#endif // INCLUDED_VCL_INC_BMPFAST_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmap/impoctree.hxx b/vcl/inc/bitmap/impoctree.hxx new file mode 100644 index 000000000..3691e5c21 --- /dev/null +++ b/vcl/inc/bitmap/impoctree.hxx @@ -0,0 +1,110 @@ +/* -*- 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_VCL_INC_IMPOCTREE_HXX +#define INCLUDED_VCL_INC_IMPOCTREE_HXX + +#include "Octree.hxx" + +class ImpErrorQuad +{ + sal_Int16 nRed; + sal_Int16 nGreen; + sal_Int16 nBlue; + +public: + ImpErrorQuad() + : nRed(0) + , nGreen(0) + , nBlue(0) + { + } + + ImpErrorQuad(const BitmapColor& rColor) + : nRed(rColor.GetRed() << 5) + , nGreen(rColor.GetGreen() << 5) + , nBlue(rColor.GetBlue() << 5) + { + } + + inline void operator=(const BitmapColor& rColor); + inline ImpErrorQuad& operator-=(const BitmapColor& rColor); + + inline void ImplAddColorError1(const ImpErrorQuad& rErrQuad); + inline void ImplAddColorError3(const ImpErrorQuad& rErrQuad); + inline void ImplAddColorError5(const ImpErrorQuad& rErrQuad); + inline void ImplAddColorError7(const ImpErrorQuad& rErrQuad); + + inline BitmapColor ImplGetColor() const; +}; + +inline void ImpErrorQuad::operator=(const BitmapColor& rColor) +{ + nRed = rColor.GetRed() << 5; + nGreen = rColor.GetGreen() << 5; + nBlue = rColor.GetBlue() << 5; +} + +inline ImpErrorQuad& ImpErrorQuad::operator-=(const BitmapColor& rColor) +{ + nRed -= rColor.GetRed() << 5; + nGreen -= rColor.GetGreen() << 5; + nBlue -= rColor.GetBlue() << 5; + + return *this; +} + +inline void ImpErrorQuad::ImplAddColorError1(const ImpErrorQuad& rErrQuad) +{ + nRed += rErrQuad.nRed >> 4; + nGreen += rErrQuad.nGreen >> 4; + nBlue += rErrQuad.nBlue >> 4; +} + +inline void ImpErrorQuad::ImplAddColorError3(const ImpErrorQuad& rErrQuad) +{ + nRed += rErrQuad.nRed * 3L >> 4; + nGreen += rErrQuad.nGreen * 3L >> 4; + nBlue += rErrQuad.nBlue * 3L >> 4; +} + +inline void ImpErrorQuad::ImplAddColorError5(const ImpErrorQuad& rErrQuad) +{ + nRed += rErrQuad.nRed * 5L >> 4; + nGreen += rErrQuad.nGreen * 5L >> 4; + nBlue += rErrQuad.nBlue * 5L >> 4; +} + +inline void ImpErrorQuad::ImplAddColorError7(const ImpErrorQuad& rErrQuad) +{ + nRed += rErrQuad.nRed * 7L >> 4; + nGreen += rErrQuad.nGreen * 7L >> 4; + nBlue += rErrQuad.nBlue * 7L >> 4; +} + +inline BitmapColor ImpErrorQuad::ImplGetColor() const +{ + return BitmapColor(std::clamp(nRed, sal_Int16(0), sal_Int16(8160)) >> 5, + std::clamp(nGreen, sal_Int16(0), sal_Int16(8160)) >> 5, + std::clamp(nBlue, sal_Int16(0), sal_Int16(8160)) >> 5); +} + +#endif // INCLUDED_VCL_INC_IMPOCTREE_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/bitmaps.hlst b/vcl/inc/bitmaps.hlst new file mode 100644 index 000000000..4edd7b13b --- /dev/null +++ b/vcl/inc/bitmaps.hlst @@ -0,0 +1,227 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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 + +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK1 = u"vcl/res/check1.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK2 = u"vcl/res/check2.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK3 = u"vcl/res/check3.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK4 = u"vcl/res/check4.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK5 = u"vcl/res/check5.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK6 = u"vcl/res/check6.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK7 = u"vcl/res/check7.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK8 = u"vcl/res/check8.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECK9 = u"vcl/res/check9.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO1 = u"vcl/res/checkmono1.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO2 = u"vcl/res/checkmono2.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO3 = u"vcl/res/checkmono3.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO4 = u"vcl/res/checkmono4.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO5 = u"vcl/res/checkmono5.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO6 = u"vcl/res/checkmono6.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO7 = u"vcl/res/checkmono7.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO8 = u"vcl/res/checkmono8.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CHECKMONO9 = u"vcl/res/checkmono9.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIO1 = u"vcl/res/radio1.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIO2 = u"vcl/res/radio2.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIO3 = u"vcl/res/radio3.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIO4 = u"vcl/res/radio4.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIO5 = u"vcl/res/radio5.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIO6 = u"vcl/res/radio6.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIOMONO1 = u"vcl/res/radiomono1.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIOMONO2 = u"vcl/res/radiomono2.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIOMONO3 = u"vcl/res/radiomono3.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIOMONO4 = u"vcl/res/radiomono4.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIOMONO5 = u"vcl/res/radiomono5.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_RADIOMONO6 = u"vcl/res/radiomono6.png"; + +inline constexpr OUStringLiteral SV_RESID_BITMAP_ERRORBOX = u"vcl/res/errorbox.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_QUERYBOX = u"vcl/res/querybox.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_WARNINGBOX = u"vcl/res/warningbox.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_INFOBOX = u"vcl/res/infobox.png"; + +inline constexpr OUStringLiteral SV_RESID_BITMAP_SCROLLMSK = u"vcl/res/scrmsk.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_WHEELVH = u"vcl/res/wheelvh.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_WHEELV = u"vcl/res/wheelv.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_WHEELH = u"vcl/res/wheelh.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_SCROLLVH = u"vcl/res/scrollvh.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_SCROLLV = u"vcl/res/scrollv.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_SCROLLH = u"vcl/res/scrollh.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_CLOSEDOC = u"vcl/res/closedoc.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_REFRESH = u"res/reload.png"; +inline constexpr OUStringLiteral SV_RESID_BITMAP_NOTEBOOKBAR = u"res/notebookbar.png"; + +inline constexpr OUStringLiteral SV_DISCLOSURE_PLUS = u"res/plus.png"; +inline constexpr OUStringLiteral SV_DISCLOSURE_MINUS = u"res/minus.png"; + +inline constexpr OUStringLiteral SV_PRINT_COLLATE_BMP = u"vcl/res/collate.png"; +inline constexpr OUStringLiteral SV_PRINT_NOCOLLATE_BMP = u"vcl/res/ncollate.png"; + +inline constexpr OUStringLiteral MAINAPP_48_8 = u"res/mainapp_48_8.png"; +inline constexpr OUStringLiteral ODT_48_8 = u"res/odt_48_8.png"; +inline constexpr OUStringLiteral OTT_48_8 = u"res/ott_48_8.png"; +inline constexpr OUStringLiteral ODS_48_8 = u"res/ods_48_8.png"; +inline constexpr OUStringLiteral OTS_48_8 = u"res/ots_48_8.png"; +inline constexpr OUStringLiteral ODG_48_8 = u"res/odg_48_8.png"; +inline constexpr OUStringLiteral ODP_48_8 = u"res/odp_48_8.png"; +inline constexpr OUStringLiteral ODM_48_8 = u"res/odm_48_8.png"; +inline constexpr OUStringLiteral ODB_48_8 = u"res/odb_48_8.png"; +inline constexpr OUStringLiteral ODF_48_8 = u"res/odf_48_8.png"; + +inline constexpr OUStringLiteral MAINAPP_32_8 = u"res/mainapp_32_8.png"; +inline constexpr OUStringLiteral ODT_32_8 = u"res/odt_32_8.png"; +inline constexpr OUStringLiteral OTT_32_8 = u"res/ott_32_8.png"; +inline constexpr OUStringLiteral ODS_32_8 = u"res/ods_32_8.png"; +inline constexpr OUStringLiteral OTS_32_8 = u"res/ots_32_8.png"; +inline constexpr OUStringLiteral ODG_32_8 = u"res/odg_32_8.png"; +inline constexpr OUStringLiteral ODP_32_8 = u"res/odp_32_8.png"; +inline constexpr OUStringLiteral ODM_32_8 = u"res/odm_32_8.png"; +inline constexpr OUStringLiteral ODB_32_8 = u"res/odb_32_8.png"; +inline constexpr OUStringLiteral ODF_32_8 = u"res/odf_32_8.png"; + +inline constexpr OUStringLiteral MAINAPP_16_8 = u"res/mainapp_16_8.png"; +inline constexpr OUStringLiteral ODT_16_8 = u"res/odt_16_8.png"; +inline constexpr OUStringLiteral OTT_16_8 = u"res/ott_16_8.png"; +inline constexpr OUStringLiteral ODS_16_8 = u"res/ods_16_8.png"; +inline constexpr OUStringLiteral OTS_16_8 = u"res/ots_16_8.png"; +inline constexpr OUStringLiteral ODG_16_8 = u"res/odg_16_8.png"; +inline constexpr OUStringLiteral ODP_16_8 = u"res/odp_16_8.png"; +inline constexpr OUStringLiteral ODM_16_8 = u"res/odm_16_8.png"; +inline constexpr OUStringLiteral ODB_16_8 = u"res/odb_16_8.png"; +inline constexpr OUStringLiteral ODF_16_8 = u"res/odf_16_8.png"; + +//start, Throbber::getDefaultImageURLs constructs these dynamically (not unused) +#define SPINNER_16_01 "vcl/res/spinner-16-01.png" +#define SPINNER_16_02 "vcl/res/spinner-16-02.png" +#define SPINNER_16_03 "vcl/res/spinner-16-03.png" +#define SPINNER_16_04 "vcl/res/spinner-16-04.png" +#define SPINNER_16_05 "vcl/res/spinner-16-05.png" +#define SPINNER_16_06 "vcl/res/spinner-16-06.png" + +#define SPINNER_32_01 "vcl/res/spinner-32-01.png" +#define SPINNER_32_02 "vcl/res/spinner-32-02.png" +#define SPINNER_32_03 "vcl/res/spinner-32-03.png" +#define SPINNER_32_04 "vcl/res/spinner-32-04.png" +#define SPINNER_32_05 "vcl/res/spinner-32-05.png" +#define SPINNER_32_06 "vcl/res/spinner-32-06.png" +#define SPINNER_32_07 "vcl/res/spinner-32-07.png" +#define SPINNER_32_08 "vcl/res/spinner-32-08.png" +#define SPINNER_32_09 "vcl/res/spinner-32-09.png" +#define SPINNER_32_10 "vcl/res/spinner-32-10.png" +#define SPINNER_32_11 "vcl/res/spinner-32-11.png" +#define SPINNER_32_12 "vcl/res/spinner-32-12.png" + +#define SPINNER_64_01 "vcl/res/spinner-64-01.png" +#define SPINNER_64_02 "vcl/res/spinner-64-02.png" +#define SPINNER_64_03 "vcl/res/spinner-64-03.png" +#define SPINNER_64_04 "vcl/res/spinner-64-04.png" +#define SPINNER_64_05 "vcl/res/spinner-64-05.png" +#define SPINNER_64_06 "vcl/res/spinner-64-06.png" +#define SPINNER_64_07 "vcl/res/spinner-64-07.png" +#define SPINNER_64_08 "vcl/res/spinner-64-08.png" +#define SPINNER_64_09 "vcl/res/spinner-64-09.png" +#define SPINNER_64_10 "vcl/res/spinner-64-10.png" +#define SPINNER_64_11 "vcl/res/spinner-64-11.png" +#define SPINNER_64_12 "vcl/res/spinner-64-12.png" +//end, Throbber::getDefaultImageURLs + +inline constexpr OUStringLiteral IMG_WARN = u"dbaccess/res/exwarning.png"; +inline constexpr OUStringLiteral IMG_ERROR = u"dbaccess/res/exerror.png"; +inline constexpr OUStringLiteral IMG_INFO = u"dbaccess/res/exinfo.png"; +inline constexpr OUStringLiteral IMG_ADD = u"extensions/res/scanner/plus.png"; +inline constexpr OUStringLiteral IMG_REMOVE = u"extensions/res/scanner/minus.png"; +inline constexpr OUStringLiteral IMG_COPY = u"cmd/sc_copy.png"; +inline constexpr OUStringLiteral IMG_PASTE = u"cmd/sc_paste.png"; +inline constexpr OUStringLiteral IMG_MENU = u"sfx2/res/menu.png"; +inline constexpr OUStringLiteral IMG_CALENDAR = u"sc/res/date.png"; +inline constexpr OUStringLiteral IMG_OPEN = u"cmd/sc_open.png"; + +inline constexpr OUStringLiteral RID_BMP_TREENODE_COLLAPSED = u"res/plus.png"; +inline constexpr OUStringLiteral RID_BMP_TREENODE_EXPANDED = u"res/minus.png"; + +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_E = u"vcl/res/autoscroll_e.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_N = u"vcl/res/autoscroll_n.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_NE = u"vcl/res/autoscroll_ne.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_NS = u"vcl/res/autoscroll_ns.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_NSWE = u"vcl/res/autoscroll_nswe.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_NW = u"vcl/res/autoscroll_nw.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_S = u"vcl/res/autoscroll_s.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_SE = u"vcl/res/autoscroll_se.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_SW = u"vcl/res/autoscroll_sw.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_W = u"vcl/res/autoscroll_w.png"; +inline constexpr OUStringLiteral RID_CURSOR_AUTOSCROLL_WE = u"vcl/res/autoscroll_we.png"; +inline constexpr OUStringLiteral RID_CURSOR_CHAIN = u"vcl/res/chain.png"; +inline constexpr OUStringLiteral RID_CURSOR_CHAIN_NOT_ALLOWED = u"vcl/res/chain_not_allowed.png"; +inline constexpr OUStringLiteral RID_CURSOR_CHART = u"vcl/res/chart.png"; +inline constexpr OUStringLiteral RID_CURSOR_COPY_DATA = u"vcl/res/copy_data.png"; +inline constexpr OUStringLiteral RID_CURSOR_COPY_DATA_LINK = u"vcl/res/copy_data_link.png"; +inline constexpr OUStringLiteral RID_CURSOR_COPY_FILE = u"vcl/res/copy_file.png"; +inline constexpr OUStringLiteral RID_CURSOR_COPY_FILES = u"vcl/res/copy_files.png"; +inline constexpr OUStringLiteral RID_CURSOR_COPY_FILE_LINK = u"vcl/res/copy_file_link.png"; +inline constexpr OUStringLiteral RID_CURSOR_CROOK = u"vcl/res/crook.png"; +inline constexpr OUStringLiteral RID_CURSOR_CROP = u"vcl/res/crop.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_ARC = u"vcl/res/draw_arc.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_BEZIER = u"vcl/res/draw_bezier.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_CAPTION = u"vcl/res/draw_caption.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_CIRCLE_CUT = u"vcl/res/draw_circle_cut.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_CONNECT = u"vcl/res/draw_connect.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_ELLIPSE = u"vcl/res/draw_ellipse.png"; +inline constexpr OUStringLiteral RID_CURSOR_DETECTIVE = u"vcl/res/detective.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_FREEHAND = u"vcl/res/draw_freehand.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_LINE = u"vcl/res/draw_line.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_PIE = u"vcl/res/draw_pie.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_POLYGON = u"vcl/res/draw_polygon.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_RECT = u"vcl/res/draw_rect.png"; +inline constexpr OUStringLiteral RID_CURSOR_DRAW_TEXT = u"vcl/res/draw_text.png"; +inline constexpr OUStringLiteral RID_CURSOR_FILL = u"vcl/res/fill.png"; +#define RID_CURSOR_HELP "vcl/res/help.png" +inline constexpr OUStringLiteral RID_CURSOR_H_SHEAR = u"vcl/res/h_shear.png"; +inline constexpr OUStringLiteral RID_CURSOR_LINK_DATA = u"vcl/res/link_data.png"; +inline constexpr OUStringLiteral RID_CURSOR_LINK_FILE = u"vcl/res/link_file.png"; +inline constexpr OUStringLiteral RID_CURSOR_MAGNIFY = u"vcl/res/magnify.png"; +inline constexpr OUStringLiteral RID_CURSOR_MIRROR = u"vcl/res/mirror.png"; +inline constexpr OUStringLiteral RID_CURSOR_MOVE_BEZIER_WEIGHT = u"vcl/res/move_bezier_weight.png"; +inline constexpr OUStringLiteral RID_CURSOR_MOVE_DATA = u"vcl/res/move_data.png"; +inline constexpr OUStringLiteral RID_CURSOR_MOVE_DATA_LINK = u"vcl/res/move_data_link.png"; +inline constexpr OUStringLiteral RID_CURSOR_MOVE_FILE = u"vcl/res/move_file.png"; +inline constexpr OUStringLiteral RID_CURSOR_MOVE_FILES = u"vcl/res/move_files.png"; +inline constexpr OUStringLiteral RID_CURSOR_MOVE_FILE_LINK = u"vcl/res/move_file_link.png"; +inline constexpr OUStringLiteral RID_CURSOR_MOVE_POINT = u"vcl/res/move_point.png"; +inline constexpr OUStringLiteral RID_CURSOR_NOT_ALLOWED = u"vcl/res/not_allowed.png"; +inline constexpr OUStringLiteral RID_CURSOR_NULL = u"vcl/res/null.png"; +#define RID_CURSOR_PEN "vcl/res/pen.png" +inline constexpr OUStringLiteral RID_CURSOR_PIVOT_COLUMN = u"vcl/res/pivot_column.png"; +inline constexpr OUStringLiteral RID_CURSOR_PIVOT_DELETE = u"vcl/res/pivot_delete.png"; +inline constexpr OUStringLiteral RID_CURSOR_PIVOT_FIELD = u"vcl/res/pivot_field.png"; +inline constexpr OUStringLiteral RID_CURSOR_PIVOT_ROW = u"vcl/res/pivot_row.png"; +inline constexpr OUStringLiteral RID_CURSOR_ROTATE = u"vcl/res/rotate.png"; +inline constexpr OUStringLiteral RID_CURSOR_TAB_SELECT_E = u"vcl/res/tab_select_e.png"; +inline constexpr OUStringLiteral RID_CURSOR_TAB_SELECT_S = u"vcl/res/tab_select_s.png"; +inline constexpr OUStringLiteral RID_CURSOR_TAB_SELECT_SE = u"vcl/res/tab_select_se.png"; +inline constexpr OUStringLiteral RID_CURSOR_TAB_SELECT_SW = u"vcl/res/tab_select_sw.png"; +inline constexpr OUStringLiteral RID_CURSOR_TAB_SELECT_W = u"vcl/res/tab_select_w.png"; +inline constexpr OUStringLiteral RID_CURSOR_V_SHEAR = u"vcl/res/v_shear.png"; +inline constexpr OUStringLiteral RID_CURSOR_TEXT_VERTICAL = u"vcl/res/text_vertical.png"; +inline constexpr OUStringLiteral RID_CURSOR_HIDE_WHITESPACE = u"vcl/res/hide_whitespace.png"; +inline constexpr OUStringLiteral RID_CURSOR_SHOW_WHITESPACE = u"vcl/res/show_whitespace.png"; +#define RID_CURSOR_WAIT "vcl/res/wait.png" +#define RID_CURSOR_NWSIZE "vcl/res/nwsize.png" +#define RID_CURSOR_NESIZE "vcl/res/nesize.png" +#define RID_CURSOR_SWSIZE "vcl/res/swsize.png" +#define RID_CURSOR_SESIZE "vcl/res/sesize.png" +#define RID_CURSOR_WINDOW_NWSIZE "vcl/res/window_nwsize.png" +#define RID_CURSOR_WINDOW_NESIZE "vcl/res/window_nesize.png" +#define RID_CURSOR_WINDOW_SWSIZE "vcl/res/window_swsize.png" +#define RID_CURSOR_WINDOW_SESIZE "vcl/res/window_sesize.png" +inline constexpr OUStringLiteral RID_CURSOR_FATCROSS = u"vcl/res/fatcross.png"; + +inline constexpr OUStringLiteral CHEVRON = u"sfx2/res/chevron.png"; + +inline constexpr OUStringLiteral RID_UPDATE_AVAILABLE_16 = u"extensions/res/update/ui/onlineupdate_16.png"; +inline constexpr OUStringLiteral RID_UPDATE_AVAILABLE_26 = u"extensions/res/update/ui/onlineupdate_26.png"; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |