annotate src/extw-Xlib.c @ 5200:70ed8a0d8da8

port Mule-ization of mule-wnnfns.c from ben-unicode-internal -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-04-12 Ben Wing <ben@xemacs.org> * charset.h: * lisp.h: * lisp.h (XREALLOC_ARRAY): * text.h: Port charset_codepoint_to_itext(), buffer_itext_to_charset_codepoint(), EXTBYTE_STRING_TO_ALLOCA(), `enum converr' from ben-unicode-internal, for use with the mule-wnnfns.c changes. * mule-wnnfns.c: * mule-wnnfns.c (Fwnn_open): * mule-wnnfns.c (Fwnn_dict_add): * mule-wnnfns.c (Fwnn_dict_list): * mule-wnnfns.c (Fwnn_get_zenkouho): * mule-wnnfns.c (Fwnn_inspect): * mule-wnnfns.c (Fwnn_bunsetu_kanji): * mule-wnnfns.c (Fwnn_bunsetu_yomi): * mule-wnnfns.c (Fwnn_word_info): * mule-wnnfns.c (Fwnn_dict_search): * mule-wnnfns.c (Fwnn_get_msg): * mule-wnnfns.c (Fwnn_fuzokugo_set): * mule-wnnfns.c (Fwnn_fuzokugo_get): * mule-wnnfns.c (Fwnn_hinsi_list): * mule-wnnfns.c (Fwnn_fisys_dict_add): * mule-wnnfns.c (Fwnn_fiusr_dict_add): * mule-wnnfns.c (Fwnn_notrans_dict_add): * mule-wnnfns.c (Fwnn_bmodify_dict_add): * mule-wnnfns.c (reinit_vars_of_mule_wnn): * mule-wnnfns.c (vars_of_mule_wnn): * mule-wnnfns.c (w2m): * mule-wnnfns.c (m2w): * mule-wnnfns.c (yes_or_no): * mule-wnnfns.c (puts2): * mule-wnnfns.c (check_wnn_server_type): Mule-ize, borrowed from ben-unicode-internal.
author Ben Wing <ben@xemacs.org>
date Mon, 12 Apr 2010 00:55:04 -0500
parents 376386a54a3c
children 2aa9cd456ae7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 /* Common code between client and shell widgets; not Xt-specific.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 Copyright (C) 1993, 1994 Sun Microsystems, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 This library is free software; you can redistribute it and/or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 modify it under the terms of the GNU Library General Public
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 License as published by the Free Software Foundation; either
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 version 2 of the License, or (at your option) any later version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 This library is distributed in the hope that it will be useful,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 Library General Public License for more details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 You should have received a copy of the GNU Library General Public
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 License along with this library; if not, write to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 Boston, MA 02111-1307, USA. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 /* Synched up with: Not in FSF. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 /* Written by Ben Wing, September 1993. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 #ifdef emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 #include <config.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 #ifndef EXTERNAL_WIDGET
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 ERROR! This ought not be getting compiled if EXTERNAL_WIDGET is undefined
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 #endif
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 #endif
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 #include <X11/Xlib.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 #include "extw-Xlib.h"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 int extw_which_side;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 static int atoms_initialized;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 Atom a_EXTW_QUERY_GEOMETRY, a_EXTW_GEOMETRY_MANAGER, a_EXTW_WIDGET_GEOMETRY,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 a_EXTW_NOTIFY;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 void
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 extw_initialize_atoms(Display *display)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 if (!atoms_initialized) {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 a_EXTW_QUERY_GEOMETRY =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 XInternAtom(display, "EXTW_QUERY_GEOMETRY", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 a_EXTW_GEOMETRY_MANAGER =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 XInternAtom(display, "EXTW_GEOMETRY_MANAGER", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 a_EXTW_WIDGET_GEOMETRY =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 XInternAtom(display, "EXTW_WIDGET_GEOMETRY", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 a_EXTW_NOTIFY =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 XInternAtom(display, "EXTW_NOTIFY", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 atoms_initialized = 1;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 /* send a notification to the other-side widget. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 void
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 extw_send_notify_3(Display *display, Window win, en_extw_notify type,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 long data0, long data1, long data2)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 XClientMessageEvent xev;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 xev.type = ClientMessage;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 xev.message_type = a_EXTW_NOTIFY;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 xev.format = 32;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 xev.display = display;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 xev.window = win;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 xev.data.l[0] = extw_which_side;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 xev.data.l[1] = type;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 xev.data.l[2] = data0;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 xev.data.l[3] = data1;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 xev.data.l[4] = data2;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 /* UGGGHHHH! All I want to do is ensure that the ClientMessage gets
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 received. Unfortunately X doesn't provide any simple way to do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 that but instead has this event_mask bogosity in XSendEvent. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 XSendEvent(display, win, False,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 extw_which_side == extw_shell_send ? 0 : StructureNotifyMask,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 (XEvent *) &xev);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 }