summaryrefslogtreecommitdiff
path: root/vcl/source/gdi
diff options
context:
space:
mode:
authorAriel Constenla-Haile <arielch@apache.org>2012-09-22 18:38:56 +0000
committerAriel Constenla-Haile <arielch@apache.org>2012-09-22 18:38:56 +0000
commitcb99ad779d66d35e7f8539d44a7549df599f8efb (patch)
treef60b97b1e0afd45c0cf019b61f0eb17d47c2593e /vcl/source/gdi
parentfa12d0b3a7e876b543dab24919b07339bc20dff8 (diff)
#i119418# - About Dialog improvements
Notes
Notes: ignore: aoo
Diffstat (limited to 'vcl/source/gdi')
-rw-r--r--vcl/source/gdi/imagerepository.cxx80
1 files changed, 67 insertions, 13 deletions
diff --git a/vcl/source/gdi/imagerepository.cxx b/vcl/source/gdi/imagerepository.cxx
index b21a7ea02b37..56ebfbbfaaa7 100644
--- a/vcl/source/gdi/imagerepository.cxx
+++ b/vcl/source/gdi/imagerepository.cxx
@@ -27,27 +27,81 @@
#include <vcl/bitmapex.hxx>
#include <vcl/imagerepository.hxx>
#include <vcl/svapp.hxx>
+#include <vcl/image.hxx>
+#include <vcl/pngread.hxx>
+#include <rtl/bootstrap.hxx>
+#include <tools/stream.hxx>
+#include <tools/urlobj.hxx>
#include "impimagetree.hxx"
-//........................................................................
namespace vcl
{
-//........................................................................
-
- //====================================================================
- //= ImageRepository
- //====================================================================
- //--------------------------------------------------------------------
- bool ImageRepository::loadImage( const ::rtl::OUString& _rName, BitmapEx& _out_rImage, bool _bSearchLanguageDependent )
+ bool ImageRepository::loadImage( const ::rtl::OUString& _rName,
+ BitmapEx& _out_rImage,
+ bool _bSearchLanguageDependent )
{
- ::rtl::OUString sCurrentSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
+ ::rtl::OUString sCurrentSymbolsStyle =
+ Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
ImplImageTreeSingletonRef aImplImageTree;
- return aImplImageTree->loadImage( _rName, sCurrentSymbolsStyle, _out_rImage, _bSearchLanguageDependent );
+
+ return aImplImageTree->loadImage( _rName,
+ sCurrentSymbolsStyle,
+ _out_rImage,
+ _bSearchLanguageDependent );
+ }
+
+
+ static bool lcl_loadPNG( const rtl::OUString &rPath,
+ const rtl::OUString &rImageFileName,
+ Image &rImage )
+ {
+ INetURLObject aObj( rPath );
+ aObj.insertName( rImageFileName );
+ SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
+ if ( !aStrm.GetError() )
+ {
+ PNGReader aReader( aStrm );
+ BitmapEx aBmp = aReader.Read();
+ rImage = Image( aBmp );
+
+ return true;
+ }
+
+ return false;
}
-//........................................................................
-} // namespace vcl
-//........................................................................
+ /* TODO support bSearchLanguageDependent */
+ bool ImageRepository::loadBrandingImage( const rtl::OUString &rName,
+ Image &rImage,
+ bool /* bSearchLanguageDependent */ )
+ {
+ rtl::OUString sImages;
+ rtl::OUStringBuffer aBuff( rName );
+ rtl::OUString aBasePath( RTL_CONSTASCII_USTRINGPARAM( "$BRAND_BASE_DIR/program" ) );
+ rtl::Bootstrap::expandMacros( aBasePath );
+
+ bool bLoaded = false;
+ sal_Int32 nIndex = 0;
+
+ if ( Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
+ {
+ aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( "_hc.png," ) );
+ aBuff.append( rName );
+ }
+ aBuff.appendAscii( RTL_CONSTASCII_STRINGPARAM( ".png" ) );
+ sImages = aBuff.makeStringAndClear();
+
+ do
+ {
+ bLoaded = lcl_loadPNG( aBasePath,
+ sImages.getToken( 0, ',', nIndex ),
+ rImage );
+ }
+ while ( !bLoaded && ( nIndex >= 0 ) );
+
+ return bLoaded;
+ }
+}