summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2013-01-09 11:16:47 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-01-11 11:17:17 +0100
commit5d1137fce2329ff463d11b46ee31ec210254445c (patch)
tree78d594bd88d827c4ac78cbf8fdcdeabce76ff332 /vcl
parentcae060de53cbfc0737a75ed156aec8c383a14918 (diff)
Personas: As Michael suggested, use BitmapEx instead of BitmapEx*.
Change-Id: Ib1d84b37d452785d12502095c0eedaac4a25fb6b (cherry picked from commit 0721b5b83e34de1e2fcb320d6a7deae1ad109d61) Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/vcl/settings.hxx10
-rw-r--r--vcl/source/app/settings.cxx38
-rw-r--r--vcl/source/window/dockingarea.cxx8
-rw-r--r--vcl/source/window/menu.cxx12
4 files changed, 30 insertions, 38 deletions
diff --git a/vcl/inc/vcl/settings.hxx b/vcl/inc/vcl/settings.hxx
index d4d44388d4c4..8e49b2cc9fdd 100644
--- a/vcl/inc/vcl/settings.hxx
+++ b/vcl/inc/vcl/settings.hxx
@@ -23,13 +23,13 @@
#include "tools/solar.h"
#include "vcl/dllapi.h"
#include "tools/color.hxx"
+#include "vcl/bitmapex.hxx"
#include "vcl/font.hxx"
#include "vcl/accel.hxx"
#include "vcl/wall.hxx"
#include <i18npool/languagetag.hxx>
#include <unotools/syslocale.hxx>
-class BitmapEx;
class CollatorWrapper;
class LocaleDataWrapper;
@@ -351,8 +351,8 @@ private:
OUString maPersonaHeaderFooter; ///< Cache the settings to detect changes.
- BitmapEx* mpPersonaHeaderBitmap; ///< Cache the header bitmap.
- BitmapEx* mpPersonaFooterBitmap; ///< Cache the footer bitmap.
+ BitmapEx mpPersonaHeaderBitmap; ///< Cache the header bitmap.
+ BitmapEx mpPersonaFooterBitmap; ///< Cache the footer bitmap.
};
#define DEFAULT_WORKSPACE_GRADIENT_START_COLOR Color( 0xa3, 0xae, 0xb8 )
@@ -866,8 +866,8 @@ public:
void SetFrameStyle( const FrameStyle& rStyle )
{ CopyData(); mpData->maFrameStyle = rStyle; }
- const BitmapEx* GetPersonaHeader() const;
- const BitmapEx* GetPersonaFooter() const;
+ const BitmapEx GetPersonaHeader() const;
+ const BitmapEx GetPersonaFooter() const;
void SetStandardStyles();
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 17d523db7513..32366face1bc 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -34,7 +34,6 @@
#include "vcl/i18nhelp.hxx"
#include "vcl/configsettings.hxx"
#include "vcl/gradient.hxx"
-#include "vcl/bitmapex.hxx"
#include "unotools/fontcfg.hxx"
#include "unotools/localedatawrapper.hxx"
@@ -204,8 +203,8 @@ sal_Bool MouseSettings::operator ==( const MouseSettings& rSet ) const
ImplStyleData::ImplStyleData() :
maPersonaHeaderFooter(),
- mpPersonaHeaderBitmap( NULL ),
- mpPersonaFooterBitmap( NULL )
+ mpPersonaHeaderBitmap(),
+ mpPersonaFooterBitmap()
{
mnRefCount = 1;
mnScrollBarSize = 16;
@@ -305,8 +304,8 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
maDialogStyle( rData.maDialogStyle ),
maFrameStyle( rData.maFrameStyle ),
maPersonaHeaderFooter( rData.maPersonaHeaderFooter ),
- mpPersonaHeaderBitmap( rData.mpPersonaHeaderBitmap? new BitmapEx( *rData.mpPersonaHeaderBitmap ): NULL ),
- mpPersonaFooterBitmap( rData.mpPersonaFooterBitmap? new BitmapEx( *rData.mpPersonaFooterBitmap ): NULL )
+ mpPersonaHeaderBitmap( rData.mpPersonaHeaderBitmap ),
+ mpPersonaFooterBitmap( rData.mpPersonaFooterBitmap )
{
mnRefCount = 1;
mnBorderSize = rData.mnBorderSize;
@@ -687,7 +686,7 @@ sal_Bool StyleSettings::GetUseImagesInMenus() const
// -----------------------------------------------------------------------
-static BitmapEx* readBitmapEx( const OUString& rPath )
+static BitmapEx readBitmapEx( const OUString& rPath )
{
OUString aPath( rPath );
rtl::Bootstrap::expandMacros( aPath );
@@ -695,19 +694,15 @@ static BitmapEx* readBitmapEx( const OUString& rPath )
// import the image
Graphic aGraphic;
if ( GraphicFilter::LoadGraphic( aPath, String(), aGraphic ) != GRFILTER_OK )
- return NULL;
+ return BitmapEx();
- const BitmapEx& rBitmap( aGraphic.GetBitmapEx() );
- if ( rBitmap.IsEmpty() )
- return NULL;
-
- return new BitmapEx( rBitmap );
+ return aGraphic.GetBitmapEx();
}
enum WhichPersona { PERSONA_HEADER, PERSONA_FOOTER };
/** Update the setting of the Persona header / footer in ImplStyleData */
-static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFooter, BitmapEx*& pHeaderFooterBitmap )
+static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFooter, BitmapEx& rHeaderFooterBitmap )
{
uno::Reference< uno::XComponentContext > xContext( comphelper::getProcessComponentContext() );
if ( !xContext.is() )
@@ -745,9 +740,6 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
case PERSONA_FOOTER: aName = aFooter; break;
}
- delete pHeaderFooterBitmap;
- pHeaderFooterBitmap = NULL;
-
if ( !aName.isEmpty() )
{
// try the gallery first, then edition, and the program path if
@@ -757,23 +749,23 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
gallery += "/user/gallery/personas/";
if ( aPersona == "own" )
- pHeaderFooterBitmap = readBitmapEx( gallery + aName );
+ rHeaderFooterBitmap = readBitmapEx( gallery + aName );
- if ( !pHeaderFooterBitmap )
- pHeaderFooterBitmap = readBitmapEx( "$BRAND_BASE_DIR/program/edition/" + aName );
+ if ( rHeaderFooterBitmap.IsEmpty() )
+ rHeaderFooterBitmap = readBitmapEx( "$BRAND_BASE_DIR/program/edition/" + aName );
- if ( !pHeaderFooterBitmap )
- pHeaderFooterBitmap = readBitmapEx( "$BRAND_BASE_DIR/program/" + aName );
+ if ( rHeaderFooterBitmap.IsEmpty() )
+ rHeaderFooterBitmap = readBitmapEx( "$BRAND_BASE_DIR/program/" + aName );
}
}
-const BitmapEx* StyleSettings::GetPersonaHeader() const
+const BitmapEx StyleSettings::GetPersonaHeader() const
{
setupPersonaHeaderFooter( PERSONA_HEADER, mpData->maPersonaHeaderFooter, mpData->mpPersonaHeaderBitmap );
return mpData->mpPersonaHeaderBitmap;
}
-const BitmapEx* StyleSettings::GetPersonaFooter() const
+const BitmapEx StyleSettings::GetPersonaFooter() const
{
setupPersonaHeaderFooter( PERSONA_FOOTER, mpData->maPersonaHeaderFooter, mpData->mpPersonaFooterBitmap );
return mpData->mpPersonaFooterBitmap;
diff --git a/vcl/source/window/dockingarea.cxx b/vcl/source/window/dockingarea.cxx
index 8269c5e94985..e20265ded966 100644
--- a/vcl/source/window/dockingarea.cxx
+++ b/vcl/source/window/dockingarea.cxx
@@ -50,10 +50,10 @@ DockingAreaWindow::ImplData::~ImplData()
static void ImplInitBackground( DockingAreaWindow* pThis )
{
- const BitmapEx* pPersonaBitmap = Application::GetSettings().GetStyleSettings().GetPersonaHeader();
- if ( pPersonaBitmap != NULL && pThis->GetAlign() == WINDOWALIGN_TOP )
+ const BitmapEx& rPersonaBitmap = Application::GetSettings().GetStyleSettings().GetPersonaHeader();
+ if ( !rPersonaBitmap.IsEmpty() && pThis->GetAlign() == WINDOWALIGN_TOP )
{
- Wallpaper aWallpaper( *pPersonaBitmap );
+ Wallpaper aWallpaper( rPersonaBitmap );
aWallpaper.SetStyle( WALLPAPER_TOPRIGHT );
// we need to shift the bitmap vertically so that it spans over the
@@ -175,7 +175,7 @@ void DockingAreaWindow::Paint( const Rectangle& )
}
ControlState nState = CTRL_STATE_ENABLED;
- if ( GetAlign() == WINDOWALIGN_TOP && Application::GetSettings().GetStyleSettings().GetPersonaHeader() )
+ if ( GetAlign() == WINDOWALIGN_TOP && !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() )
Erase();
else if ( !ImplGetSVData()->maNWFData.mbDockingAreaSeparateTB )
{
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 5fe08d186b06..ec350985c984 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -3856,10 +3856,10 @@ static void ImplInitMenuWindow( Window* pWin, sal_Bool bFont, sal_Bool bMenuBar
pWin->SetPointFont( rStyleSettings.GetMenuFont() );
if( bMenuBar )
{
- const BitmapEx* pPersonaBitmap = Application::GetSettings().GetStyleSettings().GetPersonaHeader();
- if ( pPersonaBitmap != NULL )
+ const BitmapEx& rPersonaBitmap = Application::GetSettings().GetStyleSettings().GetPersonaHeader();
+ if ( !rPersonaBitmap.IsEmpty() )
{
- Wallpaper aWallpaper( *pPersonaBitmap );
+ Wallpaper aWallpaper( rPersonaBitmap );
aWallpaper.SetStyle( WALLPAPER_TOPRIGHT );
pWin->SetBackground( aWallpaper );
pWin->SetPaintTransparent( sal_False );
@@ -5503,7 +5503,7 @@ void MenuBarWindow::HighlightItem( sal_uInt16 nPos, sal_Bool bHighlight )
MenubarValue aControlValue;
aControlValue.maTopDockingAreaHeight = ImplGetTopDockingAreaHeight( this );
- if ( Application::GetSettings().GetStyleSettings().GetPersonaHeader() )
+ if ( !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() )
Erase();
else
{
@@ -5539,7 +5539,7 @@ void MenuBarWindow::HighlightItem( sal_uInt16 nPos, sal_Bool bHighlight )
MenubarValue aMenubarValue;
aMenubarValue.maTopDockingAreaHeight = ImplGetTopDockingAreaHeight( this );
- if ( Application::GetSettings().GetStyleSettings().GetPersonaHeader() )
+ if ( !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() )
Erase( aRect );
else
{
@@ -5775,7 +5775,7 @@ void MenuBarWindow::Paint( const Rectangle& )
MenubarValue aMenubarValue;
aMenubarValue.maTopDockingAreaHeight = ImplGetTopDockingAreaHeight( this );
- if ( Application::GetSettings().GetStyleSettings().GetPersonaHeader() )
+ if ( !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() )
Erase();
else
{