819 |
817 |
820 void COpenFont::DeleteShaper() const |
818 void COpenFont::DeleteShaper() const |
821 { |
819 { |
822 delete iShaper; |
820 delete iShaper; |
823 } |
821 } |
824 |
|
825 TInt COpenFont::GetFontTable(TUint32 aTag, TAny*& aTableContent, TInt& aLength) |
|
826 { |
|
827 // get the extension API for GetTrueTypeTable() if available |
|
828 TAny* ext = NULL; |
|
829 ExtendedInterface(KUidOpenFontTrueTypeExtension, ext); |
|
830 MOpenFontTrueTypeExtension* extensionInterface = |
|
831 reinterpret_cast<MOpenFontTrueTypeExtension*>(ext); |
|
832 |
|
833 TInt ret = KErrNone; |
|
834 if (extensionInterface == NULL) |
|
835 { |
|
836 ret = KErrNotSupported; |
|
837 } |
|
838 else |
|
839 { |
|
840 TUint32 tag = aTag; |
|
841 TInt len = 0; |
|
842 aTableContent = extensionInterface->GetTrueTypeTable(ret, tag, &len); |
|
843 if (KErrNone == ret) |
|
844 { |
|
845 aLength = len; |
|
846 } |
|
847 } |
|
848 return ret; |
|
849 } |
|
850 |
|
851 TInt COpenFont::GetGlyphOutline(TUint aCode, |
|
852 TBool aHinted, TAny*& aOutline, TInt &aLength) |
|
853 { |
|
854 // get the extension API for GetTrueTypeTable() if available |
|
855 TAny* ext = NULL; |
|
856 ExtendedInterface(KUidOpenFontGlyphOutlineExtension, ext); |
|
857 MOpenFontGlyphOutlineExtension *extensionInterface = |
|
858 reinterpret_cast<MOpenFontGlyphOutlineExtension*>(ext); |
|
859 |
|
860 TInt ret = KErrNone; |
|
861 if (extensionInterface == NULL) |
|
862 { |
|
863 ret = KErrNotSupported; |
|
864 } |
|
865 else |
|
866 { |
|
867 ret = extensionInterface->GetGlyphOutline(aCode, ETrue, |
|
868 aHinted, aOutline, aLength); |
|
869 } |
|
870 return ret; |
|
871 } |
|
872 |
822 |
873 /** Given the passed pointer aAny, return an offset from it to the "this" pointer |
823 /** Given the passed pointer aAny, return an offset from it to the "this" pointer |
874 of this COpenFont object. |
824 of this COpenFont object. |
875 @param aAny A pointer to an object that exists on the shared heap, i.e. the same heap |
825 @param aAny A pointer to an object that exists on the shared heap, i.e. the same heap |
876 that this CCOpenFont object was created on. |
826 that this CCOpenFont object was created on. |
1696 It is not allowed that file is deleted before its fonts |
1646 It is not allowed that file is deleted before its fonts |
1697 and the logic is handled in CFontStore::RemoveFile(). |
1647 and the logic is handled in CFontStore::RemoveFile(). |
1698 */ |
1648 */ |
1699 EXPORT_C COpenFontFile::~COpenFontFile() |
1649 EXPORT_C COpenFontFile::~COpenFontFile() |
1700 { |
1650 { |
1701 CFontStore *fs = GetFontStore(); |
|
1702 if (fs != NULL) |
|
1703 { |
|
1704 fs->CleanupCacheOnOpenFontFileRemoval(this); |
|
1705 } |
|
1706 delete iData; |
1651 delete iData; |
1707 } |
1652 } |
1708 |
1653 |
1709 /** |
1654 /** |
1710 Gets the nearest font in pixels. |
1655 Gets the nearest font in pixels. |