View | Details | Raw Unified | Return to issue 36518
Collapse All | Expand All

(-)vcl/inc/image.hxx (+1 lines)
Lines 231-236 private: Link Here
231
231
232
    SAL_DLLPRIVATE void    ImplInitBitmapEx( const ::rtl::OUString& rUserImageName,
232
    SAL_DLLPRIVATE void    ImplInitBitmapEx( const ::rtl::OUString& rUserImageName,
233
                                             const ::std::vector< ::rtl::OUString >& rImageNames,
233
                                             const ::std::vector< ::rtl::OUString >& rImageNames,
234
                                             const ::rtl::OUString& rSymbolsStyle,
234
                                             BitmapEx& rBmpEx,
235
                                             BitmapEx& rBmpEx,
235
                                             const Color* pMaskColor ) const;
236
                                             const Color* pMaskColor ) const;
236
	SAL_DLLPRIVATE void    ImplInit( const BitmapEx& rBitmapEx, USHORT nInit, const USHORT* pIdAry, const ::std::vector< ::rtl::OUString >* pNames, USHORT nGrow );
237
	SAL_DLLPRIVATE void    ImplInit( const BitmapEx& rBitmapEx, USHORT nInit, const USHORT* pIdAry, const ::std::vector< ::rtl::OUString >* pNames, USHORT nGrow );
(-)vcl/inc/impimagetree.hxx (-3 / +8 lines)
Lines 89-95 public: Link Here
89
					ImplImageTree();
89
					ImplImageTree();
90
					~ImplImageTree();
90
					~ImplImageTree();
91
91
92
	bool 			loadImage( const ::rtl::OUString& rName, BitmapEx& rReturn, bool bSearchLanguageDependent = false );
92
	bool 			loadImage( const ::rtl::OUString& rName,
93
							   const ::rtl::OUString& rSymbolsStyle,
94
							   BitmapEx& rReturn,
95
							   bool bSearchLanguageDependent = false );
93
	void			addUserImage( const ::rtl::OUString& rName, const BitmapEx& rReturn );
96
	void			addUserImage( const ::rtl::OUString& rName, const BitmapEx& rReturn );
94
	
97
	
95
	static void     cleanup();
98
	static void     cleanup();
Lines 101-115 private: Link Here
101
	::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > 			mxPathSettings;
104
	::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > 			mxPathSettings;
102
	::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > 		mxFileAccess;
105
	::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > 		mxFileAccess;
103
	bool																				mbInit;
106
	bool																				mbInit;
104
			
107
	::rtl::OUString																		maSymbolsStyle;
108
105
	bool					implInit();
109
	bool					implInit();
106
	const ::rtl::OUString&	implGetZipFileURL() const;
110
	::rtl::OUString			implGetZipFileURL( bool bWithStyle = true ) const;
107
	const ::rtl::OUString&	implGetUserDirURL() const;
111
	const ::rtl::OUString&	implGetUserDirURL() const;
108
	::rtl::OUString 		implGetUserFileURL( const ::rtl::OUString& rName ) const;
112
	::rtl::OUString 		implGetUserFileURL( const ::rtl::OUString& rName ) const;
109
	void					implCheckUserCache();
113
	void					implCheckUserCache();
110
	bool					implLoadFromStream( SvStream& rIStm, const ::rtl::OUString& rFileName, BitmapEx& rReturn );
114
	bool					implLoadFromStream( SvStream& rIStm, const ::rtl::OUString& rFileName, BitmapEx& rReturn );
111
    ::std::auto_ptr< SvStream > implGetStream( const ::com::sun::star::uno::Reference< 
115
    ::std::auto_ptr< SvStream > implGetStream( const ::com::sun::star::uno::Reference< 
112
                                                        ::com::sun::star::io::XInputStream >& rxIStm ) const;
116
                                                        ::com::sun::star::io::XInputStream >& rxIStm ) const;
117
	void					implUpdateSymbolsStyle( const ::rtl::OUString& rSymbolsStyle );
113
};
118
};
114
119
115
typedef ::salhelper::SingletonRef< ImplImageTree > ImplImageTreeSingletonRef;
120
typedef ::salhelper::SingletonRef< ImplImageTree > ImplImageTreeSingletonRef;
(-)vcl/inc/settings.hxx (+13 lines)
Lines 454-459 private: Link Here
454
    ULONG                           mnLogoDisplayTime;
454
    ULONG                           mnLogoDisplayTime;
