source: trunk/src/gdi32/oslibgpi.h@ 2912

Last change on this file since 2912 was 2718, checked in by sandervl, 26 years ago

CreateDIBSection enhancement + CreateICA/W bugfix

File size: 5.7 KB
Line 
1/* $Id: oslibgpi.h,v 1.4 2000-02-10 00:36:11 sandervl Exp $ */
2
3/*
4 * GPI interface code
5 *
6 * Copyright 1999 Christoph Bratschi (cbratschi@datacomm.ch)
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11#ifndef __OSLIBGPI_H__
12#define __OSLIBGPI_H__
13
14/* DC Graphics Mode */
15#define GM_COMPATIBLE_W 1
16#define GM_ADVANCED_W 2
17
18#define APIENTRYOS2 _System
19
20PVOID APIENTRYOS2 _GpiQueryDCData(ULONG hps);
21
22inline PVOID OSLibGpiQueryDCData(ULONG hps)
23{
24 PVOID yyrc;
25 USHORT sel = RestoreOS2FS();
26
27 yyrc = _GpiQueryDCData(hps);
28 SetFS(sel);
29
30 return yyrc;
31}
32
33BOOL APIENTRYOS2 _GpiEnableYInversion(ULONG hps, LONG lHeight);
34
35inline BOOL GpiEnableYInversion(ULONG hps, LONG lHeight)
36{
37 BOOL yyrc;
38 USHORT sel = RestoreOS2FS();
39
40 yyrc = _GpiEnableYInversion(hps, lHeight);
41 SetFS(sel);
42
43 return yyrc;
44}
45
46typedef struct
47{
48 LONG xLeft;
49 LONG yBottom;
50 LONG xRight;
51 LONG yTop;
52} RECTLOS2, *PRECTLOS2;
53
54typedef struct //same as Win32 POINT
55{
56 LONG x;
57 LONG y;
58} POINTLOS2, *PPOINTLOS2;
59
60#define MapWin32ToOS2Rect(rectWin32,rectOS2) \
61{ \
62 (rectOS2).xLeft = (rectWin32).left; \
63 (rectOS2).yBottom = (rectWin32).bottom; \
64 (rectOS2).xRight = (rectWin32).right; \
65 (rectOS2).yTop = (rectWin32).top; \
66}
67
68#define MapOS2ToWin32Rect(rectOS2,rectWin32) \
69{ \
70 (rectWin32).left = (rectOS2).xLeft; \
71 (rectWin32).bottom = (rectOS2).yBottom; \
72 (rectWin32).right = (rectOS2).xRight; \
73 (rectWin32).top = (rectOS2).yTop; \
74}
75
76BOOL excludeBottomRightPoint(PVOID pHps,PPOINTLOS2 pptl);
77BOOL getAlignUpdateCP(PVOID pHps);
78INT getWorldYDeltaFor1Pixel(PVOID pHps);
79INT getWorldXDeltaFor1Pixel(PVOID pHps);
80BOOL getInPath(PVOID pHps);
81VOID setInPath(PVOID pHps,BOOL inPath);
82BOOL getIsWideLine(PVOID pHps);
83BOOL getIsTopTop(PVOID pHps);
84ULONG getMapMode(PVOID pHps);
85
86BOOL OSLibGpiQueryCurrentPosition(PVOID pHps,PPOINTLOS2 ptl);
87BOOL OSLibGpiSetCurrentPosition(PVOID pHps,PPOINTLOS2 ptl);
88
89#define CHSOS_OPAQUE 0x0001L
90#define CHSOS_VECTOR 0x0002L
91#define CHSOS_LEAVEPOS 0x0008L
92#define CHSOS_CLIP 0x0010L
93#define CHSOS_UNDERSCORE 0x0200L
94#define CHSOS_STRIKEOUT 0x0400L
95
96#define GPIOS_ERROR 0L
97#define GPIOS_OK 1L
98#define GPIOS_ALTERROR (-1L)
99
100BOOL OSLibGpiCharStringPosAt(PVOID pHps,PPOINTLOS2 ptl,PRECTLOS2 rct,ULONG flOptions,LONG lCount,LPCSTR pchString,CONST INT *alAdx);
101BOOL OSLibGpiQueryCharStringPosAt(PVOID pHps,PPOINTLOS2 ptl,ULONG flOptions,LONG lCount,LPCSTR pchString,CONST INT *alAdx,PPOINTLOS2 aptlPos);
102
103#define TAOS_NORMAL_HORIZ 0x0001
104#define TAOS_LEFT 0x0002
105#define TAOS_CENTER 0x0003
106#define TAOS_RIGHT 0x0004
107#define TAOS_STANDARD_HORIZ 0x0005
108#define TAOS_NORMAL_VERT 0x0100
109#define TAOS_TOP 0x0200
110#define TAOS_HALF 0x0300
111#define TAOS_BASE 0x0400
112#define TAOS_BOTTOM 0x0500
113#define TAOS_STANDARD_VERT 0x0600
114
115BOOL OSLibGpiSetTextAlignment(PVOID pHps,LONG lHoriz,LONG lVert);
116BOOL OSLibGpiQueryTextAlignment(PVOID pHps,PLONG plHoriz,PLONG plVert);
117
118LONG OSLibGpiQueryTabbedTextExtent(PVOID pHps,INT lCount,LPCSTR pchString,INT lTabCount,PINT puTabStops);
119LONG OSLibGpiTabbedCharStringAt(PVOID pHps,PPOINTLOS2 pPtStart,PRECTLOS2 prclRect,ULONG flOptions,INT lCount,LPCSTR pchString,INT lTabCount,PINT puTabStops,INT lTabOrigin);
120
121#define TXTBOXOS_TOPLEFT 0L
122#define TXTBOXOS_BOTTOMLEFT 1L
123#define TXTBOXOS_TOPRIGHT 2L
124#define TXTBOXOS_BOTTOMRIGHT 3L
125#define TXTBOXOS_CONCAT 4L
126#define TXTBOXOS_COUNT 5L
127
128BOOL OSLibGpiQueryTextBox(PVOID pHps,LONG lCount1,LPCSTR pchString,LONG lCount2,PPOINTLOS2 aptlPoints);
129
130VOID calcDimensions(POINTLOS2 box[],PPOINTLOS2 point);
131
132#define DTOS_LEFT 0x00000000
133#define DTOS_QUERYEXTENT 0x00000002
134#define DTOS_UNDERSCORE 0x00000010
135#define DTOS_STRIKEOUT 0x00000020
136#define DTOS_TEXTATTRS 0x00000040
137#define DTOS_EXTERNALLEADING 0x00000080
138#define DTOS_CENTER 0x00000100
139#define DTOS_RIGHT 0x00000200
140#define DTOS_TOP 0x00000000
141#define DTOS_VCENTER 0x00000400
142#define DTOS_BOTTOM 0x00000800
143#define DTOS_HALFTONE 0x00001000
144#define DTOS_MNEMONIC 0x00002000
145#define DTOS_WORDBREAK 0x00004000
146#define DTOS_ERASERECT 0x00008000
147
148#define BMOS_ERROR (-1L)
149#define BMOS_DEFAULT 0L
150#define BMOS_OR 1L
151#define BMOS_OVERPAINT 2L
152#define BMOS_LEAVEALONE 5L
153
154LONG OSLibGpiQueryBackMix(PVOID pHps);
155
156#define MMOS_TEXT 1
157#define MMOS_LOMETRIC 2
158#define MMOS_HIMETRIC 3
159#define MMOS_LOENGLISH 4
160#define MMOS_HIENGLISH 5
161#define MMOS_TWIPS 6
162#define MMOS_ISOTROPIC 7
163#define MMOS_ANISOTROPIC 8
164
165BOOL doesYAxisGrowNorth(PVOID pHps);
166
167LONG OSLibWinDrawTabbedText(PVOID pHps,LONG cchText,LONG lTabs,LPCSTR lpchText,PVOID prcl,LONG clrFore,LONG clrBack,ULONG flCmd);
168
169
170BOOL OSLibGpiMove(PVOID pHps,PPOINTLOS2 pptlPoint);
171LONG OSLibGpiLine(PVOID pHps,PPOINTLOS2 pptlEndPoint);
172
173BOOL OSLibGpiEndPath(PVOID pHps);
174
175BOOL drawLinePointCircle(PVOID pHps,INT width,INT height,LONG color);
176BOOL drawLinePoint(PVOID pHps,PPOINTLOS2 pt,LONG color);
177
178ULONG OSLibGpiQueryCp(HDC hdc);
179BOOL OSLibGpiSetCp(HDC hdc, ULONG codepage);
180
181#endif
Note: See TracBrowser for help on using the repository browser.