#include "dpsXcommonI.h"
#include "FSBwraps.h"
#include "FontSBI.h"
#include <pwd.h>
#ifndef DEFAULT_SIZE_LIST
#ifndef DEFAULT_SIZE_LIST_COUNT
#ifndef DEFAULT_SIZE
#ifndef DEFAULT_RESOURCE_PATH
#ifndef DEFAULT_MAX_PENDING
static Boolean ChangeBlends(Widget w, String base_name, String blend_name, FSBBlendAction action, int *axis_values, float *axis_percents);
static Boolean Verify(FontSelectionBoxWidget fsb, FSBValidateCallbackRec *cb, String afm, Boolean doIt);
static XtGeometryResult GeometryManager(Widget w, XtWidgetGeometry *desired, XtWidgetGeometry *allowed);
static void ClassInitialize(void);
static void FontFamilyFaceBlendToName(Widget w, String family, String face, String blend, String *font_name);
static void FontNameToFamilyFaceBlend(Widget w, String font_name, String *family, String *face, String *blend);
static void GetBlendInfo(Widget w, String name, int *num_axes_return, int *num_designs_return, String **axis_names_return, float **blend_positions_return, int **blend_map_count_return, int **blend_design_coords_return, float **blend_normalized_coords_return);
static void GetBlendList(Widget w, String name, int *count_return, String **blend_return, String **font_name_return, float **axis_values_return);
static void GetFaceList(Widget w, String family, int *count, String **face_list, String **font_list);
static void GetTextDimensions(Widget w, String text, String font, double size, double x, double y, float *dx, float *dy, float *left, float *right, float *top, float *bottom);
static void SetFontFamilyFace(Widget w, String family, String face, Bool family_multiple, Bool face_multiple);
static void SetFontFamilyFaceBlend(Widget w, String family, String face, String blend, Bool family_multiple, Bool face_multiple);
return False;
return False;
for (i = 0; i < count; i++) {
return True;
return result;
} else return NULL;
countDecimals = 0;
else countDecimals++;
return True;
return True;
if (!inited) {
src++;
src++;
else digits = 0;
src++;
src++;
if (diff < 0) break;
if (diff == 0) {
goto FAMILY_DONE;
src++;
src++;
missingFoundryLen[i]);
if (diff > 0) continue;
missingFoundryLen[i] != 0)) {
dst--;
src++;
dst++;
return True;
if (diff < 0) break;
if (diff == 0) {
if (i == STEMPELINDEX) {
return True;
return False;
buf++;
count++;
return count;
char *buf,
float *blendPos,
*designs = 0;
for (i = 0; i < *axes; i++) {
blendPos[j++] = f;
(*designs)++;
return False;
char *buf,
int *breakCount,
int *blendBreak,
float *blendBreakValue,
int *axes)
for (i = 0; i < *axes; i++) {
breakCount[i] = 0;
buf++;
blendBreak[j] = n;
blendBreakValue[j++] = f;
breakCount[i]++;
return False;
int axes,
char *buf,
char *names[])
return False;
char *name,
int *axes,
int *designs,
char *axisNames,
float *blendPos,
int *breakCount,
int *blendBreak,
float *blendBreakValue)
*axes = 0;
if (*axes == 0) return;
*axes = 0;
*axes = 0;
*axes = 0;
*axes = 0;
int serverNum,
FontRec *f;
if (resident) {
if (brokenFont) return;
if (blendedFont) {
} else axes = 0;
f->blend_count = 0;
BlendDataRec *b;
for (i = 0; i < axes; i++) {
if (b->internal_points[i] <= 0) {
b->internal_points[i] = 0;
b->internal_break[i] = (int *)
b->internal_value[i] = (float *)
for (j = 0; j < breakCount[i]; j++) {
b->design_positions =
highest = f;
ch++;
ch++;
ch++;
for (i = 0; i < fontCount; i++) {
for (i = 0; i < fontCount; i++) {
FILE *f;
fclose (f);
return ok;
if (!all
f = f->pending_delete_next;
if (f == NULL) return;
FontRec *f,
if (resident) {
return True;
return False;
return True;
FontRec *f;
BlendRec *b;
if (override) {
if (selectCount == 0 ||
if (selectCount == 0 ||
if (n >= *selectList) {
n -= f->blend_count;
f = f->next;
if (bogusFont) {
Widget s;
Widget w,
name,
return ret;
return ret;
Widget w,
name,
return ret;
return ret;
for (i = 0; i < MAX_AXES; i++) {
return True;
for (i = 0; i < MAX_AXES; i++) {
Widget w,
int pos,
#ifndef X_NOT_POSIX
int uid;
extern int getuid();
#ifndef SYSV386
if (ptr)
buf++;
return buf;
FILE *f,
int axes,
FontRec *f;
BlendRec *b;
src++;
src++;
src++;
for (i = 0; i < MAX_AXES; i++) {
src++;
return True;;
return True;
float p[MAX_AXES];
FontRec *f;
f = f->next) {}
if (cmp < 0) break;
if (cmp != 0) {
f->blend_count++;
FontRec *f;
BlendRec *b;
sizeof(XmString));
if (f != NULL) {
XtUnmanageChild(w);
XtUnmanageChild(w);
FontRec *f;
BlendRec *b;
while (f != NULL) {
while (b != NULL &&
b = b->next;
f = f->next;
{NULL},
if (!categoriesInited) {
goto GIVE_UP;
goto FOUND_PIECE;
numPieces = i;
numPieces++;
for (i = 0; i < numPieces; i++) {
goto MATCH;
goto NEXT_FACE;
FontRec *f;
FontRec *f;
BlendRec *b;
n -= f->blend_count;
b = b->next) n++;
f = f->next;
if (destroyOldChildren) {
FontRec *f;
BlendRec *b;
False);
False);
FontRec *f;
BlendRec *b;
if (b == NULL) {
i -= f->blend_count;
f = NULL;
if (!inited) {
XtFree((char *) b);
FreeFontRec(f);
XtFree((char *) f);
if (!inited) {
if (refreshLists) {
return False;
Widget w,
return XtGeometryYes;
Widget w,
Widget w,
Widget w,
Widget w,
Widget w,
double size,
if (sizeof(float) > sizeof(XtArgVal)) {
Widget w,
double size,
Widget w)
Widget w,
int *count,
Widget w,
int *count,
Widget w,
int *count,
FontRec *f;
*count = 0;
Widget w,
int *count_return,
Widget w)
FontRec *f;
&resident);
return ret;
Widget w,
return (*((FontSelectionBoxWidgetClass)
Widget w,
FontRec *f;
return False;
return !retVal;
Widget w,
return (*((FontSelectionBoxWidgetClass)
Widget w,
FontRec *f;
BlendRec *b;
Widget w,
Widget w,
Widget w,
FontRec *f;
BlendRec *b;
if (f == NULL) {
Widget w,
Widget w,
Widget w,
Widget w,
Widget w,
double size, double x, double y,
Widget w,
double size, double x, double y,
Widget w,
Widget w,
Widget w,
Widget w,
Widget w,
int *count_return,
float **axis_values_return)
FontRec *f;
BlendRec *b;
*count_return = 0;
Widget w,
int *count_return,
float **axis_values_return)
Widget w,
int *num_axes_return,
int *num_designs_return,
float **blend_positions_return,
int **blend_map_count_return,
int **blend_design_coords_return,
float **blend_normalized_coords_return)
FontRec *f;
coords = 0;
Widget w,
int *num_axes_return,
int *num_designs_return,
float **blend_positions_return,
int **blend_map_count_return,
int **blend_design_coords_return,
float **blend_normalized_coords_return)
Widget w,
int *axis_values,
float *axis_percents)
FontRec *f;
goto FOUND_BASE;
return False;
switch (action) {
case FSBAddBlend:
f->blend_count++;
case FSBReplaceBlend:
case FSBDeleteBlend:
f->blend_count--;
return True;
Widget w,
int *axis_values,
float *axis_percents)
FontRec *f;
BlendRec *b;
b = NULL;
goto FOUND_NAME;
goto FOUND_NAME;
int val,
float val;
int *val,