455
    ULONG                           mnDisplayOptions;
455
    ULONG                           mnDisplayOptions;
456
    ULONG                           mnToolbarIconSize;
456
    ULONG                           mnToolbarIconSize;
457
    ULONG                           mnSymbolsStyle;
457
    ULONG                           mnUseFlatMenues;
458
    ULONG                           mnUseFlatMenues;
458
    ULONG                           mnOptions;
459
    ULONG                           mnOptions;
459
    USHORT                          mnScreenZoom;
460
    USHORT                          mnScreenZoom;
Lines 543-548 private: Link Here
543
#define STYLE_TOOLBAR_ICONSIZE_SMALL		((ULONG)1)
544
#define STYLE_TOOLBAR_ICONSIZE_SMALL		((ULONG)1)
544
#define STYLE_TOOLBAR_ICONSIZE_LARGE		((ULONG)2)
545
#define STYLE_TOOLBAR_ICONSIZE_LARGE		((ULONG)2)
545
546
547
#define STYLE_SYMBOLS_AUTO			((ULONG)0)
548
#define STYLE_SYMBOLS_DEFAULT		((ULONG)1)
549
#define STYLE_SYMBOLS_INDUSTRIAL	((ULONG)2)
550
#define STYLE_SYMBOLS_CRYSTAL		((ULONG)3)
551
546
#define STYLE_CURSOR_NOBLINKTIME    ((ULONG)0xFFFFFFFF)
552
#define STYLE_CURSOR_NOBLINKTIME    ((ULONG)0xFFFFFFFF)
547
553
548
class VCL_DLLPUBLIC StyleSettings
554
class VCL_DLLPUBLIC StyleSettings
Lines 930-935 public: Link Here
930
    ULONG							GetToolbarIconSize() const
936
    ULONG							GetToolbarIconSize() const
931
    									{ return mpData->mnToolbarIconSize; }
937
    									{ return mpData->mnToolbarIconSize; }
932
938
939
    void							SetSymbolsStyle( ULONG nStyle )
940
    									{ CopyData(); mpData->mnSymbolsStyle = nStyle; }
941
    ULONG							GetSymbolsStyle() const
942
    									{ return mpData->mnSymbolsStyle; }
943
    ULONG							GetCurrentSymbolsStyle() const;
944
    ::rtl::OUString					GetCurrentSymbolsStyleName() const;
945
933
    void                            SetStandardStyles();
946
    void                            SetStandardStyles();
934
    void                            SetStandardWinStyles();
947
    void                            SetStandardWinStyles();
935
    void                            SetStandardOS2Styles();
948
    void                            SetStandardOS2Styles();
(-)vcl/source/app/settings.cxx (+47 lines)
Lines 66-71 Link Here
66
#include <tools/isolang.hxx>
66
#include <tools/isolang.hxx>
67
#endif
67
#endif
68
68
69
#ifndef _SV_SVAPP_HXX
70
#include <svapp.hxx>
71
#endif
69
#ifndef _SV_SVDATA_HXX
72
#ifndef _SV_SVDATA_HXX
70
#include <svdata.hxx>
73
#include <svdata.hxx>
71
#endif
74
#endif
Lines 490-495 ImplStyleData::ImplStyleData() Link Here
490
    mnOptions                   = 0;
493
    mnOptions                   = 0;
491
    mnAutoMnemonic				= 1;
494
    mnAutoMnemonic				= 1;
492
    mnToolbarIconSize			= STYLE_TOOLBAR_ICONSIZE_UNKNOWN;
495
    mnToolbarIconSize			= STYLE_TOOLBAR_ICONSIZE_UNKNOWN;
496
    mnSymbolsStyle				= STYLE_SYMBOLS_AUTO;
493
497
494
    SetStandardStyles();
498
    SetStandardStyles();
