Xlcint.h revision 1ab64890
11ab64890Smrg/* $Xorg: Xlcint.h,v 1.4 2001/02/09 02:03:38 xorgcvs Exp $ */
21ab64890Smrg/*
31ab64890Smrg
41ab64890SmrgCopyright 1991, 1998  The Open Group
51ab64890Smrg
61ab64890SmrgPermission to use, copy, modify, distribute, and sell this software and its
71ab64890Smrgdocumentation for any purpose is hereby granted without fee, provided that
81ab64890Smrgthe above copyright notice appear in all copies and that both that
91ab64890Smrgcopyright notice and this permission notice appear in supporting
101ab64890Smrgdocumentation.
111ab64890Smrg
121ab64890SmrgThe above copyright notice and this permission notice shall be included
131ab64890Smrgin all copies or substantial portions of the Software.
141ab64890Smrg
151ab64890SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
161ab64890SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
171ab64890SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
181ab64890SmrgIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
191ab64890SmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
201ab64890SmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
211ab64890SmrgOTHER DEALINGS IN THE SOFTWARE.
221ab64890Smrg
231ab64890SmrgExcept as contained in this notice, the name of The Open Group shall
241ab64890Smrgnot be used in advertising or otherwise to promote the sale, use or
251ab64890Smrgother dealings in this Software without prior written authorization
261ab64890Smrgfrom The Open Group.
271ab64890Smrg
281ab64890Smrg*/
291ab64890Smrg/* $XFree86: xc/lib/X11/Xlcint.h,v 3.16 2003/04/17 02:06:31 dawes Exp $ */
301ab64890Smrg
311ab64890Smrg/*
321ab64890Smrg * Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
331ab64890Smrg *                      and Nippon Telegraph and Telephone Corporation
341ab64890Smrg * Copyright 1991 by the Open Software Foundation
351ab64890Smrg * Copyright 1993 by the TOSHIBA Corp.
361ab64890Smrg * Copyright 1993, 1994 by Sony Corporation
371ab64890Smrg * Copyright 1993, 1994 by the FUJITSU LIMITED
381ab64890Smrg *
391ab64890Smrg * Permission to use, copy, modify, distribute, and sell this software and its
401ab64890Smrg * documentation for any purpose is hereby granted without fee, provided that
411ab64890Smrg * the above copyright notice appear in all copies and that both that
421ab64890Smrg * copyright notice and this permission notice appear in supporting
431ab64890Smrg * documentation, and that the names of OMRON, NTT Software, NTT, Open
441ab64890Smrg * Software Foundation, and Sony Corporation not be used in advertising
451ab64890Smrg * or publicity pertaining to distribution of the software without specific,
461ab64890Smrg * written prior permission. OMRON, NTT Software, NTT, Open Software
471ab64890Smrg * Foundation, and Sony Corporation  make no representations about the
481ab64890Smrg * suitability of this software for any purpose.  It is provided "as is"
491ab64890Smrg * without express or implied warranty.
501ab64890Smrg *
511ab64890Smrg * OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, AND SONY
521ab64890Smrg * CORPORATION DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
531ab64890Smrg * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
541ab64890Smrg * SHALL OMRON, NTT SOFTWARE, NTT, OPEN SOFTWARE FOUNDATION, OR SONY
551ab64890Smrg * CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
561ab64890Smrg * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
571ab64890Smrg * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
581ab64890Smrg * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
591ab64890Smrg *
601ab64890Smrg *	Authors: Li Yuhong		OMRON Corporation
611ab64890Smrg *		 Tatsuya Kato		NTT Software Corporation
621ab64890Smrg *		 Hiroshi Kuribayashi	OMRON Coproration
631ab64890Smrg *		 Muneiyoshi Suzuki	Nippon Telegraph and Telephone Co.
641ab64890Smrg *
651ab64890Smrg *		 M. Collins		OSF
661ab64890Smrg *		 Katsuhisa Yano		TOSHIBA Corp.
671ab64890Smrg *               Makoto Wakamatsu       Sony Corporation
681ab64890Smrg *               Takashi Fujiwara	FUJITSU LIMITED
691ab64890Smrg */
701ab64890Smrg
711ab64890Smrg
721ab64890Smrg#ifndef	_XLCINT_H_
731ab64890Smrg#define	_XLCINT_H_
741ab64890Smrg
751ab64890Smrg#ifndef _XP_PRINT_SERVER_
761ab64890Smrg
771ab64890Smrg#include <X11/Xresource.h>
781ab64890Smrg#include <X11/Xutil.h>
791ab64890Smrg#include <stdarg.h>
801ab64890Smrg
811ab64890Smrgtypedef Bool (*XFilterEventProc)(
821ab64890Smrg    Display*		/* display */,
831ab64890Smrg    Window		/* window */,
841ab64890Smrg    XEvent*		/* event */,
851ab64890Smrg    XPointer		/* client_data */
861ab64890Smrg);
871ab64890Smrg
881ab64890Smrgtypedef struct _XIMFilter {
891ab64890Smrg    struct _XIMFilter *next;
901ab64890Smrg    Window window;
911ab64890Smrg    unsigned long event_mask;
921ab64890Smrg    int start_type, end_type;
931ab64890Smrg    XFilterEventProc filter;
941ab64890Smrg    XPointer client_data;
951ab64890Smrg} XFilterEventRec, *XFilterEventList;
961ab64890Smrg
971ab64890Smrgtypedef struct {
981ab64890Smrg    char    *name;
991ab64890Smrg    XPointer value;
1001ab64890Smrg} XIMArg;
1011ab64890Smrg
1021ab64890Smrg#ifdef offsetof
1031ab64890Smrg#define XOffsetOf(s_type,field) offsetof(s_type,field)
1041ab64890Smrg#else
1051ab64890Smrg#define XOffsetOf(s_type,field) ((unsigned int)&(((s_type*)NULL)->field))
1061ab64890Smrg#endif
1071ab64890Smrg
1081ab64890Smrg#define XIMNumber(arr) ((unsigned int) (sizeof(arr) / sizeof(arr[0])))
1091ab64890Smrg
1101ab64890Smrg/*
1111ab64890Smrg * define secondary data structs which are part of Input Methods
1121ab64890Smrg * and Input Context
1131ab64890Smrg */
1141ab64890Smrgtypedef struct {
1151ab64890Smrg    const char		*resource_name;		/* Resource string */
1161ab64890Smrg    XrmQuark		xrm_name;		/* Resource name quark */
1171ab64890Smrg    int			resource_size;		/* Size in bytes of data */
1181ab64890Smrg    long		resource_offset;	/* Offset from base */
1191ab64890Smrg    unsigned short 	mode;			/* Read Write Permission */
1201ab64890Smrg    unsigned short 	id;			/* Input Method Protocol */
1211ab64890Smrg} XIMResource, *XIMResourceList;
1221ab64890Smrg
1231ab64890Smrg/*
1241ab64890Smrg * data block describing the visual attributes associated with
1251ab64890Smrg * an input context
1261ab64890Smrg */
1271ab64890Smrgtypedef struct {
1281ab64890Smrg    XRectangle		area;
1291ab64890Smrg    XRectangle		area_needed;
1301ab64890Smrg    XPoint		spot_location;
1311ab64890Smrg    Colormap		colormap;
1321ab64890Smrg    Atom		std_colormap;
1331ab64890Smrg    unsigned long	foreground;
1341ab64890Smrg    unsigned long	background;
1351ab64890Smrg    Pixmap		background_pixmap;
1361ab64890Smrg    XFontSet            fontset;
1371ab64890Smrg    int	       		line_spacing;
1381ab64890Smrg    Cursor		cursor;
1391ab64890Smrg    XICCallback		start_callback;
1401ab64890Smrg    XICCallback		done_callback;
1411ab64890Smrg    XICCallback		draw_callback;
1421ab64890Smrg    XICCallback		caret_callback;
1431ab64890Smrg    XIMPreeditState	preedit_state;
1441ab64890Smrg    XICCallback		state_notify_callback;
1451ab64890Smrg} ICPreeditAttributes, *ICPreeditAttributesPtr;
1461ab64890Smrg
1471ab64890Smrgtypedef struct {
1481ab64890Smrg    XRectangle		area;
1491ab64890Smrg    XRectangle		area_needed;
1501ab64890Smrg    Colormap		colormap;
1511ab64890Smrg    Atom		std_colormap;
1521ab64890Smrg    unsigned long	foreground;
1531ab64890Smrg    unsigned long	background;
1541ab64890Smrg    Pixmap		background_pixmap;
1551ab64890Smrg    XFontSet            fontset;
1561ab64890Smrg    int	       		line_spacing;
1571ab64890Smrg    Cursor		cursor;
1581ab64890Smrg    XICCallback		start_callback;
1591ab64890Smrg    XICCallback		done_callback;
1601ab64890Smrg    XICCallback		draw_callback;
1611ab64890Smrg} ICStatusAttributes, *ICStatusAttributesPtr;
1621ab64890Smrg
1631ab64890Smrg#endif /* !_XP_PRINT_SERVER_ */
1641ab64890Smrg
1651ab64890Smrg/*
1661ab64890Smrg * Methods for Xrm parsing
1671ab64890Smrg */
1681ab64890Smrg
1691ab64890Smrg/* The state is a pointer to an object created by the locale's
1701ab64890Smrg   init_parse_info function (default: _XrmDefaultInitParseInfo). */
1711ab64890Smrg
1721ab64890Smrg/* Sets the state to the initial state.
1731ab64890Smrg   Initiates a sequence of calls to the XmbCharProc. */
1741ab64890Smrgtypedef void (*XmbInitProc)(
1751ab64890Smrg    XPointer		state
1761ab64890Smrg);
1771ab64890Smrg
1781ab64890Smrg/* Transforms one multibyte character, starting at str, and return a 'char'
1791ab64890Smrg   in the same parsing class (not a wide character!). Returns the number of
1801ab64890Smrg   consumed bytes in *lenp. */
1811ab64890Smrgtypedef char (*XmbCharProc)(
1821ab64890Smrg    XPointer		state,
1831ab64890Smrg    const char *	str,
1841ab64890Smrg    int*		lenp
1851ab64890Smrg);
1861ab64890Smrg
1871ab64890Smrg/* Terminates a sequence of calls to the XmbCharProc. */
1881ab64890Smrgtypedef void (*XmbFinishProc)(
1891ab64890Smrg    XPointer		state
1901ab64890Smrg);
1911ab64890Smrg
1921ab64890Smrg/* Returns the name of the state's locale, as a static string. */
1931ab64890Smrgtypedef const char* (*XlcNameProc)(
1941ab64890Smrg    XPointer		state
1951ab64890Smrg);
1961ab64890Smrg
1971ab64890Smrg/* Frees the state, which was allocated by the locale's init_parse_info
1981ab64890Smrg   function. */
1991ab64890Smrgtypedef void (*XrmDestroyProc)(
2001ab64890Smrg    XPointer		state
2011ab64890Smrg);
2021ab64890Smrg
2031ab64890Smrg/* Set of methods for Xrm parsing. */
2041ab64890Smrgtypedef struct {
2051ab64890Smrg    XmbInitProc		mbinit;
2061ab64890Smrg    XmbCharProc		mbchar;
2071ab64890Smrg    XmbFinishProc	mbfinish;
2081ab64890Smrg    XlcNameProc		lcname;
2091ab64890Smrg    XrmDestroyProc	destroy;
2101ab64890Smrg} XrmMethodsRec;
2111ab64890Smrgtypedef const XrmMethodsRec *XrmMethods;
2121ab64890Smrg
2131ab64890Smrg#ifndef _XP_PRINT_SERVER_
2141ab64890Smrg
2151ab64890Smrgtypedef struct _XLCd *XLCd; /* need forward reference */
2161ab64890Smrg
2171ab64890Smrg/*
2181ab64890Smrg * define an LC, it's methods, and data.
2191ab64890Smrg */
2201ab64890Smrg
2211ab64890Smrgtypedef void (*XCloseLCProc)(
2221ab64890Smrg    XLCd		/* lcd */
2231ab64890Smrg);
2241ab64890Smrg
2251ab64890Smrgtypedef char* (*XlcMapModifiersProc)(
2261ab64890Smrg    XLCd		/* lcd */,
2271ab64890Smrg    _Xconst char*	/* user_mods */,
2281ab64890Smrg    _Xconst char*	/* prog_mods */
2291ab64890Smrg);
2301ab64890Smrg
2311ab64890Smrgtypedef XOM (*XOpenOMProc)(
2321ab64890Smrg    XLCd		/* lcd */,
2331ab64890Smrg    Display*		/* display */,
2341ab64890Smrg    XrmDatabase		/* rdb */,
2351ab64890Smrg    _Xconst char*	/* res_name */,
2361ab64890Smrg    _Xconst char*	/* res_class */
2371ab64890Smrg);
2381ab64890Smrg
2391ab64890Smrgtypedef XIM (*XOpenIMProc)(
2401ab64890Smrg    XLCd		/* lcd */,
2411ab64890Smrg    Display*		/* display */,
2421ab64890Smrg    XrmDatabase		/* rdb */,
2431ab64890Smrg    char*		/* res_name */,
2441ab64890Smrg    char*		/* res_class */
2451ab64890Smrg);
2461ab64890Smrg
2471ab64890Smrgtypedef Bool (*XRegisterIMInstantiateCBProc)(
2481ab64890Smrg    XLCd		/* lcd */,
2491ab64890Smrg    Display*		/* display */,
2501ab64890Smrg    XrmDatabase		/* rdb */,
2511ab64890Smrg    char*		/* res_name */,
2521ab64890Smrg    char*		/* res_class */,
2531ab64890Smrg    XIDProc		/* callback */,
2541ab64890Smrg    XPointer		/* client_data */
2551ab64890Smrg);
2561ab64890Smrg
2571ab64890Smrgtypedef Bool (*XUnregisterIMInstantiateCBProc)(
2581ab64890Smrg    XLCd		/* lcd */,
2591ab64890Smrg    Display*		/* display */,
2601ab64890Smrg    XrmDatabase		/* rdb */,
2611ab64890Smrg    char*		/* res_name */,
2621ab64890Smrg    char*		/* res_class */,
2631ab64890Smrg    XIDProc		/* callback */,
2641ab64890Smrg    XPointer		/* client_data */
2651ab64890Smrg);
2661ab64890Smrg
2671ab64890Smrgtypedef XrmMethods (*XrmInitParseInfoProc)(
2681ab64890Smrg    XLCd		/* lcd */,
2691ab64890Smrg    XPointer*		/* state */
2701ab64890Smrg);
2711ab64890Smrg
2721ab64890Smrgtypedef int (*XmbTextPropertyToTextListProc)(
2731ab64890Smrg    XLCd		lcd,
2741ab64890Smrg    Display*		display,
2751ab64890Smrg    const XTextProperty* text_prop,
2761ab64890Smrg    char***		list_return,
2771ab64890Smrg    int*		count_return
2781ab64890Smrg);
2791ab64890Smrg
2801ab64890Smrgtypedef int (*XwcTextPropertyToTextListProc)(
2811ab64890Smrg    XLCd		lcd,
2821ab64890Smrg    Display*		display,
2831ab64890Smrg    const XTextProperty* text_prop,
2841ab64890Smrg    wchar_t***		list_return,
2851ab64890Smrg    int*		count_return
2861ab64890Smrg);
2871ab64890Smrg
2881ab64890Smrgtypedef int (*XmbTextListToTextPropertyProc)(
2891ab64890Smrg    XLCd		lcd,
2901ab64890Smrg    Display*		display,
2911ab64890Smrg    char**		list,
2921ab64890Smrg    int			count,
2931ab64890Smrg    XICCEncodingStyle	style,
2941ab64890Smrg    XTextProperty*	text_prop_return
2951ab64890Smrg);
2961ab64890Smrg
2971ab64890Smrgtypedef int (*XwcTextListToTextPropertyProc)(
2981ab64890Smrg    XLCd		lcd,
2991ab64890Smrg    Display*		display,
3001ab64890Smrg    wchar_t**		list,
3011ab64890Smrg    int			count,
3021ab64890Smrg    XICCEncodingStyle	style,
3031ab64890Smrg    XTextProperty*	text_prop_return
3041ab64890Smrg);
3051ab64890Smrg
3061ab64890Smrgtypedef void (*XwcFreeStringListProc)(
3071ab64890Smrg    XLCd		lcd,
3081ab64890Smrg    wchar_t**		list
3091ab64890Smrg);
3101ab64890Smrg
3111ab64890Smrgtypedef const char* (*XDefaultStringProc)(
3121ab64890Smrg    XLCd		lcd
3131ab64890Smrg);
3141ab64890Smrg
3151ab64890Smrgtypedef struct {
3161ab64890Smrg    XCloseLCProc			close;
3171ab64890Smrg    XlcMapModifiersProc			map_modifiers;
3181ab64890Smrg    XOpenOMProc				open_om;
3191ab64890Smrg    XOpenIMProc				open_im;
3201ab64890Smrg    XrmInitParseInfoProc		init_parse_info;
3211ab64890Smrg    XmbTextPropertyToTextListProc	mb_text_prop_to_list;
3221ab64890Smrg    XwcTextPropertyToTextListProc	wc_text_prop_to_list;
3231ab64890Smrg    XmbTextPropertyToTextListProc	utf8_text_prop_to_list;
3241ab64890Smrg    XmbTextListToTextPropertyProc	mb_text_list_to_prop;
3251ab64890Smrg    XwcTextListToTextPropertyProc	wc_text_list_to_prop;
3261ab64890Smrg    XmbTextListToTextPropertyProc	utf8_text_list_to_prop;
3271ab64890Smrg    XwcFreeStringListProc		wc_free_string_list;
3281ab64890Smrg    XDefaultStringProc			default_string;
3291ab64890Smrg    XRegisterIMInstantiateCBProc	register_callback;
3301ab64890Smrg    XUnregisterIMInstantiateCBProc	unregister_callback;
3311ab64890Smrg} XLCdMethodsRec, *XLCdMethods;
3321ab64890Smrg
3331ab64890Smrg
3341ab64890Smrgtypedef struct {
3351ab64890Smrg    char*		name;			/* name of this LC */
3361ab64890Smrg    char*		modifiers;		/* modifiers of locale */
3371ab64890Smrg} XLCdCoreRec, *XLCdCore;
3381ab64890Smrg
3391ab64890Smrg
3401ab64890Smrgtypedef struct _XLCd {
3411ab64890Smrg    XLCdMethods		methods;		/* methods of this LC */
3421ab64890Smrg    XLCdCore		core;			/* data of this LC */
3431ab64890Smrg    XPointer		opaque;			/* LDX specific data */
3441ab64890Smrg} XLCdRec;
3451ab64890Smrg
3461ab64890Smrgtypedef int XlcPosition;
3471ab64890Smrg
3481ab64890Smrg#define XlcHead		0
3491ab64890Smrg#define XlcTail		-1
3501ab64890Smrg
3511ab64890Smrgtypedef struct {
3521ab64890Smrg    char *name;
3531ab64890Smrg    XPointer value;
3541ab64890Smrg} XlcArg, *XlcArgList;
3551ab64890Smrg
3561ab64890Smrgtypedef struct _XlcResource {
3571ab64890Smrg    const char *name;
3581ab64890Smrg    XrmQuark xrm_name;
3591ab64890Smrg    int size;
3601ab64890Smrg    int offset;
3611ab64890Smrg    unsigned long mask;
3621ab64890Smrg} XlcResource, *XlcResourceList;
3631ab64890Smrg
3641ab64890Smrg#define XlcCreateMask	(1L<<0)
3651ab64890Smrg#define XlcDefaultMask	(1L<<1)
3661ab64890Smrg#define XlcGetMask	(1L<<2)
3671ab64890Smrg#define XlcSetMask	(1L<<3)
3681ab64890Smrg#define XlcIgnoreMask	(1L<<4)
3691ab64890Smrg
3701ab64890Smrg#define XlcNumber(arr)	(sizeof(arr) / sizeof(arr[0]))
3711ab64890Smrg
3721ab64890Smrgtypedef Status (*XCloseOMProc)(
3731ab64890Smrg    XOM			/* om */
3741ab64890Smrg);
3751ab64890Smrg
3761ab64890Smrgtypedef char* (*XSetOMValuesProc)(
3771ab64890Smrg    XOM			/* om */,
3781ab64890Smrg    XlcArgList		/* args */,
3791ab64890Smrg    int			/* num_args */
3801ab64890Smrg);
3811ab64890Smrg
3821ab64890Smrgtypedef char* (*XGetOMValuesProc)(
3831ab64890Smrg    XOM			/* om */,
3841ab64890Smrg    XlcArgList		/* args */,
3851ab64890Smrg    int			/* num_args */
3861ab64890Smrg);
3871ab64890Smrg
3881ab64890Smrgtypedef XOC (*XCreateOCProc)(
3891ab64890Smrg    XOM			/* om */,
3901ab64890Smrg    XlcArgList		/* args */,
3911ab64890Smrg    int			/* num_args */
3921ab64890Smrg);
3931ab64890Smrg
3941ab64890Smrgtypedef struct _XOMMethodsRec {
3951ab64890Smrg    XCloseOMProc	close;
3961ab64890Smrg    XSetOMValuesProc	set_values;
3971ab64890Smrg    XGetOMValuesProc	get_values;
3981ab64890Smrg    XCreateOCProc	create_oc;
3991ab64890Smrg} XOMMethodsRec, *XOMMethods;
4001ab64890Smrg
4011ab64890Smrgtypedef struct _XOMCoreRec {
4021ab64890Smrg    XLCd lcd;				/* lcd */
4031ab64890Smrg    Display *display;			/* display */
4041ab64890Smrg    XrmDatabase rdb;			/* database */
4051ab64890Smrg    char *res_name;			/* resource name */
4061ab64890Smrg    char *res_class;			/* resource class */
4071ab64890Smrg    XOC oc_list;			/* xoc list */
4081ab64890Smrg    XlcResourceList resources;		/* xom resources */
4091ab64890Smrg    int num_resources;			/* number of xom resources */
4101ab64890Smrg    XOMCharSetList required_charset;	/* required charset list */
4111ab64890Smrg    XOMOrientation orientation_list;	/* orientation list */
4121ab64890Smrg    Bool directional_dependent;		/* directional-dependent */
4131ab64890Smrg    Bool contextual_drawing;		/* contextual drawing */
4141ab64890Smrg    Bool context_dependent;		/* context-dependent drawing */
4151ab64890Smrg} XOMCoreRec, *XOMCore;
4161ab64890Smrg
4171ab64890Smrgtypedef struct _XOM {
4181ab64890Smrg    XOMMethods methods;
4191ab64890Smrg    XOMCoreRec core;
4201ab64890Smrg} XOMRec;
4211ab64890Smrg
4221ab64890Smrgtypedef void (*XDestroyOCProc)(
4231ab64890Smrg    XOC			/* oc */
4241ab64890Smrg);
4251ab64890Smrg
4261ab64890Smrgtypedef char* (*XSetOCValuesProc)(
4271ab64890Smrg    XOC			/* oc */,
4281ab64890Smrg    XlcArgList		/* args */,
4291ab64890Smrg    int			/* num_args */
4301ab64890Smrg);
4311ab64890Smrg
4321ab64890Smrgtypedef char* (*XGetOCValuesProc)(
4331ab64890Smrg    XOC			/* oc */,
4341ab64890Smrg    XlcArgList		/* args */,
4351ab64890Smrg    int			/* num_args */
4361ab64890Smrg);
4371ab64890Smrg
4381ab64890Smrg/*
4391ab64890Smrg * X Font Sets are an instantiable object, so we define it, the
4401ab64890Smrg * object itself, a method list and data
4411ab64890Smrg */
4421ab64890Smrg
4431ab64890Smrg/*
4441ab64890Smrg * XFontSet object method list
4451ab64890Smrg */
4461ab64890Smrg
4471ab64890Smrgtypedef int (*XmbTextEscapementProc)(
4481ab64890Smrg    XFontSet		/* font_set */,
4491ab64890Smrg    _Xconst char*	/* text */,
4501ab64890Smrg    int			/* text_len */
4511ab64890Smrg);
4521ab64890Smrg
4531ab64890Smrgtypedef int (*XmbTextExtentsProc)(
4541ab64890Smrg    XFontSet		/* font_set */,
4551ab64890Smrg    _Xconst char*	/* text */,
4561ab64890Smrg    int			/* text_len */,
4571ab64890Smrg    XRectangle*		/* overall_ink_extents */,
4581ab64890Smrg    XRectangle*		/* overall_logical_extents */
4591ab64890Smrg);
4601ab64890Smrg
4611ab64890Smrgtypedef Status (*XmbTextPerCharExtentsProc)(
4621ab64890Smrg    XFontSet		/* font_set */,
4631ab64890Smrg    _Xconst char*	/* text */,
4641ab64890Smrg    int			/* text_len */,
4651ab64890Smrg    XRectangle*		/* ink_extents_buffer */,
4661ab64890Smrg    XRectangle*		/* logical_extents_buffer */,
4671ab64890Smrg    int			/* buffer_size */,
4681ab64890Smrg    int*		/* num_chars */,
4691ab64890Smrg    XRectangle*		/* max_ink_extents */,
4701ab64890Smrg    XRectangle*		/* max_logical_extents */
4711ab64890Smrg);
4721ab64890Smrg
4731ab64890Smrgtypedef int (*XmbDrawStringProc)(
4741ab64890Smrg    Display*		/* display */,
4751ab64890Smrg    Drawable		/* drawable */,
4761ab64890Smrg    XFontSet		/* font_set */,
4771ab64890Smrg    GC			/* gc */,
4781ab64890Smrg    int			/* x */,
4791ab64890Smrg    int			/* y */,
4801ab64890Smrg    _Xconst char*	/* text */,
4811ab64890Smrg    int			/* text_len */
4821ab64890Smrg);
4831ab64890Smrg
4841ab64890Smrgtypedef void (*XmbDrawImageStringProc)(
4851ab64890Smrg    Display*		/* display */,
4861ab64890Smrg    Drawable		/* drawable */,
4871ab64890Smrg    XFontSet		/* font_set */,
4881ab64890Smrg    GC			/* gc */,
4891ab64890Smrg    int			/* x */,
4901ab64890Smrg    int			/* y */,
4911ab64890Smrg    _Xconst char*	/* text */,
4921ab64890Smrg    int			/* text_len */
4931ab64890Smrg);
4941ab64890Smrg
4951ab64890Smrgtypedef int (*XwcTextEscapementProc)(
4961ab64890Smrg    XFontSet		/* font_set */,
4971ab64890Smrg    _Xconst wchar_t*	/* text */,
4981ab64890Smrg    int			/* text_len */
4991ab64890Smrg);
5001ab64890Smrg
5011ab64890Smrgtypedef int (*XwcTextExtentsProc)(
5021ab64890Smrg    XFontSet		/* font_set */,
5031ab64890Smrg    _Xconst wchar_t*	/* text */,
5041ab64890Smrg    int			/* text_len */,
5051ab64890Smrg    XRectangle*		/* overall_ink_extents */,
5061ab64890Smrg    XRectangle*		/* overall_logical_extents */
5071ab64890Smrg);
5081ab64890Smrg
5091ab64890Smrgtypedef Status (*XwcTextPerCharExtentsProc)(
5101ab64890Smrg    XFontSet		/* font_set */,
5111ab64890Smrg    _Xconst wchar_t*	/* text */,
5121ab64890Smrg    int			/* text_len */,
5131ab64890Smrg    XRectangle*		/* ink_extents_buffer */,
5141ab64890Smrg    XRectangle*		/* logical_extents_buffer */,
5151ab64890Smrg    int			/* buffer_size */,
5161ab64890Smrg    int*		/* num_chars */,
5171ab64890Smrg    XRectangle*		/* max_ink_extents */,
5181ab64890Smrg    XRectangle*		/* max_logical_extents */
5191ab64890Smrg);
5201ab64890Smrg
5211ab64890Smrgtypedef int (*XwcDrawStringProc)(
5221ab64890Smrg    Display*		/* display */,
5231ab64890Smrg    Drawable		/* drawable */,
5241ab64890Smrg    XFontSet		/* font_set */,
5251ab64890Smrg    GC			/* gc */,
5261ab64890Smrg    int			/* x */,
5271ab64890Smrg    int			/* y */,
5281ab64890Smrg    _Xconst wchar_t*	/* text */,
5291ab64890Smrg    int			/* text_len */
5301ab64890Smrg);
5311ab64890Smrg
5321ab64890Smrgtypedef void (*XwcDrawImageStringProc)(
5331ab64890Smrg    Display*		/* display */,
5341ab64890Smrg    Drawable		/* drawable */,
5351ab64890Smrg    XFontSet		/* font_set */,
5361ab64890Smrg    GC			/* gc */,
5371ab64890Smrg    int			/* x */,
5381ab64890Smrg    int			/* y */,
5391ab64890Smrg    _Xconst wchar_t*	/* text */,
5401ab64890Smrg    int			/* text_len */
5411ab64890Smrg);
5421ab64890Smrg
5431ab64890Smrgtypedef struct {
5441ab64890Smrg    XDestroyOCProc 		destroy;
5451ab64890Smrg    XSetOCValuesProc 		set_values;
5461ab64890Smrg    XGetOCValuesProc 		get_values;
5471ab64890Smrg
5481ab64890Smrg    /* multi-byte text drawing methods */
5491ab64890Smrg
5501ab64890Smrg    XmbTextEscapementProc	mb_escapement;
5511ab64890Smrg    XmbTextExtentsProc		mb_extents;
5521ab64890Smrg    XmbTextPerCharExtentsProc	mb_extents_per_char;
5531ab64890Smrg    XmbDrawStringProc		mb_draw_string;
5541ab64890Smrg    XmbDrawImageStringProc	mb_draw_image_string;
5551ab64890Smrg
5561ab64890Smrg    /* wide character text drawing methods */
5571ab64890Smrg
5581ab64890Smrg    XwcTextEscapementProc	wc_escapement;
5591ab64890Smrg    XwcTextExtentsProc		wc_extents;
5601ab64890Smrg    XwcTextPerCharExtentsProc	wc_extents_per_char;
5611ab64890Smrg    XwcDrawStringProc		wc_draw_string;
5621ab64890Smrg    XwcDrawImageStringProc	wc_draw_image_string;
5631ab64890Smrg
5641ab64890Smrg    /* UTF-8 text drawing methods */
5651ab64890Smrg
5661ab64890Smrg    XmbTextEscapementProc	utf8_escapement;
5671ab64890Smrg    XmbTextExtentsProc		utf8_extents;
5681ab64890Smrg    XmbTextPerCharExtentsProc	utf8_extents_per_char;
5691ab64890Smrg    XmbDrawStringProc		utf8_draw_string;
5701ab64890Smrg    XmbDrawImageStringProc	utf8_draw_image_string;
5711ab64890Smrg} XOCMethodsRec, *XOCMethods;
5721ab64890Smrg
5731ab64890Smrg
5741ab64890Smrg/*
5751ab64890Smrg * XOC independent data
5761ab64890Smrg */
5771ab64890Smrg
5781ab64890Smrgtypedef struct {
5791ab64890Smrg    XOM om;				/* XOM */
5801ab64890Smrg    XOC next;				/* next XOC */
5811ab64890Smrg    XlcResourceList resources;		/* xoc resources */
5821ab64890Smrg    int num_resources;			/* number of xoc resources */
5831ab64890Smrg    char *base_name_list;     		/* base font name list */
5841ab64890Smrg    Bool om_automatic;			/* OM Automatic */
5851ab64890Smrg    XOMFontInfo font_info;		/* font info */
5861ab64890Smrg    XFontSetExtents font_set_extents;  	/* font set extents */
5871ab64890Smrg    char *default_string;     		/* default string */
5881ab64890Smrg    XOMCharSetList missing_list;	/* missing charset list */
5891ab64890Smrg    XOrientation orientation;		/* orientation */
5901ab64890Smrg    char *res_name;			/* resource name */
5911ab64890Smrg    char *res_class;			/* resource class */
5921ab64890Smrg} XOCCoreRec, *XOCCore;
5931ab64890Smrg
5941ab64890Smrgtypedef struct _XOC {
5951ab64890Smrg    XOCMethods methods;
5961ab64890Smrg    XOCCoreRec core;
5971ab64890Smrg} XOCRec;
5981ab64890Smrg
5991ab64890Smrg
6001ab64890Smrg/*
6011ab64890Smrg * X Input Managers are an instantiable object, so we define it, the
6021ab64890Smrg * object itself, a method list and data.
6031ab64890Smrg */
6041ab64890Smrg
6051ab64890Smrg/*
6061ab64890Smrg * an Input Manager object method list
6071ab64890Smrg */
6081ab64890Smrgtypedef struct {
6091ab64890Smrg    Status (*close)(
6101ab64890Smrg	XIM
6111ab64890Smrg	);
6121ab64890Smrg    char* (*set_values)(
6131ab64890Smrg	XIM, XIMArg*
6141ab64890Smrg	);
6151ab64890Smrg    char* (*get_values)(
6161ab64890Smrg	XIM, XIMArg*
6171ab64890Smrg	);
6181ab64890Smrg    XIC (*create_ic)(
6191ab64890Smrg	XIM, XIMArg*
6201ab64890Smrg	);
6211ab64890Smrg    int (*ctstombs)(
6221ab64890Smrg	XIM, char*, int, char*, int, Status *
6231ab64890Smrg	);
6241ab64890Smrg    int (*ctstowcs)(
6251ab64890Smrg	XIM, char*, int, wchar_t*, int, Status *
6261ab64890Smrg	);
6271ab64890Smrg    int (*ctstoutf8)(
6281ab64890Smrg	XIM, char*, int, char*, int, Status *
6291ab64890Smrg	);
6301ab64890Smrg} XIMMethodsRec, *XIMMethods;
6311ab64890Smrg
6321ab64890Smrg/*
6331ab64890Smrg * Input Manager LC independent data
6341ab64890Smrg */
6351ab64890Smrgtypedef struct {
6361ab64890Smrg    XLCd		lcd;			/* LC of this input method */
6371ab64890Smrg    XIC			ic_chain;		/* list of ICs for this IM */
6381ab64890Smrg
6391ab64890Smrg    Display *		display;               	/* display */
6401ab64890Smrg    XrmDatabase 	rdb;
6411ab64890Smrg    char *		res_name;
6421ab64890Smrg    char *		res_class;
6431ab64890Smrg
6441ab64890Smrg    XIMValuesList	*im_values_list;
6451ab64890Smrg    XIMValuesList	*ic_values_list;
6461ab64890Smrg    XIMStyles		*styles;
6471ab64890Smrg    XIMCallback		 destroy_callback;
6481ab64890Smrg    char *		im_name;		/* XIMMODIFIER name */
6491ab64890Smrg    XIMResourceList	im_resources;		/* compiled IM resource list */
6501ab64890Smrg    unsigned int	im_num_resources;
6511ab64890Smrg    XIMResourceList	ic_resources;		/* compiled IC resource list */
6521ab64890Smrg    unsigned int	ic_num_resources;
6531ab64890Smrg    Bool		visible_position;
6541ab64890Smrg} XIMCoreRec, *XIMCore;
6551ab64890Smrg
6561ab64890Smrg
6571ab64890Smrg
6581ab64890Smrg/*
6591ab64890Smrg * An X Input Manager (IM).  Implementations may need to extend this data
6601ab64890Smrg * structure to accomodate additional data, state information etc.
6611ab64890Smrg */
6621ab64890Smrgtypedef struct _XIM {
6631ab64890Smrg    XIMMethods		methods;		/* method list of this IM */
6641ab64890Smrg    XIMCoreRec		core;			/* data of this IM */
6651ab64890Smrg} XIMRec;
6661ab64890Smrg
6671ab64890Smrg
6681ab64890Smrg
6691ab64890Smrg/*
6701ab64890Smrg * X Input Contexts (IC) are an instantiable object, so we define it, the
6711ab64890Smrg * object itself, a method list and data for this object
6721ab64890Smrg */
6731ab64890Smrg
6741ab64890Smrg/*
6751ab64890Smrg * Input Context method list
6761ab64890Smrg */
6771ab64890Smrgtypedef struct {
6781ab64890Smrg    void (*destroy)(
6791ab64890Smrg	XIC
6801ab64890Smrg	);
6811ab64890Smrg    void (*set_focus)(
6821ab64890Smrg	XIC
6831ab64890Smrg	);
6841ab64890Smrg    void (*unset_focus)(
6851ab64890Smrg	XIC
6861ab64890Smrg	);
6871ab64890Smrg    char* (*set_values)(
6881ab64890Smrg	XIC, XIMArg*
6891ab64890Smrg	);
6901ab64890Smrg    char* (*get_values)(
6911ab64890Smrg	XIC, XIMArg*
6921ab64890Smrg	);
6931ab64890Smrg    char* (*mb_reset)(
6941ab64890Smrg	XIC
6951ab64890Smrg	);
6961ab64890Smrg    wchar_t* (*wc_reset)(
6971ab64890Smrg	XIC
6981ab64890Smrg	);
6991ab64890Smrg    char* (*utf8_reset)(
7001ab64890Smrg	XIC
7011ab64890Smrg	);
7021ab64890Smrg    int (*mb_lookup_string)(
7031ab64890Smrg	XIC, XKeyEvent*, char*, int, KeySym*, Status*
7041ab64890Smrg	);
7051ab64890Smrg    int (*wc_lookup_string)(
7061ab64890Smrg	XIC, XKeyEvent*, wchar_t*, int, KeySym*, Status*
7071ab64890Smrg	);
7081ab64890Smrg    int (*utf8_lookup_string)(
7091ab64890Smrg	XIC, XKeyEvent*, char*, int, KeySym*, Status*
7101ab64890Smrg	);
7111ab64890Smrg} XICMethodsRec, *XICMethods;
7121ab64890Smrg
7131ab64890Smrg
7141ab64890Smrg/*
7151ab64890Smrg * Input Context LC independent data
7161ab64890Smrg */
7171ab64890Smrgtypedef struct {
7181ab64890Smrg    XIM			im;			/* XIM this IC belongs too */
7191ab64890Smrg    XIC			next;			/* linked list of ICs for IM */
7201ab64890Smrg
7211ab64890Smrg    Window		client_window;		/* window IM can use for */
7221ab64890Smrg						/* display or subwindows */
7231ab64890Smrg    XIMStyle		input_style;		/* IM's input style */
7241ab64890Smrg    Window		focus_window;		/* where key events go */
7251ab64890Smrg    unsigned long	filter_events;		/* event mask from IM */
7261ab64890Smrg    XICCallback		geometry_callback;	/* client callback */
7271ab64890Smrg    char *		res_name;
7281ab64890Smrg    char *		res_class;
7291ab64890Smrg
7301ab64890Smrg    XICCallback		destroy_callback;
7311ab64890Smrg    XICCallback		string_conversion_callback;
7321ab64890Smrg    XIMStringConversionText	 string_conversion;
7331ab64890Smrg    XIMResetState	reset_state;
7341ab64890Smrg    XIMHotKeyTriggers  *hotkey;
7351ab64890Smrg    XIMHotKeyState	hotkey_state;
7361ab64890Smrg
7371ab64890Smrg    ICPreeditAttributes	preedit_attr;		/* visuals of preedit area */
7381ab64890Smrg    ICStatusAttributes	status_attr;		/* visuals of status area */
7391ab64890Smrg} XICCoreRec, *XICCore;
7401ab64890Smrg
7411ab64890Smrg
7421ab64890Smrg/*
7431ab64890Smrg * an Input Context.  Implementations may need to extend this data
7441ab64890Smrg * structure to accomodate additional data, state information etc.
7451ab64890Smrg */
7461ab64890Smrgtypedef struct _XIC {
7471ab64890Smrg    XICMethods		methods;		/* method list of this IC */
7481ab64890Smrg    XICCoreRec		core;			/* data of this IC */
7491ab64890Smrg} XICRec;
7501ab64890Smrg
7511ab64890Smrg
7521ab64890Smrg/* If the argument 'name' is appropriate for this loader, it instantiates an
7531ab64890Smrg   XLCd object with appropriate locale methods and returns it. May return
7541ab64890Smrg   NULL; in this case, the remaining loaders are tried. */
7551ab64890Smrgtypedef XLCd (*XLCdLoadProc)(
7561ab64890Smrg    const char*		name
7571ab64890Smrg);
7581ab64890Smrg
7591ab64890Smrg_XFUNCPROTOBEGIN
7601ab64890Smrg
7611ab64890Smrgextern XLCd _XOpenLC(
7621ab64890Smrg    char*		name
7631ab64890Smrg);
7641ab64890Smrg
7651ab64890Smrgextern void _XCloseLC(
7661ab64890Smrg    XLCd		lcd
7671ab64890Smrg);
7681ab64890Smrg
7691ab64890Smrgextern XLCd _XlcCurrentLC (void);
7701ab64890Smrg
7711ab64890Smrgextern Bool _XlcValidModSyntax(
7721ab64890Smrg    const char*		mods,
7731ab64890Smrg    const char* const *	valid
7741ab64890Smrg);
7751ab64890Smrg
7761ab64890Smrgextern char *_XlcDefaultMapModifiers(
7771ab64890Smrg    XLCd		lcd,
7781ab64890Smrg    _Xconst char*		user_mods,
7791ab64890Smrg    _Xconst char*		prog_mods
7801ab64890Smrg);
7811ab64890Smrg
7821ab64890Smrgextern void _XIMCompileResourceList(
7831ab64890Smrg    XIMResourceList	/* res */,
7841ab64890Smrg    unsigned int	/* num_res */
7851ab64890Smrg);
7861ab64890Smrg
7871ab64890Smrgextern void _XCopyToArg(
7881ab64890Smrg    XPointer		/* src */,
7891ab64890Smrg    XPointer*		/* dst */,
7901ab64890Smrg    unsigned int	/* size */
7911ab64890Smrg);
7921ab64890Smrg
7931ab64890Smrgextern char ** _XParseBaseFontNameList(
7941ab64890Smrg    char*		/* str */,
7951ab64890Smrg    int*		/* num */
7961ab64890Smrg);
7971ab64890Smrg
7981ab64890Smrgextern XrmMethods _XrmInitParseInfo(
7991ab64890Smrg	XPointer*	statep
8001ab64890Smrg);
8011ab64890Smrg
8021ab64890Smrgextern void _XRegisterFilterByMask(
8031ab64890Smrg    Display*		/* dpy */,
8041ab64890Smrg    Window		/* window */,
8051ab64890Smrg    unsigned long	/* event_mask */,
8061ab64890Smrg    Bool (*)(
8071ab64890Smrg	     Display*	/* display */,
8081ab64890Smrg	     Window	/* window */,
8091ab64890Smrg	     XEvent*	/* event */,
8101ab64890Smrg	     XPointer	/* client_data */
8111ab64890Smrg	     )		/* filter */,
8121ab64890Smrg    XPointer		/* client_data */
8131ab64890Smrg);
8141ab64890Smrg
8151ab64890Smrgextern void _XRegisterFilterByType(
8161ab64890Smrg    Display*		/* dpy */,
8171ab64890Smrg    Window		/* window */,
8181ab64890Smrg    int			/* start_type */,
8191ab64890Smrg    int			/* end_type */,
8201ab64890Smrg    Bool (*)(
8211ab64890Smrg	     Display*	/* display */,
8221ab64890Smrg	     Window	/* window */,
8231ab64890Smrg	     XEvent*	/* event */,
8241ab64890Smrg	     XPointer	/* client_data */
8251ab64890Smrg	     )		/* filter */,
8261ab64890Smrg    XPointer		/* client_data */
8271ab64890Smrg);
8281ab64890Smrg
8291ab64890Smrgextern void _XUnregisterFilter(
8301ab64890Smrg    Display*		/* dpy */,
8311ab64890Smrg    Window		/* window */,
8321ab64890Smrg    Bool (*)(
8331ab64890Smrg	     Display*	/* display */,
8341ab64890Smrg	     Window	/* window */,
8351ab64890Smrg	     XEvent*	/* event */,
8361ab64890Smrg	     XPointer	/* client_data */
8371ab64890Smrg	     )		/* filter */,
8381ab64890Smrg    XPointer		/* client_data */
8391ab64890Smrg);
8401ab64890Smrg
8411ab64890Smrgextern void _XlcCountVaList(
8421ab64890Smrg    va_list		var,
8431ab64890Smrg    int*		count_return
8441ab64890Smrg);
8451ab64890Smrg
8461ab64890Smrgextern void _XlcVaToArgList(
8471ab64890Smrg    va_list		var,
8481ab64890Smrg    int			count,
8491ab64890Smrg    XlcArgList*		args_return
8501ab64890Smrg);
8511ab64890Smrg
8521ab64890Smrg
8531ab64890Smrgextern void _XlcCopyFromArg(
8541ab64890Smrg    char *		src,
8551ab64890Smrg    char *		dst,
8561ab64890Smrg    int			size
8571ab64890Smrg);
8581ab64890Smrg
8591ab64890Smrgextern void _XlcCopyToArg(
8601ab64890Smrg    char *		src,
8611ab64890Smrg    char **		dst,
8621ab64890Smrg    int			size
8631ab64890Smrg);
8641ab64890Smrg
8651ab64890Smrgextern void _XlcCompileResourceList(
8661ab64890Smrg    XlcResourceList	resources,
8671ab64890Smrg    int			num_resources
8681ab64890Smrg);
8691ab64890Smrg
8701ab64890Smrgextern char *_XlcGetValues(
8711ab64890Smrg    XPointer		base,
8721ab64890Smrg    XlcResourceList	resources,
8731ab64890Smrg    int			num_resources,
8741ab64890Smrg    XlcArgList		args,
8751ab64890Smrg    int			num_args,
8761ab64890Smrg    unsigned long	mask
8771ab64890Smrg);
8781ab64890Smrg
8791ab64890Smrgextern char *_XlcSetValues(
8801ab64890Smrg    XPointer		base,
8811ab64890Smrg    XlcResourceList	resources,
8821ab64890Smrg    int			num_resources,
8831ab64890Smrg    XlcArgList		args,
8841ab64890Smrg    int			num_args,
8851ab64890Smrg    unsigned long	mask
8861ab64890Smrg);
8871ab64890Smrg
8881ab64890Smrg/* documented in i18n/Framework.PS */
8891ab64890Smrgextern void _XlcInitLoader (void);
8901ab64890Smrg
8911ab64890Smrgextern void _XlcDeInitLoader (void);
8921ab64890Smrg
8931ab64890Smrg/* documented in i18n/Framework.PS */
8941ab64890Smrg/* Returns True on success, False on failure. */
8951ab64890Smrgextern Bool _XlcAddLoader(
8961ab64890Smrg    XLCdLoadProc	proc,
8971ab64890Smrg    XlcPosition		position
8981ab64890Smrg);
8991ab64890Smrg
9001ab64890Smrg/* documented in i18n/Framework.PS */
9011ab64890Smrgextern void _XlcRemoveLoader(
9021ab64890Smrg    XLCdLoadProc	proc
9031ab64890Smrg);
9041ab64890Smrg
9051ab64890Smrg/* Registers UTF-8 converters for a non-UTF-8 locale. */
9061ab64890Smrgextern void _XlcAddUtf8Converters(
9071ab64890Smrg    XLCd		lcd
9081ab64890Smrg);
9091ab64890Smrg
9101ab64890Smrg/* Registers UTF-8 converters for a UTF-8 locale. */
9111ab64890Smrgextern void _XlcAddUtf8LocaleConverters(
9121ab64890Smrg    XLCd		lcd
9131ab64890Smrg);
9141ab64890Smrg
9151ab64890Smrg/* The default locale loader. Assumes an ASCII encoding. */
9161ab64890Smrgextern XLCd _XlcDefaultLoader(
9171ab64890Smrg    const char*		name
9181ab64890Smrg);
9191ab64890Smrg
9201ab64890Smrg/* The generic locale loader. Suitable for all encodings except UTF-8.
9211ab64890Smrg   Uses an XLC_LOCALE configuration file. */
9221ab64890Smrgextern XLCd _XlcGenericLoader(
9231ab64890Smrg    const char*		name
9241ab64890Smrg);
9251ab64890Smrg
9261ab64890Smrg/* The UTF-8 locale loader. Suitable for UTF-8 encoding.
9271ab64890Smrg   Uses an XLC_LOCALE configuration file. */
9281ab64890Smrgextern XLCd _XlcUtf8Loader(
9291ab64890Smrg    const char*		name
9301ab64890Smrg);
9311ab64890Smrg
9321ab64890Smrg/* The old EUC locale loader. */
9331ab64890Smrgextern XLCd _XlcEucLoader(
9341ab64890Smrg    const char*		name
9351ab64890Smrg);
9361ab64890Smrg
9371ab64890Smrg/* The old SJIS locale loader. */
9381ab64890Smrgextern XLCd _XlcSjisLoader(
9391ab64890Smrg    const char*		name
9401ab64890Smrg);
9411ab64890Smrg
9421ab64890Smrg/* The old ISO-2022-JP locale loader. */
9431ab64890Smrgextern XLCd _XlcJisLoader(
9441ab64890Smrg    const char*		name
9451ab64890Smrg);
9461ab64890Smrg
9471ab64890Smrgextern XLCd _XlcDynamicLoad(
9481ab64890Smrg    const char*		name
9491ab64890Smrg);
9501ab64890Smrg
9511ab64890Smrg/* The old dynamic loader. */
9521ab64890Smrgextern XLCd _XlcDynamicLoader(
9531ab64890Smrg    const char*		name
9541ab64890Smrg);
9551ab64890Smrg
9561ab64890Smrgextern Bool _XInitDefaultIM(
9571ab64890Smrg    XLCd		lcd
9581ab64890Smrg);
9591ab64890Smrg
9601ab64890Smrgextern Bool _XInitDefaultOM(
9611ab64890Smrg    XLCd		lcd
9621ab64890Smrg);
9631ab64890Smrg
9641ab64890Smrgextern Bool _XInitDynamicIM(
9651ab64890Smrg    XLCd		lcd
9661ab64890Smrg);
9671ab64890Smrg
9681ab64890Smrgextern Bool _XInitDynamicOM(
9691ab64890Smrg    XLCd		lcd
9701ab64890Smrg);
9711ab64890Smrg
9721ab64890Smrg_XFUNCPROTOEND
9731ab64890Smrg
9741ab64890Smrg#endif /* !_XP_PRINT_SERVER_ */
9751ab64890Smrg
9761ab64890Smrg#endif	/* _XLCINT_H_ */
977