diff include/IMProtoP.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/IMProtoP.h	Mon Mar 08 04:44:30 2010 +0900
@@ -0,0 +1,115 @@
+/* $Id: IMProtoP.h,v 1.6 1995/05/17 09:15:02 ishisone Exp $ */
+/*
+ * Copyright (c) 1994  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 _IMProtocolP_h
+#define _IMProtocolP_h
+
+#include "IMProto.h"
+#include "im.h"
+#include "FontBank.h"
+#include "ConvCtrl.h"
+#include "IOECall.h"
+
+typedef struct {
+    int dummy;
+} IMProtocolClassPart;
+
+typedef struct _IMProtocolClassRec {
+    CoreClassPart		core_class;
+    IMProtocolClassPart		imProtocol_class;
+} IMProtocolClassRec;
+
+extern IMProtocolClassRec imProtocolClassRec;
+
+
+typedef struct {
+    /* resources */
+    String server_name;
+
+    /*
+     * It is not difficult to handle multiple languages in a
+     * protocol widget, but we've determined not to do so
+     * for simplicity (at least for now).
+     */
+    String language;
+    String locales;
+    WidgetClass input_object_class;
+    WidgetClass display_object_class;
+    String default_fontlist;		/* default font list to be used */
+
+    Pixel foreground;			/* default fg pixel */
+    String conversion_start_keys;	/* conversion start/end keys */
+    Dimension status_width;		/* default width of status area */
+    String transport_list;		/* transports to be used */
+
+    /* private state */
+    Boolean use_tcp_transport;
+    Boolean use_unix_transport;
+    Boolean use_x_transport;
+    int tcp_port;			/* TCP port number */
+    int tcp_sock;			/* TCP socket descriptor */
+    XtInputId tcp_id;
+    String unix_path;			/* Unix domain socket pathname */
+    int unix_sock;			/* Unix domain socket descriptor */
+    XtInputId unix_id;
+    Boolean no_more_connections;
+    IMConnection *connection_list;
+    IMConverter converter;
+    long last_imid;
+    long last_icid;
+    IMIM *im_hash[IM_HASH_SIZE];
+    IMIC *ic_hash[IC_HASH_SIZE];
+    IMConnection *scheduler_queue;
+    IMTriggerKey *trigger_keys;		/* conversion start trigger keys */
+    int num_trigger_keys;
+    FontBank font_bank;
+    XFontStruct **default_fonts;
+    int num_default_fonts;
+    XIOEHandle ioe_handle;
+
+    /* atoms */
+    Atom xim_xconnect;			/* "_XIM_XCONNECT" */
+    Atom xim_protocol;			/* "_XIM_PROTOCOL" */
+    Atom xim_moredata;			/* "_XIM_MOREDATA" */
+    Atom ctext_atom;			/* "COMPOUND_TEXT" */
+    Atom locales_atom;			/* "LOCALES" */
+    Atom transport_atom;		/* "TRANSPORT" */
+    Atom ki2comm_atom;			/* "_KINPUT2_COMM" */
+    Atom server_atom;			/* atom stored in XIM_SERVERS prop. */
+} IMProtocolPart;
+
+typedef struct _IMProtocolRec {
+    CorePart		core;
+    IMProtocolPart	imp;
+} IMProtocolRec;
+
+#define IM_IMHASH(w)	(((IMProtocolWidget)(w))->imp.im_hash)
+#define IM_ICHASH(w)	(((IMProtocolWidget)(w))->imp.ic_hash)
+#define IM_LASTIMID(w)	(((IMProtocolWidget)(w))->imp.last_imid)
+#define IM_LASTICID(w)	(((IMProtocolWidget)(w))->imp.last_icid)
+#define IM_QUEUE(w)	(((IMProtocolWidget)(w))->imp.scheduler_queue)
+
+#define ATOM_CTEXT(w)	(((IMProtocolWidget)(w))->imp.ctext_atom)
+#define ATOM_LOCALES(w)	(((IMProtocolWidget)(w))->imp.locales_atom)
+#define ATOM_TRANSPORT(w) (((IMProtocolWidget)(w))->imp.transport_atom)
+#define ATOM_KI2COMM(w) (((IMProtocolWidget)(w))->imp.ki2comm_atom)
+#define ATOM_XCONNECT(w) (((IMProtocolWidget)(w))->imp.xim_xconnect)
+#define ATOM_PROTOCOL(w) (((IMProtocolWidget)(w))->imp.xim_protocol)
+#define ATOM_MOREDATA(w) (((IMProtocolWidget)(w))->imp.xim_moredata)
+
+#endif