Blame lib/Xm/FontSP.h

Packit b099d7
/*
Packit b099d7
 * Motif
Packit b099d7
 *
Packit b099d7
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are free software; you can
Packit b099d7
 * redistribute them and/or modify them under the terms of the GNU
Packit b099d7
 * Lesser General Public License as published by the Free Software
Packit b099d7
 * Foundation; either version 2 of the License, or (at your option)
Packit b099d7
 * any later version.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are distributed in the hope that
Packit b099d7
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
Packit b099d7
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Packit b099d7
 * PURPOSE. See the GNU Lesser General Public License for more
Packit b099d7
 * details.
Packit b099d7
 *
Packit b099d7
 * You should have received a copy of the GNU Lesser General Public
Packit b099d7
 * License along with these librararies and programs; if not, write
Packit b099d7
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Packit b099d7
 * Floor, Boston, MA 02110-1301 USA
Packit b099d7
 * 
Packit b099d7
 */
Packit b099d7
Packit b099d7
#ifndef	_XmFontSelectorP_h
Packit b099d7
#define	_XmFontSelectorP_h
Packit b099d7
Packit b099d7
#if defined(VMS) || defined(__VMS)
Packit b099d7
#include <X11/apienvset.h>
Packit b099d7
#endif
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
 *      INCLUDE FILES
Packit b099d7
 *************************************************************/