495
}
499
}
Lines 587-592 ImplStyleData::ImplStyleData( const Impl Link Here
587
    mnAutoMnemonic				= rData.mnAutoMnemonic;
591
    mnAutoMnemonic				= rData.mnAutoMnemonic;
588
    mnUseImagesInMenus			= rData.mnUseImagesInMenus;
592
    mnUseImagesInMenus			= rData.mnUseImagesInMenus;
589
    mnToolbarIconSize			= rData.mnToolbarIconSize;
593
    mnToolbarIconSize			= rData.mnToolbarIconSize;
594
    mnSymbolsStyle				= rData.mnSymbolsStyle;
590
}
595
}
591
596
592
// -----------------------------------------------------------------------
597
// -----------------------------------------------------------------------
Lines 735-740 void StyleSettings::Set3DColors( const C Link Here
735
740
736
// -----------------------------------------------------------------------
741
// -----------------------------------------------------------------------
737
742
743
ULONG StyleSettings::GetCurrentSymbolsStyle() const
744
{
745
	ULONG nStyle = GetSymbolsStyle();
746
747
	if ( nStyle == STYLE_SYMBOLS_AUTO )
748
	{
749
		static bool sbDesktopChecked = false;
750
		static ULONG snDesktopStyle = STYLE_SYMBOLS_DEFAULT;
751
752
		if ( !sbDesktopChecked )
753
		{
754
			const ::rtl::OUString &rDesktopEnvironment = Application::GetDesktopEnvironment();
755
756
			if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) )
757
				snDesktopStyle = STYLE_SYMBOLS_INDUSTRIAL;
758
			else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
759
				snDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
760
761
			sbDesktopChecked = true;
762
		}
763
764
		nStyle = snDesktopStyle;
765
	}
766
767
	return nStyle;
