[Libreoffice-commits] core.git: include/vcl vcl/source
Tomaž Vajngerl
tomaz.vajngerl at collabora.co.uk
Sat Oct 29 18:15:32 UTC 2016
include/vcl/BitmapTools.hxx | 4 ++++
vcl/source/bitmap/BitmapTools.cxx | 22 ++++++++++++++++++++++
2 files changed, 26 insertions(+)
New commits:
commit 4a4fd38c876768f28f9c1f0a99faf385515576bc
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date: Thu Oct 27 18:18:23 2016 +0200
vcl: add bitmap::loadFromResource with additional flags
Sometimes we want to surpress automatic scaling and converting
for dark theme. This adds a loadFromResource function with
additional flags which makes this possible.
Change-Id: I893cee82ad6942644755f0c5b772fb5f073bbf00
Reviewed-on: https://gerrit.libreoffice.org/30341
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
Tested-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx
index c67bbb8..8be1688 100644
--- a/include/vcl/BitmapTools.hxx
+++ b/include/vcl/BitmapTools.hxx
@@ -13,12 +13,16 @@
#include <vcl/bitmapex.hxx>
#include <tools/stream.hxx>
+#include <vcl/implimagetree.hxx>
+
namespace vcl
{
namespace bitmap
{
+BitmapEx VCL_DLLPUBLIC loadFromResource(const ResId& rResId, const ImageLoadFlags eFlags = ImageLoadFlags::NONE);
+
void loadFromSvg(SvStream& rStream, const OUString& sPath, BitmapEx& rBitmapEx, double fScaleFactor = 1.0);
}
diff --git a/vcl/source/bitmap/BitmapTools.cxx b/vcl/source/bitmap/BitmapTools.cxx
index fe47363..02de420 100644
--- a/vcl/source/bitmap/BitmapTools.cxx
+++ b/vcl/source/bitmap/BitmapTools.cxx
@@ -21,6 +21,10 @@
#include <com/sun/star/rendering/XIntegerReadOnlyBitmap.hpp>
+#include <tools/resmgr.hxx>
+#include <tools/rc.h>
+#include <vcl/svapp.hxx>
+
using namespace css;
using drawinglayer::primitive2d::Primitive2DSequence;
@@ -32,6 +36,24 @@ namespace vcl
namespace bitmap
{
+BitmapEx loadFromResource(const ResId& rResId, const ImageLoadFlags eFlags)
+{
+ BitmapEx aBitmapEx;
+
+ ResMgr* pResMgr = nullptr;
+
+ ResMgr::GetResourceSkipHeader(rResId.SetRT( RSC_BITMAP ), &pResMgr);
+ pResMgr->ReadLong();
+ pResMgr->ReadLong();
+
+ const OUString aFileName(pResMgr->ReadString());
+ OUString aIconTheme = Application::GetSettings().GetStyleSettings().DetermineIconTheme();
+
+ ImplImageTree::get().loadImage(aFileName, aIconTheme, aBitmapEx, true, eFlags);
+
+ return aBitmapEx;
+}
+
void loadFromSvg(SvStream& rStream, const OUString& sPath, BitmapEx& rBitmapEx, double fScalingFactor)
{
uno::Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext());
More information about the Libreoffice-commits
mailing list