|
|
1.1 root 1: /*--------------------------------------
2: VF14.C -- Clipped wavy spline curves
3: --------------------------------------*/
4:
5: #define INCL_GPI
6: #include <os2.h>
7: #include <stdlib.h>
8: #include "vectfont.h"
9:
10: VOID Display_Wavy (HPS hps, LONG cxClient, LONG cyClient)
11: {
12: static CHAR szText[] = "Hello!" ;
13: static LONG cbText = sizeof szText - 1 ;
14: static LONG lColors[] = { CLR_BLUE, CLR_GREEN, CLR_CYAN, CLR_RED,
15: CLR_PINK, CLR_YELLOW, CLR_WHITE } ;
16: INT i ;
17: POINTL ptl, aptl[8] ;
18:
19: CreateVectorFont (hps, LCID_MYFONT, "Tms Rmn Italic") ;
20: GpiSetCharSet (hps, LCID_MYFONT) ;
21: ScaleFontToBox (hps, cbText, szText, cxClient, cyClient) ;
22: QueryStartPointInTextBox (hps, cbText, szText, &ptl) ;
23:
24: ColorClient (hps, cxClient, cyClient, CLR_BLACK) ;
25:
26: GpiBeginPath (hps, ID_PATH) ;
27: GpiCharStringAt (hps, &ptl, cbText, szText) ; // Text string
28: GpiEndPath (hps) ;
29:
30: GpiSetClipPath (hps, ID_PATH, SCP_AND | SCP_ALTERNATE) ;
31:
32: for (i = 0 ; i < 14 ; i++)
33: {
34: aptl[0].x = 0 ;
35: aptl[0].y = i * cyClient / 14 ;
36:
37: aptl[1].x = cxClient / 3 ;
38: aptl[1].y = min (cyClient, 2 * i * cyClient / 14) ;
39:
40: aptl[2].x = 2 * cxClient / 3 ;
41: aptl[2].y = max (0L, (2 * i - 14) * cyClient / 14) ;
42:
43: aptl[3].x = cxClient ;
44: aptl[3].y = i * cyClient / 14 ;
45:
46: aptl[4].x = cxClient ;
47: aptl[4].y = (i + 1) * cyClient / 14 ;
48:
49: aptl[5].x = 2 * cxClient / 3 ;
50: aptl[5].y = max (0L, (2 * (i + 1) - 14) * cyClient / 14) ;
51:
52: aptl[6].x = cxClient / 3 ;
53: aptl[6].y = min (cyClient, 2 * (i + 1) * cyClient / 14) ;
54:
55: aptl[7].x = 0 ;
56: aptl[7].y = (i + 1) * cyClient / 14 ;
57:
58: GpiSetColor (hps, lColors[i % 7]) ;
59: GpiBeginArea (hps, BA_BOUNDARY | BA_ALTERNATE) ;
60:
61: GpiMove (hps, aptl) ; // Splines
62: GpiPolySpline (hps, 3L, aptl + 1) ;
63: GpiLine (hps, aptl + 4) ;
64: GpiPolySpline (hps, 3L, aptl + 5) ;
65: GpiLine (hps, aptl) ;
66:
67: GpiEndArea (hps) ;
68: }
69: GpiSetCharSet (hps, LCID_DEFAULT) ; // Clean up
70: GpiDeleteSetId (hps, LCID_MYFONT) ;
71: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.