update dev300-m58
[ooovba.git] / vcl / source / gdi / impanmvw.hxx
blob03deac74407ab08e2f37344f5c61cc8902112713
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: impanmvw.hxx,v $
10 * $Revision: 1.4 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _SV_IMPANMVW_HXX
32 #define _SV_IMPANMVW_HXX
34 #include <vcl/animate.hxx>
36 // ----------------
37 // - ImplAnimView -
38 // ----------------
40 class Animation;
41 class OutputDevice;
42 class VirtualDevice;
43 struct AnimationBitmap;
45 class ImplAnimView
47 private:
49 Animation* mpParent;
50 OutputDevice* mpOut;
51 long mnExtraData;
52 Point maPt;
53 Point maDispPt;
54 Point maRestPt;
55 Size maSz;
56 Size maSzPix;
57 Size maDispSz;
58 Size maRestSz;
59 MapMode maMap;
60 Region maClip;
61 VirtualDevice* mpBackground;
62 VirtualDevice* mpRestore;
63 ULONG mnActPos;
64 Disposal meLastDisposal;
65 BOOL mbPause;
66 BOOL mbFirst;
67 BOOL mbMarked;
68 BOOL mbHMirr;
69 BOOL mbVMirr;
71 void ImplGetPosSize( const AnimationBitmap& rAnm, Point& rPosPix, Size& rSizePix );
72 void ImplDraw( ULONG nPos, VirtualDevice* pVDev );
74 public:
76 ImplAnimView( Animation* pParent, OutputDevice* pOut,
77 const Point& rPt, const Size& rSz, ULONG nExtraData,
78 OutputDevice* pFirstFrameOutDev = NULL );
79 ~ImplAnimView();
81 BOOL ImplMatches( OutputDevice* pOut, long nExtraData ) const;
82 void ImplDrawToPos( ULONG nPos );
83 void ImplDraw( ULONG nPos );
84 void ImplRepaint();
85 AInfo* ImplCreateAInfo() const;
87 const Point& ImplGetOutPos() const { return maPt; }
89 const Size& ImplGetOutSize() const { return maSz; }
90 const Size& ImplGetOutSizePix() const { return maSzPix; }
92 void ImplPause( BOOL bPause ) { mbPause = bPause; }
93 BOOL ImplIsPause() const { return mbPause; }
95 void ImplSetMarked( BOOL bMarked ) { mbMarked = bMarked; }
96 BOOL ImplIsMarked() const { return mbMarked; }
99 #endif