svgtopt/SVG/SVGImpl/inc/SVGFontHashMap.h
author hgs
Wed, 03 Nov 2010 18:56:10 +0200
changeset 46 88edb906c587
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  SVG Implementation header file
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef __FONTHASHMAP_H__
hgs
parents:
diff changeset
    20
#define __FONTHASHMAP_H__
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <e32std.h>
hgs
parents:
diff changeset
    23
#include "SVGFontElementImpl.h"
hgs
parents:
diff changeset
    24
    
hgs
parents:
diff changeset
    25
	class CSvgFontMapItem: public CBase
hgs
parents:
diff changeset
    26
    	{
hgs
parents:
diff changeset
    27
    	public:
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
		enum TSvgFontType
hgs
parents:
diff changeset
    30
    	{
hgs
parents:
diff changeset
    31
    	ESvgSystemFont,
hgs
parents:
diff changeset
    32
    	ESvgSvgFont,
hgs
parents:
diff changeset
    33
    	ESvgExternalDocumentFont
hgs
parents:
diff changeset
    34
    	};
hgs
parents:
diff changeset
    35
    
hgs
parents:
diff changeset
    36
		static CSvgFontMapItem* NewL();
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
        static CSvgFontMapItem* NewLC();
hgs
parents:
diff changeset
    39
        
hgs
parents:
diff changeset
    40
        CSvgFontMapItem();
hgs
parents:
diff changeset
    41
        
hgs
parents:
diff changeset
    42
        ~CSvgFontMapItem();
hgs
parents:
diff changeset
    43
	
hgs
parents:
diff changeset
    44
		void                    ConstructL();
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
        /**
hgs
parents:
diff changeset
    47
         * Need method description
hgs
parents:
diff changeset
    48
         *
hgs
parents:
diff changeset
    49
         * @since 1.0
hgs
parents:
diff changeset
    50
         * @param 
hgs
parents:
diff changeset
    51
         * @return
hgs
parents:
diff changeset
    52
         */
hgs
parents:
diff changeset
    53
        CSvgFontElementImpl*    GetFontPtr();
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
        /**
hgs
parents:
diff changeset
    56
         * Need method description
hgs
parents:
diff changeset
    57
         *
hgs
parents:
diff changeset
    58
         * @since 1.0
hgs
parents:
diff changeset
    59
         * @param 
hgs
parents:
diff changeset
    60
         * @return
hgs
parents:
diff changeset
    61
         */
hgs
parents:
diff changeset
    62
        const TDesC&    GetFontFamilyName();
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
        /**
hgs
parents:
diff changeset
    66
         * Need method description
hgs
parents:
diff changeset
    67
         *
hgs
parents:
diff changeset
    68
         * @since 1.0
hgs
parents:
diff changeset
    69
         * @param 
hgs
parents:
diff changeset
    70
         * @return
hgs
parents:
diff changeset
    71
         */
hgs
parents:
diff changeset
    72
        void            SetFontPtr( CSvgFontElementImpl* aFontPtr );
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
        /**
hgs
parents:
diff changeset
    75
         * Need method description
hgs
parents:
diff changeset
    76
         *
hgs
parents:
diff changeset
    77
         * @since 1.0
hgs
parents:
diff changeset
    78
         * @param 
hgs
parents:
diff changeset
    79
         * @return
hgs
parents:
diff changeset
    80
         */
hgs
parents:
diff changeset
    81
        void            CopyFontFamilyName( const TDesC& aFontFamilyName );
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
		TInt			IncrementReferenceCount( );
hgs
parents:
diff changeset
    84
		
hgs
parents:
diff changeset
    85
		TInt			DecrementReferenceCount( );
hgs
parents:
diff changeset
    86
		
hgs
parents:
diff changeset
    87
		void			Print();
hgs
parents:
diff changeset
    88
		
hgs
parents:
diff changeset
    89
    public:
hgs
parents:
diff changeset
    90
        CSvgFontElementImpl*    iFontPtr;
hgs
parents:
diff changeset
    91
        CSvgDocumentImpl*		iFontDocumentPtr;
hgs
parents:
diff changeset
    92
        HBufC*          		iFontFamilyName;
hgs
parents:
diff changeset
    93
        TInt					iFontReferenceCount;
hgs
parents:
diff changeset
    94
        TSvgFontType			iFontType;
hgs
parents:
diff changeset
    95
    };   
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
class CSvgFontHashMap : public CBase
hgs
parents:
diff changeset
    98
    {
hgs
parents:
diff changeset
    99
    public:
hgs
parents:
diff changeset
   100
   
hgs
parents:
diff changeset
   101
   static CSvgFontHashMap* NewL();
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
   static CSvgFontHashMap* NewLC();
hgs
parents:
diff changeset
   104
        
hgs
parents:
diff changeset
   105
   CSvgFontHashMap();
hgs
parents:
diff changeset
   106
        
hgs
parents:
diff changeset
   107
   ~CSvgFontHashMap();
hgs
parents:
diff changeset
   108
	
hgs
parents:
diff changeset
   109
	void    ConstructL();
hgs
parents:
diff changeset
   110
				
hgs
parents:
diff changeset
   111
	//IMAGE MAPPING METHODS
hgs
parents:
diff changeset
   112
    TBool   AddReferenceToFontL( const TDesC& aFontFamilyName );
hgs
parents:
diff changeset
   113
	
hgs
parents:
diff changeset
   114
	TBool	AddFontL ( CSvgFontElementImpl* aImage, const TDesC& aFontFamilyName );
hgs
parents:
diff changeset
   115
	
hgs
parents:
diff changeset
   116
    TBool	RemoveReferenceFromFontL( const TDesC& aFontFamilyName );
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
	CSvgFontElementImpl*     GetFontPtr( const TDesC& aFontFamilyName );
hgs
parents:
diff changeset
   119
	
hgs
parents:
diff changeset
   120
    TBool            HasFontFamilyName( const TDesC& aFontFamilyName );
hgs
parents:
diff changeset
   121
    
hgs
parents:
diff changeset
   122
    //FONT MAPPING METHODS
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    TBool AddFontDocument(CSvgDocumentImpl* newFontDocument, const TDesC& aFontFamily);
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
    void DeleteFontDocument(const TDesC& aFontFamily);
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
    TBool HasFontDocument(CSvgDocumentImpl* aDoc);
hgs
parents:
diff changeset
   129
        
hgs
parents:
diff changeset
   130
    void			PrintFontHashMap();
hgs
parents:
diff changeset
   131
        
hgs
parents:
diff changeset
   132
    private:
hgs
parents:
diff changeset
   133
    
hgs
parents:
diff changeset
   134
    CSvgFontMapItem* GetFontMapItem( const TDesC& aFontFamilyName );
hgs
parents:
diff changeset
   135
    
hgs
parents:
diff changeset
   136
    RPointerArray<CSvgFontMapItem>		iSvgFontMapItems;
hgs
parents:
diff changeset
   137
    
hgs
parents:
diff changeset
   138
    RPointerArray<CSvgDocumentImpl> iFontDocumentPointers;
hgs
parents:
diff changeset
   139
    
hgs
parents:
diff changeset
   140
    //data item used in the FontHashMap
hgs
parents:
diff changeset
   141
		
hgs
parents:
diff changeset
   142
};
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
#endif