XomGeneric.h revision 61b2299d
11ab64890Smrg/* $Xorg: XomGeneric.h,v 1.3 2000/08/17 19:45:08 cpqbld Exp $ */ 21ab64890Smrg/* 31ab64890Smrg * Copyright 1992, 1993 by TOSHIBA Corp. 41ab64890Smrg * 51ab64890Smrg * Permission to use, copy, modify, and distribute this software and its 61ab64890Smrg * documentation for any purpose and without fee is hereby granted, provided 71ab64890Smrg * that the above copyright notice appear in all copies and that both that 81ab64890Smrg * copyright notice and this permission notice appear in supporting 91ab64890Smrg * documentation, and that the name of TOSHIBA not be used in advertising 101ab64890Smrg * or publicity pertaining to distribution of the software without specific, 111ab64890Smrg * written prior permission. TOSHIBA make no representations about the 121ab64890Smrg * suitability of this software for any purpose. It is provided "as is" 131ab64890Smrg * without express or implied warranty. 141ab64890Smrg * 151ab64890Smrg * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 161ab64890Smrg * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 171ab64890Smrg * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 181ab64890Smrg * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 191ab64890Smrg * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 201ab64890Smrg * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 211ab64890Smrg * SOFTWARE. 221ab64890Smrg * 231ab64890Smrg * Author: Katsuhisa Yano TOSHIBA Corp. 241ab64890Smrg * mopi@osa.ilab.toshiba.co.jp 251ab64890Smrg */ 261ab64890Smrg/* 271ab64890Smrg * Copyright 1995 by FUJITSU LIMITED 281ab64890Smrg * This is source code modified by FUJITSU LIMITED under the Joint 291ab64890Smrg * Development Agreement for the CDE/Motif PST. 301ab64890Smrg * 311ab64890Smrg * Modifier: Takanori Tateno FUJITSU LIMITED 321ab64890Smrg * 331ab64890Smrg */ 341ab64890Smrg/* $XFree86: xc/lib/X11/XomGeneric.h,v 1.5 2003/04/13 19:22:19 dawes Exp $ */ 351ab64890Smrg 361ab64890Smrg#ifndef _XOMGENERIC_H_ 371ab64890Smrg#define _XOMGENERIC_H_ 381ab64890Smrg 391ab64890Smrg#include "XlcPublic.h" 401ab64890Smrg 411ab64890Smrg#define XOM_GENERIC(om) (&((XOMGeneric) om)->gen) 421ab64890Smrg#define XOC_GENERIC(font_set) (&((XOCGeneric) font_set)->gen) 431ab64890Smrg 441ab64890Smrg/* For VW/UDC */ 451ab64890Smrgtypedef struct _CodeRangeRec { 461ab64890Smrg unsigned long start; 471ab64890Smrg unsigned long end; 481ab64890Smrg unsigned long dmy1; 491ab64890Smrg unsigned long dmy2; 501ab64890Smrg} CodeRangeRec, *CodeRange; 511ab64890Smrg 521ab64890Smrgtypedef struct _VRotateRec { 531ab64890Smrg char *charset_name; /* Charset name */ 541ab64890Smrg XlcSide side; /* Encoding side */ 551ab64890Smrg int num_cr; 561ab64890Smrg CodeRange code_range; 571ab64890Smrg char *xlfd_name; 581ab64890Smrg XFontStruct *font; 591ab64890Smrg} VRotateRec, *VRotate; 601ab64890Smrg 611ab64890Smrgtypedef enum { 621ab64890Smrg XOMMultiByte, 631ab64890Smrg XOMWideChar, 641ab64890Smrg XOMUtf8String 651ab64890Smrg} XOMTextType; 661ab64890Smrg 671ab64890Smrgtypedef struct _FontDataRec { 681ab64890Smrg char *name; 691ab64890Smrg XlcSide side; 701ab64890Smrg /* For VW/UDC */ 711ab64890Smrg int scopes_num; 721ab64890Smrg FontScope scopes; 731ab64890Smrg char *xlfd_name; 741ab64890Smrg XFontStruct *font; 751ab64890Smrg} FontDataRec, *FontData; 761ab64890Smrg 771ab64890Smrg#define VROTATE_NONE 0 781ab64890Smrg#define VROTATE_PART 1 791ab64890Smrg#define VROTATE_ALL 2 801ab64890Smrg 811ab64890Smrgtypedef struct _OMDataRec { 821ab64890Smrg int charset_count; 831ab64890Smrg XlcCharSet *charset_list; 841ab64890Smrg int font_data_count; 851ab64890Smrg FontData font_data; 861ab64890Smrg /* For VW/UDC */ 871ab64890Smrg int substitute_num; 881ab64890Smrg FontData substitute; 891ab64890Smrg /* Vertical Writing */ 901ab64890Smrg int vmap_num; 911ab64890Smrg FontData vmap; 921ab64890Smrg int vrotate_type; 931ab64890Smrg int vrotate_num; 941ab64890Smrg CodeRange vrotate; 951ab64890Smrg} OMDataRec, *OMData; 961ab64890Smrg 971ab64890Smrgtypedef struct _XOMGenericPart { 981ab64890Smrg int data_num; 991ab64890Smrg OMData data; 1001ab64890Smrg Bool on_demand_loading; 1011ab64890Smrg char *object_name; 1021ab64890Smrg} XOMGenericPart; 1031ab64890Smrg 1041ab64890Smrgtypedef struct _XOMGenericRec { 1051ab64890Smrg XOMMethods methods; 1061ab64890Smrg XOMCoreRec core; 1071ab64890Smrg XOMGenericPart gen; 1081ab64890Smrg} XOMGenericRec, *XOMGeneric; 1091ab64890Smrg 1101ab64890Smrg/* 1111ab64890Smrg * XOC dependent data 1121ab64890Smrg */ 1131ab64890Smrg 1141ab64890Smrgtypedef struct _FontSetRec { 1151ab64890Smrg int id; 1161ab64890Smrg int charset_count; 1171ab64890Smrg XlcCharSet *charset_list; 1181ab64890Smrg int font_data_count; 1191ab64890Smrg FontData font_data; 1201ab64890Smrg char *font_name; 1211ab64890Smrg XFontStruct *info; 1221ab64890Smrg XFontStruct *font; 1231ab64890Smrg XlcSide side; 1241ab64890Smrg Bool is_xchar2b; 1251ab64890Smrg /* For VW/UDC */ 1261ab64890Smrg int substitute_num; 1271ab64890Smrg FontData substitute; 1281ab64890Smrg /* Vertical Writing */ 1291ab64890Smrg int vpart_initialize; 1301ab64890Smrg int vmap_num; 1311ab64890Smrg FontData vmap; 1321ab64890Smrg int vrotate_num; 1331ab64890Smrg VRotate vrotate; 1341ab64890Smrg} FontSetRec, *FontSet; 1351ab64890Smrg 1361ab64890Smrgtypedef struct _XOCGenericPart { 1371ab64890Smrg XlcConv mbs_to_cs; 1381ab64890Smrg XlcConv wcs_to_cs; 1391ab64890Smrg XlcConv utf8_to_cs; 1401ab64890Smrg int font_set_num; 1411ab64890Smrg FontSet font_set; 1421ab64890Smrg} XOCGenericPart; 1431ab64890Smrg 1441ab64890Smrgtypedef struct _XOCGenericRec { 1451ab64890Smrg XOCMethods methods; 14661b2299dSmrg XOCCoreRec core; 1471ab64890Smrg XOCGenericPart gen; 1481ab64890Smrg} XOCGenericRec, *XOCGeneric; 1491ab64890Smrg 1501ab64890Smrg_XFUNCPROTOBEGIN 1511ab64890Smrg 1521ab64890Smrgextern XOM _XomGenericOpenOM( 1531ab64890Smrg XLCd /* lcd */, 1541ab64890Smrg Display* /* dpy */, 1551ab64890Smrg XrmDatabase /* rdb */, 1561ab64890Smrg _Xconst char* /* res_name */, 1571ab64890Smrg _Xconst char* /* res_class */ 1581ab64890Smrg); 1591ab64890Smrg 1601ab64890Smrgextern XlcConv _XomInitConverter( 1611ab64890Smrg XOC /* oc */, 1621ab64890Smrg XOMTextType /* type */ 1631ab64890Smrg); 1641ab64890Smrg 1651ab64890Smrgextern int _XomConvert( 1661ab64890Smrg XOC /* oc */, 1671ab64890Smrg XlcConv /* conv */, 1681ab64890Smrg XPointer* /* from */, 1691ab64890Smrg int* /* from_left */, 1701ab64890Smrg XPointer* /* to */, 1711ab64890Smrg int* /* to_left */, 1721ab64890Smrg XPointer* /* args */, 1731ab64890Smrg int /* num_args */ 1741ab64890Smrg); 1751ab64890Smrg 1761ab64890Smrgextern int 1771ab64890Smrg_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length); 1781ab64890Smrgextern int 1791ab64890Smrg_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length); 1801ab64890Smrgextern int 1811ab64890Smrg_Xutf8DefaultTextEscapement(XOC oc, _Xconst char *text, int length); 1821ab64890Smrgextern int 1831ab64890Smrg_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length, 1841ab64890Smrg XRectangle *overall_ink, XRectangle *overall_logical); 1851ab64890Smrgextern int 1861ab64890Smrg_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length, 1871ab64890Smrg XRectangle *overall_ink, XRectangle *overall_logical); 1881ab64890Smrgextern int 1891ab64890Smrg_Xutf8DefaultTextExtents(XOC oc, _Xconst char *text, int length, 1901ab64890Smrg XRectangle *overall_ink, XRectangle *overall_logical); 1911ab64890Smrgextern Status 1921ab64890Smrg_XmbDefaultTextPerCharExtents( 1931ab64890Smrg XOC oc, _Xconst char *text, int length, 1941ab64890Smrg XRectangle *ink_buf, XRectangle *logical_buf, 1951ab64890Smrg int buf_size, int *num_chars, 1961ab64890Smrg XRectangle *overall_ink, 1971ab64890Smrg XRectangle *overall_logical); 1981ab64890Smrgextern Status 1991ab64890Smrg_XwcDefaultTextPerCharExtents( 2001ab64890Smrg XOC oc, _Xconst wchar_t *text, int length, 2011ab64890Smrg XRectangle *ink_buf, XRectangle *logical_buf, 2021ab64890Smrg int buf_size, int *num_chars, 2031ab64890Smrg XRectangle *overall_ink, 2041ab64890Smrg XRectangle *overall_logical); 2051ab64890Smrgextern Status 2061ab64890Smrg_Xutf8DefaultTextPerCharExtents( 2071ab64890Smrg XOC oc, _Xconst char *text, int length, 2081ab64890Smrg XRectangle *ink_buf, XRectangle *logical_buf, 2091ab64890Smrg int buf_size, int *num_chars, 2101ab64890Smrg XRectangle *overall_ink, 2111ab64890Smrg XRectangle *overall_logical); 2121ab64890Smrgextern int 2131ab64890Smrg_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y, 2141ab64890Smrg _Xconst char *text, int length); 2151ab64890Smrgextern int 2161ab64890Smrg_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y, 2171ab64890Smrg _Xconst wchar_t *text, int length); 2181ab64890Smrgextern int 2191ab64890Smrg_Xutf8DefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y, 2201ab64890Smrg _Xconst char *text, int length); 2211ab64890Smrgextern void 2221ab64890Smrg_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x, 2231ab64890Smrg int y, _Xconst char *text, int length); 2241ab64890Smrgextern void 2251ab64890Smrg_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x, 2261ab64890Smrg int y, _Xconst wchar_t *text, int length); 2271ab64890Smrgextern void 2281ab64890Smrg_Xutf8DefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x, 2291ab64890Smrg int y, _Xconst char *text, int length); 2301ab64890Smrg 2311ab64890Smrgextern int 2321ab64890Smrg_XmbGenericTextEscapement(XOC oc, _Xconst char *text, int length); 2331ab64890Smrgextern int 2341ab64890Smrg_XmbGenericTextExtents(XOC oc, _Xconst char *text, int length, 2351ab64890Smrg XRectangle *overall_ink, XRectangle *overall_logical); 2361ab64890Smrgextern int 2371ab64890Smrg_Xutf8GenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y, 2381ab64890Smrg _Xconst char *text, int length); 2391ab64890Smrgextern void 2401ab64890Smrg_Xutf8GenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x, 2411ab64890Smrg int y, _Xconst char *text, int length); 2421ab64890Smrgextern Status 2431ab64890Smrg_Xutf8GenericTextPerCharExtents( 2441ab64890Smrg XOC oc, _Xconst char *text, int length, 2451ab64890Smrg XRectangle *ink_buf, XRectangle *logical_buf, 2461ab64890Smrg int buf_size, int *num_chars, 2471ab64890Smrg XRectangle *overall_ink, 2481ab64890Smrg XRectangle *overall_logical); 2491ab64890Smrgextern int 2501ab64890Smrg_Xutf8GenericTextExtents(XOC oc, _Xconst char *text, int length, 2511ab64890Smrg XRectangle *overall_ink, XRectangle *overall_logical); 2521ab64890Smrgextern int 2531ab64890Smrg_Xutf8GenericTextEscapement(XOC oc, _Xconst char *text, int length); 2541ab64890Smrgextern void 2551ab64890Smrg_XwcGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x, 2561ab64890Smrg int y, _Xconst wchar_t *text, int length); 2571ab64890Smrgextern int 2581ab64890Smrg_XwcGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y, 2591ab64890Smrg _Xconst wchar_t *text, int length); 2601ab64890Smrgextern Status 2611ab64890Smrg_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length, 2621ab64890Smrg XRectangle *ink_buf, XRectangle *logical_buf, 2631ab64890Smrg int buf_size, int *num_chars, 2641ab64890Smrg XRectangle *overall_ink, 2651ab64890Smrg XRectangle *overall_logical); 2661ab64890Smrgextern int 2671ab64890Smrg_XwcGenericTextExtents(XOC oc, _Xconst wchar_t *text, int length, 2681ab64890Smrg XRectangle *overall_ink, XRectangle *overall_logical); 2691ab64890Smrgextern int 2701ab64890Smrg_XwcGenericTextEscapement(XOC oc, _Xconst wchar_t *text, int length); 2711ab64890Smrgextern void 2721ab64890Smrg_XmbGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x, 2731ab64890Smrg int y, _Xconst char *text, int length); 2741ab64890Smrgextern int 2751ab64890Smrg_XmbGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y, 2761ab64890Smrg _Xconst char *text, int length); 2771ab64890Smrgextern Status 2781ab64890Smrg_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length, 2791ab64890Smrg XRectangle *ink_buf, XRectangle *logical_buf, 2801ab64890Smrg int buf_size, int *num_chars, 2811ab64890Smrg XRectangle *overall_ink, 2821ab64890Smrg XRectangle *overall_logical); 2831ab64890Smrg 2841ab64890Smrgextern FontData 2851ab64890Smrgread_EncodingInfo( 2861ab64890Smrg int count, 2871ab64890Smrg char **value); 2881ab64890Smrg 2891ab64890Smrgextern int 2901ab64890Smrg_XomGenericDrawString( 2911ab64890Smrg Display *dpy, 2921ab64890Smrg Drawable d, 2931ab64890Smrg XOC oc, 2941ab64890Smrg GC gc, 2951ab64890Smrg int x, int y, 2961ab64890Smrg XOMTextType type, 2971ab64890Smrg XPointer text, 2981ab64890Smrg int length); 2991ab64890Smrgextern int 3001ab64890Smrg_XomGenericTextExtents( 3011ab64890Smrg XOC oc, 3021ab64890Smrg XOMTextType type, 3031ab64890Smrg XPointer text, 3041ab64890Smrg int length, 3051ab64890Smrg XRectangle *overall_ink, 3061ab64890Smrg XRectangle *overall_logical); 3071ab64890Smrgextern FontData 3081ab64890Smrg_XomGetFontDataFromFontSet( 3091ab64890Smrg FontSet fs, 3101ab64890Smrg unsigned char *str, 3111ab64890Smrg int len, 3121ab64890Smrg int *len_ret, 3131ab64890Smrg int is2b, 3141ab64890Smrg int type); 3151ab64890Smrg 3161ab64890Smrg_XFUNCPROTOEND 3171ab64890Smrg 3181ab64890Smrg#endif /* _XOMGENERIC_H_ */ 319