This is hdshowaux.m in view mode; [Download] [Up]
/*
* (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved.
*
* (b) If this Sample Code is distributed as part of the Display PostScript
* System Software Development Kit from Adobe Systems Incorporated,
* then this copy is designated as Development Software and its use is
* subject to the terms of the License Agreement attached to such Kit.
*
* (c) If this Sample Code is distributed independently, then the following
* terms apply:
*
* (d) This file may be freely copied and redistributed as long as:
* 1) Parts (a), (d), (e) and (f) continue to be included in the file,
* 2) If the file has been modified in any way, a notice of such
* modification is conspicuously indicated.
*
* (e) PostScript, Display PostScript, and Adobe are registered trademarks of
* Adobe Systems Incorporated.
*
* (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
* CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
* AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
* ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
* OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
* WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
* WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
* DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
* OF THIRD PARTY RIGHTS.
*/
/*
filename : hdshowaux.m
date created : 22-oct-90
last updated : 12-dec-90
author : ross a jeynes
porter : ken r fromm
purpose : auxilary routines to fill the show structure
*/
#import "hdshowany.h"
#import <stdlib.h>
#import <string.h>
void ResetShowStruct(ShowStruct *show)
{
show->text = NULL;
memset((void *) show->attr, 0, show->textlen * sizeof(unsigned int));
show->textlen = 0;
show->prkernlen = 0;
show->vkernlen = 0;
show->absmovlen = 0;
show->spaceadjlen = 0;
show->trackkernlen = 0;
}
void AllocShowStruct(ShowStruct *show)
{
show->textmax = 128;
show->prkernmax = 16;
show->vkernmax = 16;
show->absmovmax = 16;
show->spaceadjmax = 16;
show->trackkernmax = 16;
show->attr = (unsigned int *) malloc(show->textmax * sizeof(unsigned int));
show->prkern = (NXCoord *) malloc(show->prkernmax * sizeof(NXCoord));
show->vkern = (NXCoord *) malloc(show->vkernmax * sizeof(NXCoord));
show->absmov = (NXPoint *) malloc(show->absmovmax * sizeof(NXPoint));
show->spaceadj = (NXCoord *) malloc(show->spaceadjmax * sizeof(NXCoord));
show->trackkern = (NXCoord *) malloc(show->trackkernmax * sizeof(NXCoord));
ResetShowStruct(show);
}
void FreeShowStruct(ShowStruct *show)
{
free(show->attr);
free(show->prkern);
free(show->vkern);
free(show->absmov);
free(show->spaceadj);
free(show->trackkern);
}
void AddString(ShowStruct *show, char *string)
{
show->textlen = strlen(string);
show->text = string;
if (show->textlen >= show->textmax)
{
show->textmax = show->textmax * 2;
show->attr = (unsigned int *) realloc(show->attr, show->textmax * sizeof(unsigned int)); }
}
void AddMoveto(ShowStruct *show, int index, NXCoord x, NXCoord y)
{
if (show->absmovlen >= show->absmovmax)
{
show->absmovmax = show->absmovmax * 2;
show->absmov = (NXPoint *) realloc(show->absmov,
show->absmovmax * sizeof(NXPoint));
}
show->attr[index] |= SA_ABSMOV;
show->absmov[show->absmovlen].x = x;
show->absmov[show->absmovlen].y = y;
show->absmovlen++;
}
void AddPairKern(ShowStruct *show, int index, NXCoord value)
{
if (show->prkernlen >= show->prkernmax)
{
show->prkernmax = show->prkernmax * 2;
show->prkern = (NXCoord *) realloc(show->prkern,
show->prkernmax * sizeof(NXPoint));
}
show->attr[index] |= SA_PRKERN;
show->prkern[show->prkernlen] = value;
show->prkernlen++;
}
void AddTracking(ShowStruct *show, int index, NXCoord value)
{
if (show->trackkernlen >= show->trackkernmax)
{
show->trackkernmax = show->trackkernmax * 2;
show->trackkern = (NXCoord *) realloc(show->trackkern,
show->trackkernmax * sizeof(NXPoint));
}
show->attr[index] |= SA_TRACKADJ;
show->trackkern[show->trackkernlen] = value;
show->trackkernlen++;
}
void AddSpaceAdj(ShowStruct *show, int index, NXCoord value)
{
if (show->spaceadjlen >= show->spaceadjmax)
{
show->spaceadjmax = show->spaceadjmax * 2;
show->spaceadj = (NXCoord *) realloc(show->spaceadj,
show->spaceadjmax * sizeof(NXPoint));
}
show->attr[index] |= SA_SPACEADJ;
show->spaceadj[show->spaceadjlen] = value;
show->spaceadjlen++;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.