bump product version to 7.2.5.1
[LibreOffice.git] / vcl / inc / impanmvw.hxx
blob99bd7cd5dff2daef912942e10e67984bc9366864
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_VCL_SOURCE_GDI_IMPANMVW_HXX
21 #define INCLUDED_VCL_SOURCE_GDI_IMPANMVW_HXX
23 #include <vcl/animate/Animation.hxx>
24 #include <vcl/vclptr.hxx>
26 class Animation;
27 class OutputDevice;
28 class VirtualDevice;
29 struct AnimationBitmap;
31 struct AInfo
33 Point aStartOrg;
34 Size aStartSize;
35 VclPtr<OutputDevice> pOutDev;
36 void* pViewData;
37 tools::Long nExtraData;
38 bool bPause;
40 AInfo();
44 class ImplAnimView
46 private:
48 friend class Animation;
50 Animation* mpParent;
51 VclPtr<OutputDevice> mpRenderContext;
52 tools::Long mnExtraData;
53 Point maPt;
54 Point maDispPt;
55 Point maRestPt;
56 Size maSz;
57 Size maSzPix;
58 Size maDispSz;
59 Size maRestSz;
60 vcl::Region maClip;
61 VclPtr<VirtualDevice> mpBackground;
62 VclPtr<VirtualDevice> mpRestore;
63 sal_uLong mnActPos;
64 Disposal meLastDisposal;
65 bool mbIsPaused;
66 bool mbIsMarked;
67 bool mbIsMirroredHorizontally;
68 bool mbIsMirroredVertically;
70 public:
71 ~ImplAnimView();
72 private:
73 ImplAnimView( Animation* pParent, OutputDevice* pOut,
74 const Point& rPt, const Size& rSz, sal_uLong nExtraData,
75 OutputDevice* pFirstFrameOutDev = nullptr );
77 bool matches(const OutputDevice* pOut, tools::Long nExtraData) const;
78 void drawToPos( sal_uLong nPos );
79 void draw( sal_uLong nPos, VirtualDevice* pVDev=nullptr );
80 void repaint();
81 AInfo* createAInfo() const;
83 void getPosSize( const AnimationBitmap& rAnm, Point& rPosPix, Size& rSizePix );
85 const Point& getOutPos() const { return maPt; }
87 const Size& getOutSizePix() const { return maSzPix; }
89 void pause( bool bIsPaused ) { mbIsPaused = bIsPaused; }
90 bool isPause() const { return mbIsPaused; }
92 void setMarked( bool bIsMarked ) { mbIsMarked = bIsMarked; }
93 bool isMarked() const { return mbIsMarked; }
96 #endif
98 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */