sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRREADR.CPP
author Mike Kinghan <mikek@symbian.org>
Wed, 01 Dec 2010 12:02:41 +0000
changeset 42 cf609178ac39
parent 13 c327db0664bb
permissions -rw-r--r--
1) fix_tools_exports.pl need only be run on Windows hosts; was run unnecessarily on Linux too. 2) Need to export modload.pm on Linux as well as Windows hosts.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     1
/*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     2
* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     3
* All rights reserved.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     8
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     9
* Initial Contributors:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    11
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    12
* Contributors:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    13
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    14
* Description: 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    15
* Header PDRREADR.CPP
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    16
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    17
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    18
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    19
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    20
#include "PDRREADR.H"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    21
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    22
const int NumResources=34;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    23
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    24
String IdentResource[NumResources] =
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    25
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    26
	"Reset",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    27
	"SetPageSize",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    28
	"PreAmble",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    29
	"PostAmble",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    30
	"SetTextColor",	//  !!
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    31
	"BoldOn",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    32
	"BoldOff",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    33
	"ItalicOn",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    34
	"ItalicOff",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    35
	"UnderlineOn",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    36
	"UnderlineOff",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    37
	"StrikethroughOn",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    38
	"StrikethroughOff",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    39
	"NewPage",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    40
	"Portrait",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    41
	"Landscape",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    42
	"SetXPos",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    43
	"SetYPos",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    44
	"IncrementXPos",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    45
	"IncrementYPos",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    46
	"CarriageReturn",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    47
	"SetGraphicsColor",	//  !!
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    48
	"BitmapStart",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    49
	"BitmapEnd",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    50
	"ScanLine",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    51
	"EndScanLine",	//  !!
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    52
	"Resource1",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    53
	"Resource2",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    54
	"Resource3",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    55
	"Resource4",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    56
	"Resource5",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    57
	"Resource6",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    58
	"Resource7",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    59
	"Resource8"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    60
	};
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    61
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    62
const int NumDisplayModeValues = 11;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    63
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    64
String IdentDisplayModeValue[NumDisplayModeValues] =
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    65
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    66
	"None",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    67
	"Gray2",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    68
	"Gray4",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    69
	"Gray16",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    70
	"Gray256",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    71
	"Color16",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    72
	"Color256",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    73
	"Color64K",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    74
	"Color16M",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    75
	"Rgb",
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    76
	"Color4K"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    77
	};
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    78
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    79
EXPORT_C PdrReader::PdrReader()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    80
 :	Reader(),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    81
	iPdrModelStore(),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    82
	iPdrStoreFile(NULL),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    83
	iResources(NULL),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    84
	iTranslates(NULL),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    85
	iCodeSection(NULL),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    86
	iFontInfo(NULL),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    87
	iIndex(Normal),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    88
	iFontHeight(NULL),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    89
	iTypefaceFonts(NULL),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    90
	iModel(NULL)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    91
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    92
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    93
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    94
EXPORT_C boolean PdrReader::Read(const String& aFilename)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    95
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    96
	boolean state = Open(aFilename);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    97
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    98
	while (!_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    99
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   100
		if (IdentComp(IdentResources))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   101
			state = ReadResources();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   102
		else if (IdentComp(IdentTranslates))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   103
			state = ReadTranslates();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   104
		else if (IdentComp(IdentFontInfo))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   105
			state = ReadFontInfo();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   106
		else if (IdentComp(IdentTypefaceFonts))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   107
			state = ReadTypefaceFonts();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   108
//		else if (IdentComp(IdentExtraInfo))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   109
//			state = ReadExtraInfo();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   110
		else if (IdentComp(IdentModel))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   111
			state = ReadModel();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   112
		else if (IdentComp(IdentPdrStoreFile))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   113
			state = ReadPdrStoreFile();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   114
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   115
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   116
			Error("Resource identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   117
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   118
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   119
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   120
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   121
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   122
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   123
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   124
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   125
EXPORT_C PdrReader::~PdrReader()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   126
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   127
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   128
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   129
boolean PdrReader::ReadResources()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   130
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   131
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   132
	iResources = PdrResources::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   133
	state = IdentCopy(iResources->iLabel);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   134
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   135
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   136
	while (!IdentComp(IdentEndResources) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   137
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   138
   	    int i; // DEF102183: Graphics tools fail to build using MS VC8.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   139
		for (i = 0; (i < NumResources) && !IdentComp(IdentResource[i]); i++)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   140
			{	//	Tries to match resources identifier
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   141
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   142
		if (i < NumResources)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   143
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   144
			PdrResource *resource = PdrResource::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   145
			state = Command(resource->iString);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   146
			resource->iId = i;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   147
			if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   148
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   149
				iResources->AddResource(resource);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   150
				state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   151
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   152
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   153
				resource->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   154
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   155
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   156
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   157
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   158
			Error("Resources identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   159
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   160
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   161
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   162
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   163
		iPdrModelStore.AddResources(iResources);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   164
		cout << "Resources read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   165
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   166
	else 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   167
		iResources->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   168
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   169
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   170
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   171
boolean PdrReader::ReadTranslates()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   172
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   173
	int num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   174
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   175
	iTranslates = PdrTranslates::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   176
	state = IdentCopy(iTranslates->iLabel);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   177
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   178
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   179
	while (!IdentComp(IdentEndTranslates) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   180
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   181
		if (iLex->iType == ELexNumber)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   182
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   183
			PdrTranslation *translation = PdrTranslation::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   184
			Number(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   185
			translation->iFrom = uint16(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   186
			char ch;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   187
			state = Operator(ch);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   188
			if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   189
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   190
				state = (ch == ':');
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   191
				if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   192
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   193
					if (iLex->iType == ELexNumber)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   194
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   195
						state = Number(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   196
						translation->iTo += char(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   197
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   198
					else 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   199
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   200
						state = Command(translation->iTo);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   201
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   202
					if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   203
						state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   204
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   205
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   206
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   207
					Error("Operator ':' expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   208
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   209
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   210
			if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   211
				iTranslates->AddTranslation(translation);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   212
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   213
				translation->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   214
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   215
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   216
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   217
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   218
		iPdrModelStore.AddTranslates(iTranslates);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   219
		cout << "Translates read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   220
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   221
	else 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   222
		iTranslates->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   223
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   224
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   225
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   226
boolean PdrReader::ReadCodeSection(int aCode)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   227
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   228
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   229
	int code;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   230
	int num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   231
	iCodeSection = WidthsCodeSection::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   232
	char ch = 0;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   233
	state = Number(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   234
	if ((num<aCode) && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   235
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   236
		Error("CodeSection out of sequence");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   237
		state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   238
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   239
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   240
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   241
		iCodeSection->iStart = uint16(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   242
		state = Operator(ch);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   243
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   244
			state = (ch == ':');
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   245
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   246
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   247
			state = Number(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   248
			iCodeSection->iEnd = uint16(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   249
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   250
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   251
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   252
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   253
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   254
			Error("Operator ':' expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   255
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   256
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   257
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   258
		state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   259
	while (!IdentComp(IdentEndCodeSection) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   260
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   261
		if (iLex->iType != ELexNL)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   262
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   263
			state = Number(code);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   264
			if ((code != iCodeSection->iStart + iCodeSection->NumWidths()) && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   265
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   266
				state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   267
				Error("Width out of sequence");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   268
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   269
			if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   270
				state = Operator(ch);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   271
			if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   272
				state = (ch == ':');
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   273
			if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   274
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   275
				Width *width = Width::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   276
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   277
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   278
					width->iWidthInPixels = (uint16) num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   279
					iCodeSection->AddWidth(width);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   280
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   281
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   282
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   283
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   284
					width->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   285
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   286
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   287
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   288
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   289
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   290
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   291
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   292
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   293
		num = ((iCodeSection->iEnd + 1) - iCodeSection->iStart);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   294
		if ((num != iCodeSection->NumWidths()) && (iCodeSection->NumWidths() != 1))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   295
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   296
			Error("Wrong number of widths in codesection");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   297
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   298
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   299
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   300
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   301
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   302
		iFontInfo->AddCodeSection(iCodeSection);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   303
//		cout << "Codesection read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   304
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   305
	else 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   306
		iCodeSection->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   307
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   308
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   309
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   310
boolean PdrReader::ReadFontInfo()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   311
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   312
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   313
	iFontInfo = FontInfo::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   314
	int num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   315
	state = IdentCopy(iFontInfo->iLabel);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   316
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   317
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   318
	while (!IdentComp(IdentEndFontInfo) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   319
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   320
		if (iLex->iType == ELexIdent)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   321
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   322
			if (IdentComp(IdentCodeSection))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   323
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   324
				int code = 0,size = iFontInfo->NumCodeSections();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   325
				if (size)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   326
					code = iFontInfo->CodeSectionList(size - 1)->iEnd + 1;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   327
				state = ReadCodeSection(code);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   328
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   329
			else if (IdentComp(IdentAscent))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   330
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   331
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   332
					iFontInfo->iAscentInPixels = uint16(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   333
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   334
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   335
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   336
			else if (IdentComp(IdentMaxNormalCharWidth))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   337
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   338
				state = Number(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   339
				if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   340
					iFontInfo->iMaxNormalCharWidthInPixels = uint16(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   341
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   342
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   343
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   344
				Error("Unrecognised fontinfo identifier");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   345
				state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   346
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   347
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   348
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   349
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   350
			Error("Fontinfo identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   351
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   352
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   353
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   354
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   355
		}	  
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   356
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   357
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   358
		iFontInfo->iMaxCharWidthInPixels = 0;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   359
		for (int i = 0; i < iFontInfo->NumCodeSections(); i++)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   360
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   361
			WidthsCodeSection* codesection = iFontInfo->CodeSectionList(i);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   362
			for (int j = 0; j < codesection->NumWidths(); j++)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   363
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   364
				int width = codesection->WidthList(j)->iWidthInPixels;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   365
				if (width > iFontInfo->iMaxCharWidthInPixels)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   366
					iFontInfo->iMaxCharWidthInPixels = (uint16) width;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   367
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   368
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   369
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   370
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   371
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   372
		iPdrModelStore.AddFontInfo(iFontInfo);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   373
		cout << "Fontinfo read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   374
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   375
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   376
		iFontInfo->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   377
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   378
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   379
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   380
boolean PdrReader::ReadStyle()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   381
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   382
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   383
	Record *fontinfo;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   384
	PdrStyle *style;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   385
	String label;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   386
	if (!iTypefaceFonts->iIsScalable)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   387
		style = &iFontHeight->iStyle[iIndex];
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   388
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   389
		style = &iTypefaceFonts->iScalableFontHeight.iStyle[iIndex];
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   390
	style->iIsAvailable = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   391
	state = IdentCopy(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   392
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   393
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   394
		fontinfo = iPdrModelStore.FindFontInfo(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   395
		if (fontinfo)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   396
			style->iFontInfo = fontinfo;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   397
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   398
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   399
			Error("Fontinfo not found");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   400
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   401
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   402
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   403
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   404
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   405
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   406
boolean PdrReader::ReadFontHeight()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   407
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   408
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   409
	int num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   410
	if (iTypefaceFonts->iIsScalable == etrue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   411
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   412
		state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   413
		Error("Scalablefontheight already defined");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   414
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   415
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   416
		iFontHeight = PdrFontHeight::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   417
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   418
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   419
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   420
	while (!IdentComp(IdentEndFontHeight) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   421
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   422
		if (iLex->iType == ELexIdent)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   423
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   424
			if (IdentComp(IdentHeight))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   425
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   426
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   427
					iFontHeight->iHeightInTwips = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   428
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   429
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   430
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   431
			else if (IdentComp(IdentWidthScale))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   432
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   433
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   434
					iFontHeight->iWidthScale = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   435
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   436
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   437
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   438
			else if (IdentComp(IdentNormal))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   439
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   440
				iIndex = Normal;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   441
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   442
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   443
			else if (IdentComp(IdentBold))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   444
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   445
				iIndex = Bold;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   446
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   447
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   448
			else if (IdentComp(IdentItalic))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   449
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   450
				iIndex = Italic;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   451
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   452
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   453
			else if (IdentComp(IdentBoldItalic))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   454
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   455
				iIndex = BoldItalic;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   456
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   457
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   458
			else if (IdentComp(IdentCommand))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   459
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   460
				state = Command(iFontHeight->iCommandString);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   461
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   462
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   463
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   464
				Error("Unrecognised fontheight identifier");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   465
				state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   466
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   467
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   468
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   469
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   470
			Error("Fontheight identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   471
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   472
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   473
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   474
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   475
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   476
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   477
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   478
		iTypefaceFonts->AddFontHeight(iFontHeight);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   479
		cout << "Fontheight read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   480
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   481
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   482
		iFontHeight->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   483
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   484
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   485
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   486
boolean PdrReader::ReadScalableFontHeight()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   487
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   488
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   489
	int num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   490
	if (iTypefaceFonts->NumFontHeights())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   491
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   492
		state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   493
		Error("Non-scalable fontheights already defined");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   494
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   495
	else if (iTypefaceFonts->iIsScalable == etrue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   496
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   497
		state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   498
		Error("Scalablefontheight already defined");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   499
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   500
	iTypefaceFonts->iIsScalable=etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   501
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   502
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   503
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   504
	while (!IdentComp(IdentEndScalableFontHeight) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   505
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   506
		if (iLex->iType == ELexIdent)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   507
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   508
			if (IdentComp(IdentHeightMin))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   509
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   510
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   511
					iTypefaceFonts->iScalableFontHeight.iHeightMinInTwips = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   512
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   513
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   514
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   515
			else if (IdentComp(IdentHeightMax))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   516
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   517
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   518
					iTypefaceFonts->iScalableFontHeight.iHeightMaxInTwips = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   519
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   520
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   521
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   522
			else if (IdentComp(IdentHeightDelta))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   523
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   524
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   525
					iTypefaceFonts->iScalableFontHeight.iHeightDeltaInTwips = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   526
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   527
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   528
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   529
			else if (IdentComp(IdentNormal))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   530
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   531
				iIndex = Normal;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   532
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   533
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   534
			else if (IdentComp(IdentBold))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   535
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   536
				iIndex = Bold;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   537
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   538
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   539
			else if (IdentComp(IdentItalic))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   540
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   541
				iIndex = Italic;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   542
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   543
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   544
			else if (IdentComp(IdentBoldItalic))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   545
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   546
				iIndex = BoldItalic;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   547
				state = ReadStyle();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   548
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   549
			else if (IdentComp(IdentCommand))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   550
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   551
				state = Command(iTypefaceFonts->iScalableFontHeight.iCommandString);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   552
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   553
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   554
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   555
				Error("Unrecognised scalablefontheight identifier");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   556
				state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   557
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   558
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   559
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   560
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   561
			Error("Scalablefontheight identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   562
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   563
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   564
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   565
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   566
		}	  
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   567
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   568
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   569
		cout << "Scalablefontheight read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   570
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   571
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   572
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   573
		if (!iTypefaceFonts->iIsScalable)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   574
			iFontHeight->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   575
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   576
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   577
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   578
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   579
boolean PdrReader::ReadTypefaceFonts()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   580
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   581
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   582
	Record* translates;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   583
	String label;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   584
	iTypefaceFonts = TypefaceFonts::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   585
	state = IdentCopy(iTypefaceFonts->iLabel);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   586
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   587
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   588
	while (!IdentComp(IdentEndTypefaceFonts) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   589
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   590
		if (iLex->iType == ELexIdent)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   591
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   592
			if (IdentComp(IdentTypefaceName))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   593
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   594
				if (StringCopy(iTypefaceFonts->iTypeface.iName))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   595
					while (iLex->iType != ELexNL)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   596
					{	if (IdentComp(IdentProportional))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   597
							iTypefaceFonts->iTypeface.iFlags = boolean(iTypefaceFonts->iTypeface.iFlags | Proportional);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   598
						else if (IdentComp(IdentSerif))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   599
							iTypefaceFonts->iTypeface.iFlags = boolean(iTypefaceFonts->iTypeface.iFlags | Serif);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   600
						else if (IdentComp(IdentSymbol))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   601
							iTypefaceFonts->iTypeface.iFlags = boolean(iTypefaceFonts->iTypeface.iFlags | Symbol);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   602
						else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   603
							{ 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   604
							Error("Typefacefonts identifier or newline expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   605
							state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   606
							}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   607
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   608
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   609
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   610
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   611
			else if (IdentComp(IdentTypefaceTranslates))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   612
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   613
				state = IdentCopy(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   614
				if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   615
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   616
					translates = iPdrModelStore.FindTranslates(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   617
					if (translates)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   618
						iTypefaceFonts->iTranslates = translates;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   619
					else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   620
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   621
						Error("Translates not found");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   622
						state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   623
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   624
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   625
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   626
			else if (IdentComp(IdentFontHeight))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   627
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   628
				state = ReadFontHeight();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   629
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   630
			else if (IdentComp(IdentScalableFontHeight))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   631
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   632
				state = ReadScalableFontHeight();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   633
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   634
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   635
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   636
				Error("Unrecognised typefacefonts identifier");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   637
				state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   638
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   639
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   640
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   641
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   642
			Error("Typefacefonts identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   643
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   644
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   645
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   646
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   647
		}	  
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   648
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   649
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   650
		iPdrModelStore.AddTypefaceFonts(iTypefaceFonts);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   651
		cout << "Typefacefonts read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   652
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   653
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   654
		iTypefaceFonts->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   655
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   656
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   657
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   658
boolean PdrReader::ReadModel()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   659
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   660
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   661
	int num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   662
	iModel = PrinterModelHeader::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   663
	Record* resources;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   664
//	Record* extrainfo;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   665
	String label;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   666
	state = IdentCopy(iModel->iLabel);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   667
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   668
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   669
	while (!IdentComp(IdentEndModel) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   670
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   671
		if (iLex->iType == ELexIdent)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   672
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   673
			if	(IdentComp(IdentModelName))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   674
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   675
				if (StringCopy(iModel->iEntry.iName))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   676
					while (iLex->iType != ELexNL)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   677
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   678
						if (IdentComp(IdentRequiresPrinterPort))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   679
							iModel->iEntry.iRequiresPrinterPort = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   680
						else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   681
							{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   682
							Error("Model identifier or newline expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   683
							state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   684
							}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   685
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   686
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   687
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   688
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   689
			else if (IdentComp(IdentModelUid))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   690
				state = Number(iModel->iEntry.iUid);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   691
			else if (IdentComp(IdentModelFlags))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   692
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   693
				state = Number(num);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   694
				iModel->iInfo.iFlags = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   695
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   696
			else if (IdentComp(IdentModelResources))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   697
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   698
				state = IdentCopy(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   699
				if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   700
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   701
					resources = iPdrModelStore.FindResources(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   702
					if (resources)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   703
						iModel->iInfo.iResources = resources;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   704
					else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   705
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   706
						Error("Resources not found");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   707
						state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   708
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   709
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   710
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   711
/*			else if (IdentComp(IdentSpareRecord))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   712
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   713
				state = IdentCopy(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   714
				if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   715
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   716
					extrainfo = iPdrModelStore.FindExtraInfo(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   717
					if (extrainfo)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   718
						iModel->iInfo.iSpareRecord = extrainfo;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   719
					else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   720
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   721
						Error("Spare record not found");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   722
						state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   723
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   724
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   725
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   726
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   727
			else if (IdentComp(IdentKPixelWidth))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   728
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   729
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   730
					iModel->iInfo.iKPixelWidthInTwips = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   731
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   732
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   733
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   734
			else if (IdentComp(IdentKPixelHeight))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   735
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   736
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   737
					iModel->iInfo.iKPixelHeightInTwips = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   738
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   739
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   740
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   741
			else if (IdentComp(IdentPortraitOffset))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   742
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   743
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   744
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   745
					iModel->iInfo.iPortraitOffsetInPixels.iX = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   746
					if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   747
						iModel->iInfo.iPortraitOffsetInPixels.iY = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   748
					else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   749
						state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   750
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   751
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   752
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   753
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   754
			else if (IdentComp(IdentLandscapeOffset))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   755
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   756
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   757
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   758
					iModel->iInfo.iLandscapeOffsetInPixels.iX = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   759
					if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   760
						iModel->iInfo.iLandscapeOffsetInPixels.iY = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   761
					else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   762
						state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   763
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   764
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   765
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   766
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   767
			else if (IdentComp(IdentMinMarginLeft))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   768
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   769
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   770
					iModel->iInfo.iMinMarginsInPixels.iLeft = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   771
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   772
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   773
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   774
			else if (IdentComp(IdentMinMarginRight))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   775
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   776
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   777
					iModel->iInfo.iMinMarginsInPixels.iRight = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   778
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   779
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   780
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   781
			else if (IdentComp(IdentMinMarginTop))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   782
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   783
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   784
					iModel->iInfo.iMinMarginsInPixels.iTop = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   785
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   786
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   787
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   788
			else if (IdentComp(IdentMinMarginBottom))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   789
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   790
				if (Number(num))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   791
					iModel->iInfo.iMinMarginsInPixels.iBottom = num;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   792
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   793
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   794
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   795
			else if (IdentComp(IdentDisplayMode))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   796
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   797
        	    int i; // DEF102183: Graphics tools fail to build using MS VC8.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   798
				for (i = 0; (i < NumDisplayModeValues) && !IdentComp(IdentDisplayModeValue[i]); i++)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   799
					{	// Tries to match display mode identifier
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   800
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   801
				if (i < NumDisplayModeValues)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   802
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   803
					iModel->iInfo.iDisplayMode = i;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   804
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   805
				else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   806
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   807
					state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   808
					Error("Display mode identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   809
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   810
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   811
			else if (IdentComp(IdentTypefaceFontss))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   812
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   813
				state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   814
				while (!IdentComp(IdentEndTypefaceFontss) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   815
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   816
					TypefaceFontsEntry* typefacefontsentry = NULL;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   817
					if (iLex->iType == ELexIdent)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   818
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   819
						state = IdentCopy(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   820
						Record* typefacefonts = iPdrModelStore.FindTypefaceFonts(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   821
						if (typefacefonts)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   822
							{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   823
							typefacefontsentry = TypefaceFontsEntry::New(typefacefonts);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   824
							state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   825
							}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   826
						else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   827
							{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   828
							Error("Typefacefonts not found");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   829
							state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   830
							}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   831
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   832
					if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   833
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   834
						while ((iLex->iType != ELexNL) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   835
							{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   836
							if (IdentComp(IdentNotInPortrait))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   837
								{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   838
								typefacefontsentry->iNotInPortrait = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   839
								}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   840
							else if (IdentComp(IdentNotInLandscape))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   841
								{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   842
								typefacefontsentry->iNotInLandscape = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   843
								}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   844
							else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   845
								{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   846
								Error("Typefacefontsentry identifier or newline expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   847
								state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   848
								}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   849
							}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   850
						if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   851
							iModel->iInfo.AddTypefaceFontsEntry(typefacefontsentry);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   852
						else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   853
							typefacefontsentry->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   854
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   855
					if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   856
						state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   857
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   858
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   859
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   860
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   861
				Error("unrecognised model identifier");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   862
				state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   863
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   864
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   865
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   866
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   867
			Error("Model identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   868
			state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   869
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   870
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   871
			state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   872
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   873
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   874
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   875
		iPdrModelStore.AddModel(iModel);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   876
		cout << "Model read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   877
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   878
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   879
		iModel->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   880
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   881
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   882
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   883
boolean PdrReader::ReadPdrStoreFile()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   884
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   885
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   886
	if (iPdrStoreFile)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   887
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   888
		state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   889
		Error("Pdrstorefile already read");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   890
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   891
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   892
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   893
		iPdrStoreFile = PdrStoreFile::New();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   894
		String label;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   895
		Record* model;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   896
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   897
		while (!IdentComp(IdentEndPdrStoreFile) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   898
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   899
			if (IdentComp(IdentPDLName))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   900
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   901
				state = StringCopy(iPdrStoreFile->iPDLName);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   902
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   903
			else if (IdentComp(IdentPDLUid))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   904
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   905
				state = Number(iPdrStoreFile->iPDLUid);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   906
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   907
			else if (IdentComp(IdentModels))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   908
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   909
				state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   910
				while (!IdentComp(IdentEndModels) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   911
					{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   912
					state = IdentCopy(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   913
					if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   914
						{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   915
						model = iPdrModelStore.FindModel(label);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   916
						if (model)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   917
							{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   918
							iPdrStoreFile->AddModel((PrinterModelHeader*)model);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   919
							}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   920
						else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   921
							{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   922
							Error("model not found");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   923
							state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   924
							}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   925
						}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   926
					if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   927
						state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   928
					}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   929
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   930
			else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   931
				{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   932
				Error("Pdrstorefile identifier expected");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   933
				state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   934
				}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   935
			if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   936
				state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   937
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   938
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   939
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   940
			iPdrModelStore.AddPdrStoreFile(iPdrStoreFile);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   941
			cout << "Pdrstorefile read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   942
			}	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   943
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   944
			iPdrStoreFile->Delete();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   945
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   946
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   947
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   948
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   949
EXPORT_C boolean PdrReader::Store(const String& aFilename)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   950
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   951
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   952
	if (!iPdrStoreFile)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   953
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   954
		state = efalse;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   955
		Error("No pdrstore file record");
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   956
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   957
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   958
		state = iPdrModelStore.Store(aFilename);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   959
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   960
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   961
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   962
boolean PdrReader::Command(String& aCommand)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   963
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   964
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   965
	String string;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   966
	state = StringCopy(string);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   967
	int length = string.Length();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   968
	for (int i = 0; i < length; i++)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   969
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   970
		char ch = string[i];
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   971
		if (ch == '<')	// Read control character
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   972
			{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   973
			ch = 0;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   974
			for (i = i + 1; (i < length) && (string[i] != '>'); i++)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   975
				ch = char((ch * 10) + (string[i] - '0'));
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   976
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   977
		aCommand += ch;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   978
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   979
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   980
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   981
/*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   982
boolean PdrReader::ReadExtraInfo()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   983
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   984
	boolean state = etrue;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   985
	String label;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   986
	PdrExtraInfo* extrainfo = new PdrExtraInfo();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   987
	state = IdentCopy(extrainfo->iLabel);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   988
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   989
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   990
	while (!IdentComp(IdentEndExtraInfo) && !_EOF() && state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   991
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   992
		String* string = new String;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   993
		state = Command(*string);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   994
		if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   995
			extrainfo->iInfo.Add(string);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   996
		else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   997
			delete string;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   998
		state = NewLine();
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   999
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1000
	if (state)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1001
		{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1002
		iPdrModelStore.AddExtraInfo(extrainfo);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1003
		cout << "Extra info read\n";
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1004
		}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1005
	else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1006
		delete extrainfo;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1007
	return state;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1008
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1009
*/