framework/Library_fwk.mk                            |    2 
 framework/source/uiconfiguration/ImageArrayData.cxx |   91 -----------
 framework/source/uiconfiguration/ImageList.cxx      |  157 ++++++++++----------
 framework/source/uiconfiguration/ImageList.hxx      |   27 ++-
 framework/source/uiconfiguration/ImplImageList.cxx  |   71 ---------
 framework/source/uiconfiguration/image.h            |   67 --------
 6 files changed, 101 insertions(+), 314 deletions(-)

New commits:
commit 825e3f66497c673dd7ac11a8fce830874288977d
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Jul 19 16:31:37 2019 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Fri Jul 19 21:49:35 2019 +0200

    simplify ImageList
    
    we don't need an Impl pattern here
    
    Change-Id: I93d0c5904a3aee8844987c7e36c19319d071d2f4
    Reviewed-on: https://gerrit.libreoffice.org/75960
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/framework/Library_fwk.mk b/framework/Library_fwk.mk
index 3957a5ace0ff..7a433735ce43 100644
--- a/framework/Library_fwk.mk
+++ b/framework/Library_fwk.mk
@@ -112,9 +112,7 @@ $(eval $(call gb_Library_add_exception_objects,fwk,\
     framework/source/services/taskcreatorsrv \
     framework/source/services/urltransformer \
     framework/source/uiconfiguration/CommandImageResolver \
-    framework/source/uiconfiguration/ImageArrayData \
     framework/source/uiconfiguration/ImageList \
-    framework/source/uiconfiguration/ImplImageList \
     framework/source/uiconfiguration/globalsettings \
     framework/source/uiconfiguration/graphicnameaccess \
     framework/source/uiconfiguration/imagemanager \
diff --git a/framework/source/uiconfiguration/ImageArrayData.cxx 
b/framework/source/uiconfiguration/ImageArrayData.cxx
deleted file mode 100644
index 570d2846ff77..000000000000
--- a/framework/source/uiconfiguration/ImageArrayData.cxx
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- 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 <vcl/outdev.hxx>
-#include <vcl/bitmapex.hxx>
-#include <vcl/alpha.hxx>
-#include <vcl/window.hxx>
-#include <vcl/bitmapaccess.hxx>
-#include <vcl/virdev.hxx>
-#include <vcl/image.hxx>
-#include <vcl/settings.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/ImageTree.hxx>
-
-#include "image.h"
-#include <memory>
-#include <sal/log.hxx>
-
-#if OSL_DEBUG_LEVEL > 0
-#include <rtl/strbuf.hxx>
-#endif
-
-ImageAryData::ImageAryData( const ImageAryData& rData ) :
-    maName( rData.maName ),
-    mnId( rData.mnId ),
-    maBitmapEx( rData.maBitmapEx )
-{
-}
-
-ImageAryData::ImageAryData( const OUString &aName,
-                            sal_uInt16 nId, const BitmapEx &aBitmap )
-        : maName( aName ), mnId( nId ), maBitmapEx( aBitmap )
-{
-}
-
-ImageAryData::~ImageAryData()
-{
-}
-
-ImageAryData& ImageAryData::operator=( const ImageAryData& rData )
-{
-    maName = rData.maName;
-    mnId = rData.mnId;
-    maBitmapEx = rData.maBitmapEx;
-
-    return *this;
-}
-
-void ImageAryData::Load(const OUString &rPrefix)
-{
-    OUString aIconTheme = 
Application::GetSettings().GetStyleSettings().DetermineIconTheme();
-
-    OUString aFileName = rPrefix;
-    aFileName += maName;
-
-    bool bSuccess = ImageTree::get().loadImage(aFileName, aIconTheme, 
maBitmapEx, true);
-
-    /* If the uno command has parameters, passed in from a toolbar,
-     * recover from failure by removing the parameters from the file name
-     */
-    if (!bSuccess && aFileName.indexOf("%3f") > 0)
-    {
-        sal_Int32 nStart = aFileName.indexOf("%3f");
-        sal_Int32 nEnd = aFileName.lastIndexOf(".");
-
-        aFileName = aFileName.replaceAt(nStart, nEnd - nStart, "");
-        bSuccess = ImageTree::get().loadImage(aFileName, aIconTheme, 
maBitmapEx, true);
-    }
-
-    SAL_WARN_IF(!bSuccess, "fwk.uiconfiguration", "Failed to load image '" << 
aFileName
-              << "' from icon theme '" << aIconTheme << "'");
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uiconfiguration/ImageList.cxx 
b/framework/source/uiconfiguration/ImageList.cxx
index 0bb10d3d2bdb..100e152b17fc 100644
--- a/framework/source/uiconfiguration/ImageList.cxx
+++ b/framework/source/uiconfiguration/ImageList.cxx
@@ -29,7 +29,6 @@
 #include <vcl/image.hxx>
 #include <vcl/imagerepository.hxx>
 #include <vcl/ImageTree.hxx>
-#include "image.h"
 #include "ImageList.hxx"
 
 ImageList::ImageList()
@@ -41,48 +40,40 @@ ImageList::ImageList(const std::vector< OUString >& 
rNameVector,
 {
     SAL_INFO( "vcl", "vcl: ImageList::ImageList(const vector< OUString >& ..." 
);
 
-    ImplInit( sal::static_int_cast< sal_uInt16 >( rNameVector.size() ), Size() 
);
+    maImages.reserve( rNameVector.size() );
 
-    mpImplData->maPrefix = rPrefix;
+    maPrefix = rPrefix;
     for( size_t i = 0; i < rNameVector.size(); ++i )
     {
-        mpImplData->AddImage( rNameVector[ i ], static_cast< sal_uInt16 >( i ) 
+ 1, BitmapEx() );
+        ImplAddImage( rNameVector[ i ], static_cast< sal_uInt16 >( i ) + 1, 
BitmapEx() );
     }
 }
 
-void ImageList::ImplInit( sal_uInt16 nItems, const Size &rSize )
-{
-    mpImplData.reset(new ImplImageList);
-    mpImplData->maImages.reserve( nItems );
-    mpImplData->maImageSize = rSize;
-}
-
 // FIXME: Rather a performance hazard
 BitmapEx ImageList::GetAsHorizontalStrip() const
 {
-    Size aSize( mpImplData->maImageSize );
-    sal_uInt16 nCount = GetImageCount();
+    sal_uInt16 nCount = maImages.size();
     if( !nCount )
         return BitmapEx();
-    aSize.setWidth( aSize.Width() * nCount );
+    Size aSize( maImageSize.Width() * nCount, maImageSize.Height() );
 
     // Load any stragglers
     for (sal_uInt16 nIdx = 0; nIdx < nCount; nIdx++)
     {
-        ImageAryData *pData = mpImplData->maImages[ nIdx ].get();
+        ImageAryData *pData = maImages[ nIdx ].get();
         if( pData->IsLoadable() )
-            pData->Load( mpImplData->maPrefix );
+            ImplLoad(*pData);
     }
 
-    BitmapEx aTempl = mpImplData->maImages[ 0 ]->maBitmapEx;
+    BitmapEx aTempl = maImages[ 0 ]->maBitmapEx;
     BitmapEx aResult( aTempl, Point(), aSize );
 
-    tools::Rectangle aSrcRect( Point( 0, 0 ), mpImplData->maImageSize );
+    tools::Rectangle aSrcRect( Point( 0, 0 ), maImageSize );
     for (sal_uInt16 nIdx = 0; nIdx < nCount; nIdx++)
     {
-        tools::Rectangle aDestRect( Point( nIdx * 
mpImplData->maImageSize.Width(), 0 ),
-                             mpImplData->maImageSize );
-        ImageAryData *pData = mpImplData->maImages[ nIdx ].get();
+        tools::Rectangle aDestRect( Point( nIdx * maImageSize.Width(), 0 ),
+                             maImageSize );
+        ImageAryData *pData = maImages[ nIdx ].get();
         aResult.CopyPixel( aDestRect, aSrcRect, &pData->maBitmapEx);
     }
 
@@ -101,32 +92,32 @@ void ImageList::InsertFromHorizontalStrip( const BitmapEx 
&rBitmapEx,
     DBG_ASSERT (rBitmapEx.GetSizePixel().Width() % nItems == 0,
                 "ImageList::InsertFromHorizontalStrip - very odd size");
     aSize.setWidth( aSize.Width() / nItems );
-    ImplInit( nItems, aSize );
+    maImages.clear();
+    maNameHash.clear();
+    maImages.reserve( nItems );
+    maImageSize = aSize;
+    maPrefix.clear();
 
     for (sal_uInt16 nIdx = 0; nIdx < nItems; nIdx++)
     {
         BitmapEx aBitmap( rBitmapEx, Point( nIdx * aSize.Width(), 0 ), aSize );
-        mpImplData->AddImage( rNameVector[ nIdx ], nIdx + 1, aBitmap );
+        ImplAddImage( rNameVector[ nIdx ], nIdx + 1, aBitmap );
     }
 }
 
 sal_uInt16 ImageList::ImplGetImageId( const OUString& rImageName ) const
 {
-    ImageAryData *pImg = mpImplData->maNameHash[ rImageName ];
-    if( pImg )
-        return pImg->mnId;
-    else
+    auto it = maNameHash.find( rImageName );
+    if (it == maNameHash.end())
         return 0;
+    return it->second->mnId;
 }
 
 void ImageList::AddImage( const OUString& rImageName, const Image& rImage )
 {
     SAL_WARN_IF( GetImagePos( rImageName ) != IMAGELIST_IMAGE_NOTFOUND, "vcl", 
"ImageList::AddImage() - ImageName already exists" );
 
-    if( !mpImplData )
-        ImplInit( 0, rImage.GetSizePixel() );
-
-    mpImplData->AddImage( rImageName, GetImageCount() + 1,
+    ImplAddImage( rImageName, GetImageCount() + 1,
                           rImage.GetBitmapEx() );
 }
 
@@ -138,18 +129,18 @@ void ImageList::ReplaceImage( const OUString& rImageName, 
const Image& rImage )
     {
         //Just replace the bitmap rather than doing RemoveImage / AddImage
         //which breaks index-based iteration.
-        ImageAryData *pImg = mpImplData->maNameHash[ rImageName ];
+        ImageAryData *pImg = maNameHash[ rImageName ];
         pImg->maBitmapEx = rImage.GetBitmapEx();
     }
 }
 
 void ImageList::RemoveImage( sal_uInt16 nId )
 {
-    for( size_t i = 0; i < mpImplData->maImages.size(); ++i )
+    for( size_t i = 0; i < maImages.size(); ++i )
     {
-        if( mpImplData->maImages[ i ]->mnId == nId )
+        if( maImages[ i ]->mnId == nId )
         {
-            mpImplData->RemoveImage( static_cast< sal_uInt16 >( i ) );
+            ImplRemoveImage( static_cast< sal_uInt16 >( i ) );
             break;
         }
     }
@@ -157,33 +148,27 @@ void ImageList::RemoveImage( sal_uInt16 nId )
 
 Image ImageList::GetImage( const OUString& rImageName ) const
 {
-    if( mpImplData )
-    {
-        ImageAryData *pImg = mpImplData->maNameHash[ rImageName ];
-
-        if( pImg )
-        {
-            if( pImg->IsLoadable() )
-                pImg->Load( mpImplData->maPrefix );
-            return Image( pImg->maBitmapEx );
-        }
-    }
-
-    return Image();
+    auto it = maNameHash.find( rImageName );
+    if (it == maNameHash.end())
+        return Image();
+    ImageAryData *pImg = it->second;
+    if( pImg->IsLoadable() )
+        ImplLoad( *pImg );
+    return Image( pImg->maBitmapEx );
 }
 
 sal_uInt16 ImageList::GetImageCount() const
 {
-    return mpImplData ? static_cast< sal_uInt16 >( mpImplData->maImages.size() 
) : 0;
+    return static_cast< sal_uInt16 >( maImages.size() );
 }
 
 sal_uInt16 ImageList::GetImagePos( const OUString& rImageName ) const
 {
-    if( mpImplData && !rImageName.isEmpty() )
+    if( !rImageName.isEmpty() )
     {
-        for( size_t i = 0; i < mpImplData->maImages.size(); i++ )
+        for( size_t i = 0; i < maImages.size(); i++ )
         {
-            if (mpImplData->maImages[i]->maName == rImageName)
+            if (maImages[i]->maName == rImageName)
                 return static_cast< sal_uInt16 >( i );
         }
     }
@@ -193,18 +178,12 @@ sal_uInt16 ImageList::GetImagePos( const OUString& 
rImageName ) const
 
 sal_uInt16 ImageList::GetImageId( sal_uInt16 nPos ) const
 {
-    if( mpImplData && (nPos < GetImageCount()) )
-        return mpImplData->maImages[ nPos ]->mnId;
-
-    return 0;
+    return maImages[ nPos ]->mnId;
 }
 
 OUString ImageList::GetImageName( sal_uInt16 nPos ) const
 {
-    if( mpImplData && (nPos < GetImageCount()) )
-        return mpImplData->maImages[ nPos ]->maName;
-
-    return OUString();
+    return maImages[ nPos ]->maName;
 }
 
 void ImageList::GetImageNames( std::vector< OUString >& rNames ) const
@@ -213,30 +192,54 @@ void ImageList::GetImageNames( std::vector< OUString >& 
rNames ) const
 
     rNames = std::vector< OUString >();
 
-    if( mpImplData )
+    for(auto const & pImage : maImages)
     {
-        for(auto const & pImage : mpImplData->maImages)
-        {
-            const OUString& rName( pImage->maName );
-            if( !rName.isEmpty())
-                rNames.push_back( rName );
-        }
+        const OUString& rName( pImage->maName );
+        if( !rName.isEmpty())
+            rNames.push_back( rName );
     }
 }
 
-bool ImageList::operator==( const ImageList& rImageList ) const
+void ImageList::ImplAddImage( const OUString &aName,
+                              sal_uInt16 nId, const BitmapEx &aBitmapEx )
+{
+    ImageAryData *pImg = new ImageAryData{ aName, nId, aBitmapEx };
+    maImages.emplace_back( pImg );
+    if( !aName.isEmpty() )
+        maNameHash [ aName ] = pImg;
+}
+
+void ImageList::ImplRemoveImage( sal_uInt16 nPos )
+{
+    ImageAryData *pImg = maImages[ nPos ].get();
+    if( !pImg->maName.isEmpty() )
+        maNameHash.erase( pImg->maName );
+    maImages.erase( maImages.begin() + nPos );
+}
+
+void ImageList::ImplLoad(ImageAryData& rImageData) const
 {
-    bool bRet = false;
+    OUString aIconTheme = 
Application::GetSettings().GetStyleSettings().DetermineIconTheme();
 
-    if( rImageList.mpImplData == mpImplData )
-        bRet = true;
-    else if( !rImageList.mpImplData || !mpImplData )
-        bRet = false;
-    else if( rImageList.GetImageCount() == GetImageCount() &&
-              rImageList.mpImplData->maImageSize == mpImplData->maImageSize )
-        bRet = true; // strange semantic
+    OUString aFileName = maPrefix + rImageData.maName;
 
-    return bRet;
+    bool bSuccess = ImageTree::get().loadImage(aFileName, aIconTheme, 
rImageData.maBitmapEx, true);
+
+    /* If the uno command has parameters, passed in from a toolbar,
+     * recover from failure by removing the parameters from the file name
+     */
+    if (!bSuccess && aFileName.indexOf("%3f") > 0)
+    {
+        sal_Int32 nStart = aFileName.indexOf("%3f");
+        sal_Int32 nEnd = aFileName.lastIndexOf(".");
+
+        aFileName = aFileName.replaceAt(nStart, nEnd - nStart, "");
+        bSuccess = ImageTree::get().loadImage(aFileName, aIconTheme, 
rImageData.maBitmapEx, true);
+    }
+
+    SAL_WARN_IF(!bSuccess, "fwk.uiconfiguration", "Failed to load image '" << 
aFileName
+              << "' from icon theme '" << aIconTheme << "'");
 }
 
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uiconfiguration/ImageList.hxx 
b/framework/source/uiconfiguration/ImageList.hxx
index a4b46f5160d9..604624ea666b 100644
--- a/framework/source/uiconfiguration/ImageList.hxx
+++ b/framework/source/uiconfiguration/ImageList.hxx
@@ -20,7 +20,20 @@
 #ifndef FRAMEWORK_SOURCE_UICONFIGURATION_IMAGELIST_HXX
 #define FRAMEWORK_SOURCE_UICONFIGURATION_IMAGELIST_HXX
 
-struct ImplImageList;
+#include <vcl/bitmapex.hxx>
+#include <unordered_map>
+#include <vector>
+
+// Images identified by either name, or by id
+struct ImageAryData
+{
+    OUString                maName;
+    sal_uInt16              mnId;
+    BitmapEx                maBitmapEx;
+
+    bool IsLoadable() { return maBitmapEx.IsEmpty() && !maName.isEmpty(); }
+};
+
 
 class ImageList
 {
@@ -49,15 +62,17 @@ public:
     OUString        GetImageName( sal_uInt16 nPos ) const;
     void            GetImageNames( ::std::vector< OUString >& rNames ) const;
 
-    bool            operator==( const ImageList& rImageList ) const;
-    bool            operator!=( const ImageList& rImageList ) const { return 
!(ImageList::operator==( rImageList )); }
-
 private:
 
-    std::shared_ptr<ImplImageList> mpImplData;
+    std::vector< std::unique_ptr<ImageAryData> >   maImages;
+    std::unordered_map< OUString, ImageAryData * > maNameHash;
+    OUString               maPrefix;
+    Size                   maImageSize;
 
-    void    ImplInit( sal_uInt16 nItems, const Size &rSize );
     sal_uInt16  ImplGetImageId( const OUString& rImageName ) const;
+    void ImplAddImage( const OUString &aName, sal_uInt16 nId, const BitmapEx 
&aBitmapEx );
+    void ImplRemoveImage( sal_uInt16 nPos );
+    void ImplLoad(ImageAryData&) const;
 };
 
 #endif // INCLUDED_VCL_IMAGE_HXX
diff --git a/framework/source/uiconfiguration/ImplImageList.cxx 
b/framework/source/uiconfiguration/ImplImageList.cxx
deleted file mode 100644
index 1c594f16bf89..000000000000
--- a/framework/source/uiconfiguration/ImplImageList.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- 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 <vcl/outdev.hxx>
-#include <vcl/bitmapex.hxx>
-#include <vcl/alpha.hxx>
-#include <vcl/window.hxx>
-#include <vcl/bitmapaccess.hxx>
-#include <vcl/virdev.hxx>
-#include <vcl/image.hxx>
-#include <vcl/settings.hxx>
-
-#include "image.h"
-#include <memory>
-
-ImplImageList::ImplImageList()
-{
-}
-
-ImplImageList::ImplImageList( const ImplImageList &aSrc )
-    : maPrefix(aSrc.maPrefix)
-    , maImageSize(aSrc.maImageSize)
-{
-    maImages.reserve( aSrc.maImages.size() );
-    for (auto const& elem : aSrc.maImages)
-    {
-        ImageAryData* pAryData = new ImageAryData(*elem);
-        maImages.emplace_back( pAryData );
-        if( !pAryData->maName.isEmpty() )
-            maNameHash [ pAryData->maName ] = pAryData;
-    }
-}
-
-ImplImageList::~ImplImageList()
-{
-}
-
-void ImplImageList::AddImage( const OUString &aName,
-                              sal_uInt16 nId, const BitmapEx &aBitmapEx )
-{
-    ImageAryData *pImg = new ImageAryData( aName, nId, aBitmapEx );
-    maImages.emplace_back( pImg );
-    if( !aName.isEmpty() )
-        maNameHash [ aName ] = pImg;
-}
-
-void ImplImageList::RemoveImage( sal_uInt16 nPos )
-{
-    ImageAryData *pImg = maImages[ nPos ].get();
-    if( !pImg->maName.isEmpty() )
-        maNameHash.erase( pImg->maName );
-    maImages.erase( maImages.begin() + nPos );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/uiconfiguration/image.h 
b/framework/source/uiconfiguration/image.h
deleted file mode 100644
index 96c952d3dfe3..000000000000
--- a/framework/source/uiconfiguration/image.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- 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 FRAMEWORK_SOURCE_UICONFIGURATION_IMAGE_H
-#define FRAMEWORK_SOURCE_UICONFIGURATION_IMAGE_H
-
-#include <vcl/bitmapex.hxx>
-
-#include <unordered_map>
-#include <vector>
-
-struct ImageAryData
-{
-    OUString maName;
-    // Images identified by either name, or by id
-    sal_uInt16              mnId;
-    BitmapEx                maBitmapEx;
-
-    ImageAryData( const OUString &aName,
-                  sal_uInt16 nId, const BitmapEx &aBitmap );
-    ImageAryData( const ImageAryData& rData );
-    ~ImageAryData();
-
-    bool IsLoadable() { return maBitmapEx.IsEmpty() && !maName.isEmpty(); }
-    void Load(const OUString &rPrefix);
-
-    ImageAryData&   operator=( const ImageAryData& rData );
-};
-
-struct ImplImageList
-{
-    typedef std::unordered_map< OUString, ImageAryData * >
-        ImageAryDataNameHash;
-
-    std::vector< std::unique_ptr<ImageAryData> >  maImages;
-    ImageAryDataNameHash   maNameHash;
-    OUString               maPrefix;
-    Size                   maImageSize;
-
-    ImplImageList();
-    ImplImageList( const ImplImageList &aSrc );
-    ~ImplImageList();
-
-    void AddImage( const OUString &aName,
-                   sal_uInt16 nId, const BitmapEx &aBitmapEx );
-    void RemoveImage( sal_uInt16 nPos );
-};
-
-#endif // INCLUDED_VCL_INC_IMAGE_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to