Packit b099d7
#include <Xm/ManagerP.h>
Packit b099d7
#include <Xm/PanedP.h>
Packit b099d7
#include <Xm/FontS.h>
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
extern "C" {
Packit b099d7
#endif
Packit b099d7
Packit b099d7
#define XmFontSelectorIndex (XmPanedIndex + 1)
Packit b099d7
Packit b099d7
#define XmFontS_current_font(w) (((XmFontSelectorWidget)(w))->fs.current_font)
Packit b099d7
#define XmFontS_show_font_name(w) (((XmFontSelectorWidget)(w))->fs.show_font_name)
Packit b099d7
#define XmFontS_iso_fonts_only(w) (((XmFontSelectorWidget)(w))->fs.iso_fonts_only)
Packit b099d7
#define XmFontS_use_scaling(w) (((XmFontSelectorWidget)(w))->fs.use_scaling)
Packit b099d7
#define XmFontS_text_rows(w) (((XmFontSelectorWidget)(w))->fs.text_rows)
Packit b099d7
#define XmFontS_font_changed_callback(w) (((XmFontSelectorWidget)(w))->fs.font_changed_callback)
Packit b099d7
#define XmFontS_strings(w) (((XmFontSelectorWidget)(w))->fs.strings)
Packit b099d7
#define XmFontS_xlfd_mode(w) (((XmFontSelectorWidget)(w))->fs.xlfd_mode)
Packit b099d7
#define XmFontS_font_info(w) (((XmFontSelectorWidget)(w))->fs.font_info)
Packit b099d7
#define XmFontS_text(w) (((XmFontSelectorWidget)(w))->fs.text)
Packit b099d7
#define XmFontS_name_label(w) (((XmFontSelectorWidget)(w))->fs.name_label)
Packit b099d7
#define XmFontS_middle_pane(w) (((XmFontSelectorWidget)(w))->fs.middle_pane)
Packit b099d7
#define XmFontS_family_box(w) (((XmFontSelectorWidget)(w))->fs.family_box)
Packit b099d7
#define XmFontS_size_box(w) (((XmFontSelectorWidget)(w))->fs.size_box)
Packit b099d7
#define XmFontS_bold_toggle(w) (((XmFontSelectorWidget)(w))->fs.bold_toggle)
Packit b099d7
#define XmFontS_italic_toggle(w) (((XmFontSelectorWidget)(w))->fs.italic_toggle)
Packit b099d7
#define XmFontS_xlfd_toggle(w) (((XmFontSelectorWidget)(w))->fs.xlfd_toggle)
Packit b099d7
#define XmFontS_other_toggle(w) (((XmFontSelectorWidget)(w))->fs.other_toggle)
Packit b099d7
#define XmFontS_show_font_toggle(w) (((XmFontSelectorWidget)(w))->fs.show_font_toggle)
Packit b099d7
#define XmFontS_use_scaling_toggle(w) (((XmFontSelectorWidget)(w))->fs.use_scaling_toggle)
Packit b099d7
#define XmFontS_option_menu(w) (((XmFontSelectorWidget)(w))->fs.option_menu)
Packit b099d7
#define XmFontS_encoding_menu_shell(w) (((XmFontSelectorWidget)(w))->fs.encoding_menu_shell)
Packit b099d7
#define XmFontS_xlfd_only(w) (((XmFontSelectorWidget)(w))->fs.xlfd_only)
Packit b099d7
#define XmFontS_xlfd_sensitive(w) (((XmFontSelectorWidget)(w))->fs.xlfd_sensitive)
Packit b099d7
#define XmFontS_num_xlfd_only(w) (((XmFontSelectorWidget)(w))->fs.num_xlfd_only)
Packit b099d7
#define XmFontS_num_xlfd_sensitive(w) (((XmFontSelectorWidget)(w))->fs.num_xlfd_sensitive)
Packit b099d7
#define XmFontS_alloc_xlfd_only(w) (((XmFontSelectorWidget)(w))->fs.alloc_xlfd_only)
Packit b099d7
#define XmFontS_alloc_xlfd_sensitive(w) (((XmFontSelectorWidget)(w))->fs.alloc_xlfd_sensitive)
Packit b099d7
#define XmFontS_user_state(w) (((XmFontSelectorWidget)(w))->fs.user_state)
Packit b099d7
#define XmFontS_current_text(w) (((XmFontSelectorWidget)(w))->fs.current_text)
Packit b099d7
#define XmFontS_get_font(w) (((XmFontSelectorWidget)(w))->fs.get_font)
Packit b099d7
#define XmFontS_encoding(w) (((XmFontSelectorWidget)(w))->fs.encoding)
Packit b099d7
#define XmFontS_old_fontlist(w) (((XmFontSelectorWidget)(w))->fs.old_fontlist)
Packit b099d7
#define XmFontS_old_fontdata(w) (((XmFontSelectorWidget)(w))->fs.old_fontdata)
Packit b099d7
#define XmFontS_dpi75(w) (((XmFontSelectorWidget)(w))->fs.dpi75)
Packit b099d7
#define XmFontS_dpi100(w) (((XmFontSelectorWidget)(w))->fs.dpi100)
Packit b099d7
#define XmFontS_dpiAny(w) (((XmFontSelectorWidget)(w))->fs.dpiAny)
Packit b099d7
#define XmFontS_proportional(w) (((XmFontSelectorWidget)(w))->fs.proportional)
Packit b099d7
#define XmFontS_monospace(w) (((XmFontSelectorWidget)(w))->fs.monospace)
Packit b099d7
#define XmFontS_any_spacing(w) (((XmFontSelectorWidget)(w))->fs.any_spacing)
Packit b099d7
Packit b099d7
Packit b099d7
#define SAMPLE_TEXT(fsw)        (XmFontS_strings((fsw)).sample_text)
Packit b099d7
#define ANY_STRING(fsw)		(XmFontS_strings((fsw)).any)
Packit b099d7
#define LOWER_ANY_STRING(fsw) 	(XmFontS_strings((fsw)).lower_any)
Packit b099d7
#define FAMILY_STRING(fsw)	(XmFontS_strings((fsw)).family)
Packit b099d7
#define SIZE_STRING(fsw) 	(XmFontS_strings((fsw)).size)
Packit b099d7
#define BOLD_STRING(fsw)	(XmFontS_strings((fsw)).bold)
Packit b099d7
#define ITALIC_STRING(fsw)	(XmFontS_strings((fsw)).italic)
Packit b099d7
Packit b099d7
#define OPTION_STRING(fsw)	(XmFontS_strings((fsw)).option)
Packit b099d7
Packit b099d7
#define BOTH_STRING(fsw)	(XmFontS_strings((fsw)).both)
Packit b099d7
#define MONO_SPACE_STRING(fsw) 	(XmFontS_strings((fsw)).mono_space)
Packit b099d7
#define PROPORTIONAL_STRING(fsw)(XmFontS_strings((fsw)).prop_space)
Packit b099d7
Packit b099d7
#define XLFD_STRING(fsw)	(XmFontS_strings((fsw)).xlfd)
Packit b099d7
#define OTHER_FONT_STRING(fsw)	(XmFontS_strings((fsw)).other_font)
Packit b099d7
Packit b099d7
#define DPI75_STRING(fsw)	(XmFontS_strings((fsw)).dpi_75)
Packit b099d7
#define DPI100_STRING(fsw)	(XmFontS_strings((fsw)).dpi_100)
Packit b099d7
Packit b099d7
#define SCALING_STRING(fsw)	  (XmFontS_strings((fsw)).scaling)
Packit b099d7
#define SHOW_NAME_STRING(fsw)	  (XmFontS_strings((fsw)).show_name)
Packit b099d7
Packit b099d7
#define ENCODING_ONLY_STRING(fsw) (XmFontS_strings((fsw)).encoding_only)
Packit b099d7
#define ENCODING_LIST(fsw)    (XmFontS_strings((fsw)).encoding_list)
Packit b099d7
Packit b099d7
#define ENCODING_STRING(fsw)    XmFontS_encoding((fsw))
Packit b099d7
Packit b099d7
/* this structure provides the table for font selection */
Packit b099d7
Packit b099d7
#define WEIGHT_LEN    15
Packit b099d7
#define SLANT_LEN      3
Packit b099d7
#define SPACING_LEN    3
Packit b099d7
Packit b099d7
typedef unsigned char Flag;
Packit b099d7
typedef unsigned int LongFlag;
Packit b099d7
Packit b099d7
#define FIXED  		((Flag) 1 << 0)
Packit b099d7
#define BOLD   		((Flag) 1 << 1)
Packit b099d7
#define ITALIC 		((Flag) 1 << 2)
Packit b099d7
#define PROPORTIONAL 	((Flag) 1 << 3)
Packit b099d7
#define SCALED_75       ((Flag) 1 << 4)
Packit b099d7
#define SCALED_100	((Flag) 1 << 5)
Packit b099d7
#define DPI_75 		((Flag) 1 << 6)
Packit b099d7
#define DPI_100		((Flag) 1 << 7)
Packit b099d7
Packit b099d7
/*
Packit b099d7
 * This allows me to reuse flag bits in the user_state since
Packit b099d7
 * ISO is never set in the user state.
Packit b099d7
 */
Packit b099d7
Packit b099d7
#define USER_PROPORTIONAL   	PROPORTIONAL
Packit b099d7
#define USER_FIXED		FIXED
Packit b099d7
Packit b099d7
typedef struct _FontData {
Packit b099d7
    XrmQuark familyq;		/* quarkified family name. */
Packit b099d7
    XrmQuark weightq;		/* quarkified weight name. */
Packit b099d7
    char slant[SLANT_LEN + 1];
Packit b099d7
    char spacing[SPACING_LEN + 1];
Packit b099d7
    short resolution_x, resolution_y;
Packit b099d7
    short point_size;
Packit b099d7
    XrmQuark encoding;
Packit b099d7
    Flag state;
Packit b099d7
} FontData;
Packit b099d7
Packit b099d7
typedef struct FamilyInfo {
Packit b099d7
    XrmQuark nameq;		/* quarkified family name. */
Packit b099d7
    XrmQuark bold_nameq, medium_nameq;
Packit b099d7
    XrmQuark italic_nameq, upright_nameq;
Packit b099d7
    char fixed_spacing[SPACING_LEN + 1];
Packit b099d7
    LongFlag sizes_75, sizes_100;
Packit b099d7
    Flag state;
Packit b099d7
    XrmQuark *encodings;
Packit b099d7
    int encoding_alloc;
Packit b099d7
} FamilyInfo;
Packit b099d7
Packit b099d7
typedef struct FontInfo {
Packit b099d7
    FontData *current_font;
Packit b099d7
    String *others;
Packit b099d7
    FamilyInfo *family_info;
Packit b099d7
    short num_others;
Packit b099d7
    short num_families;
Packit b099d7
    short resolution;
Packit b099d7
} FontInfo;
Packit b099d7
Packit b099d7
typedef struct _XmFontSelStringInfo {
Packit b099d7
    XmString sample_text;
Packit b099d7
    XmString any, lower_any;
Packit b099d7
    XmString family, size;
Packit b099d7
    XmString bold, italic, option, both;
Packit b099d7
    XmString mono_space, prop_space;
Packit b099d7
    XmString xlfd, other_font;
Packit b099d7
    XmString dpi_75, dpi_100;
Packit b099d7
    XmString scaling, encoding_only, show_name;
Packit b099d7
Packit b099d7
    String *encoding_list;
Packit b099d7
} XmFontSelStringInfo;
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
 *      TYPEDEFS AND DEFINES
Packit b099d7
 *************************************************************/
Packit b099d7
Packit b099d7
typedef struct _FontSelectorClassPart
Packit b099d7
{
Packit b099d7
    XtPointer extension;	/* For later use. */
Packit b099d7
} FontSelectorClassPart;
Packit b099d7
Packit b099d7
typedef struct _XmFontSelectorClassRec
Packit b099d7
{
Packit b099d7
    CoreClassPart		core_class;
Packit b099d7
    CompositeClassPart		composite_class;
Packit b099d7
    ConstraintClassPart 	constraint_class;
Packit b099d7
    XmManagerClassPart  	manager_class;
Packit b099d7
    XmPanedClassPart		paned_class;
Packit b099d7
    FontSelectorClassPart	font_selector_class;
Packit b099d7
} XmFontSelectorClassRec;
Packit b099d7
Packit b099d7
typedef struct _XmFontSelectorPart
Packit b099d7
{	
Packit b099d7
    /* Resources */
Packit b099d7
    String		current_font;   /* The currently shown font. */
Packit b099d7
Packit b099d7
    Boolean 		show_font_name;	/* show the font name window? */
Packit b099d7
    Boolean		iso_fonts_only;	/* show only iso fonts? */
Packit b099d7
    Boolean		use_scaling;    /* use font scaling? */
Packit b099d7
    
Packit b099d7
    Dimension		text_rows; 	/* The number of text rows to display*/
Packit b099d7
Packit b099d7
    XtCallbackList	font_changed_callback; /* when font changes. */
Packit b099d7
Packit b099d7
    XmFontSelStringInfo strings; /* The font selectors external strings. */
Packit b099d7
Packit b099d7
    /* Private Data */
Packit b099d7
Packit b099d7
    Boolean xlfd_mode;		/* True if we are int xlfd mode. */
Packit b099d7
Packit b099d7
    FontInfo 		*font_info;		/* The font information. */
Packit b099d7
    Widget text, name_label;	/* Text and label widget below top area. */
Packit b099d7
    Widget middle_pane;		/* The option info middle pane. */
Packit b099d7
    Widget family_box;		/* The family choices combo box. */
Packit b099d7
    Widget size_box;		/* The family choices combo box. */
Packit b099d7
    Widget bold_toggle, italic_toggle; /* The bold and italic toggle buttons */
Packit b099d7
    Widget xlfd_toggle, other_toggle; /* The xlfd and other font toggles. */
Packit b099d7
    Widget show_font_toggle, use_scaling_toggle;
Packit b099d7
    Widget option_menu;		/* The option menu. */
Packit b099d7
    Widget encoding_menu_shell;	/* The menu shell associated with the */
Packit b099d7
    				/* encoding menu. */
Packit b099d7
Packit b099d7
    WidgetList xlfd_only;	/* Only visable when in xlfd mode. */
Packit b099d7
    WidgetList xlfd_sensitive;	/* Only sensitive when in xlfd mode. */
Packit b099d7
Packit b099d7
    char num_xlfd_only, num_xlfd_sensitive;
Packit b099d7
    char alloc_xlfd_only, alloc_xlfd_sensitive;
Packit b099d7
Packit b099d7
    Flag user_state;		/* The current user selections. */
Packit b099d7
Packit b099d7
    String current_text;	/* The current text in the text widget. */
Packit b099d7
    String get_font;		/* Where to store returned get values on
Packit b099d7
				   current_font. */
Packit b099d7
    String encoding;		/* The encoding, may change. */
Packit b099d7
Packit b099d7
    /* 
Packit b099d7
     * The previously set font_data, free when font changed, or widget
Packit b099d7
     * destroyed. 
Packit b099d7
     */
Packit b099d7
Packit b099d7
    XmFontList old_fontlist;	
Packit b099d7
    XFontStruct * old_fontdata;
Packit b099d7
Packit b099d7
    /*
Packit b099d7
     * These values were added 2/1/94
Packit b099d7
     */
Packit b099d7
    Widget dpi75, dpi100, dpiAny; /* DPI toggle buttons.		*/
Packit b099d7
    Widget proportional, monospace, any_spacing;
Packit b099d7
                                /* Spacing toggle buttons		*/
Packit b099d7
} XmFontSelectorPart;
Packit b099d7
Packit b099d7
typedef struct _XmFontSelectorRec
Packit b099d7
{
Packit b099d7
    CorePart		core;
Packit b099d7
    CompositePart 	composite;
Packit b099d7
    ConstraintPart 	constraint;
Packit b099d7
    XmManagerPart 	manager;
Packit b099d7
    XmPanedPart 	paned;
Packit b099d7
    XmFontSelectorPart	fs;
Packit b099d7
} XmFontSelectorRec;
Packit b099d7
Packit b099d7
typedef struct _XmFontSelectorConstraintsPart
Packit b099d7
{
Packit b099d7
    XtPointer dummy;
Packit b099d7
} XmFontSelectorConstraintsPart;
Packit b099d7
Packit b099d7
typedef struct _XmFontSelectorConstraintsRec
Packit b099d7
{
Packit b099d7
    XmManagerConstraintPart       manager;
Packit b099d7
    XmPanedConstraintsPart        paned;
Packit b099d7
    XmFontSelectorConstraintsPart fs;
Packit b099d7
} XmFontSelectorConstraintsRec, *XmFontSelectorConstraints;
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
 *      MACROS
Packit b099d7
 *************************************************************/
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
 *      GLOBAL DECLARATIONS
Packit b099d7
 *************************************************************/
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
 *       EXTERNAL DECLARATIONS
Packit b099d7
 ************************************************************/
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
 *       STATIC DECLARATIONS
Packit b099d7
 ************************************************************/
Packit b099d7
Packit b099d7
extern XmFontSelectorClassRec	xmFontSelectorClassRec;
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
}	/* Closes scope of 'extern "C"' declaration */
Packit b099d7
#endif
Packit b099d7
Packit b099d7
#if defined(VMS) || defined(__VMS)
Packit b099d7
#include <X11/apienvrst.h>
Packit b099d7
#endif
Packit b099d7
Packit b099d7
#endif	/* _XmFontSelectorP_h - DON'T ADD STUFF AFTER THIS #endif */