--- a/fontservices/fontstore/inc/OPENFONT.H Wed Aug 18 11:34:25 2010 +0300
+++ b/fontservices/fontstore/inc/OPENFONT.H Thu Sep 02 22:23:14 2010 +0300
@@ -328,7 +328,7 @@
TBool HasCharacterL(TInt aCode) const;
TBool GetCharacterData(TInt aSessionHandle,TInt aCode,const TOpenFontCharMetrics*& aMetrics,const TUint8*& aBitmap) const;
void OnFileDeleted();
- COpenFontGlyphCache* GetGlyphCache();
+ COpenFontGlyphCache* GetGlyphCache() const;
inline TInt FontCapitalAscent() const;
inline TInt FontMaxAscent() const;
inline TInt FontStandardDescent() const;
@@ -371,7 +371,7 @@
private:
const COpenFontGlyph* Glyph(TInt aSessionHandle,TInt aCode) const;
- const COpenFontGlyph* FontCacheGlyph(TInt aCode);
+ const COpenFontGlyph* FontCacheGlyph(TInt aCode) const;
void SetGlyphCache(COpenFontGlyphCache* aGlyphCache);
--- a/fontservices/fontstore/inc/openfontsprivate.h Wed Aug 18 11:34:25 2010 +0300
+++ b/fontservices/fontstore/inc/openfontsprivate.h Thu Sep 02 22:23:14 2010 +0300
@@ -135,8 +135,6 @@
private:
inline COpenFontSessionCacheEntry(const COpenFont* aFont, TInt aCode, TInt aGlyphIndex, const TOpenFontCharMetrics& aMetrics);
~COpenFontSessionCacheEntry();
-public:
- TInt iLastAccess; // serial number of the last access to the glyph
private:
TInt iFontOffset; // offset of the font that contains this glyph, (not owned by this class!)
@@ -150,20 +148,21 @@
*/
class COpenFontSessionCache
{
+ friend class COpenFontSessionCacheList;
public:
static COpenFontSessionCache* NewL(RHeap* aHeap, TInt aSessionHandle, TInt aEntries);
void Delete(RHeap* aHeap);
TInt SessionHandle() { return iSessionHandle; }
- const COpenFontGlyph* Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex);
+ const COpenFontGlyph* Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex) const;
void Insert(RHeap* aHeap, COpenFontSessionCacheEntry* aEntry, TInt aIndex);
private:
COpenFontSessionCache(TInt aSessionHandle);
~COpenFontSessionCache();
-public:
- TInt iSessionHandle;
- TInt iLastAccess;
+private:
+ TInt iSessionHandle;
+ TInt64 iRandomSeed;
ROffsetArray<COpenFontSessionCacheEntry> iEntryArray;
};
--- a/fontservices/fontstore/src/OPENFONT.CPP Wed Aug 18 11:34:25 2010 +0300
+++ b/fontservices/fontstore/src/OPENFONT.CPP Thu Sep 02 22:23:14 2010 +0300
@@ -26,6 +26,7 @@
#include "linkedfontsprivate.h"
#include <graphics/openfontrasterizer.h>
#include <graphics/gdi/glyphsample.h>
+#include <e32math.h>
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
@@ -904,13 +905,13 @@
iFileOffset = 0;
}
-COpenFontGlyphCache* COpenFont::GetGlyphCache()
+COpenFontGlyphCache* COpenFont::GetGlyphCache() const
{
if (iGlyphCacheOffset == 0)
{
return NULL;
}
- return reinterpret_cast<COpenFontGlyphCache*>(PtrAdd(this, iGlyphCacheOffset));
+ return reinterpret_cast<COpenFontGlyphCache*>(PtrAdd(const_cast<COpenFont*>(this), iGlyphCacheOffset));
}
const COpenFontGlyph* COpenFont::Glyph(TInt aSessionHandle, TInt aCode) const
@@ -949,7 +950,7 @@
@param aCode The code for the glpyh to look for in the cache
@return A pointer to the requested glyph if it was found in the glyph cache, NULL if it was not found.
*/
-const COpenFontGlyph* COpenFont::FontCacheGlyph(TInt aCode)
+const COpenFontGlyph* COpenFont::FontCacheGlyph(TInt aCode) const
{
if (COpenFontGlyphCache* glyphCache = GetGlyphCache())
{
@@ -1112,58 +1113,52 @@
iEntryArray.Close(aHeap);
}
-const COpenFontGlyph* COpenFontSessionCache::Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex)
+const COpenFontGlyph* COpenFontSessionCache::Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex) const
{
aIndex = -1;
- TInt oldest = KMaxTInt;
- TInt oldest_index = 0;
TInt numEntries = iEntryArray.Count();
TInt index = GLYPH_CODE(aCode) % numEntries; // simple hash function to shorten searches
for (TInt i = 0; i < numEntries; ++i, ++index)
{
if (index >= numEntries)
+ {
index = 0;
- COpenFontSessionCacheEntry* entry = iEntryArray[index];
+ }
+ const COpenFontSessionCacheEntry* entry = iEntryArray[index];
if (entry == NULL)
{
- if (aIndex == -1)
- aIndex = index;
- }
- else
- {
- if (entry->Font() == aFont && entry->iCode == aCode)
+ if (aIndex < 0)
{
- entry->iLastAccess = iLastAccess++;
- return entry;
- }
- if (entry->iLastAccess < oldest)
- {
- oldest = entry->iLastAccess;
- oldest_index = index;
+ aIndex = index;
}
}
+ else if (entry->Font() == aFont && entry->iCode == aCode)
+ {
+ return entry;
+ }
}
- if (aIndex == -1)
- aIndex = oldest_index;
return NULL;
}
void COpenFontSessionCache::Insert(RHeap* aHeap, COpenFontSessionCacheEntry* aEntry, TInt aIndex)
{
- if (aIndex < 0 || aIndex >= iEntryArray.Count())
+ if (aIndex >= iEntryArray.Count())
{
Panic(EFntSessionCacheIndexOutOfRange);
}
+ if (aIndex < 0)
+ {
+ aIndex = Math::Rand(iRandomSeed) % iEntryArray.Count();
+ }
COpenFontSessionCacheEntry::Delete(aHeap, iEntryArray[aIndex]);
iEntryArray.SetAt(aIndex, aEntry);
- aEntry->iLastAccess = iLastAccess++;
}
COpenFontSessionCache::COpenFontSessionCache(TInt aSessionHandle):
iSessionHandle(aSessionHandle),
- iLastAccess(0)
- {
+ iRandomSeed(0)
+ {
}
TInt COpenFontSessionCacheList::AddCache(COpenFontSessionCache* aCache)
--- a/fontservices/fontstore/tfs/T_FontMetrics.cpp Wed Aug 18 11:34:25 2010 +0300
+++ b/fontservices/fontstore/tfs/T_FontMetrics.cpp Thu Sep 02 22:23:14 2010 +0300
@@ -300,26 +300,33 @@
*/
void CTFontMetrics::GetNearestFontToDesignHeightInPixels()
{
+ INFO_PRINTF3(_L("iKPixelWidthInTwips = %d; iKPixelHeightInTwips = %d"),
+ iFontStore->iKPixelWidthInTwips, iFontStore->iKPixelHeightInTwips);
+
TOpenFontSpec openFontSpec = GetTOpenFontSpec();
+ INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangNone"));
CFont* font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangNone);
iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec);
Verify_GetNearestFontToDesignHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics());
iFontStore->ReleaseFont(font);
+ INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangFinnish"));
font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangFinnish);
iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec);
Verify_GetNearestFontToDesignHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics());
iFontStore->ReleaseFont(font);
+ INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangGreek"));
font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangGreek);
iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec);
Verify_GetNearestFontToDesignHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics());
iFontStore->ReleaseFont(font);
+ INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangRussian"));
font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangRussian);
iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec);
@@ -330,6 +337,12 @@
void CTFontMetrics::Verify_GetNearestFontToDesignHeightInPixels(const CFont& aFont, TInt aScript)
{
VerifyTypefaceNameAndID(aFont);
+ INFO_PRINTF4(_L("HeightInPixels() = %d; AscentInPixels() = %d; DescentInPixels() = %d"),
+ aFont.HeightInPixels(), aFont.AscentInPixels(), aFont.DescentInPixels());
+ INFO_PRINTF4(_L("FontCapitalAscent() = %d; FontStandardDescent() = %d; FontMaxAscent() = %d"),
+ aFont.FontCapitalAscent(), aFont.FontStandardDescent(), aFont.FontMaxAscent());
+ INFO_PRINTF4(_L("FontMaxDescent() = %d; FontMaxHeight() = %d; FontLineGap() = %d"),
+ aFont.FontMaxDescent(), aFont.FontMaxHeight(), aFont.FontLineGap());
// Old metrics
TEST(KRequiredHeight == aFont.HeightInPixels());
TEST(19 == aFont.AscentInPixels());
@@ -337,30 +350,15 @@
// New metrics
TEST(18 == aFont.FontCapitalAscent());
TEST(5 == aFont.FontStandardDescent());
- if (GlyphSample::EScriptNone == aScript)
+ if (GlyphSample::EScriptNone == aScript ||
+ GlyphSample::EScriptLatin == aScript ||
+ GlyphSample::EScriptGreek == aScript ||
+ GlyphSample::EScriptCyrillic == aScript)
{
TEST(28 == aFont.FontMaxAscent());
TEST(8 == aFont.FontMaxDescent());
TEST(42 == aFont.FontLineGap());
}
- else if (GlyphSample::EScriptLatin == aScript)
- {
- TEST(24 == aFont.FontMaxAscent());
- TEST(5 == aFont.FontMaxDescent());
- TEST(35 == aFont.FontLineGap());
- }
- else if (GlyphSample::EScriptGreek == aScript)
- {
- TEST(22 == aFont.FontMaxAscent());
- TEST(5 == aFont.FontMaxDescent());
- TEST(33 == aFont.FontLineGap());
- }
- else if (GlyphSample::EScriptCyrillic == aScript)
- {
- TEST(23 == aFont.FontMaxAscent());
- TEST(5 == aFont.FontMaxDescent());
- TEST(34 == aFont.FontLineGap());
- }
else TEST(1 == 0);
TEST(aFont.FontMaxAscent() + aFont.FontMaxDescent() == aFont.FontMaxHeight());
INFO_PRINTF2(_L("MaxCharWidthInPixels() returns %d"), aFont.MaxCharWidthInPixels());
@@ -393,24 +391,28 @@
{
TOpenFontSpec openFontSpec = GetTOpenFontSpec();
+ INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangNone"));
CFont* font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangNone);
iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight);
Verify_GetNearestFontToMaxHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics());
iFontStore->ReleaseFont(font);
+ INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangFinnish"));
font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangFinnish);
iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight);
Verify_GetNearestFontToMaxHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics());
iFontStore->ReleaseFont(font);
+ INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangGreek"));
font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangGreek);
iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight);
Verify_GetNearestFontToMaxHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics());
iFontStore->ReleaseFont(font);
+ INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangRussian"));
font = NULL;
openFontSpec.SetScriptTypeForMetrics(ELangRussian);
iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight);
@@ -421,62 +423,42 @@
void CTFontMetrics::Verify_GetNearestFontToMaxHeightInPixels(const CFont& aFont, TInt aScript)
{
VerifyTypefaceNameAndID(aFont);
+ INFO_PRINTF4(_L("HeightInPixels() = %d; AscentInPixels() = %d; DescentInPixels() = %d"),
+ aFont.HeightInPixels(), aFont.AscentInPixels(), aFont.DescentInPixels());
+ INFO_PRINTF4(_L("FontCapitalAscent() = %d; FontStandardDescent() = %d; FontMaxAscent() = %d"),
+ aFont.FontCapitalAscent(), aFont.FontStandardDescent(), aFont.FontMaxAscent());
+ INFO_PRINTF4(_L("FontMaxDescent() = %d; FontMaxHeight() = %d; FontLineGap() = %d"),
+ aFont.FontMaxDescent(), aFont.FontMaxHeight(), aFont.FontLineGap());
if (GlyphSample::EScriptNone == aScript)
{
// Old metrics
- TEST(15 == aFont.HeightInPixels());
- TEST(12 == aFont.AscentInPixels());
- TEST(15 - 12 == aFont.DescentInPixels());
- // New metrics
- TEST(11 == aFont.FontCapitalAscent());
- TEST(3 == aFont.FontStandardDescent());
- TEST(18 == aFont.FontMaxAscent());
- TEST(5 == aFont.FontMaxDescent());
- TEST(KRequiredHeight - 1 == aFont.FontMaxHeight());
- TEST(29 == aFont.FontLineGap());
- }
- else if (GlyphSample::EScriptLatin == aScript)
- {
- // Old metrics
- TEST(20 == aFont.HeightInPixels());
- TEST(16 == aFont.AscentInPixels());
- TEST(20 - 16 == aFont.DescentInPixels());
- // New metrics
- TEST(15 == aFont.FontCapitalAscent());
- TEST(4 == aFont.FontStandardDescent());
- TEST(20 == aFont.FontMaxAscent());
- TEST(4 == aFont.FontMaxDescent());
- TEST(KRequiredHeight == aFont.FontMaxHeight());
- TEST(30 == aFont.FontLineGap());
+ TEST(16 == aFont.HeightInPixels());
+ TEST(13 == aFont.AscentInPixels());
+ TEST(16 - 13 == aFont.DescentInPixels());
+ // New metrics
+ TEST(12 == aFont.FontCapitalAscent());
+ TEST(3 == aFont.FontStandardDescent());
+ TEST(19 == aFont.FontMaxAscent());
+ TEST(6 == aFont.FontMaxDescent());
+ TEST(KRequiredHeight + 1 == aFont.FontMaxHeight());
+ TEST(31 == aFont.FontLineGap());
}
- else if (GlyphSample::EScriptGreek == aScript)
- {
- // Old metrics
- TEST(20 == aFont.HeightInPixels());
- TEST(16 == aFont.AscentInPixels());
- TEST(20 - 16 == aFont.DescentInPixels());
- // New metrics
- TEST(15 == aFont.FontCapitalAscent());
- TEST(4 == aFont.FontStandardDescent());
- TEST(18 == aFont.FontMaxAscent());
- TEST(5 == aFont.FontMaxDescent());
- TEST(KRequiredHeight - 1 == aFont.FontMaxHeight());
- TEST(29 == aFont.FontLineGap());
- }
- else if (GlyphSample::EScriptCyrillic == aScript)
- {
- // Old metrics
- TEST(21 == aFont.HeightInPixels());
- TEST(16 == aFont.AscentInPixels());
- TEST(21 - 16 == aFont.DescentInPixels());
- // New metrics
- TEST(16 == aFont.FontCapitalAscent());
- TEST(4 == aFont.FontStandardDescent());
- TEST(20 == aFont.FontMaxAscent());
- TEST(4 == aFont.FontMaxDescent());
- TEST(KRequiredHeight == aFont.FontMaxHeight());
- TEST(30 == aFont.FontLineGap());
- }
+ else if (GlyphSample::EScriptLatin == aScript ||
+ GlyphSample::EScriptGreek == aScript ||
+ GlyphSample::EScriptCyrillic == aScript)
+ {
+ // Old metrics
+ TEST(24 == aFont.HeightInPixels());
+ TEST(19 == aFont.AscentInPixels());
+ TEST(24 - 19 == aFont.DescentInPixels());
+ // New metrics
+ TEST(18 == aFont.FontCapitalAscent());
+ TEST(5 == aFont.FontStandardDescent());
+ TEST(28 == aFont.FontMaxAscent());
+ TEST(8 == aFont.FontMaxDescent());
+ TEST(KRequiredHeight + 12 == aFont.FontMaxHeight());
+ TEST(42 == aFont.FontLineGap());
+ }
else TEST(1 == 0);
INFO_PRINTF2(_L("MaxCharWidthInPixels() returns %d"), aFont.MaxCharWidthInPixels());
}
--- a/layers.sysdef.xml Wed Aug 18 11:34:25 2010 +0300
+++ b/layers.sysdef.xml Thu Sep 02 22:23:14 2010 +0300
@@ -96,9 +96,9 @@
<SystemDefinition name="textandloc_build" schema="1.4.0">
<systemModel>
<layer name="os_layer">
- <!--module name="freetype">
- <unit name="freetype" unitID="tls.freetype" bldFile="sf\os\textandloc\fontservices\freetypefontrasteriser\group" mrp="sf\os\textandloc\fontservices\freetypefontrasteriser\group\graphics_freetype.mrp"/>
- </module-->
+ <module name="freetype">
+ <unit name="freetype" unitID="tls.freetype" bldFile="sf\os\textandloc\fontservices\freetypefontrasteriser\group" mrp="sf\os\textandloc\fontservices\freetypefontrasteriser\group\graphics_freetype.mrp" filter="!dfs_build"/>
+ </module>
<module name="app-framework_etext">
<unit name="etext" unitID="tls.etext" bldFile="sf\os\textandloc\textrendering\texthandling\group" mrp="sf\os\textandloc\textrendering\texthandling\group\app-framework_etext.mrp"/>
</module>
--- a/package_definition.xml Wed Aug 18 11:34:25 2010 +0300
+++ b/package_definition.xml Thu Sep 02 22:23:14 2010 +0300
@@ -2,13 +2,22 @@
<SystemDefinition schema="3.0.0">
<package id="textandloc" name="Text and Localisation Services" levels="encoding util fonts tools text">
<collection id="charconvfw" name="Character Conversion" level="encoding">
- <component id="charconv_fw" name="Character Encoding and Conversion Framework" purpose="optional">
+ <component id="charconv_fw" name="Character Encoding and Conversion Framework" purpose="mandatory" filter="api_test"> <!-- both production and api_test-->
+ <meta rel="testbuild">
+ <group name="test.syslibs_charconv"/>
+ </meta>
<unit bldFile="charconvfw/charconv_fw/group" mrp="charconvfw/charconv_fw/group/syslibs_charconv.mrp"/>
</component>
- <component id="charconvplugins" name="Character Encoding and Conversion Plugins" purpose="optional" class="plugin">
+ <component id="charconvplugins" name="Character Encoding and Conversion Plugins" purpose="optional" class="plugin" filter="apit_test"> <!-- both production and api_test-->
+ <meta rel="testbuild">
+ <group name="test.syslibs_charconv_plugins"/>
+ </meta>
<unit bldFile="charconvfw/charconvplugins/group" mrp="charconvfw/charconvplugins/group/syslibs_charconv_plugins.mrp"/>
</component>
- <component id="fatfilenameconversionplugins" name="FAT Filename Conversion Plugins" introduced="9.1" purpose="optional" class="plugin">
+ <component id="fatfilenameconversionplugins" name="FAT Filename Conversion Plugins" introduced="9.1" purpose="optional" class="plugin" filter="api_test"> <!-- both production and api_test-->
+ <meta rel="testbuild">
+ <group name="test.syslibs_fatcharsetconv"/>
+ </meta>
<unit bldFile="charconvfw/fatfilenameconversionplugins/group" mrp="charconvfw/fatfilenameconversionplugins/group/syslibs_FATCharsetConv.mrp"/>
</component>
</collection>
@@ -16,12 +25,15 @@
<component id="iculayoutengine" name="ICU Layout Engine" introduced="9.2" purpose="optional" class="plugin">
<unit bldFile="fontservices/textshaperplugin/group" mrp="fontservices/textshaperplugin/group/graphics_iculayoutengine.mrp"/>
</component>
- <component id="fontstore" name="Font Store" purpose="mandatory">
+ <component id="fontstore" name="Font Store" purpose="mandatory" filter="api_test"> <!-- both production and api_test-->
+ <meta rel="testbuild">
+ <group name="test.graphics_fntstore"/>
+ </meta>
<unit bldFile="fontservices/fontstore/group" mrp="fontservices/fontstore/group/graphics_fntstore.mrp"/>
</component>
<component id="textbase" name="Text Base" purpose="mandatory">
- <unit bldFile="fontservices/textbase/group" mrp="fontservices/textbase/group/textbase.mrp"/>
- </component>
+ <!-- placeholder for text code from GDI -->
+ </component>
<component id="freetypefontrasteriser" name="FreeType Font Rasteriser" purpose="optional" class="plugin">
<unit bldFile="fontservices/freetypefontrasteriser/group" mrp="fontservices/freetypefontrasteriser/group/graphics_freetype.mrp"/>
</component>
@@ -30,10 +42,10 @@
</component>
</collection>
<collection id="textlayout" name="Text Layout" level="text">
- <component id="texthandling" name="Text Handling" purpose="optional">
+ <component id="texthandling" name="Text Handling" purpose="optional" deprecated="^4">
<unit bldFile="textrendering/texthandling/group" mrp="textrendering/texthandling/group/app-framework_etext.mrp"/>
</component>
- <component id="textformatting" name="Text Formatting" purpose="optional">
+ <component id="textformatting" name="Text Formatting" purpose="optional" deprecated="^4">
<unit bldFile="textrendering/textformatting/group" mrp="textrendering/textformatting/group/app-framework_form.mrp"/>
</component>
<component id="word" name="Word" purpose="development" filter="test">
@@ -41,18 +53,18 @@
</component>
</collection>
<collection id="textandlocutils" name="Text and Localisation Utils" level="util">
- <component id="numbergrouping" name="Number Grouping" purpose="mandatory">
+ <component id="numbergrouping" name="Number Grouping" deprecated="^4">
<unit bldFile="textandlocutils/numbergrouping/group" mrp="textandlocutils/numbergrouping/group/tls_numbergrouping.mrp"/>
</component>
- <component id="jplangutil" name="Japanese Language Utilities" purpose="mandatory">
+ <component id="jplangutil" name="Japanese Language Utilities" deprecated="^4">
<unit bldFile="textandlocutils/jplangutil/group" mrp="textandlocutils/jplangutil/group/tls_jplangutil.mrp"/>
</component>
- <component id="sortutil" name="Sorting Utility" purpose="mandatory">
+ <component id="sortutil" name="Sorting Utility" deprecated="^4">
<unit bldFile="textandlocutils/sortutil/group" mrp="textandlocutils/sortutil/group/tls_sortutil.mrp"/>
</component>
- <component id="inlinetext" name="Inline Text" purpose="mandatory">
+ <component id="inlinetext" name="Inline Text" deprecated="^4">
<unit bldFile="textandlocutils/inlinetext/group" mrp="textandlocutils/inlinetext/group/tls_inlinetext.mrp"/>
- </component>
+ </component>
<component id="numberformatting" name="Number Formatting" introduced="7.0s" purpose="optional">
<unit bldFile="textrendering/numberformatting/group" mrp="textrendering/numberformatting/group/app-framework_numberconversion.mrp"/>
</component>
@@ -61,7 +73,7 @@
<component id="reflocales" name="Reference Locales" purpose="optional" class="plugin">
<unit bldFile="localisation/localesupport" mrp="localisation/localesupport/mmpfiles/base_loce32.mrp"/>
</component>
- <component id="initlocale" name="Initialise Locale" introduced="^2" purpose="mandatory">
+ <component id="initlocale" name="Initialise Locale" introduced="^2" purpose="mandatory" deprecated="^4">
<!-- placeholder for split from bafl -->
</component>
</collection>
@@ -74,18 +86,16 @@
</component>
</collection>
<collection id="textandloc_info" name="Text and Localisation Info" level="text">
- <component id="textandloc_pub" filter="s60" name="Text and Localisation Public Interfaces" class="api">
- <unit bldFile="textandloc_pub/group"/>
- <!-- <unit bldFile="textandloc_pub/character_conversion_plugin_provider_api/tsrc/group"/> -->
- </component>
- <component id="textandloc_plat" filter="s60" name="Text and Localisation Platform Interfaces" class="api">
- <unit bldFile="textandloc_plat/group"/>
- <!-- <unit bldFile="textandloc_plat/findutil_api/tsrc/group"/> -->
- <!-- <unit bldFile="textandloc_plat/sortutil_api/tsrc/group"/> -->
- </component>
<component id="textandloc_metadata" name="Text and Localisation Metadata" class="config" introduced="^2" purpose="development" target="desktop">
<unit mrp="textandloc_info/textandloc_metadata/textandloc_metadata.mrp"/>
</component>
+ <component id="textandloc_graphicstestharness" name="Graphics Test Harness" introduced="8.1" purpose="development" filter="test,api_test">
+ <!-- this is not part of this package, it should not be refrerenced here -->
+ <meta rel="testbuild">
+ <group name="test.graphics_testharness"/>
+ </meta>
+ <unit bldFile="../graphics/graphicstest/graphicstestharness/group"/>
+ </component>
</collection>
</package>
</SystemDefinition>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/package_map.xml Thu Sep 02 22:23:14 2010 +0300
@@ -0,0 +1,1 @@
+<PackageMap root="sf" layer="os"/>