|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 5997 (0x176d) Types: TextFile Names: »textUtil.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« └─⟦2109abc41⟧ └─⟦this⟧ »./X.V10R4/Toolkit/Xr/src/Xrlib/Editor/textUtil.c«
/* * $Source: /u1/Xr/src/Xrlib/Editor/RCS/textUtil.c,v $ * $Header: textUtil.c,v 1.1 86/12/17 09:07:25 swick Exp $ */ #ifndef lint static char *rcsid_textUtil_c = "$Header: textUtil.c,v 1.1 86/12/17 09:07:25 swick Exp $"; #endif lint #include <Xr/xr-copyright.h> /* $Header: textUtil.c,v 1.1 86/12/17 09:07:25 swick Exp $ */ /* Copyright 1986, Hewlett-Packard Company */ /* Copyright 1986, Massachussetts Institute of Technology */ static char rcsid[] = "$Header: textUtil.c,v 1.1 86/12/17 09:07:25 swick Exp $"; /*************************************<+>************************************* ***************************************************************************** ** ** File: textUtil.c ** ** Project: X-ray Toolbox ** ** Description: ** This file contains several text/font manipulation routines ** which are useful to field editors which do any text handling. ** Any of the text displaying routines supplied here will use ** a graphics context to obtain the drawing environment. ** ** ** ------------------------ MODIFICATION RECORD ------------------------ * * $Log: textUtil.c,v $ * Revision 1.1 86/12/17 09:07:25 swick * Initial revision * * Revision 7.0 86/11/13 08:31:14 08:31:14 fred () * Final QA Release * * Revision 6.0 86/11/10 15:39:51 15:39:51 fred () * QA #2 release * * Revision 5.1 86/11/07 14:27:46 14:27:46 fred () * Added new copyright message. * * Revision 5.0 86/10/28 08:41:53 08:41:53 fred () * QA #1.1 release * * Revision 4.0 86/10/20 12:17:27 12:17:27 fred () * QA #1 release * * Revision 3.1 86/10/16 09:25:04 09:25:04 fred () * Performance enhanced: added use of register variables. * * Revision 3.0 86/10/02 16:08:41 16:08:41 fred () * Alpha release set to 3.0 * * Revision 2.3 86/09/24 07:13:47 07:13:47 fred () * Add calculation of avgWidth to _XrTextInfo(). * * Revision 2.2 86/09/23 07:14:43 07:14:43 fred () * Changed font leading from (height / 3) to (ascent / 3). * * Revision 2.1 86/09/16 12:15:43 12:15:43 fred () * Filled in the procedure headers. * * Revision 2.0 86/09/16 08:17:57 08:17:57 fred () * No change; upgraded to revision 2.0 to match other source. * * Revision 1.1 86/09/03 14:01:12 14:01:12 fred () * Initial revision * * ***************************************************************************** *************************************<+>*************************************/ #include <X/Xlib.h> #include <Xr/defs.h> #include <Xr/types.h> \f /*************************************<->************************************* * * _XrImageText8 (windowId, GC, len, x, y, string) * * Window windowId; * INT32 GC; * INT32 len; * INT16 x, y; * STRING8 string; * * Description: * ----------- * This routine will display the specified text string at the specified * (x,y) location, using the drawing environment contained in the * specified graphics context. The background area of the text is * filled using the background color, while the text itself is drawn * using the foreground color. * * * Inputs: * ------ * windowId = Window Id of window in which text is to be drawn. * * GC = Index of the graphics context structure to use to draw the * text string. The fields of importance are: * * XrFONTVAL = The font to be used to draw the text. * XrFOREGROUNDVAL = The color to draw the text with. * XrBACKGROUNDVAL = The color to use as the background. * XrALUVAL = The replacement rule. * * len = The length of the text string, or XrNULLTERMINATED, if the * string is NULL terminated. * * x, y = The window location of where the string is to be drawn. * * string = The text string. * * Outputs: * ------- * * Procedures Called * ----------------- * XTextPad() [libX.a] * *************************************<->***********************************/ _XrImageText8 (windowId, GC, len, x, y, string) Window windowId; INT32 GC; INT32 len; INT16 x; INT16 y; STRING8 string; { int i; if (len == XrNULLTERMINATED) i = strlen (string); else i = len; XTextPad (windowId, x, y, string, i, xr_GCList[GC][XrFONTVAL], 0, 0, xr_GCList[GC][XrFOREGROUNDVAL], xr_GCList[GC][XrBACKGROUNDVAL], xr_GCList[GC][XrALUVAL], AllPlanes); } \f /*************************************<->************************************* * * _XrTextInfo (fontInfo, textInfo) * * FontInfo * fontInfo; * xrTextInfo * textInfo; * * Description: * ----------- * This routine takes a font, specified by the 'fontInfo' parameter, * and returns an xrTextInfo structure; this provides the application * with some extra data about the font, such as the ascent, descent, * maximum character width, and the leading. * * * Inputs: * ------ * fontInfo = This is a pointer to a structure which describes * the font for which additional information is desired. * * Outputs: * ------- * textInfo = This is a pointer to the structure into which the * additional font information will be placed. * * Procedures Called * ----------------- * XrStringWidth [utilities.c] * *************************************<->***********************************/ _XrTextInfo (fontInfo, textInfo) register FontInfo * fontInfo; register xrTextInfo * textInfo; { textInfo->fontInfo = fontInfo; textInfo->descent = fontInfo->height - fontInfo->baseline; textInfo->ascent = fontInfo->height - textInfo->descent; textInfo->avgWidth = fontInfo->width; textInfo->maxWidth = XrStringWidth (fontInfo, "W", 1, 0, 0); textInfo->leading = textInfo->ascent / 3; if (textInfo->leading < 2) textInfo->leading = 2; }