sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRRECRD.CPP
author jjkang
Wed, 23 Jun 2010 17:27:59 +0800
changeset 591 22486c9c7b15
permissions -rw-r--r--
raptor v2.14.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     1
/*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     2
* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     3
* All rights reserved.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     4
* This component and the accompanying materials are made available
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     6
* which accompanies this distribution, and is available
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     8
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     9
* Initial Contributors:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    11
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    12
* Contributors:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    13
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    14
* Description: 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    15
* Header PDRRECRD.CPP
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    16
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    17
*/
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    18
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    19
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    20
#include "PDRRECRD.H"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    21
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    22
EXPORT_C PdrResource* PdrResource::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    23
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    24
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    25
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    26
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    27
	return new PdrResource();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    28
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    29
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    30
EXPORT_C void PdrResource::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    31
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    32
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    33
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    34
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    35
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    36
void PdrResource::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    37
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    38
	uint8 id = (uint8) iId;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    39
	out.write((char*) &id, sizeof(id));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    40
	iString.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    41
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    42
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    43
EXPORT_C PdrResources* PdrResources::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    44
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    45
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    46
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    47
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    48
	return new PdrResources();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    49
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    50
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    51
EXPORT_C void PdrResources::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    52
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    53
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    54
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    55
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    56
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    57
void PdrResources::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    58
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    59
	iStreamId = out.tellp();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    60
	iPdrResourceList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    61
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    62
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    63
EXPORT_C void PdrResources::AddResource(PdrResource* aResource)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    64
/** Adds a printer resource to the object.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    65
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    66
@param aResource Printer resource. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    67
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    68
	iPdrResourceList.Add(aResource);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    69
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    70
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    71
PdrResources::~PdrResources()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    72
/** Default destructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    73
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    74
	iPdrResourceList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    75
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    76
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    77
EXPORT_C PdrTranslation* PdrTranslation::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    78
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    79
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    80
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    81
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    82
	return new PdrTranslation();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    83
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    84
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    85
EXPORT_C void PdrTranslation::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    86
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    87
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    88
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    89
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    90
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    91
void PdrTranslation::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    92
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    93
	out.write((char*) &iFrom, sizeof(iFrom));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    94
	iTo.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    95
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    96
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    97
EXPORT_C PdrTranslates* PdrTranslates::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    98
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    99
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   100
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   101
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   102
	return new PdrTranslates();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   103
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   104
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   105
EXPORT_C void PdrTranslates::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   106
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   107
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   108
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   109
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   110
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   111
void PdrTranslates::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   112
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   113
	iStreamId = out.tellp();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   114
	iPdrTranslationList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   115
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   116
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   117
EXPORT_C void PdrTranslates::AddTranslation(PdrTranslation* aTranslation)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   118
/** Adds a printer translation to the list.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   119
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   120
@param aTranslation Reference to a translation. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   121
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   122
	iPdrTranslationList.Add(aTranslation);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   123
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   124
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   125
PdrTranslates::~PdrTranslates()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   126
/** This function is internal, and is not intended for use. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   127
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   128
	iPdrTranslationList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   129
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   130
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   131
EXPORT_C Width* Width::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   132
/** Creates a new instance of this object.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   133
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   134
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   135
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   136
	return new Width();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   137
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   138
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   139
EXPORT_C void Width::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   140
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   141
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   142
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   143
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   144
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   145
void Width::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   146
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   147
	out.write ((char*) &iWidthInPixels, sizeof(iWidthInPixels));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   148
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   149
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   150
WidthsCodeSection::WidthsCodeSection()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   151
 :	iWidthList()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   152
/** This function is internal only, and is not intended for use. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   153
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   154
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   155
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   156
EXPORT_C WidthsCodeSection* WidthsCodeSection::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   157
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   158
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   159
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   160
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   161
	return new WidthsCodeSection();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   162
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   163
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   164
EXPORT_C void WidthsCodeSection::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   165
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   166
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   167
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   168
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   169
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   170
void WidthsCodeSection::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   171
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   172
	out.write((char*) &iStart, sizeof(iStart));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   173
	out.write((char*) &iEnd, sizeof(iEnd));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   174
	iWidthList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   175
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   176
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   177
EXPORT_C void WidthsCodeSection::AddWidth(Width* aWidth)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   178
/** Adds a new font width to the list.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   179
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   180
@param aWidth Font width. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   181
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   182
	iWidthList.Add(aWidth);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   183
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   184
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   185
EXPORT_C Width* WidthsCodeSection::WidthList(int i)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   186
/** Returns a font width from the list at the position specified.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   187
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   188
@param i Position of font width in list.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   189
@return Reference to a font width. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   190
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   191
	return iWidthList[i];
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   192
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   193
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   194
EXPORT_C int WidthsCodeSection::NumWidths()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   195
/** Returns the number of font widths in the list.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   196
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   197
@return Number of widths. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   198
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   199
	return iWidthList.Size();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   200
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   201
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   202
WidthsCodeSection::~WidthsCodeSection()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   203
/** Default destructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   204
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   205
	iWidthList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   206
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   207
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   208
EXPORT_C FontInfo* FontInfo::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   209
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   210
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   211
@return Reference to a new instance of this class. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   212
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   213
	return new FontInfo();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   214
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   215
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   216
EXPORT_C void FontInfo::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   217
/** Deletes the current FontInfo object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   218
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   219
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   220
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   221
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   222
void FontInfo::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   223
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   224
	iStreamId = out.tellp();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   225
	out.write((char*) &iAscentInPixels, sizeof(iAscentInPixels));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   226
	out.write((char*) &iMaxCharWidthInPixels, sizeof(iMaxCharWidthInPixels));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   227
	out.write((char*) &iMaxNormalCharWidthInPixels, sizeof(iMaxNormalCharWidthInPixels));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   228
	iCodeSectionList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   229
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   230
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   231
EXPORT_C void FontInfo::AddCodeSection(WidthsCodeSection* aCodeSection)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   232
/** Adds a section of information about the font to an internally-stored array.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   233
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   234
@param aCodeSection Font information. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   235
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   236
	iCodeSectionList.Add(aCodeSection);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   237
	}	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   238
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   239
EXPORT_C WidthsCodeSection* FontInfo::CodeSectionList(int i)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   240
/** Returns a section of font information from a specified position in the internally-stored 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   241
array.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   242
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   243
@param i Postion of information in the array.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   244
@return Reference to section of font information. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   245
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   246
	return iCodeSectionList[i];
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   247
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   248
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   249
EXPORT_C int FontInfo::NumCodeSections()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   250
/** Returns the number of sections of font information in the internally-stored 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   251
array.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   252
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   253
@return Current number of font information sections. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   254
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   255
	return iCodeSectionList.Size();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   256
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   257
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   258
FontInfo::~FontInfo()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   259
/** This function is internal, and not intended for use. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   260
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   261
	iCodeSectionList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   262
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   263
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   264
EXPORT_C PdrStyle* PdrStyle::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   265
/** Creates a new instance of this class
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   266
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   267
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   268
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   269
	return new PdrStyle();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   270
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   271
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   272
EXPORT_C void PdrStyle::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   273
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   274
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   275
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   276
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   277
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   278
void PdrStyle::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   279
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   280
	out.write((char*) &iIsAvailable, sizeof(iIsAvailable));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   281
	streamoff streamid = 0;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   282
	if (iIsAvailable)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   283
		streamid = iFontInfo->iStreamId;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   284
	::ExternalizeStreamOff(out, streamid);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   285
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   286
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   287
PdrStyle::PdrStyle()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   288
 :	iIsAvailable(efalse)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   289
/** Default constructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   290
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   291
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   292
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   293
EXPORT_C PdrFontHeight* PdrFontHeight::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   294
/** Returns a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   295
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   296
@return Reference to new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   297
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   298
	return new PdrFontHeight();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   299
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   300
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   301
EXPORT_C void PdrFontHeight::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   302
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   303
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   304
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   305
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   306
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   307
void PdrFontHeight::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   308
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   309
	iCommandString.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   310
	out.write((char*) &iHeightInTwips, sizeof(iHeightInTwips));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   311
	out.write((char*) &iWidthScale, sizeof(iWidthScale));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   312
	for (int style = Normal;style <= BoldItalic; style++)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   313
		iStyle[style].Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   314
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   315
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   316
PdrFontHeight::PdrFontHeight():
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   317
	iWidthScale(1)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   318
/** Default constructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   319
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   320
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   321
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   322
PdrScalableFontHeight::PdrScalableFontHeight()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   323
/** Default constructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   324
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   325
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   326
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   327
void PdrScalableFontHeight::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   328
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   329
	iCommandString.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   330
	out.write((char*) &iHeightMinInTwips, sizeof(iHeightMinInTwips));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   331
	out.write((char*) &iHeightMaxInTwips, sizeof(iHeightMaxInTwips));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   332
	out.write((char*) &iHeightDeltaInTwips, sizeof(iHeightDeltaInTwips));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   333
	for (int style = Normal; style <= BoldItalic; style++)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   334
		iStyle[style].Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   335
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   336
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   337
EXPORT_C TypefaceFonts* TypefaceFonts::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   338
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   339
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   340
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   341
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   342
	return new TypefaceFonts();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   343
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   344
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   345
EXPORT_C void TypefaceFonts::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   346
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   347
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   348
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   349
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   350
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   351
void TypefaceFonts::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   352
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   353
	iStreamId = out.tellp();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   354
	iTypeface.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   355
	out.write((char*) &iIsScalable, sizeof(iIsScalable));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   356
	if (iIsScalable)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   357
		iScalableFontHeight.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   358
	else
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   359
		iFontHeightList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   360
	::ExternalizeStreamOff(out, iTranslates->iStreamId);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   361
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   362
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   363
EXPORT_C void TypefaceFonts::AddFontHeight(PdrFontHeight* aFontHeight)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   364
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   365
	iFontHeightList.Add(aFontHeight);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   366
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   367
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   368
EXPORT_C int TypefaceFonts::NumFontHeights()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   369
/** Returns the number of font height descriptions currently held in the list.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   370
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   371
@return Number of descriptions. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   372
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   373
	return iFontHeightList.Size();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   374
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   375
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   376
PdrFontHeight* TypefaceFonts::FontHeightList(int i)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   377
/** Returns the font height description from the position specified in the list.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   378
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   379
@param i Position of description.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   380
@return Font height description. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   381
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   382
	return iFontHeightList[i];
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   383
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   384
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   385
TypefaceFonts::TypefaceFonts():
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   386
	iIsScalable(efalse)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   387
/** This function is internal only, and is not intended for use. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   388
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   389
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   390
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   391
TypefaceFonts::~TypefaceFonts()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   392
/** This function is internal only, and is not intended for use. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   393
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   394
	iFontHeightList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   395
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   396
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   397
EXPORT_C TypefaceFontsEntry* TypefaceFontsEntry::New(Record* aTypefaceFonts)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   398
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   399
	return new TypefaceFontsEntry(aTypefaceFonts);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   400
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   401
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   402
EXPORT_C void TypefaceFontsEntry::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   403
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   404
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   405
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   406
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   407
	
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   408
void TypefaceFontsEntry::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   409
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   410
	::ExternalizeStreamOff(out, iTypefaceFonts->iStreamId);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   411
	out.write((char*) &iNotInPortrait, sizeof(iNotInPortrait));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   412
	out.write((char*) &iNotInLandscape, sizeof(iNotInLandscape));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   413
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   414
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   415
TypefaceFontsEntry::TypefaceFontsEntry(Record* aTypefaceFonts)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   416
 :	iTypefaceFonts(aTypefaceFonts), iNotInPortrait(efalse), iNotInLandscape(efalse)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   417
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   418
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   419
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   420
TypefaceFontsEntry::~TypefaceFontsEntry()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   421
/** Default destructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   422
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   423
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   424
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   425
void Margins::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   426
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   427
	out.write((char*) &iLeft, sizeof(iLeft));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   428
	out.write((char*) &iRight, sizeof(iRight));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   429
	out.write((char*) &iTop, sizeof(iTop));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   430
	out.write((char*) &iBottom, sizeof(iBottom));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   431
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   432
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   433
/*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   434
PdrExtraInfo::~PdrExtraInfo()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   435
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   436
	iInfo.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   437
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   438
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   439
void PdrExtraInfo::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   440
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   441
	iInfo.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   442
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   443
*/
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   444
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   445
void PdrModelInfo::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   446
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   447
	iStreamId=out.tellp();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   448
	out.write((char*) &KPdrtranVersion, sizeof(KPdrtranVersion));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   449
	out.write((char*) &iFlags, sizeof(iFlags));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   450
	out.write((char*) &iKPixelWidthInTwips, sizeof(iKPixelWidthInTwips));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   451
	out.write((char*) &iKPixelHeightInTwips, sizeof(iKPixelHeightInTwips));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   452
	iPortraitOffsetInPixels.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   453
	iLandscapeOffsetInPixels.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   454
	iMinMarginsInPixels.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   455
	out.write((char*) &iDisplayMode, sizeof(iDisplayMode));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   456
	iTypefaceFontsEntryList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   457
	::ExternalizeStreamOff(out, iResources->iStreamId);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   458
	streamoff streamid = 0;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   459
	if (iSpareRecord)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   460
		streamid = iSpareRecord->iStreamId;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   461
	::ExternalizeStreamOff(out, streamid);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   462
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   463
 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   464
