xsrc/xfree/xc/lib/X11/XlcPubI.h
2014-11-06 13:19:51 +01:00

302 lines
6.7 KiB
C

/* $Xorg: XlcPubI.h,v 1.4 2000/12/12 12:44:05 coskrey Exp $ */
/*
* Copyright 1992, 1993 by TOSHIBA Corp.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of TOSHIBA not be used in advertising
* or publicity pertaining to distribution of the software without specific,
* written prior permission. TOSHIBA make no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
* TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
* ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
/* $XFree86: xc/lib/X11/XlcPubI.h,v 3.15 2004/02/11 00:30:44 torrey Exp $ */
#ifndef _XLCPUBLICI_H_
#define _XLCPUBLICI_H_
#include "XlcPublic.h"
#define XLC_PUBLIC(lcd, x) (((XLCdPublic) lcd->core)->pub.x)
#define XLC_PUBLIC_PART(lcd) (&(((XLCdPublic) lcd->core)->pub))
#define XLC_PUBLIC_METHODS(lcd) (&(((XLCdPublicMethods) lcd->methods)->pub))
/*
* XLCd public methods
*/
typedef struct _XLCdPublicMethodsRec *XLCdPublicMethods;
typedef XLCd (*XlcPubCreateProc)(
const char* name,
XLCdMethods methods
);
typedef Bool (*XlcPubInitializeProc)(
XLCd lcd
);
typedef void (*XlcPubDestroyProc)(
XLCd lcd
);
typedef char* (*XlcPubGetValuesProc)(
XLCd lcd,
XlcArgList args,
int num_args
);
typedef void (*XlcPubGetResourceProc)(
XLCd lcd,
const char* category,
const char* _class,
char*** value,
int* count
);
typedef struct _XLCdPublicMethodsPart {
XLCdPublicMethods superclass;
XlcPubCreateProc create;
XlcPubInitializeProc initialize;
XlcPubDestroyProc destroy;
XlcPubGetValuesProc get_values;
XlcPubGetResourceProc get_resource;
} XLCdPublicMethodsPart;
typedef struct _XLCdPublicMethodsRec {
XLCdMethodsRec core;
XLCdPublicMethodsPart pub;
} XLCdPublicMethodsRec;
/*
* XLCd public data
*/
typedef struct _XLCdPublicPart {
char *siname; /* for _XlcMapOSLocaleName() */
char *language; /* language part of locale name */
char *territory; /* territory part of locale name */
char *codeset; /* codeset part of locale name */
char *encoding_name; /* encoding name */
int mb_cur_max; /* ANSI C MB_CUR_MAX */
Bool is_state_depend; /* state-depend encoding */
const char *default_string; /* for XDefaultString() */
XPointer xlocale_db;
} XLCdPublicPart;
typedef struct _XLCdPublicRec {
XLCdCoreRec core;
XLCdPublicPart pub;
} XLCdPublicRec, *XLCdPublic;
extern XLCdMethods _XlcPublicMethods;
_XFUNCPROTOBEGIN
extern XLCd _XlcCreateLC(
const char* name,
XLCdMethods methods
);
extern void _XlcDestroyLC(
XLCd lcd
);
/* Fills into a freshly created XlcCharSet the fields that can be inferred
from the ESC sequence. These are side, char_size, set_size. */
extern Bool _XlcParseCharSet(
XlcCharSet charset
);
/* Creates a new XlcCharSet, given its name (including side suffix) and
Compound Text ESC sequence (normally at most 4 bytes). */
extern XlcCharSet _XlcCreateDefaultCharSet(
const char* name,
const char* ct_sequence
);
extern XlcCharSet _XlcAddCT(
const char* name,
const char* ct_sequence
);
extern Bool _XlcInitCTInfo (void);
extern XrmMethods _XrmDefaultInitParseInfo(
XLCd lcd,
XPointer* state
);
extern int _XmbTextPropertyToTextList(
XLCd lcd,
Display* dpy,
const XTextProperty* text_prop,
char*** list_ret,
int* count_ret
);
extern int _XwcTextPropertyToTextList(
XLCd lcd,
Display* dpy,
const XTextProperty* text_prop,
wchar_t*** list_ret,
int* count_ret
);
extern int _Xutf8TextPropertyToTextList(
XLCd lcd,
Display* dpy,
const XTextProperty* text_prop,
char*** list_ret,
int* count_ret
);
extern int _XmbTextListToTextProperty(
XLCd /* lcd */,
Display* /* dpy */,
char** /* list */,
int /* count */,
XICCEncodingStyle /* style */,
XTextProperty* /* text_prop */
);
extern int _XwcTextListToTextProperty(
XLCd /* lcd */,
Display* /* dpy */,
wchar_t** /* list */,
int /* count */,
XICCEncodingStyle /* style */,
XTextProperty* /* text_prop */
);
extern int _Xutf8TextListToTextProperty(
XLCd /* lcd */,
Display* /* dpy */,
char** /* list */,
int /* count */,
XICCEncodingStyle /* style */,
XTextProperty* /* text_prop */
);
extern void _XwcFreeStringList(
XLCd /* lcd */,
wchar_t** /* list */
);
extern int _XlcResolveLocaleName(
const char* lc_name,
XLCdPublicPart* pub
);
extern int _XlcResolveI18NPath(
char* buf,
int buf_len
);
extern char *_XlcLocaleDirName(
char* /* dir_name */,
size_t, /* dir_len */
char* /* lc_name */
);
extern XPointer _XlcCreateLocaleDataBase(
XLCd lcd
);
extern void _XlcDestroyLocaleDataBase(
XLCd lcd
);
extern void _XlcGetLocaleDataBase(
XLCd /* lcd */,
const char* /* category */,
const char* /* name */,
char*** /* value */,
int* /* count */
);
#ifdef X_LOCALE
extern char *
_Xsetlocale(
int category,
_Xconst char *name);
#else
#ifdef __DARWIN__
extern char *
_Xsetlocale(
int category,
_Xconst char *name);
#endif
extern char *_XlcMapOSLocaleName(
char *osname,
char *siname);
#endif
extern int
_Xmbstoutf8(
char *ustr,
const char *str,
int len);
extern int
_Xlcmbstoutf8(
XLCd lcd,
char *ustr,
const char *str,
int len);
extern int
_Xmbstowcs(
wchar_t *wstr,
char *str,
int len);
extern int
_Xlcwcstombs(
XLCd lcd,
char *str,
wchar_t *wstr,
int len);
extern int
_Xlcmbstowcs(
XLCd lcd,
wchar_t *wstr,
char *str,
int len);
extern int
_Xwcstombs(
char *str,
wchar_t *wstr,
int len);
extern int
_Xlcmbtowc(
XLCd lcd,
wchar_t *wstr,
char *str,
int len);
extern int
_Xlcwctomb(
XLCd lcd,
char *str,
wchar_t wc);
extern XPointer
_Utf8GetConvByName(
const char *name);
_XFUNCPROTOEND
#endif /* _XLCPUBLICI_H_ */