LibreOffice Module vcl (master)  1
Qt5Bitmap.hxx
Go to the documentation of this file.
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 <salbmp.hxx>
23 
24 #include <memory>
25 
26 class QImage;
27 
29 {
30  std::unique_ptr<QImage> m_pImage;
32 
33  // for 4bit support
34  std::unique_ptr<sal_uInt8[]> m_pBuffer;
36  sal_uInt32 m_nScanline;
37 
38 public:
39  Qt5Bitmap();
40  Qt5Bitmap(const QImage& rQImage);
41 
42  const QImage* GetQImage() const { return m_pImage.get(); }
43 
44  virtual bool Create(const Size& rSize, sal_uInt16 nBitCount,
45  const BitmapPalette& rPal) override;
46  virtual bool Create(const SalBitmap& rSalBmp) override;
47  virtual bool Create(const SalBitmap& rSalBmp, SalGraphics* pGraphics) override;
48  virtual bool Create(const SalBitmap& rSalBmp, sal_uInt16 nNewBitCount) override;
49  virtual bool Create(const css::uno::Reference<css::rendering::XBitmapCanvas>& rBitmapCanvas,
50  Size& rSize, bool bMask = false) override;
51  virtual void Destroy() final override;
52  virtual Size GetSize() const override;
53  virtual sal_uInt16 GetBitCount() const override;
54 
55  virtual BitmapBuffer* AcquireBuffer(BitmapAccessMode nMode) override;
56  virtual void ReleaseBuffer(BitmapBuffer* pBuffer, BitmapAccessMode nMode) override;
57  virtual bool GetSystemData(BitmapSystemData& rData) override;
58 
59  virtual bool ScalingSupported() const override;
60  virtual bool Scale(const double& rScaleX, const double& rScaleY,
61  BmpScaleFlag nScaleFlag) override;
62  virtual bool Replace(const Color& rSearchColor, const Color& rReplaceColor,
63  sal_uInt8 nTol) override;
64 };
65 
66 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Size m_aSize
Definition: Qt5Bitmap.hxx:35
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
std::unique_ptr< QImage > m_pImage
Definition: Qt5Bitmap.hxx:30
BitmapPalette m_aPalette
Definition: Qt5Bitmap.hxx:31
sal_uInt32 m_nScanline
Definition: Qt5Bitmap.hxx:36
virtual bool Create(const Size &rSize, sal_uInt16 nBitCount, const BitmapPalette &rPal)=0
const QImage * GetQImage() const
Definition: Qt5Bitmap.hxx:42
virtual void Destroy()=0
std::unique_ptr< sal_uInt8[]> m_pBuffer
Definition: Qt5Bitmap.hxx:34
BitmapAccessMode
BmpScaleFlag
Definition: bitmap.hxx:48
unsigned char sal_uInt8