EXPORT_C void PdrModelInfo::AddTypefaceFontsEntry(TypefaceFontsEntry* aTypefaceFontsEntry)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   465
/** Adds an entry containing information about typeface fonts to an internally-stored 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   466
array.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   467
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   468
@param aTypefaceFontsEntry Typeface font information. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   469
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   470
	iTypefaceFontsEntryList.Add(aTypefaceFontsEntry);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   471
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   472
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   473
int PdrModelInfo::NumTypefaceFontsEntries()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   474
/** Returns the number of entries containing information about typeface fonts in 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   475
the internally-stored array.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   476
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   477
@return Number of entries. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   478
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   479
	return iTypefaceFontsEntryList.Size();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   480
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   481
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   482
TypefaceFontsEntry* PdrModelInfo::TypefaceFontsEntryList(int i)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   483
/** Returns the typeface font entry stored the internal array from the position 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   484
specified.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   485
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   486
@param i Position in array.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   487
@return Typeface font entry. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   488
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   489
	return iTypefaceFontsEntryList[i];
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   490
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   491
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   492
PdrModelInfo::PdrModelInfo()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   493
 :	iStreamId(0),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   494
	iFlags(0),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   495
	iKPixelWidthInTwips(0),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   496
	iKPixelHeightInTwips(0),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   497
	iPortraitOffsetInPixels(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   498
	iLandscapeOffsetInPixels(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   499
	iMinMarginsInPixels(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   500
	iDisplayMode(0),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   501
	iTypefaceFontsEntryList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   502
	iResources(NULL),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   503
	iSpareRecord(NULL)	// !! Not used yet
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   504
/** Default constructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   505
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   506
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   507
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   508
PdrModelInfo::~PdrModelInfo()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   509
/** Default destructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   510
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   511
	iTypefaceFontsEntryList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   512
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   513
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   514
PrinterModelEntry::PrinterModelEntry()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   515
 :	iName(), iRequiresPrinterPort(efalse), iUid(KNullUid)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   516
/** Default constructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   517
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   518
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   519
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   520
void PrinterModelEntry::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   521
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   522
	iName.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   523
	out.write((char*) &iRequiresPrinterPort, sizeof(iRequiresPrinterPort));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   524
	out.write((char*) &iUid, sizeof(iUid));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   525
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   526
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   527
EXPORT_C PrinterModelHeader* PrinterModelHeader::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   528
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   529
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   530
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   531
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   532
	return new PrinterModelHeader();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   533
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   534
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   535
EXPORT_C void PrinterModelHeader::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   536
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   537
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   538
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   539
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   540
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   541
void PrinterModelHeader::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   542
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   543
	iEntry.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   544
	::ExternalizeStreamOff(out, iInfo.iStreamId);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   545
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   546
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   547
void PrinterModelHeader::ExternalizeData(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   548
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   549
	iInfo.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   550
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   551
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   552
boolean PrinterModelHeader::IsPdrModel()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   553
/** Determines whether printer information is available for this printer model.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   554
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   555
@return ETrue: printer description is available. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   556
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   557
	return iInfo.NumTypefaceFontsEntries() || iInfo.iResources;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   558
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   559
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   560
EXPORT_C PdrStoreFile* PdrStoreFile::New()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   561
/** Creates a new instance of this class.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   562
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   563
@return Reference to a new object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   564
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   565
	return new PdrStoreFile();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   566
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   567
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   568
EXPORT_C void PdrStoreFile::Delete()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   569
/** Deletes the current object. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   570
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   571
	delete this;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   572
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   573
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   574
EXPORT_C void PdrStoreFile::AddModel(PrinterModelHeader* aModel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   575
/** Adds a printer model.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   576
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   577
@param aModel Printer model. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   578
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   579
	iModelList.Add(aModel);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   580
	if (aModel->IsPdrModel())
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   581
		{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   582
		for (int i = 0; i < aModel->iInfo.NumTypefaceFontsEntries(); i++)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   583
			AddTypefaceFonts((TypefaceFonts*) aModel->iInfo.TypefaceFontsEntryList(i)->iTypefaceFonts);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   584
		iResourcesList.Add(aModel->iInfo.iResources);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   585
//		if (aModel->iInfo.iSpareRecord)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   586
//			iExtraInfoList.Add(aModel->iInfo.iSpareRecord);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   587
		}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   588
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   589
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   590
void PdrStoreFile::Externalize(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   591
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   592
	ExternalizeHeader(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   593
	ExternalizeComponents(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   594
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   595
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   596
void PdrStoreFile::ExternalizeHeader(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   597
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   598
	out.write((char*) &KStoreWriteOnceLayoutUid, sizeof(KStoreWriteOnceLayoutUid));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   599
	out.write((char*) &KPdrStoreFileUid, sizeof(KPdrStoreFileUid));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   600
	out.write((char*) &KNullUid, sizeof(KNullUid));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   601
	out.write((char*) &KPdrStoreFileChecksum, sizeof(KPdrStoreFileChecksum));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   602
	::ExternalizeStreamOff(out, iStreamId);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   603
	iStreamId = out.tellp();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   604
	iPDLName.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   605
	out.write((char*) &iPDLUid, sizeof(iPDLUid));
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   606
	iModelList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   607
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   608
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   609
void PdrStoreFile::AddTypefaceFonts(TypefaceFonts* aTypefaceFonts)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   610
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   611
	iTypefaceFontsList.Add(aTypefaceFonts);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   612
	iTranslatesList.Add(aTypefaceFonts->iTranslates);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   613
	if (aTypefaceFonts->iIsScalable)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   614
		{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   615
		for (int style = Normal; style <= BoldItalic; style++)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   616
			{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   617
			if (aTypefaceFonts->iScalableFontHeight.iStyle[style].iIsAvailable)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   618
				iFontInfoList.Add(aTypefaceFonts->iScalableFontHeight.iStyle[style].iFontInfo);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   619
			}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   620
		}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   621
	else
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   622
		{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   623
		for (int j = 0; j < aTypefaceFonts->NumFontHeights(); j++)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   624
			{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   625
			PdrFontHeight* fontheight = aTypefaceFonts->FontHeightList(j);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   626
			for (int style = Normal; style <= BoldItalic; style++)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   627
				{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   628
				if (fontheight->iStyle[style].iIsAvailable)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   629
					iFontInfoList.Add(fontheight->iStyle[style].iFontInfo);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   630
				}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   631
			}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   632
		}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   633
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   634
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   635
void PdrStoreFile::ExternalizeComponents(ostream& out)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   636
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   637
	for (int i = 0; i < iModelList.Size(); i++)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   638
		{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   639
		PrinterModelHeader* model = (PrinterModelHeader*) iModelList[i];
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   640
		if (model->IsPdrModel())
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   641
			model->ExternalizeData(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   642
		}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   643
	iTypefaceFontsList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   644
	iFontInfoList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   645
	iResourcesList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   646
	iTranslatesList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   647
//	iExtraInfoList.Externalize(out);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   648
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   649
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   650
PdrStoreFile::PdrStoreFile()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   651
 :	Record(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   652
	iPDLName(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   653
	iPDLUid(KNullUid),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   654
	iModelList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   655
	iTypefaceFontsList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   656
	iFontInfoList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   657
	iResourcesList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   658
	iTranslatesList()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   659
/** This function is internal only, and is not intended for use. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   660
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   661
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   662
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   663
EXPORT_C boolean PdrModelStore::Store(const String& aFilename)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   664
/** Externalizes printer information from the store to the specfied external file.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   665
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   666
@param aFilename Filename.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   667
@return ETrue: store successful. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   668
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   669
	boolean state = efalse;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   670
	ofstream fout;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   671
	String string = aFilename;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   672
	fout.open(string.Text(), ios::binary);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   673
	if (!fout.fail())
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   674
		{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   675
		iPdrStoreFile->Externalize(fout);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   676
		fout.close();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   677
		fout.open(string.Text(), ios::binary | ios::trunc);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   678
		iPdrStoreFile->Externalize(fout);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   679
		fout.close();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   680
		state = etrue;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   681
		}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   682
	return state;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   683
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   684
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   685
EXPORT_C void PdrModelStore::AddPdrStoreFile(PdrStoreFile* aPdrStoreFile)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   686
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   687
	iPdrStoreFile = aPdrStoreFile;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   688
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   689
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   690
EXPORT_C void PdrModelStore::AddModel(PrinterModelHeader *aModel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   691
/** Adds a printer model to the store.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   692
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   693
@param aModel Printer model. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   694
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   695
	iModelList.Add(aModel);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   696
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   697
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   698
EXPORT_C Record *PdrModelStore::FindModel(String& aLabel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   699
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   700
	return iModelList.LabelToRecord(aLabel);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   701
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   702
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   703
EXPORT_C void PdrModelStore::AddTypefaceFonts(TypefaceFonts *aTypefaceFonts)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   704
/** Adds typeface information to the store.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   705
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   706
@param aTypefaceFonts Typeface fonts. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   707
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   708
	iTypefaceFontsList.Add(aTypefaceFonts);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   709
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   710
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   711
EXPORT_C Record *PdrModelStore::FindTypefaceFonts(String& aLabel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   712
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   713
	return iTypefaceFontsList.LabelToRecord(aLabel);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   714
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   715
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   716
EXPORT_C void PdrModelStore::AddFontInfo(FontInfo *aFontInfo)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   717
/** Adds font information to the store.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   718
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   719
@param aFontInfo Font information. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   720
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   721
	iFontInfoList.Add(aFontInfo);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   722
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   723
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   724
EXPORT_C Record *PdrModelStore::FindFontInfo(String& aLabel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   725
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   726
	return iFontInfoList.LabelToRecord(aLabel);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   727
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   728
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   729
EXPORT_C void PdrModelStore::AddResources(PdrResources *aResources)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   730
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   731
	iResourcesList.Add(aResources);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   732
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   733
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   734
EXPORT_C Record *PdrModelStore::FindResources(String& aLabel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   735
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   736
	return iResourcesList.LabelToRecord(aLabel);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   737
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   738
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   739
EXPORT_C void PdrModelStore::AddTranslates(PdrTranslates *aTranslates)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   740
/** Adds printer translations to the store.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   741
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   742
@param aTranslates Translation list. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   743
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   744
	iTranslatesList.Add(aTranslates);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   745
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   746
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   747
EXPORT_C Record *PdrModelStore::FindTranslates(String& aLabel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   748
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   749
	return iTranslatesList.LabelToRecord(aLabel); 
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   750
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   751
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   752
	/*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   753
void PdrModelStore::AddExtraInfo(PdrExtraInfo *aInfo)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   754
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   755
	iExtraInfoList.Add(aInfo);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   756
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   757
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   758
Record* PdrModelStore::FindExtraInfo(String& aLabel)
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   759
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   760
	return iExtraInfoList.LabelToRecord(aLabel);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   761
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   762
*/
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   763
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   764
PdrModelStore::PdrModelStore()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   765
 :	iPdrStoreFile(NULL),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   766
	iModelList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   767
	iTypefaceFontsList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   768
	iFontInfoList(),
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   769
	iResourcesList()//,
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   770
//	iExtraInfoList()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   771
/** Default constructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   772
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   773
	}
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   774
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   775
PdrModelStore::~PdrModelStore()
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   776
/** Default destructor. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   777
	{
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   778
	delete iPdrStoreFile;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   779
	iModelList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   780
	iTypefaceFontsList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   781
	iFontInfoList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   782
	iResourcesList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   783
	iTranslatesList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   784
//	iExtraInfoList.Destroy();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   785
	}