1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#include <stdlib.h>
#include <stdio.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "wv.h"
/*
basically the definition of a twip is that there
are 1440 twips per inch, now for html we need this
figure in pixels, so we have to take some screen
resolution as a standard to work from.
if we were to take hozitontal twips and a 1280 pixel
wide screen then there are
1440 twips per 75 pixels
if we were to take vertical twips and a 1024 pixel
high screen then there are
1440 twips per 75 pixels
*/
#define TWIPS_PER_INCH 1440
#if 0
#define PIXELS_PER_H_INCH 75
#define PIXELS_PER_V_INCH 75
#else
#define PIXELS_PER_H_INCH 100
#define PIXELS_PER_V_INCH 100
#endif
static S16 pperhi = PIXELS_PER_H_INCH;
static S16 ppervi = PIXELS_PER_V_INCH;
void
wvSetPixelsPerInch (S16 hpixels, S16 vpixels)
{
pperhi = hpixels;
ppervi = vpixels;
}
float
wvTwipsToHPixels (S16 twips)
{
float ret = ((float) (pperhi * twips)) / TWIPS_PER_INCH;
wvTrace (("ret is %f\n", ret));
return (ret);
}
float
wvTwipsToVPixels (S16 twips)
{
float ret = ((float) (ppervi * twips)) / TWIPS_PER_INCH;
wvTrace (("ret is %f\n", ret));
return (ret);
}
float
wvTwipsToMM (S16 twips)
{
float ret;
ret = ((float) twips) / TWIPS_PER_INCH;
ret = ret * (float) 25.0;
return (ret);
}
/* [A twip ] is one-twentieth of a point size*/
float
wvPointsToMM (S16 points)
{
return (wvTwipsToMM ((S16) (points * 20)));
}
|