|
|
1.1 root 1: /**************************************************************************\
2: * dialogs.c -- module for the two dialogs (LOGFONT & TEXTMETRIC)
3: * Includes the window procedure and an initialization routine.
4: * (Both routines serve for both of the dialog windows.)
5: *
6: \**************************************************************************/
7:
8: #include <windows.h>
9: #include <string.h>
10: #include "ntfonts.h"
11:
12:
13:
14: int initDlg(HWND hwndMain)
15: {
16: hwndDlgTM = CreateDialog (hInst, "textmetricDlg", hwndMain,
17: (DLGPROC)LogFontWndProc);
18: if (hwndDlgTM == NULL) return FALSE;
19:
20: SetWindowPos (hwndDlgTM, NULL,
21: CHILDLEFT(0), CHILDTOP,
22: 0,0, SWP_NOZORDER | SWP_NOSIZE);
23:
24:
25:
26: hwndDlgLF = CreateDialog (hInst, "logfontDlg", hwndMain,
27: (DLGPROC)LogFontWndProc);
28: if (hwndDlgLF == NULL) return FALSE;
29:
30: SetWindowPos (hwndDlgLF, NULL,
31: CHILDLEFT(1), CHILDTOP,
32: 0,0, SWP_NOZORDER | SWP_NOSIZE);
33:
34: SetClassLong (hwndDlgLF, GCL_HICON, (LONG)LoadIcon(hInst, "ntfontsIcon"));
35:
36:
37: return TRUE;
38: }
39:
40:
41:
42: /**************************************************************************\
43: *
44: * function: LogFontWndProc
45: *
46: * input parameters: normal window procedure parameters.
47: * global variables:
48: *
49: * This window procedure is used for two completely different dialog boxes.
50: \**************************************************************************/
51: LRESULT LogFontWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
52: {
53: static LPLOGFONT lplf;
54: static LPTEXTMETRIC lptm;
55:
56: switch (message) {
57:
58:
59: /**********************************************************************\
60: * WMU_DEMOTOLF
61: *
62: * lParam - pointer to LOGFONT structure.
63: *
64: * User message. Take the input LOGFONT and fill the edit fields of the
65: * dialog box.
66: \**********************************************************************/
67: case WMU_DEMOTOLF: {
68: lplf = (LPLOGFONT) lParam;
69:
70: SetDlgItemInt (hwnd, DIDHEIGHT , lplf->lfHeight, FALSE);
71: SetDlgItemInt (hwnd, DIDHEIGHT , lplf->lfHeight, FALSE);
72: SetDlgItemInt (hwnd, DIDWIDTH , lplf->lfWidth, FALSE);
73: SetDlgItemInt (hwnd, DIDESCAPE , lplf->lfEscapement, FALSE);
74: SetDlgItemInt (hwnd, DIDORIENT , lplf->lfOrientation, FALSE);
75: SetDlgItemInt (hwnd, DIDWEIGHT , lplf->lfWeight, FALSE);
76: SetDlgItemInt (hwnd, DIDITALIC , lplf->lfItalic, FALSE);
77: SetDlgItemInt (hwnd, DIDUNDERL , lplf->lfUnderline, FALSE);
78: SetDlgItemInt (hwnd, DIDSTRIKE , lplf->lfStrikeOut, FALSE);
79: SetDlgItemInt (hwnd, DIDCHARSE , lplf->lfCharSet, FALSE);
80: SetDlgItemInt (hwnd, DIDOUTPRE , lplf->lfOutPrecision, FALSE);
81: SetDlgItemInt (hwnd, DIDCLIPPR , lplf->lfClipPrecision, FALSE);
82: SetDlgItemInt (hwnd, DIDQUALIT , lplf->lfQuality, FALSE);
83: SetDlgItemInt (hwnd, DIDPITCHA , lplf->lfPitchAndFamily,FALSE);
84: SetDlgItemText (hwnd, DIDFACENA, lplf->lfFaceName);
85:
86: } break;
87:
88:
89: /**********************************************************************\
90: * WMU_LFTODEMO
91: *
92: * lParam - pointer to LOGFONT structure.
93: *
94: * User message. Fill the input LOGFONT with the contents of the
95: * edit fields of dialog box.
96: \**********************************************************************/
97: case WMU_LFTODEMO: {
98: BOOL success;
99: lplf = (LPLOGFONT) lParam;
100:
101:
102: lplf->lfHeight = GetDlgItemInt (hwnd, DIDHEIGHT, &success , FALSE);
103: lplf->lfHeight = GetDlgItemInt (hwnd, DIDHEIGHT, &success , FALSE);
104: lplf->lfWidth = GetDlgItemInt (hwnd, DIDWIDTH , &success , FALSE);
105: lplf->lfEscapement = GetDlgItemInt (hwnd, DIDESCAPE, &success , FALSE);
106: lplf->lfOrientation = GetDlgItemInt (hwnd, DIDORIENT, &success , FALSE);
107: lplf->lfWeight = GetDlgItemInt (hwnd, DIDWEIGHT, &success , FALSE);
108: lplf->lfItalic = (BYTE) GetDlgItemInt (hwnd, DIDITALIC, &success , FALSE);
109: lplf->lfUnderline = (BYTE) GetDlgItemInt (hwnd, DIDUNDERL, &success , FALSE);
110: lplf->lfStrikeOut = (BYTE) GetDlgItemInt (hwnd, DIDSTRIKE, &success , FALSE);
111: lplf->lfCharSet = (BYTE) GetDlgItemInt (hwnd, DIDCHARSE, &success , FALSE);
112: lplf->lfOutPrecision = (BYTE) GetDlgItemInt (hwnd, DIDOUTPRE, &success , FALSE);
113: lplf->lfClipPrecision = (BYTE) GetDlgItemInt (hwnd, DIDCLIPPR, &success , FALSE);
114: lplf->lfQuality = (BYTE) GetDlgItemInt (hwnd, DIDQUALIT, &success , FALSE);
115: lplf->lfPitchAndFamily =(BYTE) GetDlgItemInt (hwnd, DIDPITCHA, &success , FALSE);
116: GetDlgItemText (hwnd, DIDFACENA, lplf->lfFaceName, LF_FACESIZE);
117:
118: } break;
119:
120:
121:
122: /**********************************************************************\
123: * WMU_DEMOTOTM
124: *
125: * lParam - pointer to TEXTMETRIC structure.
126: *
127: * User message. Take the input LOGFONT and fill the list box with
128: * strings. Turn off update before hand, then reenable when complete.
129: \**********************************************************************/
130: case WMU_DEMOTOTM: {
131: char buffer[100];
132: // WORD tabs;
133:
134: lptm = (LPTEXTMETRIC) lParam;
135:
136: SendDlgItemMessage (hwnd, DID_LISTBOX, WM_SETREDRAW, FALSE, 0);
137: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_RESETCONTENT, 0, 0);
138: // tabs = sizeof("tmDigitizedAspectY") *4;
139: // SendDlgItemMessage (hwnd, DID_LISTBOX, LB_SETTABSTOPS, 1, (LONG)&tabs);
140:
141: wsprintf (buffer, "tmHeight \t%d",(int) lptm->tmHeight );
142: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
143: wsprintf (buffer, "tmAscent \t%d",(int) lptm->tmAscent );
144: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
145: wsprintf (buffer, "tmDescent \t%d",(int) lptm->tmDescent );
146: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
147: wsprintf (buffer, "tmInternalLeading\t%d",(int) lptm->tmInternalLeading );
148: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
149: wsprintf (buffer, "tmExternalLeading\t%d",(int) lptm->tmExternalLeading );
150: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
151: wsprintf (buffer, "tmAveCharWidth \t%d",(int) lptm->tmAveCharWidth );
152: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
153: wsprintf (buffer, "tmMaxCharWidth \t%d",(int) lptm->tmMaxCharWidth );
154: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
155: wsprintf (buffer, "tmWeight \t%d",(int) lptm->tmWeight );
156: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
157: wsprintf (buffer, "tmOverhang \t%d",(int) lptm->tmOverhang );
158: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
159: wsprintf (buffer, "tmDigitizedAspectX\t%d",(int) lptm->tmDigitizedAspectX );
160: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
161: wsprintf (buffer, "tmDigitizedAspectY\t%d",(int) lptm->tmDigitizedAspectY );
162: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
163: wsprintf (buffer, "tmItalic \t%d",(int) lptm->tmItalic );
164: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
165: wsprintf (buffer, "tmUnderlined \t%d",(int) lptm->tmUnderlined );
166: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
167: wsprintf (buffer, "tmStruckOut \t%d",(int) lptm->tmStruckOut );
168: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
169: wsprintf (buffer, "tmFirstChar \t%d",(int) lptm->tmFirstChar );
170: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
171: wsprintf (buffer, "tmLastChar \t%d",(int) lptm->tmLastChar );
172: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
173: wsprintf (buffer, "tmDefaultChar \t%d",(int) lptm->tmDefaultChar );
174: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
175: wsprintf (buffer, "tmBreakChar \t%d",(int) lptm->tmBreakChar );
176: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
177: wsprintf (buffer, "tmPitchAndFamily\t%d",(int) lptm->tmPitchAndFamily );
178: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
179: wsprintf (buffer, "tmCharSet \t%d",(int) lptm->tmCharSet );
180: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer);
181:
182: SendDlgItemMessage (hwnd, DID_LISTBOX, WM_SETREDRAW, TRUE, 0);
183: InvalidateRect (hwnd, NULL, TRUE);
184: UpdateWindow (hwnd);
185:
186: } break;
187:
188:
189: } /* end switch */
190: return (NULL);
191: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.