--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/printingservices/printerdriversupport/src/PDRBODY.H Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,206 @@
+// 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:
+//
+
+#ifndef PDRBODY_H
+#define PDRBODY_H
+
+#include <e32std.h>
+#include <s32file.h>
+#include <PDRSTORE.H>
+
+/**
+@internalComponent
+*/
+const TInt KCInfoFontUidVal = 268435524;
+
+/**
+pdr store files are backwardly compatible to this value
+@internalComponent
+*/
+const TInt KPdrtranVersion = 22;
+
+/**
+50 points
+@internalComponent
+*/
+const TInt KScalableWidthTableHeightInTwips = 1000;
+
+/**
+@internalComponent
+*/
+const TInt KMaxCommandStringMaxLength=0x100;
+
+/**
+@internalComponent
+*/
+enum TStyleIndex
+ {
+ EStyleNormal,
+ EStyleBold,
+ EStyleItalic,
+ EStyleBoldItalic
+ };
+
+class TPdrResource
+/**
+@internalComponent
+*/
+ {
+public:
+ TPdrResource();
+ void InternalizeL(RReadStream& aStream);
+public:
+ TInt iId;
+ TCommandString iString;
+ };
+
+NONSHARABLE_CLASS(CPdrTranslation) : public CBase
+/**
+@internalComponent
+*/
+ {
+public:
+ CPdrTranslation();
+ ~CPdrTranslation();
+ void InternalizeL(RReadStream& aStream);
+public:
+ TInt iFrom;
+ HBufC8* iTo;
+ };
+
+NONSHARABLE_CLASS(CPdrTranslates) : public CBase
+/**
+@internalComponent
+*/
+ {
+public:
+ CPdrTranslates();
+ void InternalizeL(RReadStream& aStream);
+ ~CPdrTranslates();
+ HBufC8* TranslateStringL(const TDesC& aString) const;
+public:
+ TStreamId iStreamId;
+ TInt iNumTranslations;
+ CPdrTranslation** iTranslationList;
+ };
+
+NONSHARABLE_CLASS(CWidthsCodeSection) : public CBase
+/**
+@internalComponent
+*/
+ {
+public:
+ CWidthsCodeSection();
+ void InternalizeL(RReadStream& aStream);
+ ~CWidthsCodeSection();
+public:
+ TCodeSection iCodeSection;
+ TInt iNumWidths;
+ TUint16* iWidthList;
+ };
+
+NONSHARABLE_CLASS(CFontInfo) : public CBase
+/**
+@internalComponent
+*/
+ {
+public:
+ CFontInfo(TStreamId aStreamId);
+ void InternalizeL(RReadStream &aStream);
+ ~CFontInfo();
+ TInt CharWidthInPixels(TChar aChar) const;
+ TInt NumCodeSections() const;
+ TCodeSection CodeSection(TInt anIndex) const;
+public:
+ TStreamId iStreamId;
+ TUint16 iAscentInPixels;
+ TUint16 iMaxCharWidthInPixels;
+ TUint16 iMaxNormalCharWidthInPixels;
+ TInt iNumCodeSections;
+ CWidthsCodeSection** iCodeSectionList;
+ };
+
+class TPdrStyle
+/**
+@internalComponent
+*/
+ {
+public:
+ TPdrStyle();
+ void InternalizeL(RReadStream &aStream);
+public:
+ TBool iIsAvailable;
+ TStreamId iFontInfoStreamId;
+ };
+
+class TPdrFontHeight
+/**
+@internalComponent
+*/
+ {
+public:
+ TPdrFontHeight();
+ void InternalizeL(RReadStream& aStream);
+public:
+ TCommandString iCommandString;
+ TInt iHeightInTwips;
+ TInt iWidthScale;
+ TPdrStyle iStyle[EStyleBoldItalic + 1]; // N.B. Don't use enums TFontPosture and TFontStrokeWeight as indices
+ };
+
+class TPdrScalableFontHeight
+/**
+@internalComponent
+*/
+ {
+public:
+ TPdrScalableFontHeight();
+ void InternalizeL(RReadStream& aStream);
+public:
+ TCommandString iCommandString;
+ TInt iHeightMinInTwips;
+ TInt iHeightMaxInTwips;
+ TInt iHeightDeltaInTwips;
+ TPdrStyle iStyle[EStyleBoldItalic + 1]; // N.B. Don't use enums TFontPosture and TFontStrokeWeight as indices
+ };
+
+NONSHARABLE_CLASS(CTypefaceFonts) : public CBase
+/**
+@internalComponent
+*/
+ {
+public:
+ CTypefaceFonts();
+ void InternalizeL(RReadStream& aStream);
+ ~CTypefaceFonts();
+ TInt IsScalable() const;
+ TInt NumFontHeights() const;
+ TInt FontHeightInTwips(TInt aHeightIndex) const;
+ TInt FontInfoHeightInTwips(TInt aHeightIndex) const;
+ void CommandString(TDes8& aDes, TInt aHeightIndex) const;
+ TPdrStyle* Style(TInt aHeightIndex, TFontStyle& aFontStyle) const;
+ TTypeface Typeface();
+private:
+ TStyleIndex StyleIndex(TFontStyle& aFontStyle) const;
+private:
+ TTypeface iTypeface;
+ TInt iNumFontHeights; // Also used as flag for !iIsScalable
+ TPdrFontHeight* iFontHeightList;
+ TPdrScalableFontHeight* iScalableFontHeight;
+public:
+ TSwizzle<CPdrTranslates> iTranslates;
+ };
+
+#endif