diff options
-rw-r--r-- | include/vcl/animate/Animation.hxx | 56 | ||||
-rw-r--r-- | include/vcl/animate/AnimationBitmap.hxx | 83 | ||||
-rw-r--r-- | solenv/clang-format/blacklist | 2 | ||||
-rw-r--r-- | vcl/Library_vcl.mk | 1 | ||||
-rw-r--r-- | vcl/source/animate/Animation.cxx | 31 | ||||
-rw-r--r-- | vcl/source/animate/AnimationBitmap.cxx | 54 |
6 files changed, 141 insertions, 86 deletions
diff --git a/include/vcl/animate/Animation.hxx b/include/vcl/animate/Animation.hxx index 8b40ddeaa71a..c642c3b283d9 100644 --- a/include/vcl/animate/Animation.hxx +++ b/include/vcl/animate/Animation.hxx @@ -22,64 +22,10 @@ #include <vcl/dllapi.h> #include <vcl/timer.hxx> -#include <vcl/bitmapex.hxx> +#include <vcl/animate/AnimationBitmap.hxx> #define ANIMATION_TIMEOUT_ON_CLICK 2147483647L -enum class Disposal -{ - Not, - Back, - Previous -}; - -struct VCL_DLLPUBLIC AnimationBitmap -{ - BitmapEx aBmpEx; - Point aPosPix; - Size aSizePix; - long nWait; - Disposal eDisposal; - bool bUserInput; - - AnimationBitmap() - : nWait(0) - , eDisposal(Disposal::Not) - , bUserInput(false) - {} - - AnimationBitmap( - const BitmapEx& rBmpEx, - const Point& rPosPix, - const Size& rSizePix, - long _nWait = 0, - Disposal _eDisposal = Disposal::Not - ) : - aBmpEx ( rBmpEx ), - aPosPix ( rPosPix ), - aSizePix ( rSizePix ), - nWait ( _nWait ), - eDisposal ( _eDisposal ), - bUserInput ( false ) - {} - - bool operator==( const AnimationBitmap& rAnimBmp ) const - { - return( rAnimBmp.aBmpEx == aBmpEx && - rAnimBmp.aPosPix == aPosPix && - rAnimBmp.aSizePix == aSizePix && - rAnimBmp.nWait == nWait && - rAnimBmp.eDisposal == eDisposal && - rAnimBmp.bUserInput == bUserInput ); - } - - bool operator!=( const AnimationBitmap& rAnimBmp ) const - { return !( *this == rAnimBmp ); } - - - BitmapChecksum GetChecksum() const; -}; - class ImplAnimView; class VCL_DLLPUBLIC Animation diff --git a/include/vcl/animate/AnimationBitmap.hxx b/include/vcl/animate/AnimationBitmap.hxx new file mode 100644 index 000000000000..1a91e5257b5b --- /dev/null +++ b/include/vcl/animate/AnimationBitmap.hxx @@ -0,0 +1,83 @@ +/* -*- 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_ANIMATE_ANIMATIONBITMAP_HXX +#define INCLUDED_VCL_ANIMATE_ANIMATIONBITMAP_HXX + +#include <vcl/dllapi.h> +#include <vcl/timer.hxx> +#include <vcl/bitmapex.hxx> + +enum class Disposal +{ + Not, + Back, + Previous +}; + +struct VCL_DLLPUBLIC AnimationBitmap +{ + BitmapEx aBmpEx; + Point aPosPix; + Size aSizePix; + long nWait; + Disposal eDisposal; + bool bUserInput; + + AnimationBitmap() + : nWait(0) + , eDisposal(Disposal::Not) + , bUserInput(false) + {} + + AnimationBitmap( + const BitmapEx& rBmpEx, + const Point& rPosPix, + const Size& rSizePix, + long _nWait = 0, + Disposal _eDisposal = Disposal::Not + ) : + aBmpEx ( rBmpEx ), + aPosPix ( rPosPix ), + aSizePix ( rSizePix ), + nWait ( _nWait ), + eDisposal ( _eDisposal ), + bUserInput ( false ) + {} + + bool operator==( const AnimationBitmap& rAnimBmp ) const + { + return( rAnimBmp.aBmpEx == aBmpEx && + rAnimBmp.aPosPix == aPosPix && + rAnimBmp.aSizePix == aSizePix && + rAnimBmp.nWait == nWait && + rAnimBmp.eDisposal == eDisposal && + rAnimBmp.bUserInput == bUserInput ); + } + + bool operator!=( const AnimationBitmap& rAnimBmp ) const + { return !( *this == rAnimBmp ); } + + + BitmapChecksum GetChecksum() const; +}; + +#endif // INCLUDED_VCL_ANIMATE_ANIMATIONBITMAP_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist index f5a19345265e..f3b493d59d04 100644 --- a/solenv/clang-format/blacklist +++ b/solenv/clang-format/blacklist @@ -7810,6 +7810,7 @@ include/vcl/accessibletable.hxx include/vcl/accessibletableprovider.hxx include/vcl/alpha.hxx include/vcl/animate/Animation.hxx +include/vcl/animate/AnimationBitmap.hxx include/vcl/bitmap.hxx include/vcl/bitmapaccess.hxx include/vcl/bitmapex.hxx @@ -17757,6 +17758,7 @@ vcl/quartz/salgdiutils.cxx vcl/quartz/salvd.cxx vcl/quartz/utils.cxx vcl/source/animate/Animation.cxx +vcl/source/animate/AnimationBitmap.cxx vcl/source/app/ITiledRenderable.cxx vcl/source/app/IconThemeInfo.cxx vcl/source/app/IconThemeScanner.cxx diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index b66da1f8a071..962171879a0b 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -116,6 +116,7 @@ endif $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/animate/Animation \ + vcl/source/animate/AnimationBitmap \ vcl/source/window/errinf \ vcl/source/window/settings \ vcl/source/window/paint \ diff --git a/vcl/source/animate/Animation.cxx b/vcl/source/animate/Animation.cxx index 3e3f20b551b0..54582eaf40ff 100644 --- a/vcl/source/animate/Animation.cxx +++ b/vcl/source/animate/Animation.cxx @@ -19,9 +19,7 @@ #include <sal/config.h> -#include <o3tl/underlyingenumvalue.hxx> #include <tools/stream.hxx> -#include <rtl/crc.h> #include <sal/log.hxx> #include <vcl/animate/Animation.hxx> @@ -36,35 +34,6 @@ sal_uLong Animation::mnAnimCount = 0; -BitmapChecksum AnimationBitmap::GetChecksum() const -{ - BitmapChecksum nCrc = aBmpEx.GetChecksum(); - SVBT32 aBT32; - - Int32ToSVBT32( aPosPix.X(), aBT32 ); - nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); - - Int32ToSVBT32( aPosPix.Y(), aBT32 ); - nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); - - Int32ToSVBT32( aSizePix.Width(), aBT32 ); - nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); - - Int32ToSVBT32( aSizePix.Height(), aBT32 ); - nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); - - Int32ToSVBT32( nWait, aBT32 ); - nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); - - UInt32ToSVBT32( o3tl::underlyingEnumValue(eDisposal), aBT32 ); - nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); - - UInt32ToSVBT32( sal_uInt32(bUserInput), aBT32 ); - nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); - - return nCrc; -} - Animation::Animation() : mnLoopCount ( 0 ), mnLoops ( 0 ), diff --git a/vcl/source/animate/AnimationBitmap.cxx b/vcl/source/animate/AnimationBitmap.cxx new file mode 100644 index 000000000000..c1d3e15bf09e --- /dev/null +++ b/vcl/source/animate/AnimationBitmap.cxx @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + +#include <sal/config.h> +#include <o3tl/underlyingenumvalue.hxx> +#include <rtl/crc.h> +#include <vcl/animate/AnimationBitmap.hxx> + +BitmapChecksum AnimationBitmap::GetChecksum() const +{ + BitmapChecksum nCrc = aBmpEx.GetChecksum(); + SVBT32 aBT32; + + Int32ToSVBT32( aPosPix.X(), aBT32 ); + nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); + + Int32ToSVBT32( aPosPix.Y(), aBT32 ); + nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); + + Int32ToSVBT32( aSizePix.Width(), aBT32 ); + nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); + + Int32ToSVBT32( aSizePix.Height(), aBT32 ); + nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); + + Int32ToSVBT32( nWait, aBT32 ); + nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); + + UInt32ToSVBT32( o3tl::underlyingEnumValue(eDisposal), aBT32 ); + nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); + + UInt32ToSVBT32( sal_uInt32(bUserInput), aBT32 ); + nCrc = vcl_get_checksum( nCrc, aBT32, 4 ); + + return nCrc; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |