Related: tdf#145722 need to clone userdata if we copy a module/dialog
[LibreOffice.git] / include / cppcanvas / bitmap.hxx
blob1b163b82d479aa4dc8ed040443310640ac4f5cd4
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_CPPCANVAS_BITMAP_HXX
21 #define INCLUDED_CPPCANVAS_BITMAP_HXX
23 #include <com/sun/star/uno/Reference.hxx>
24 #include <cppcanvas/canvasgraphic.hxx>
25 #include <cppcanvas/bitmapcanvas.hxx>
26 #include <memory>
28 namespace com::sun::star::rendering
30 class XBitmap;
34 /* Definition of Bitmap interface */
36 namespace cppcanvas
39 /** This interface defines a Bitmap canvas object
41 Consider this object part of the view, and not of the model
42 data, as this bitmap can only be painted on its parent canvas
44 class Bitmap : public virtual CanvasGraphic
46 public:
47 /** Render to parent canvas, with global alpha.
49 This method renders the content to the parent canvas,
50 i.e. the canvas this object was constructed for.
52 @param nAlphaModulation
53 Global alpha value, with which each pixel alpha value gets
54 multiplied. For a normal, opaque bitmap, this will make
55 the bitmap appear transparent with the given alpha value
56 (value must be in the range [0,1]).
58 virtual void drawAlphaModulated( double nAlphaModulation ) const = 0;
60 virtual BitmapCanvasSharedPtr getBitmapCanvas() const = 0;
62 virtual css::uno::Reference< css::rendering::XBitmap > getUNOBitmap() const = 0;
65 typedef std::shared_ptr< ::cppcanvas::Bitmap > BitmapSharedPtr;
68 #endif // INCLUDED_CPPCANVAS_BITMAP_HXX
70 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */