Mercurial > kinput2.yaz
diff include/KIProtoP.h @ 0:92745d501b9a
initial import from kinput2-v3.1
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 08 Mar 2010 04:44:30 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/KIProtoP.h Mon Mar 08 04:44:30 2010 +0900 @@ -0,0 +1,121 @@ +/* $Id: KIProtoP.h,v 1.12 1993/09/16 02:45:33 ishisone Rel $ */ +/* + * Copyright (c) 1991 Software Research Associates, Inc. + * + * 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 Software Research Associates not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. Software Research + * Associates makes no representations about the suitability of this software + * for any purpose. It is provided "as is" without express or implied + * warranty. + * + * Author: Makoto Ishisone, Software Research Associates, Inc., Japan + */ + +#ifndef _KinputProtocolP_h +#define _KinputProtocolP_h + +#include "KIProto.h" +#include "ConvCtrl.h" + +typedef struct { + int empty; +} KinputProtocolClassPart; + +typedef struct _KinputProtocolClassRec { + CoreClassPart core_class; + KinputProtocolClassPart kinputprotocol_class; +} KinputProtocolClassRec; + +extern KinputProtocolClassRec kinputProtocolClassRec; + +typedef enum { + unresolved_protocol, + kinput1_protocol, /* old kinput protocol */ + kinput2_protocol, /* new kinput protocol */ + jinput_protocol, /* Matsushita's jinput protocol */ + xlc_protocol /* Sony's xlc protocol */ +} KinputProtocol; + +typedef enum { + offthespot_style, + overthespot_style, + separate_style +} ConversionStyle; + +typedef struct { + int state; +#define JINPUT_MULTI_COLOR 1 +#define JINPUT_MULTI_FONT 2 + Position rawspotx, rawspoty; +} JinputData; + +typedef struct _convclient_ { + KinputProtocol protocol; + ConversionStyle style; + Widget protocolwidget; /* protocol widget */ + Widget conversion; /* conversion widget */ + Window reqwin; /* conversion requestor window */ + Atom selection; /* selection atom */ + Atom target; /* type of converted string */ + Atom property; /* property to store converted string */ + EventSelectMethod esm; + unsigned long attrmask; + unsigned long validattrmask; + ConversionAttributes attrs; + XtPointer data; /* protocol dependent data */ + void (*start_proc)();/* protocol dependent proc. routines */ + void (*detach_proc)(); + void (*fix_proc)(); + void (*end_proc)(); + void (*free_resources)(); + struct _convclient_ *next; +} ConvClient; + +typedef struct { + /* resources */ + String language; + WidgetClass inputObjClass; + WidgetClass displayObjClass; + Boolean backward_compatible; + String xlcstartkey; + /* private state */ + ConvClient *clients; + Position defaultascent; + /* atoms -- common */ + Atom convAtom; /* _<language>_CONVERSION */ + Atom oldConvAtom; /* <language>_CONVERSION (obsolete) */ + Atom ctextAtom; /* COMPOUND_TEXT */ + Atom convStringAtom; /* CONVERSION_STRING */ + Atom convNotifyAtom; /* CONVERSION_NOTIFY */ + Atom convEndAtom; /* CONVERSION_END */ + /* atoms -- kinput2 specific */ +#ifdef notdef + Atom convInitializeAtom; /* CONVERSION_INITIALIZE */ +#endif + Atom convAttributeAtom; /* CONVERSION_ATTRIBUTE */ + /* atoms -- jinput specific (whew!) */ + Atom convVersionAtom; /* CONVERSION_VERSION */ + Atom convInitialTypeAtom; /* CONVERSION_INITIAL_TYPE */ + Atom convOpenNotifyAtom; /* CONVERSION_OPEN_NOTIFY */ + Atom convXYRequestAtom; /* CONVERSION_XY_REQUEST */ + Atom convFontsRequestAtom; /* CONVERSION_FONTS_REQUEST */ + Atom convColorRequestAtom; /* CONVERSION_COLOR_REQUEST */ + Atom convCloseNotifyAtom; /* CONVERSION_CLOSE_NOTIFY */ + /* atoms -- xlc specific */ + Atom xlcStatusAtom; /* _XLC_STATUS */ + Atom xlcOnTheSpotAtom; /* _XLC_ON_THE_SPOT */ + Atom xlcBcModifierAtom; /* _XLC_BC_MODIFIER */ + Atom xlcBcKeycodeAtom; /* _XLC_BC_KEYCODE */ +} KinputProtocolPart; + +typedef struct _KinputProtocolRec { + CorePart core; + KinputProtocolPart kinput; +} KinputProtocolRec; + +#endif