Add MMP files to build libOpenVG_sw.lib which uses LINKAS to redirect to libOpenVG.dll (and
the same for libEGL_sw.lib and libOpenVGU_sw.lib).
Only the libEGL_sw.lib redirection isn't activated - this can't happen until there is a merged
libEGL.dll which supports the OpenWF synchronisation and also implements the graphical support functions.
The overall aim is to eliminate the *_sw.dll implementations, at least as a compile-time way of choosing
a software-only implementation.The correct way to choose is to put the right set of libraries into a ROM
with suitable renaming, and in the emulator to use the "switching DLL" technique to pick the right set.
As the Symbian Foundation doesn't have any alternative implementations, we don't need the switching DLLs
and we can build directly to the correct name.
/*
* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
* Header PDRRECRD.H
*
*/
#ifndef __PDRRECRD_H__
#define __PDRRECRD_H__
#include "LEXICAL.H"
#include "RECORD.H"
#include "UID.H"
/**
Index of text styles used by printer description records.
@publishedAll
@released
*/
enum StyleIndex
{
/** Normal text. */
Normal,
/** Bold text. */
Bold,
/** Italic text. */
Italic,
/** Bold italic text. */
BoldItalic
};
class PdrResource
/**
This class encapsulates a printer resource.
@publishedAll
@released
*/
{
public:
IMPORT_C static PdrResource* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
public:
/** Resource identifier. */
int32 iId;
/** String containing the resource. */
String iString;
};
class PdrResources : public Record
/**
This class holds printer resources.
@publishedAll
@released
*/
{
public:
IMPORT_C static PdrResources* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
IMPORT_C void AddResource(PdrResource* aResource);
private:
~PdrResources();
private:
ObjectList<PdrResource*> iPdrResourceList;
};
class PdrTranslation
/**
This class holds a translation between printer descriptions.
@publishedAll
@released
*/
{
public:
IMPORT_C static PdrTranslation* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
public:
/** Printer identifier to translate from. */
uint16 iFrom;
/** Printer identifier to translate to. */
String iTo; // !! Think about Unicode version
};
class PdrTranslates : public Record
/**
This class encapsulates a list of printer description translations.
@publishedAll
@released
*/
{
public:
IMPORT_C static PdrTranslates* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
IMPORT_C void AddTranslation(PdrTranslation* aTranslation);
private:
~PdrTranslates();
private:
ObjectList<PdrTranslation*> iPdrTranslationList;
};
class Width
/**
This class is used to hold font widths. It is used by printer descriptions.
@publishedAll
@released
*/
{
public:
IMPORT_C static Width* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
public:
/** Font width in pixels. */
uint16 iWidthInPixels;
};
class WidthsCodeSection
/**
This class encapsulates a list of font widths used by printer descriptions.
@publishedAll
@released
*/
{
private:
WidthsCodeSection();
public:
IMPORT_C static WidthsCodeSection* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
IMPORT_C void AddWidth(Width* aWidth);
IMPORT_C Width* WidthList(int i);
IMPORT_C int NumWidths();
~WidthsCodeSection();
public:
/** Start of list. */
uint16 iStart;
/** End of list. */
uint16 iEnd;
private:
ObjectList<Width*> iWidthList;
};
class FontInfo : public Record
/**
This class contains information about fonts. It is used by a printer description.
@publishedAll
@released
*/
{
public:
IMPORT_C static FontInfo* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
IMPORT_C void AddCodeSection(WidthsCodeSection* aCodeSection);
IMPORT_C WidthsCodeSection* CodeSectionList(int i);
IMPORT_C int NumCodeSections();
private:
~FontInfo();
public:
/** Font ascent in pixels. */
uint16 iAscentInPixels;
/** Maximum font character width in pixels. */
uint16 iMaxCharWidthInPixels;
/** Normal font character width in pixels. */
uint16 iMaxNormalCharWidthInPixels;
private:
ObjectList<WidthsCodeSection*> iCodeSectionList;
};
class PdrStyle
/**
This class contains information about a font style used in a printer descriptions.
@publishedAll
@released
*/
{
public:
IMPORT_C static PdrStyle* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
PdrStyle();
public:
/** Determines whether the font is available for use. */
boolean iIsAvailable;
/** Reference to a record containing information about the font. */
Record *iFontInfo;
};
class PdrFontHeight
/**
This class stores information for use in printer descriptions about font heights
and relative scaling.
@publishedAll
@released
*/
{
public:
IMPORT_C static PdrFontHeight* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
PdrFontHeight();
public:
/** Command string associated with font height. */
String iCommandString;
/** Font height in twips. */
int32 iHeightInTwips;
/** Width scaling. */
int32 iWidthScale;
/** Array containing space for four styles. */
PdrStyle iStyle[BoldItalic + 1]; // Array for four styles
};
class PdrScalableFontHeight
/**
This class contains information on scalable fonts used by printer descriptions.
@publishedAll
@released
*/
{
public:
PdrScalableFontHeight();
void Externalize(ostream& out);
public:
/** Contains a printer command string associated with this font. */
String iCommandString;
/** Minimum height in twips. */
int32 iHeightMinInTwips;
/** Maximum height in twips. */
int32 iHeightMaxInTwips;
/** Scale delta in twips. */
int32 iHeightDeltaInTwips;
/** Array for four styles. */
PdrStyle iStyle[BoldItalic + 1]; // Array for four styles
};
class TypefaceFonts : public Record
/**
This class encapsulates a list of font heights for printer descriptions.
@publishedAll
@released
*/
{
public:
IMPORT_C static TypefaceFonts* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
IMPORT_C void AddFontHeight(PdrFontHeight* aFontHeight);
IMPORT_C int NumFontHeights();
PdrFontHeight* FontHeightList(int i);
private:
TypefaceFonts();
~TypefaceFonts();
public:
Typeface iTypeface;
/** Determines whether the font height is scalable. */
boolean iIsScalable;
private:
ObjectList<PdrFontHeight*> iFontHeightList;
public:
/** Describes a scalable font height. */
PdrScalableFontHeight iScalableFontHeight;
Record *iTranslates;
};
class TypefaceFontsEntry
/**
This class encapsulates information about a printer font.
@publishedAll
@released
*/
{
public:
IMPORT_C static TypefaceFontsEntry* New(Record* aTypefaceFonts);
IMPORT_C void Delete();
void Externalize(ostream& out);
private:
TypefaceFontsEntry(Record* aTypefaceFonts);
public:
~TypefaceFontsEntry();
public:
/** Contains the font record. */
Record* iTypefaceFonts;
/** Determines whether the font can be used in portrait view. */
boolean iNotInPortrait;
/** Determines whether the font can be used in landscape view. */
boolean iNotInLandscape;
};
class Margins
/**
This class contains the margins used by a printer description.
@publishedAll
@released
*/
{
public:
void Externalize(ostream& out);
public:
/** Left margin. */
int32 iLeft;
/** Right margin. */
int32 iRight;
/** Top margin. */
int32 iTop;
/** Bottom margin. */
int32 iBottom;
};
/*
class PdrExtraInfo : public Record
{
public:
~PdrExtraInfo();
void Externalize(ostream& out);
public:
ObjectList<String*> iInfo;
};
*/
class PdrModelInfo
/**
This class contains information about a printer model used by a printer description.
@publishedAll
@released
*/
{
public:
void Externalize(ostream& out);
IMPORT_C void AddTypefaceFontsEntry(TypefaceFontsEntry* aTypefaceFontsEntry);
int NumTypefaceFontsEntries();
TypefaceFontsEntry* TypefaceFontsEntryList(int i);
PdrModelInfo();
~PdrModelInfo();
public:
streampos iStreamId;
/** Flags associated with model. */
int32 iFlags;
/** Pixel width in twips. */
int32 iKPixelWidthInTwips;
/** Pixel height in twips. */
int32 iKPixelHeightInTwips;
/** Portrait printng offset in twips. */
Point iPortraitOffsetInPixels;
/** Landscape printing offset in twips. */
Point iLandscapeOffsetInPixels;
/** Minimum margin in pixels. */
Margins iMinMarginsInPixels;
/** Display mode. */
int32 iDisplayMode;
private:
ObjectList<TypefaceFontsEntry*> iTypefaceFontsEntryList;
public:
Record *iResources;
Record *iSpareRecord;
};
class PrinterModelEntry
/**
This class contains information on a printer model.
@publishedAll
@released
*/
{
public:
PrinterModelEntry();
void Externalize(ostream& out);
public:
/** Printer name. */
String iName;
/** Whether a printer port is required. */
boolean iRequiresPrinterPort;
uid iUid;
};
class PrinterModelHeader : public Record
/**
This class encapsulates information about a printer model.
@publishedAll
@released
*/
{
public:
IMPORT_C static PrinterModelHeader* New();
IMPORT_C void Delete();
void Externalize(ostream& out);
void ExternalizeData(ostream& out);
boolean IsPdrModel();
public:
/** Printer model entry. */
PrinterModelEntry iEntry;
/** Printer model information. */
PdrModelInfo iInfo;
};
class PdrStoreFile : public Record
/**
This class stores printer description files.
@publishedAll
@released
*/
{
public:
IMPORT_C static PdrStoreFile* New();
IMPORT_C void Delete();
IMPORT_C void AddModel(PrinterModelHeader *aModel);
void Externalize(ostream& out);
private:
PdrStoreFile();
private:
void AddTypefaceFonts(TypefaceFonts* aTypefaceFonts);
void ExternalizeHeader(ostream& out);
void ExternalizeComponents(ostream& out);
public:
/** Printer descriptor. */
String iPDLName;
uid iPDLUid;
private:
RecordList iModelList;
RecordList iTypefaceFontsList;
RecordList iFontInfoList;
RecordList iResourcesList;
RecordList iTranslatesList;
// RecordList iExtraInfoList;
};
class PdrModelStore
/**
This class is used to store information about printer models, and externalize
it to external files.
@publishedAll
@released
*/
{
public:
IMPORT_C boolean Store(const String& aFilename);
IMPORT_C void AddPdrStoreFile(PdrStoreFile* aPdrStoreFile);
IMPORT_C void AddModel(PrinterModelHeader *aModel);
IMPORT_C Record* FindModel(String& aLabel);
IMPORT_C void AddTypefaceFonts(TypefaceFonts *aTypefaceFonts);
IMPORT_C Record* FindTypefaceFonts(String& aLabel);
IMPORT_C void AddFontInfo(FontInfo *aFontInfo);
IMPORT_C Record* FindFontInfo(String& aLabel);
IMPORT_C void AddResources(PdrResources *aResources);
IMPORT_C Record* FindResources(String& aLabel);
IMPORT_C void AddTranslates(PdrTranslates *aTranslates);
IMPORT_C Record* FindTranslates(String& aLabel);
// void AddExtraInfo(PdrExtraInfo *aInfo);
// Record* FindExtraInfo(String& aLabel);
PdrModelStore();
~PdrModelStore();
private:
/** This attribute is internal, and is not intended for use. */
PdrStoreFile* iPdrStoreFile;
RecordList iModelList;
RecordList iTypefaceFontsList;
RecordList iFontInfoList;
RecordList iResourcesList;
RecordList iTranslatesList;
// RecordList iExtraInfoList;
};
#endif