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