mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.9 KiB
74 lines
1.9 KiB
/*
|
|
Enhanced NCSA Mosaic from Spyglass
|
|
"Guitar"
|
|
|
|
Copyright 1994 Spyglass, Inc.
|
|
All Rights Reserved
|
|
|
|
Author(s):
|
|
Jeff Hostetler [email protected]
|
|
*/
|
|
|
|
/* effect3d.c -- 3d visual effects. */
|
|
|
|
/* TODO Convert to a real window class. */
|
|
|
|
#include "all.h"
|
|
|
|
/* E3D_RecessedFieldText() -- draw text inside working area of a 3d-effect
|
|
recessed field. */
|
|
|
|
VOID E3D_RecessedFieldText(HDC hdc, PE3DINSTANCE pe3di, LPCTSTR szText, int len)
|
|
{
|
|
SetTextColor(hdc, GetSysColor(COLOR_BTNTEXT));
|
|
SetBkColor(hdc, GetSysColor(COLOR_BTNFACE));
|
|
|
|
ExtTextOut(hdc,
|
|
pe3di->textrect.left + pe3di->textmargin.x,
|
|
pe3di->textrect.top + pe3di->textmargin.y,
|
|
ETO_OPAQUE | ETO_CLIPPED,
|
|
&pe3di->textrect,
|
|
szText, len,
|
|
NULL);
|
|
return;
|
|
}
|
|
|
|
|
|
/* E3D_RecessedField() -- draw shadowing/highlighing around border of a
|
|
3d-effect recessed field. */
|
|
|
|
VOID E3D_RecessedField(HDC hdc, PE3DINSTANCE pe3di)
|
|
{
|
|
RECT r;
|
|
HBRUSH hBrush;
|
|
|
|
XX_Assert((pe3di->thickness),
|
|
("E3D_RecessedField: thickness not set."));
|
|
|
|
/* paint top,left shadow (usually dark gray) */
|
|
|
|
hBrush = CreateSolidBrush(GetSysColor(COLOR_BTNSHADOW));
|
|
r.left = pe3di->rect.left; /* top */
|
|
r.right = pe3di->rect.right;
|
|
r.top = pe3di->rect.top;
|
|
r.bottom = r.top + pe3di->thickness;
|
|
(void) FillRect(hdc, &r, hBrush);
|
|
r.right = r.left + pe3di->thickness; /* left */
|
|
r.bottom = pe3di->rect.bottom;
|
|
(void) FillRect(hdc, &r, hBrush);
|
|
(void) DeleteObject(hBrush);
|
|
|
|
/* paint bottom,right highlight (usually light gray or white) */
|
|
|
|
hBrush = CreateSolidBrush(GetSysColor(COLOR_BTNHIGHLIGHT));
|
|
r.right = pe3di->rect.right; /* right */
|
|
r.left = r.right - pe3di->thickness;
|
|
r.top = pe3di->rect.top + pe3di->thickness;
|
|
(void) FillRect(hdc, &r, hBrush);
|
|
r.top = r.bottom - pe3di->thickness; /* bottom */
|
|
r.left = pe3di->rect.left + pe3di->thickness;
|
|
(void) FillRect(hdc, &r, hBrush);
|
|
(void) DeleteObject(hBrush);
|
|
|
|
return;
|
|
}
|