768
}
769
770
// -----------------------------------------------------------------------
771
772
::rtl::OUString StyleSettings::GetCurrentSymbolsStyleName() const
773
{
774
	switch ( GetCurrentSymbolsStyle() )
775
	{
776
		case STYLE_SYMBOLS_INDUSTRIAL: return ::rtl::OUString::createFromAscii( "industrial" );
777
		case STYLE_SYMBOLS_CRYSTAL:    return ::rtl::OUString::createFromAscii( "crystal" );
778
	}
779
780
	return ::rtl::OUString();
781
}
782
783
// -----------------------------------------------------------------------
784
738
void StyleSettings::SetStandardStyles()
785
void StyleSettings::SetStandardStyles()
739
{
786
{
740
    CopyData();
787
    CopyData();
(-)vcl/source/gdi/bitmapex.cxx (-1 / +5 lines)
Lines 93-98 Link Here
93
#ifndef _SV_RC_H
93
#ifndef _SV_RC_H
94
#include <tools/rc.h>
94
#include <tools/rc.h>
95
#endif
95
#endif
96
#ifndef _SV_SVAPP_HXX
97
#include <svapp.hxx>
98
#endif
96
99
97
// ------------
100
// ------------
98
// - BitmapEx -
101
// - BitmapEx -
Lines 130-137 BitmapEx::BitmapEx( const ResId& rResId Link Here
130
	pResMgr->ReadLong();
133
	pResMgr->ReadLong();
131
	
134
	
132
	const String aFileName( pResMgr->ReadString() );
135
	const String aFileName( pResMgr->ReadString() );
136
	::rtl::OUString aCurrentSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
133
	
137
	
134
	if( !aImageTree->loadImage( aFileName, *this ) )
138
	if( !aImageTree->loadImage( aFileName, aCurrentSymbolsStyle, *this ) )
135
	{
139
	{
136
#ifdef DBG_UTIL		
140
#ifdef DBG_UTIL		
137
		ByteString aErrorStr( "BitmapEx::BitmapEx( const ResId& rResId ): could not load image <" );
141
		ByteString aErrorStr( "BitmapEx::BitmapEx( const ResId& rResId ): could not load image <" );
(-)vcl/source/gdi/image.cxx (-4 / +11 lines)
Lines 561-568 ImageList::ImageList( const ResId& rResI Link Here
561
561
562
        aUserImageName += ::rtl::OUString::valueOf( static_cast< sal_Int32 >( rResId.GetId() ) );
562
        aUserImageName += ::rtl::OUString::valueOf( static_cast< sal_Int32 >( rResId.GetId() ) );
563
        aUserImageName += ::rtl::OUString::valueOf( nCount );
563
        aUserImageName += ::rtl::OUString::valueOf( nCount );
564
565
        ::rtl::OUString aCurrentSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
566
        aUserImageName += aCurrentSymbolsStyle;
564
        
567
        
565
        ImplInitBitmapEx( aUserImageName, aImageNames, aBmpEx, spMaskColor.get() );
568
        ImplInitBitmapEx( aUserImageName, aImageNames, aCurrentSymbolsStyle, aBmpEx, spMaskColor.get() );
566
569
567
		if( nObjMask & RSC_IMAGELIST_IDCOUNT )
570
		if( nObjMask & RSC_IMAGELIST_IDCOUNT )
568
			pResMgr->ReadShort();
571
			pResMgr->ReadShort();
Lines 594-601 ImageList::ImageList( const ::std::vecto Link Here
594
        
597
        
595
    aUserImageName = ( ( aUserImageName += rLocale.Language ) += rLocale.Country ).replace( '/', '_' );
598
    aUserImageName = ( ( aUserImageName += rLocale.Language ) += rLocale.Country ).replace( '/', '_' );
596
    aUserImageName += ::rtl::OUString::valueOf( static_cast< sal_Int32 >( rNameVector.size() ) );
599
    aUserImageName += ::rtl::OUString::valueOf( static_cast< sal_Int32 >( rNameVector.size() ) );
600
601
    ::rtl::OUString aCurrentSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
602
    aUserImageName += aCurrentSymbolsStyle;
597
    
603
    
598
    ImplInitBitmapEx( aUserImageName, aImageNames, aBmpEx, pMaskColor );
604
    ImplInitBitmapEx( aUserImageName, aImageNames, aCurrentSymbolsStyle, aBmpEx, pMaskColor );
599
	ImplInit( aBmpEx, static_cast< USHORT >( rNameVector.size() ), NULL, &rNameVector, 4 );
605
	ImplInit( aBmpEx, static_cast< USHORT >( rNameVector.size() ), NULL, &rNameVector, 4 );
600
}
606
}
601
607
Lines 695-706 ImageList::~ImageList() Link Here
695
701
696
void ImageList::ImplInitBitmapEx( const ::rtl::OUString& rUserImageName,
702
void ImageList::ImplInitBitmapEx( const ::rtl::OUString& rUserImageName,
697
                                  const ::std::vector< ::rtl::OUString >& rImageNames,
703
                                  const ::std::vector< ::rtl::OUString >& rImageNames,
704
                                  const ::rtl::OUString& rSymbolsStyle,
698
                                  BitmapEx& rBmpEx, 
705
                                  BitmapEx& rBmpEx, 
699
                                  const Color* pMaskColor ) const
706
                                  const Color* pMaskColor ) const
700
{
707
{
701
    static ImplImageTreeSingletonRef aImageTree;
708
    static ImplImageTreeSingletonRef aImageTree;
702
    
709
    
703
    if( !aImageTree->loadImage( rUserImageName, rBmpEx ) )
710
    if( !aImageTree->loadImage( rUserImageName, rSymbolsStyle, rBmpEx ) )
704
    {
711
    {
705
        BitmapEx    aCurBmpEx;
712
        BitmapEx    aCurBmpEx;
706
        Size        aItemSizePixel;
713
        Size        aItemSizePixel;
Lines 708-714 void ImageList::ImplInitBitmapEx( const Link Here
708
        
715
        
709
        for( sal_Int32 i = 0, nCount = rImageNames.size(); i < nCount; ++i )
716
        for( sal_Int32 i = 0, nCount = rImageNames.size(); i < nCount; ++i )
710
        {
717
        {
711
            if( aImageTree->loadImage( rImageNames[ i ], aCurBmpEx, true ) )
718
            if( aImageTree->loadImage( rImageNames[ i ], rSymbolsStyle, aCurBmpEx, true ) )
712
            {
719
            {
713
                const Size aCurSizePixel( aCurBmpEx.GetSizePixel() );
720
                const Size aCurSizePixel( aCurBmpEx.GetSizePixel() );
714
           
721
           
(-)vcl/source/gdi/impimagetree.cxx (-7 / +46 lines)
Lines 118-124 Link Here
118
#include <hash_map>
118
#include <hash_map>
119
119
120
#define DEFAULT_PROJECTNAME "res"
120
#define DEFAULT_PROJECTNAME "res"
121
#define IMAGES_ZIPFILENAME	"images.zip"
121
#define IMAGES_ZIPFILENAME_PREFIX	"images"
122
#define IMAGES_ZIPFILENAME_SUFFIX	".zip"
122
#define IMAGES_CACHEDIR		"imagecache"
123
#define IMAGES_CACHEDIR		"imagecache"
123
124
124
using namespace ::com::sun::star;
125
using namespace ::com::sun::star;
Lines 133-139 static BmpExHashMap aBmpExHashMap; Link Here
133
// -----------------------------------------------------------------------
134
// -----------------------------------------------------------------------
134
135
135
ImplImageTree::ImplImageTree() :
136
ImplImageTree::ImplImageTree() :
136
	mbInit( false )
137
	mbInit( false ),
138
	maSymbolsStyle( Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName() )
137
{
139
{
138
}
140
}
139
141
Lines 212-224 bool ImplImageTree::implInit() Link Here
212
214
213
// -----------------------------------------------------------------------
215
// -----------------------------------------------------------------------
214
216
215
const ::rtl::OUString& ImplImageTree::implGetZipFileURL() const
217
::rtl::OUString ImplImageTree::implGetZipFileURL( bool bWithStyle ) const
216
{
218
{
217
	static ::rtl::OUString aRet;
219
	::rtl::OUString aRet;
218
	
220
	
219
	if( !aRet.getLength() && mxPathSettings.is() && mxFileAccess.is() )
221
	if( !aRet.getLength() && mxPathSettings.is() && mxFileAccess.is() )
220
	{
222
	{
221
		const ::rtl::OUString	aZipFileName( ::rtl::OUString::createFromAscii( IMAGES_ZIPFILENAME ) );
223
		::rtl::OUString	aZipFileName( ::rtl::OUString::createFromAscii( IMAGES_ZIPFILENAME_PREFIX ) );
224
		if ( bWithStyle && maSymbolsStyle.getLength() > 0 )
225
		{
226
			aZipFileName += ::rtl::OUString::createFromAscii( "_" );
227
			aZipFileName += maSymbolsStyle;
228
		}
229
		aZipFileName += ::rtl::OUString::createFromAscii( IMAGES_ZIPFILENAME_SUFFIX );
230
222
		uno::Any 				aAny( mxPathSettings->getPropertyValue( ::rtl::OUString::createFromAscii( "UserConfig" ) ) );
231
		uno::Any 				aAny( mxPathSettings->getPropertyValue( ::rtl::OUString::createFromAscii( "UserConfig" ) ) );
223
		INetURLObject			aZipURL;
232
		INetURLObject			aZipURL;
224
	
233
	
Lines 238-244 const ::rtl::OUString& ImplImageTree::im Link Here
238
				
247
				
239
					if( !mxFileAccess->exists( aRet = aZipURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
248
					if( !mxFileAccess->exists( aRet = aZipURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
240
					{
249
					{
241
						aRet = ::rtl::OUString();
250
						if ( bWithStyle && maSymbolsStyle.getLength() > 0 )
251
							aRet = implGetZipFileURL( false ); // Try without style
252
						else
253
							aRet = ::rtl::OUString();
242
					}
254
					}
243
				}
255
				}
244
			}
256
			}
Lines 395-402 bool ImplImageTree::implLoadFromStream( Link Here
395
407
396
// ------------------------------------------------------------------------------
408
// ------------------------------------------------------------------------------
397
409
398
bool ImplImageTree::loadImage( const ::rtl::OUString& rName, BitmapEx& rReturn, bool bSearchLanguageDependent )
410
void ImplImageTree::implUpdateSymbolsStyle( const ::rtl::OUString& rSymbolsStyle )
399
{
411
{
412
	if ( rSymbolsStyle != maSymbolsStyle )
413
	{
414
		maSymbolsStyle = rSymbolsStyle;
415
		if ( mbInit )
416
		{
417
			mxNameAcc.clear();
418
			mxZipAcc.clear();
419
			mxFileAccess.clear();
420
			mxPathSettings.clear();
421
422
			BmpExHashMap aTmp;
423
			aBmpExHashMap.swap( aTmp );
424
425
			mbInit = false;
426
		}
427
	}
428
}
429
430
// ------------------------------------------------------------------------------
431
432
bool ImplImageTree::loadImage( const ::rtl::OUString& rName,
433
		const ::rtl::OUString& rSymbolsStyle,
434
		BitmapEx& rReturn,
435
		bool bSearchLanguageDependent )
436
{
437
	implUpdateSymbolsStyle( rSymbolsStyle );
438
400
	const BmpExHashMap::const_iterator	aBmpExFindIter( aBmpExHashMap.find( rName ) );
439
	const BmpExHashMap::const_iterator	aBmpExFindIter( aBmpExHashMap.find( rName ) );
401
	
440
	
402
	if( aBmpExFindIter != aBmpExHashMap.end() )
441
	if( aBmpExFindIter != aBmpExHashMap.end() )

Return to issue 36518