/* * FontSB.h * * (c) Copyright 1991-1994 Adobe Systems Incorporated. * All rights reserved. * * Permission to use, copy, modify, distribute, and sublicense this software * and its documentation for any purpose and without fee is hereby granted, * provided that the above copyright notices appear in all copies and that * both those copyright notices and this permission notice appear in * supporting documentation and that the name of Adobe Systems Incorporated * not be used in advertising or publicity pertaining to distribution of the * software without specific, written prior permission. No trademark license * to use the Adobe trademarks is hereby granted. If the Adobe trademark * "Display PostScript"(tm) is used to describe this software, its * functionality or for any other purpose, such use shall be limited to a * statement that this software works in conjunction with the Display * PostScript system. Proper trademark attribution to reflect Adobe's * ownership of the trademark shall be given whenever any such reference to * the Display PostScript system is made. * * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR * ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NON- INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE. * * Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems * Incorporated which may be registered in certain jurisdictions * * Author: Adobe Systems Incorporated */ /* $XFree86$ */ #ifndef _FontSelectionBox_h #define _FontSelectionBox_h /* New resouce names and classes */ #define XtNcontext "context" #define XtCContext "Context" #define XtNpreviewString "previewString" #define XtCPreviewString "PreviewString" #define XtNsizes "sizes" #define XtCSizes "Sizes" #define XtNsizeCount "sizeCount" #define XtCSizeCount "SizeCount" #define XtNdefaultResourcePath "defaultResourcePath" #define XtCDefaultResourcePath "DefaultResourcePath" #define XtNresourcePathOverride "resourcePathOverride" #define XtCResourcePathOverride "ResourcePathOverride" #define XtNuseFontName "useFontName" #define XtCUseFontName "UseFontName" #define XtNfontName "fontName" #define XtCFontName "FontName" #define XtNfontFamily "fontFamily" #define XtCFontFamily "FontFamily" #define XtNfontFace "fontFace" #define XtCFontFace "FontFace" #define XtNfontSize "fontSize" #define XtCFontSize "FontSize" #define XtNfontBlend "fontBlend" #define XtCFontBlend "FontBlend" #define XtNfontNameMultiple "fontNameMultiple" #define XtCFontNameMultiple "FontNameMultiple" #define XtNfontFamilyMultiple "fontFamilyMultiple" #define XtCFontFamilyMultiple "FontFamilyMultiple" #define XtNfontFaceMultiple "fontFaceMultiple" #define XtCFontFaceMultiple "FontFaceMultiple" #define XtNfontSizeMultiple "fontSizeMultiple" #define XtCFontSizeMultiple "FontSizeMultiple" #define XtNgetServerFonts "getServerFonts" #define XtCGetServerFonts "GetServerFonts" #define XtNgetAFM "getAFM" #define XtCGetAFM "GetAFM" #define XtNautoPreview "autoPreview" #define XtCAutoPreview "AutoPreview" #define XtNpreviewOnChange "previewOnChange" #define XtCPreviewOnChange "PreviewOnChange" #define XtNundefUnusedFonts "undefUnusedFonts" #define XtCUndefUnusedFonts "UndefUnusedFonts" #define XtNmaxPendingDeletes "maxPendingDeletes" #define XtCMaxPendingDeletes "MaxPendingDeletes" #define XtNmakeFontsShared "makeFontsShared" #define XtCMakeFontsShared "MakeFontsShared" #define XtNshowSampler "showSampler" #define XtCShowSampler "ShowSampler" #define XtNshowSamplerButton "showSamplerButton" #define XtCShowSamplerButton "ShowSamplerButton" #define XtNtypographicSort "typographicSort" #define XtCTypographicSort "TypographicSort" #define XtNokCallback "okCallback" #define XtNapplyCallback "applyCallback" #define XtNresetCallback "resetCallback" #ifndef XtNcancelCallback #define XtNcancelCallback "cancelCallback" #endif #define XtNvalidateCallback "validateCallback" #define XtNfaceSelectCallback "faceSelectCallback" #define XtNvalueChangedCallback "valueChangedCallback" #define XtNcreateSamplerCallback "createSamplerCallback" #define XtNcreateCreatorCallback "createCreatorCallback" /* Read-only resources for all the subwidgets */ #define XtNpaneChild "paneChild" #define XtNpreviewChild "previewChild" #define XtNpanelChild "panelChild" #define XtNfamilyLabelChild "familyLabelChild" #define XtNfamilyMultipleLabelChild "familyMultipleLabelChild" #define XtNfamilyScrolledListChild "familyScrolledListChild" #define XtNfaceLabelChild "faceLabelChild" #define XtNfaceMultipleLabelChild "faceMultipleLabelChild" #define XtNfaceScrolledListChild "faceScrolledListChild" #define XtNsizeLabelChild "sizeLabelChild" #define XtNsizeTextFieldChild "sizeTextFieldChild" #define XtNsizeOptionMenuChild "sizeOptionMenuChild" #define XtNsizeMultipleLabelChild "sizeMultipleLabelChild" #define XtNsamplerButtonChild "samplerButtonChild" #define XtNpreviewButtonChild "previewButtonChild" #define XtNseparatorChild "separatorChild" #define XtNokButtonChild "okButtonChild" #define XtNapplyButtonChild "applyButtonChild" #define XtNresetButtonChild "resetButtonChild" #define XtNcancelButtonChild "cancelButtonChild" #define XtNmultipleMasterButtonChild "multipleMasterButtonChild" /* New resource types */ #define XtRFloatList "FloatList" #define XtRDPSContext "DPSContext" /* Class record constants */ extern WidgetClass fontSelectionBoxWidgetClass; typedef struct _FontSelectionBoxRec *FontSelectionBoxWidget; typedef enum {FSBNone, FSBOne, FSBMultiple} FSBSelectionType; typedef enum {FSBOK, FSBApply, FSBReset, FSBCancel, FSBValueChanged} FSBCallbackReason; typedef struct { FSBCallbackReason reason; String family; String face; float size; String name; String afm_filename; FSBSelectionType family_selection; FSBSelectionType face_selection; FSBSelectionType size_selection; FSBSelectionType name_selection; Boolean afm_present; Boolean unused; String blend; String base_name; float axis_percent[4]; } FSBCallbackRec; typedef struct { FSBCallbackReason reason; String family; String face; float size; String name; String afm_filename; FSBSelectionType family_selection; FSBSelectionType face_selection; FSBSelectionType size_selection; FSBSelectionType name_selection; Boolean afm_present; Boolean doit; String blend; String base_name; float axis_percent[4]; } FSBValidateCallbackRec; typedef struct { String *available_faces; int num_available_faces; String current_face; String new_face; } FSBFaceSelectCallbackRec; typedef struct { Widget sampler; Widget sampler_shell; } FSBCreateSamplerCallbackRec; typedef struct { Widget creator; Widget creator_shell; } FSBCreateCreatorCallbackRec; typedef enum {FSBAddBlend, FSBReplaceBlend, FSBDeleteBlend} FSBBlendAction; /* Convenience and info routines */ #if defined(__cplusplus) || defined(c_plusplus) extern "C" { #endif /* Note use of Bool and double in prototypes: this makes the library work correctly when linked with no-prototype compiled objects */ extern void FSBSetFontName(Widget w, String font_name, Bool font_name_multiple); extern void FSBSetFontFamilyFace(Widget w, String font_family, String font_face, Bool font_family_multiple, Bool font_face_multiple); extern void FSBSetFontSize(Widget w, double font_size, Bool font_size_multiple); extern void FSBRefreshFontList(Widget w); extern void FSBGetFamilyList(Widget w, int *count_return, String **family_return); extern void FSBGetFaceList(Widget w, String family, int *count_return, String **face_return, String **font_return); extern void FSBUndefineUnusedFonts(Widget w); extern Boolean FSBDownloadFontName(Widget w, String font_name); extern Boolean FSBMatchFontFace(Widget w, String old_face, String new_family, String *new_face); extern void FSBFontNameToFamilyFace(Widget w, String font_name, String *family, String *face); extern void FSBFontFamilyFaceToName(Widget w, String family, String face, String *font_name); extern String FSBFindAFM(Widget w, String font_name); extern String FSBFindFontFile(Widget w, String font_name); extern void FSBGetTextDimensions(Widget w, String text, String font, double size, double x, double y, float *dx, float *dy, float *left, float *right, float *top, float *bottom); extern void FSBSetFontFamilyFaceBlend(Widget w, String family, String face, String blend, Bool family_multiple, Bool face_multiple); extern void FSBFontNameToFamilyFaceBlend(Widget w, String font_name, String *family, String *face, String *blend); extern void FSBFontFamilyFaceBlendToName(Widget w, String family, String face, String blend, String *font_name); extern void FSBGetBlendList(Widget w, String font_name, int *count_return, String **blend_return, String **font_name_return, float **axis_values_return); extern void FSBGetBlendInfo(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); extern Boolean FSBChangeBlends(Widget w, String base_name, String blend_name, FSBBlendAction action, int *axis_values, float *axis_percents); #if defined(__cplusplus) || defined(c_plusplus) } #endif #endif /* _FontSelectionBox_h */ /* DON'T ADD ANYTHING AFTER THIS #endif */