1 /*
2 * Enhanced MetaFile driver mapping functions
3 *
4 * Copyright 1999 Huw D M Davies
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21 #include "enhmfdrv/enhmetafiledrv.h"
22
23 INT EMFDRV_SetMapMode( PHYSDEV dev, INT mode )
24 {
25 EMRSETMAPMODE emr;
26 emr.emr.iType = EMR_SETMAPMODE;
27 emr.emr.nSize = sizeof(emr);
28 emr.iMode = mode;
29
30 return EMFDRV_WriteRecord( dev, &emr.emr );
31 }
32
33 INT EMFDRV_SetViewportExt( PHYSDEV dev, INT cx, INT cy )
34 {
35 EMRSETVIEWPORTEXTEX emr;
36
37 emr.emr.iType = EMR_SETVIEWPORTEXTEX;
38 emr.emr.nSize = sizeof(emr);
39 emr.szlExtent.cx = cx;
40 emr.szlExtent.cy = cy;
41
42 return EMFDRV_WriteRecord( dev, &emr.emr );
43 }
44
45 INT EMFDRV_SetWindowExt( PHYSDEV dev, INT cx, INT cy )
46 {
47 EMRSETWINDOWEXTEX emr;
48
49 emr.emr.iType = EMR_SETWINDOWEXTEX;
50 emr.emr.nSize = sizeof(emr);
51 emr.szlExtent.cx = cx;
52 emr.szlExtent.cy = cy;
53
54 return EMFDRV_WriteRecord( dev, &emr.emr );
55 }
56
57 INT EMFDRV_SetViewportOrg( PHYSDEV dev, INT x, INT y )
58 {
59 EMRSETVIEWPORTORGEX emr;
60
61 emr.emr.iType = EMR_SETVIEWPORTORGEX;
62 emr.emr.nSize = sizeof(emr);
63 emr.ptlOrigin.x = x;
64 emr.ptlOrigin.y = y;
65
66 return EMFDRV_WriteRecord( dev, &emr.emr );
67 }
68
69 INT EMFDRV_SetWindowOrg( PHYSDEV dev, INT x, INT y )
70 {
71 EMRSETWINDOWORGEX emr;
72
73 emr.emr.iType = EMR_SETWINDOWORGEX;
74 emr.emr.nSize = sizeof(emr);
75 emr.ptlOrigin.x = x;
76 emr.ptlOrigin.y = y;
77
78 return EMFDRV_WriteRecord( dev, &emr.emr );
79 }
80
81 INT EMFDRV_ScaleViewportExt( PHYSDEV dev, INT xNum, INT xDenom, INT yNum,
82 INT yDenom )
83 {
84 EMRSCALEVIEWPORTEXTEX emr;
85
86 emr.emr.iType = EMR_SCALEVIEWPORTEXTEX;
87 emr.emr.nSize = sizeof(emr);
88 emr.xNum = xNum;
89 emr.xDenom = xDenom;
90 emr.yNum = yNum;
91 emr.yDenom = yDenom;
92
93 return EMFDRV_WriteRecord( dev, &emr.emr );
94 }
95
96 INT EMFDRV_ScaleWindowExt( PHYSDEV dev, INT xNum, INT xDenom, INT yNum,
97 INT yDenom )
98 {
99 EMRSCALEWINDOWEXTEX emr;
100
101 emr.emr.iType = EMR_SCALEWINDOWEXTEX;
102 emr.emr.nSize = sizeof(emr);
103 emr.xNum = xNum;
104 emr.xDenom = xDenom;
105 emr.yNum = yNum;
106 emr.yDenom = yDenom;
107
108 return EMFDRV_WriteRecord( dev, &emr.emr );
109 }
110
111 BOOL EMFDRV_SetWorldTransform( PHYSDEV dev, const XFORM *xform)
112 {
113 EMRSETWORLDTRANSFORM emr;
114
115 emr.emr.iType = EMR_SETWORLDTRANSFORM;
116 emr.emr.nSize = sizeof(emr);
117 emr.xform = *xform;
118
119 return EMFDRV_WriteRecord( dev, &emr.emr );
120 }
121
122 BOOL EMFDRV_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, INT mode)
123 {
124 EMRMODIFYWORLDTRANSFORM emr;
125
126 emr.emr.iType = EMR_MODIFYWORLDTRANSFORM;
127 emr.emr.nSize = sizeof(emr);
128 emr.xform = *xform;
129 emr.iMode = mode;
130
131 return EMFDRV_WriteRecord( dev, &emr.emr );
132 }
133
134 INT EMFDRV_OffsetViewportOrg( PHYSDEV dev, INT x, INT y )
135 {
136 POINT pt;
137 EMRSETVIEWPORTORGEX emr;
138 EMFDRV_PDEVICE* physDev = (EMFDRV_PDEVICE*)dev;
139
140 GetViewportOrgEx(physDev->hdc, &pt);
141
142 emr.emr.iType = EMR_SETVIEWPORTORGEX;
143 emr.emr.nSize = sizeof(emr);
144 emr.ptlOrigin.x = pt.x + x;
145 emr.ptlOrigin.y = pt.y + y;
146
147 return EMFDRV_WriteRecord( dev, &emr.emr );
148 }
149
150 INT EMFDRV_OffsetWindowOrg( PHYSDEV dev, INT x, INT y )
151 {
152 POINT pt;
153 EMRSETWINDOWORGEX emr;
154 EMFDRV_PDEVICE* physDev = (EMFDRV_PDEVICE*)dev;
155
156 GetWindowOrgEx(physDev->hdc, &pt);
157
158 emr.emr.iType = EMR_SETWINDOWORGEX;
159 emr.emr.nSize = sizeof(emr);
160 emr.ptlOrigin.x = pt.x + x;
161 emr.ptlOrigin.y = pt.y + y;
162
163 return EMFDRV_WriteRecord( dev, &emr.emr );
164 }
165
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.