Mercurial > kinput2.yaz
annotate lib/OnConv.c @ 3:e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 08 Mar 2010 20:07:06 +0900 |
parents | 92745d501b9a |
children | 5b1d5c19f325 |
rev | line source |
---|---|
0
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1 #ifndef lint |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
2 static char *rcsid = "$Id: OnConv.c,v 10.9 1999/05/19 08:52:42 ishisone Exp $"; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
3 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
4 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
5 * Copyright (c) 1990 Software Research Associates, Inc. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
6 * Copyright (c) 1999 Kazuki YASUMATSU |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
7 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
8 * Permission to use, copy, modify, and distribute this software and its |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
9 * documentation for any purpose and without fee is hereby granted, provided |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
10 * that the above copyright notice appear in all copies and that both that |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
11 * copyright notice and this permission notice appear in supporting |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
12 * documentation, and that the name of Software Research Associates not be |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
13 * used in advertising or publicity pertaining to distribution of the |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
14 * software without specific, written prior permission. Software Research |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
15 * Associates makes no representations about the suitability of this software |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
16 * for any purpose. It is provided "as is" without express or implied |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
17 * warranty. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
18 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
19 * Author: Makoto Ishisone, Software Research Associates, Inc., Japan |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
20 * Author: Kazuki YASUMATSU (Kazuki.Yasumatsu@fujixerox.co.jp) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
21 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
22 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
23 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
24 #include <X11/IntrinsicP.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
25 #include <X11/StringDefs.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
26 #include <X11/Xmu/Atoms.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
27 #if XtSpecificationRelease > 4 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
28 #include <X11/Xfuncs.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
29 #endif |
3
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
30 #include <X11/Xatom.h> |
0
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
31 #include "CachedAtom.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
32 #include "AsyncErr.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
33 #include "OnConvP.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
34 #include "InputConv.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
35 #include "ConvDisp.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
36 #include "CandPanel.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
37 #include "AuxPanel.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
38 #include "ICLabel.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
39 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
40 #define DEBUG_VAR debug_OnTheSpotConversion |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
41 #include "DebugPrint.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
42 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
43 /*- resource table -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
44 static XtResource resources[] = { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
45 #define offset(field) XtOffset(OnTheSpotConversionWidget, onthespot.field) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
46 { XtNpreeditStartCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
47 offset(preeditstartcallback), XtRCallback, (XtPointer)NULL }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
48 { XtNpreeditDoneCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
49 offset(preeditdonecallback), XtRCallback, (XtPointer)NULL }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
50 { XtNpreeditDrawCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
51 offset(preeditdrawcallback), XtRCallback, (XtPointer)NULL }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
52 { XtNpreeditCaretCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
53 offset(preeditcaretcallback), XtRCallback, (XtPointer)NULL }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
54 { XtNstatusStartCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
55 offset(statusstartcallback), XtRCallback, (XtPointer)NULL }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
56 { XtNstatusDoneCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
57 offset(statusdonecallback), XtRCallback, (XtPointer)NULL }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
58 { XtNstatusDrawCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
59 offset(statusdrawcallback), XtRCallback, (XtPointer)NULL }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
60 { XtNfeedbackAttributes, XtCFeedbackAttributes, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
61 XtRFeedbackAttributes, sizeof(FeedbackAttributes), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
62 offset(feedbackattrs), XtRString, (XtPointer)"U,,R,H" }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
63 #undef offset |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
64 }; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
65 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
66 /*- default translations -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
67 static char translations[] = "<Key>: to-inputobj()"; /* same as superclass's */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
68 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
69 /*- declarations of local structures -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
70 typedef struct { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
71 int attrs_length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
72 int attrs_limit; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
73 unsigned long *attrs_buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
74 } AttributeBuffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
75 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
76 /*- declarations of static functions -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
77 static void ClassInitialize(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
78 static void Initialize(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
79 static void Destroy(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
80 static Boolean SetValues(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
81 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
82 static void ConversionStartup(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
83 static void ConversionFinish(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
84 static void ChangeAttributes(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
85 static void ChangeFocus(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
86 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
87 static void StringToFeedbackAttrs(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
88 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
89 static Widget CreateSelectionWidget(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
90 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
91 static void UpdateText(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
92 static void CommitText(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
93 static void UpdateMode(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
94 static void SelectionControl(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
95 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
96 static void SelectionStart(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
97 static void LocateSelectionPopup(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
98 static void SelectionEnd(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
99 static void SelectionSet(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
100 static void SelectionGet(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
101 static void SelectionMove(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
102 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
103 static Widget CreateAuxWidget(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
104 static void AuxControl(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
105 static void AuxStart(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
106 static void AuxEnd(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
107 static void AuxChange(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
108 static void LocateAuxPopup(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
109 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
110 static void SelectionSelected(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
111 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
112 static Boolean SafeGetWindowAttributes(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
113 static void MoveShell(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
114 static Window getToplevelWindow(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
115 static void setTransientFor(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
116 static void allocDisplaySegments(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
117 static void freeDisplaySegment(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
118 static void clearAllDisplaySegments(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
119 static void copyString(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
120 static void freeString(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
121 static AttributeBuffer *allocAttributeBuffer(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
122 static void destroyAttributeBuffer(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
123 static void addAttributeBuffer(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
124 static unsigned long attrToFeedback(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
125 static void CBPreeditStart(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
126 static void CBPreeditDone(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
127 static void CBPreeditDraw(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
128 static void CBPreeditCaret(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
129 static void CBStatusStart(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
130 static void CBStatusDone(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
131 static void CBStatusDraw(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
132 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
133 /*- composite-extension rec: for enabling non-widget children -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
134 static CompositeClassExtensionRec CompositeExtension = { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
135 /* next_extension */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
136 /* record_type */ NULLQUARK, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
137 /* version */ XtCompositeExtensionVersion, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
138 /* record_size */ sizeof(CompositeClassExtensionRec), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
139 /* accept_objects */ True, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
140 }; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
141 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
142 /*- onTheSpotConversionClass record -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
143 OnTheSpotConversionClassRec onTheSpotConversionClassRec = { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
144 { /* core fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
145 /* superclass */ (WidgetClass)&conversionControlClassRec, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
146 /* class_name */ "OnTheSpotConversion", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
147 /* widget_size */ sizeof(OnTheSpotConversionRec), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
148 /* class_initialize */ ClassInitialize, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
149 /* class_part_initialize */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
150 /* class_inited */ FALSE, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
151 /* initialize */ Initialize, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
152 /* initialize_hook */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
153 /* realize */ XtInheritRealize, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
154 /* actions */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
155 /* num_actions */ 0, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
156 /* resources */ resources, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
157 /* num_resources */ XtNumber(resources), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
158 /* xrm_class */ NULLQUARK, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
159 /* compress_motion */ TRUE, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
160 /* compress_exposure */ TRUE, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
161 /* compress_enterleave */ TRUE, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
162 /* visible_interest */ FALSE, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
163 /* destroy */ Destroy, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
164 /* resize */ XtInheritResize, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
165 /* expose */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
166 /* set_values */ SetValues, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
167 /* set_values_hook */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
168 /* set_values_almost */ XtInheritSetValuesAlmost, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
169 /* get_values_hook */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
170 /* accept_focus */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
171 /* version */ XtVersion, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
172 /* callback_private */ NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
173 /* tm_table */ translations, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
174 /* query_geometry */ XtInheritQueryGeometry, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
175 /* display_accelerator */ XtInheritDisplayAccelerator, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
176 /* extension */ NULL |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
177 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
178 { /* composite fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
179 /* geometry_manager */ XtInheritGeometryManager, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
180 /* change_managed */ XtInheritChangeManaged, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
181 /* insert_child */ XtInheritInsertChild, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
182 /* delete_child */ XtInheritDeleteChild, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
183 /* extension */ (XtPointer)&CompositeExtension, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
184 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
185 { /* shell fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
186 /* extension */ NULL |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
187 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
188 { /* wm_shell fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
189 /* extension */ NULL |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
190 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
191 { /* vendor_shell fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
192 /* extension */ NULL |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
193 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
194 { /* transient_shell fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
195 /* extension */ NULL |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
196 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
197 { /* conversionControl fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
198 /* Startup */ ConversionStartup, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
199 /* Finish */ ConversionFinish, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
200 /* ChangeAttributes */ ChangeAttributes, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
201 /* ChangeFocus */ ChangeFocus, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
202 /* TextChange */ UpdateText, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
203 /* Fix */ CommitText, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
204 /* ModeChange */ UpdateMode, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
205 /* SelectionControl */ SelectionControl, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
206 /* AuxControl */ AuxControl, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
207 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
208 { /* onTheSpotConversion fields */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
209 /* empty */ 0 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
210 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
211 }; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
212 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
213 WidgetClass onTheSpotConversionWidgetClass = (WidgetClass)&onTheSpotConversionClassRec; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
214 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
215 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
216 *+ Core class method |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
217 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
218 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
219 /*- ClassInitialize: class initializer -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
220 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
221 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
222 ClassInitialize() |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
223 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
224 /* add String -> FeedbackAttributes converter */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
225 XtAddConverter(XtRString, XtRFeedbackAttributes, StringToFeedbackAttrs, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
226 (XtConvertArgList)NULL, (Cardinal)0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
227 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
228 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
229 /*- Initialize: initalize method -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
230 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
231 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
232 Initialize(req, new, args, num_args) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
233 Widget req; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
234 Widget new; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
235 ArgList args; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
236 Cardinal *num_args; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
237 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
238 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)new; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
239 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
240 (void)CreateSelectionWidget(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
241 (void)CreateAuxWidget(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
242 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
243 ocw->onthespot.dispsegments = NULL; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
244 ocw->onthespot.numsegments = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
245 ocw->onthespot.dispsegmentsize = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
246 ocw->onthespot.candlist = NULL; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
247 ocw->onthespot.numcands = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
248 ocw->onthespot.selectionpoppedup = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
249 ocw->onthespot.auxpoppedup = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
250 ocw->onthespot.lastcaret = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
251 ocw->onthespot.fixnotify = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
252 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
253 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
254 /*- Destroy: destroy method -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
255 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
256 Destroy(w) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
257 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
258 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
259 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
260 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
261 /* $B%G%#%9%W%l%$%;%0%a%s%H$NNN0h$r2rJ|(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
262 if (ocw->onthespot.dispsegments) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
263 DisplaySegment *dsp = ocw->onthespot.dispsegments; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
264 int i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
265 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
266 for (i = 0; i < ocw->onthespot.numsegments; i++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
267 freeString(&dsp[i].seg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
268 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
269 XtFree((char *)dsp); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
270 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
271 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
272 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
273 /*- SetValues: setvalues method -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
274 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
275 static Boolean |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
276 SetValues(cur, req, new, args, num_args) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
277 Widget cur; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
278 Widget req; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
279 Widget new; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
280 ArgList args; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
281 Cardinal *num_args; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
282 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
283 /* OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)new; */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
284 return False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
285 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
286 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
287 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
288 *+ ConversionControl class method |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
289 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
290 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
291 /*- ConversionStartup: class specific conversion startup -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
292 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
293 ConversionStartup(widget, valuemask, value) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
294 Widget widget; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
295 unsigned long valuemask; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
296 ConversionAttributes *value; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
297 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
298 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)widget; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
299 Widget inputobj = ocw->ccontrol.inputobj; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
300 Window toplevel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
301 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
302 TRACE(("OnTheSpot:ConversionStartup()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
303 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
304 /* $BFbIt$N%P%C%U%!$r%/%j%"$9$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
305 clearAllDisplaySegments(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
306 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
307 /* WM_TRANSIENT_FOR $B%W%m%Q%F%#$r@5$7$/%;%C%H$9$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
308 toplevel = getToplevelWindow(XtDisplay(widget), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
309 ocw->ccontrol.clientwindow); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
310 setTransientFor(ocw->onthespot.selectionshell, toplevel); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
311 setTransientFor(ocw->onthespot.auxshell, toplevel); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
312 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
313 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
314 * OnTheSpotConvesion $B$N(B widget $B<+BN$O%]%C%W%"%C%W$5$;$J$$$,!"(B |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
315 * $B%P%C%/%(%s%I%?%$%W$N;~$K$O%/%i%$%"%s%H$,$3$N(B widget $B$N(B |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
316 * $B%&%#%s%I%&$KBP$7$F%$%Y%s%H$rAw$k$N$G(B Realize $B$@$1$7$F$*$/(B |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
317 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
318 if (!XtIsRealized(widget)) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
319 Arg args[2]; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
320 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
321 XtSetArg(args[0], XtNwidth, 1); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
322 XtSetArg(args[1], XtNheight, 1); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
323 XtSetValues(widget, args, 2); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
324 XtRealizeWidget(widget); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
325 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
326 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
327 ocw->onthespot.lastcaret = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
328 ocw->onthespot.fixnotify = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
329 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
330 /* $B%9%F!<%?%9$r99?7$9$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
331 UpdateMode(widget); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
332 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
333 /* $B%W%l%(%G%#%C%H$r3+;O$9$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
334 CBPreeditStart(widget); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
335 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
336 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
337 /*- ConversionFinish: class specific conversion finish -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
338 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
339 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
340 ConversionFinish(w) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
341 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
342 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
343 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
344 Atom encoding = XA_COMPOUND_TEXT(XtDisplayOfObject(w)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
345 int format = 8; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
346 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
347 if (!ocw->onthespot.fixnotify) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
348 /* $B3NDj$7$F$$$J$$(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
349 DisplaySegment *dseg = ocw->onthespot.dispsegments; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
350 int i, len = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
351 for (i = 0; i < ocw->onthespot.numsegments; i++, dseg++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
352 len += dseg->seg.nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
353 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
354 if (len > 0) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
355 /* $B%W%l%(%G%#%C%H%P%C%U%!$N>C5n(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
356 unsigned long attr = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
357 CBPreeditDraw(ocw, 0, 0, len, encoding, format, 0, (XPointer)"", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
358 0, &attr); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
359 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
360 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
361 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
362 /* $B%W%l%(%G%#%C%H$r=*N;$9$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
363 CBPreeditDone(w); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
364 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
365 /* $B%9%F!<%?%9$r99?7(B($B=i4|2=(B)$B$9$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
366 CBStatusDraw(ocw, encoding, format, 0, (XPointer)"", 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
367 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
368 if (ocw->onthespot.selectionpoppedup) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
369 XtPopdown(ocw->onthespot.selectionshell); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
370 ocw->onthespot.selectionpoppedup = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
371 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
372 if (ocw->onthespot.auxpoppedup) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
373 XtPopdown(ocw->onthespot.auxshell); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
374 ocw->onthespot.auxpoppedup = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
375 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
376 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
377 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
378 /*- ChangeAttributes: class specific conversion attribute change routine -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
379 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
380 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
381 ChangeAttributes(w, valuemask, value) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
382 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
383 unsigned long valuemask; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
384 ConversionAttributes *value; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
385 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
386 /* do nothing */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
387 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
388 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
389 /*- ChangeFocus: class specific conversion attribute change routine -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
390 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
391 ChangeFocus(w, set) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
392 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
393 int set; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
394 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
395 if (set) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
396 UpdateMode(w); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
397 } else { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
398 #if 0 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
399 /* $B%U%)!<%+%9$r<:$C$?>l9g$K$O2?$b$7$J$$(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
400 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
401 Atom encoding = XA_COMPOUND_TEXT(XtDisplayOfObject(w)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
402 int format = 8; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
403 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
404 CBStatusDraw(ocw, encoding, format, 0, (XPointer)"", 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
405 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
406 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
407 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
408 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
409 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
410 *+ resource converter |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
411 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
412 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
413 /*- StringToFeedbackAttrs: string to feedback attiributes converter -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
414 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
415 StringToFeedbackAttrs(args, num_args, from, to) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
416 XrmValue *args; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
417 Cardinal *num_args; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
418 XrmValue *from; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
419 XrmValue *to; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
420 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
421 char *s = (char *)from->addr; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
422 int idx; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
423 int invalid = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
424 static FeedbackAttributes fba; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
425 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
426 for (idx = 0; idx < 4; idx++) fba.feedbacks[idx] = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
427 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
428 for (idx = 0; idx < 4; idx++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
429 int c; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
430 unsigned long fb = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
431 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
432 while ((c = *s++) != ',' && c != '\0') { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
433 switch (c) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
434 case 'R': case 'r': fb |= XIMReverse; break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
435 case 'U': case 'u': fb |= XIMUnderline; break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
436 case 'H': case 'h': fb |= XIMHighlight; break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
437 case 'P': case 'p': fb |= XIMPrimary; break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
438 case 'S': case 's': fb |= XIMSecondary; break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
439 case 'T': case 't': fb |= XIMTertiary; break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
440 case ' ': case '\t': |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
441 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
442 default: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
443 invalid++; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
444 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
445 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
446 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
447 fba.feedbacks[idx] = fb; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
448 if (c == '\0') break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
449 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
450 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
451 if (invalid) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
452 XtStringConversionWarning((char *)from->addr, XtRFeedbackAttributes); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
453 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
454 to->size = sizeof(fba); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
455 to->addr = (caddr_t)&fba; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
456 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
457 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
458 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
459 *+ sub-widget creation |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
460 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
461 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
462 /*- CreateSelectionWidget: create selection widget for selecting candidates -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
463 static Widget |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
464 CreateSelectionWidget(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
465 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
466 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
467 Widget shell, sel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
468 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
469 /* set width/height so that XtRealizeWidget() doesn't cause error */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
470 shell = XtVaCreatePopupShell("selectionShell", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
471 transientShellWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
472 (Widget)ocw, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
473 XtNwidth, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
474 XtNheight, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
475 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
476 ocw->onthespot.selectionshell = shell; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
477 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
478 sel = XtCreateManagedWidget("selection", candidatePanelWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
479 shell, NULL, 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
480 (void)XtCreateWidget("display", ocw->ccontrol.displayobjclass, sel, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
481 NULL, 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
482 XtAddCallback(sel, XtNcallback, SelectionSelected, (XtPointer)ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
483 XtInstallAccelerators(sel, (Widget)ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
484 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
485 ocw->onthespot.selectionwidget = sel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
486 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
487 return shell; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
488 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
489 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
490 /*- CreateAuxWidget: create aux widget for display auxiliary data -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
491 static Widget |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
492 CreateAuxWidget(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
493 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
494 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
495 Widget shell, sel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
496 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
497 /* set width/height so that XtRealizeWidget() doesn't cause error */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
498 shell = XtVaCreatePopupShell("auxShell", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
499 transientShellWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
500 (Widget)ocw, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
501 XtNwidth, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
502 XtNheight, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
503 XtNallowShellResize, True, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
504 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
505 ocw->onthespot.auxshell = shell; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
506 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
507 sel = XtCreateManagedWidget("aux", auxPanelWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
508 shell, NULL, 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
509 (void)XtCreateWidget("display", ocw->ccontrol.displayobjclass, sel, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
510 NULL, 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
511 XtAddCallback(sel, XtNcallback, SelectionSelected, (XtPointer)ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
512 XtInstallAccelerators(sel, (Widget)ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
513 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
514 ocw->onthespot.auxwidget = sel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
515 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
516 return shell; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
517 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
518 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
519 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
520 *+ inputobject callback |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
521 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
522 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
523 /*- UpdateText: update text -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
524 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
525 UpdateText(w) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
526 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
527 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
528 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
529 Widget inputobj = ocw->ccontrol.inputobj; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
530 int nnew = ICNumSegments(inputobj); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
531 int nold = ocw->onthespot.numsegments; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
532 FeedbackAttributes *fba = &ocw->onthespot.feedbackattrs; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
533 Cardinal cseg, caret; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
534 ICString *newseg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
535 DisplaySegment *dseg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
536 Boolean changed; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
537 int chgseg, chgoffset; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
538 int oldlen; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
539 AttributeBuffer *buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
540 int i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
541 int diff; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
542 Cardinal nsame; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
543 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
544 TRACE(("OnTheSpotConversion:UpdateText() nnew=%d\n", nnew)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
545 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
546 ocw->onthespot.fixnotify = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
547 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
548 if (!ICCursorPos(inputobj, &cseg, &caret)) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
549 cseg = nnew; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
550 caret = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
551 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
552 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
553 allocDisplaySegments(ocw, nnew); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
554 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
555 changed = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
556 chgseg = chgoffset = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
557 oldlen = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
558 buffer = allocAttributeBuffer(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
559 for (i = 0, dseg = ocw->onthespot.dispsegments; i < nnew; i++, dseg++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
560 newseg = ICGetSegment(inputobj, i); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
561 if (i < cseg) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
562 caret += newseg->nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
563 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
564 if (i >= nold) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
565 copyString(newseg, &dseg->seg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
566 addAttributeBuffer(buffer, inputobj, newseg, 0, fba); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
567 if (!changed) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
568 chgseg = i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
569 chgoffset = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
570 changed = True; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
571 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
572 } else { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
573 oldlen += dseg->seg.nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
574 diff = ICCompareSegment(inputobj, newseg, &dseg->seg, &nsame); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
575 switch (diff) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
576 case ICSame: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
577 if (changed) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
578 addAttributeBuffer(buffer, inputobj, newseg, 0, fba); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
579 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
580 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
581 case ICAttrChanged: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
582 dseg->seg.attr = newseg->attr; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
583 addAttributeBuffer(buffer, inputobj, newseg, 0, fba); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
584 if (!changed) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
585 chgseg = i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
586 chgoffset = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
587 changed = True; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
588 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
589 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
590 case ICStringChanged: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
591 freeString(&dseg->seg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
592 copyString(newseg, &dseg->seg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
593 if (!changed) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
594 addAttributeBuffer(buffer, inputobj, newseg, nsame, fba); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
595 chgseg = i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
596 chgoffset = nsame; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
597 changed = True; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
598 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
599 else { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
600 addAttributeBuffer(buffer, inputobj, newseg, 0, fba); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
601 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
602 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
603 default: /* ICAttrChanged | ICStringChanged */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
604 freeString(&dseg->seg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
605 copyString(newseg, &dseg->seg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
606 addAttributeBuffer(buffer, inputobj, newseg, 0, fba); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
607 if (!changed) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
608 chgseg = i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
609 chgoffset = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
610 changed = True; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
611 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
612 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
613 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
614 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
615 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
616 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
617 for (; i < nold; i++, dseg++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
618 oldlen += dseg->seg.nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
619 if (!changed) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
620 chgseg = i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
621 chgoffset = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
622 changed = True; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
623 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
624 freeDisplaySegment(dseg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
625 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
626 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
627 ocw->onthespot.numsegments = nnew; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
628 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
629 if (!changed) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
630 if (ocw->onthespot.lastcaret != caret) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
631 CBPreeditCaret(ocw, caret); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
632 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
633 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
634 else { /* changed */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
635 Atom encoding = ocw->ccontrol.textencoding; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
636 int format; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
637 int length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
638 XtPointer string; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
639 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
640 if (ICGetPreeditString(inputobj, chgseg, chgoffset, &encoding, &format, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
641 &length, &string) == 0) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
642 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
643 dseg = ocw->onthespot.dispsegments; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
644 for (i = 0; i < chgseg; i++, dseg++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
645 chgoffset += dseg->seg.nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
646 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
647 CBPreeditDraw(ocw, caret, chgoffset, oldlen - chgoffset, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
648 encoding, format, length, string, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
649 buffer->attrs_length, buffer->attrs_buffer); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
650 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
651 /* string $B$r(B free $B$7$F$*$/(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
652 XtFree((char *)string); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
653 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
654 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
655 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
656 ocw->onthespot.lastcaret = caret; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
657 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
658 /* buffer $B$r(B destroy $B$7$F$*$/(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
659 destroyAttributeBuffer(buffer); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
660 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
661 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
662 /*- CommitText: commit text -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
663 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
664 CommitText(w, arg) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
665 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
666 CCTextCallbackArg *arg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
667 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
668 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
669 DisplaySegment *dseg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
670 int i, len; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
671 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
672 dseg = ocw->onthespot.dispsegments; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
673 len = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
674 for (i = 0; i < ocw->onthespot.numsegments; i++, dseg++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
675 len += dseg->seg.nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
676 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
677 if (len > 0) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
678 /* $B%W%l%(%G%#%C%H%P%C%U%!$N>C5n(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
679 Atom encoding = XA_COMPOUND_TEXT(XtDisplayOfObject(w)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
680 int format = 8; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
681 unsigned long attr = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
682 CBPreeditDraw(ocw, 0, 0, len, encoding, format, 0, (XPointer)"", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
683 0, &attr); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
684 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
685 /* $BFbIt$N%P%C%U%!$r%/%j%"$9$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
686 clearAllDisplaySegments(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
687 ocw->onthespot.lastcaret = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
688 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
689 XtCallCallbackList((Widget)ocw, ocw->ccontrol.textcallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
690 (XtPointer)arg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
691 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
692 ocw->onthespot.fixnotify = True; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
693 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
694 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
695 /*- UpdateMode: update mode -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
696 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
697 UpdateMode(w) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
698 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
699 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
700 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
701 Widget inputobj = ocw->ccontrol.inputobj; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
702 Atom encoding = ocw->ccontrol.textencoding; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
703 int format; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
704 int length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
705 XtPointer string; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
706 int nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
707 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
708 TRACE(("OnTheSpotConversion:UpdateMode()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
709 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
710 if (ICGetStatusString(inputobj, &encoding, &format, &length, &string, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
711 &nchars) == -1) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
712 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
713 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
714 CBStatusDraw(ocw, encoding, format, length, string, nchars); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
715 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
716 /* string $B$r(B free $B$7$F$*$/(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
717 XtFree((char *)string); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
718 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
719 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
720 /*- SelectionControl: selection control -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
721 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
722 SelectionControl(w, arg) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
723 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
724 ICSelectionControlArg *arg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
725 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
726 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
727 String params[1]; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
728 Cardinal num_params; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
729 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
730 switch (arg->command) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
731 case ICSelectionStart: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
732 SelectionStart(ocw, arg->u.selection_kind); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
733 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
734 case ICSelectionEnd: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
735 SelectionEnd(ocw, &arg->u.current_item); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
736 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
737 case ICSelectionSet: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
738 SelectionSet(ocw, arg->u.current_item); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
739 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
740 case ICSelectionMove: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
741 SelectionMove(ocw, arg->u.dir); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
742 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
743 case ICSelectionGet: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
744 SelectionGet(ocw, &arg->u.current_item); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
745 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
746 default: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
747 params[0] = XtClass(w)->core_class.class_name; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
748 num_params = 1; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
749 XtAppWarningMsg(XtWidgetToApplicationContext(w), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
750 "parameterError", "SelectionControl", "WidgetError", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
751 "%s: unknown selection control command", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
752 params, &num_params); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
753 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
754 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
755 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
756 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
757 /*- SelectionStart: selection startup -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
758 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
759 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
760 SelectionStart(ocw, kind) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
761 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
762 int kind; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
763 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
764 Cardinal ncand; |
3
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
765 Atom wm_state, atom; |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
766 unsigned long data[2]; |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
767 Display *dpy; |
0
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
768 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
769 TRACE(("OnTheSpotConversion:SelectionStart()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
770 if (ocw->onthespot.selectionpoppedup) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
771 TRACE(("\tselection already started -- ignored\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
772 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
773 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
774 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
775 ocw->onthespot.candlist = ICGetItemList(ocw->ccontrol.inputobj, &ncand); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
776 ocw->onthespot.numcands = ncand; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
777 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
778 TRACE(("\tnumcands=%d\n", ocw->onthespot.numcands)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
779 CPanelSetList(ocw->onthespot.selectionwidget, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
780 ocw->onthespot.candlist, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
781 ocw->onthespot.numcands, 0, True); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
782 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
783 LocateSelectionPopup(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
784 XtPopup(ocw->onthespot.selectionshell, XtGrabNone); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
785 ocw->onthespot.selectionpoppedup = True; |
3
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
786 /* force to be set _NET_WM_STATE_ABOVE, because the candidate window |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
787 * always should be shown above anything window. |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
788 */ |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
789 dpy = XtDisplay ((Widget) ocw); |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
790 wm_state = CachedInternAtom (dpy, "_NET_WM_STATE", True); |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
791 atom = CachedInternAtom (dpy, "_NET_WM_STATE_ABOVE", True); |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
792 data[0] = atom; |
e55ccba56891
imported patch 05_kinput2-v3.1-wm_state_above.patch
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
0
diff
changeset
|
793 XChangeProperty (dpy, XtWindow (ocw->onthespot.selectionshell), wm_state, XA_ATOM, 32, PropModeAppend, data, 1); |
0
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
794 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
795 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
796 /*- LocateSelectionPopup: put selection popup at an appropriate position -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
797 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
798 LocateSelectionPopup(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
799 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
800 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
801 Position x, y; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
802 int clx, cly; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
803 Dimension dpyWidth, dpyHeight; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
804 Widget panel = ocw->onthespot.selectionwidget; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
805 Widget shell = ocw->onthespot.selectionshell; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
806 Window junk; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
807 int barheight = ocw->ccontrol.titlebarheight; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
808 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
809 (void)XTranslateCoordinates(XtDisplay(ocw), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
810 ocw->ccontrol.clientwindow, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
811 RootWindowOfScreen(XtScreen(ocw)), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
812 0, 0, &clx, &cly, &junk); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
813 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
814 (void)SafeGetWindowAttributes(XtDisplay(ocw), ocw->ccontrol.clientwindow, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
815 &(ocw->ccontrol.client_attr)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
816 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
817 x = clx; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
818 y = cly + ocw->ccontrol.client_attr.height; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
819 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
820 dpyWidth = WidthOfScreen(XtScreen(shell)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
821 dpyHeight = HeightOfScreen(XtScreen(shell)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
822 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
823 if (x + panel->core.width > (int)dpyWidth) x = dpyWidth - panel->core.width; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
824 if (x < 0) x = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
825 #if 0 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
826 if (y + panel->core.height + barheight > (int)dpyHeight) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
827 y = cly - panel->core.height - 8 - barheight - 20; /* XXX */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
828 if (y < 0) y = dpyHeight - panel->core.height - barheight; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
829 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
830 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
831 if (y + panel->core.height + barheight > (int)dpyHeight) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
832 y = dpyHeight - panel->core.height - 8 - barheight - 20; /* XXX */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
833 if (y < 0) y = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
834 MoveShell(shell, x, y); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
835 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
836 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
837 /*- SelectionEnd: selection finish -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
838 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
839 SelectionEnd(ocw, current) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
840 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
841 int *current; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
842 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
843 TRACE(("OnTheSpotConversion:SelectionEnd()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
844 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
845 if (!ocw->onthespot.selectionpoppedup) { /* for safe */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
846 TRACE(("\tnot in selection mode -- ignored\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
847 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
848 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
849 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
850 XtVaGetValues(ocw->onthespot.selectionwidget, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
851 XtNcurrentItem, current, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
852 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
853 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
854 XtPopdown(ocw->onthespot.selectionshell); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
855 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
856 ocw->onthespot.selectionpoppedup = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
857 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
858 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
859 /*- SelectionSet: set current selection item -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
860 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
861 SelectionSet(ocw, current) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
862 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
863 int current; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
864 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
865 TRACE(("OnTheSpotConversion:SelectionSet()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
866 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
867 if (!ocw->onthespot.selectionpoppedup) { /* for safe */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
868 TRACE(("\tnot in selection mode -- ignored\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
869 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
870 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
871 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
872 XtVaSetValues(ocw->onthespot.selectionwidget, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
873 XtNcurrentItem, current, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
874 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
875 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
876 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
877 /*- SelectionGet: get current selection item -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
878 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
879 SelectionGet(ocw, current) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
880 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
881 int *current; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
882 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
883 TRACE(("OnTheSpotConversion:SelectionGet()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
884 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
885 if (!ocw->onthespot.selectionpoppedup) { /* for safe */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
886 TRACE(("\tnot in selection mode -- ignored\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
887 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
888 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
889 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
890 XtVaGetValues(ocw->onthespot.selectionwidget, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
891 XtNcurrentItem, current, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
892 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
893 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
894 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
895 /*- SelectionMove: move crrent selection to specified direction -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
896 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
897 SelectionMove(ocw, dir) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
898 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
899 int dir; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
900 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
901 TRACE(("OnTheSpotConversion:SelectionMove()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
902 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
903 if (!ocw->onthespot.selectionpoppedup) { /* for safe */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
904 TRACE(("\tnot in selection mode -- ignored\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
905 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
906 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
907 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
908 CPanelMoveCurrent(ocw->onthespot.selectionwidget, dir); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
909 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
910 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
911 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
912 * Aux Callback |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
913 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
914 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
915 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
916 AuxControl(w, arg) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
917 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
918 ICAuxControlArg *arg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
919 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
920 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
921 String params[1]; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
922 Cardinal num_params; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
923 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
924 switch (arg->command) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
925 case ICAuxStart: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
926 AuxStart(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
927 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
928 case ICAuxEnd: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
929 AuxEnd(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
930 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
931 case ICAuxChange: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
932 AuxChange(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
933 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
934 default: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
935 params[0] = XtClass(w)->core_class.class_name; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
936 num_params = 1; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
937 XtAppWarningMsg(XtWidgetToApplicationContext(w), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
938 "parameterError", "AuxControl", "WidgetError", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
939 "%s: unknown aux control command", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
940 params, &num_params); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
941 break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
942 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
943 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
944 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
945 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
946 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
947 AuxStart(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
948 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
949 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
950 ICString *auxstr; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
951 Cardinal ncand, curseg, cursorpos; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
952 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
953 if (ocw->onthespot.auxpoppedup) return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
954 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
955 /* $B%F%-%9%H%3!<%k%P%C%/$N;~$N$h$&$J=hM}$r$9$k(B |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
956 $B$N$O(B AuxPanel.c $B$K$^$+$;$h$&(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
957 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
958 auxstr = ICGetAuxSegments(ocw->ccontrol.inputobj, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
959 &ncand, &curseg, &cursorpos); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
960 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
961 APanelStart(ocw->onthespot.auxwidget, auxstr, ncand, curseg, cursorpos); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
962 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
963 /* $B%]%C%W%"%C%W$9$k>l=j$r7h$a$k(B */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
964 LocateAuxPopup(ocw); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
965 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
966 XtPopup(ocw->onthespot.auxshell, XtGrabNone); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
967 ocw->onthespot.auxpoppedup = True; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
968 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
969 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
970 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
971 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
972 AuxEnd(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
973 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
974 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
975 if (!ocw->onthespot.auxpoppedup) return; /* for safe */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
976 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
977 /* APanelEnd(ocw->onthespot.auxwidget); */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
978 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
979 XtPopdown(ocw->onthespot.auxshell); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
980 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
981 ocw->onthespot.auxpoppedup = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
982 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
983 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
984 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
985 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
986 AuxChange(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
987 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
988 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
989 Cardinal ncand, curseg, cursorpos; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
990 ICString *auxstr; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
991 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
992 if (!ocw->onthespot.auxpoppedup) return; /* for safe */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
993 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
994 auxstr = ICGetAuxSegments(ocw->ccontrol.inputobj, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
995 &ncand, &curseg, &cursorpos); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
996 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
997 APanelChange(ocw->onthespot.auxwidget, auxstr, ncand, curseg, cursorpos); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
998 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
999 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1000 /*- LocateAuxPopup: put aux popup at an appropriate position -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1001 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1002 LocateAuxPopup(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1003 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1004 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1005 Position x, y; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1006 int clx, cly; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1007 Dimension dpyWidth, dpyHeight; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1008 Widget panel = ocw->onthespot.auxwidget; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1009 Widget shell = ocw->onthespot.auxshell; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1010 Window junk; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1011 int barheight = ocw->ccontrol.titlebarheight; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1012 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1013 (void)XTranslateCoordinates(XtDisplay(ocw), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1014 ocw->ccontrol.clientwindow, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1015 RootWindowOfScreen(XtScreen(ocw)), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1016 0, 0, &clx, &cly, &junk); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1017 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1018 (void)SafeGetWindowAttributes(XtDisplay(ocw), ocw->ccontrol.clientwindow, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1019 &(ocw->ccontrol.client_attr)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1020 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1021 x = clx; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1022 y = cly + ocw->ccontrol.client_attr.height; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1023 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1024 dpyWidth = WidthOfScreen(XtScreen(shell)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1025 dpyHeight = HeightOfScreen(XtScreen(shell)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1026 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1027 if (x + panel->core.width > (int)dpyWidth) x = dpyWidth - panel->core.width; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1028 if (x < 0) x = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1029 #if 0 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1030 if (y + panel->core.height + barheight > (int)dpyHeight) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1031 y = cly - panel->core.height - 8 - barheight - 20; /* XXX */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1032 if (y < 0) y = dpyHeight - panel->core.height - barheight; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1033 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1034 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1035 if (y + panel->core.height + barheight > (int)dpyHeight) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1036 y = dpyHeight - panel->core.height - 8 - barheight - 20; /* XXX */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1037 if (y < 0) y = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1038 MoveShell(shell, x, y); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1039 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1040 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1041 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1042 *+ Selection Widget callback |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1043 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1044 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1045 /*- SelectionSelected: selection selected callback -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1046 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1047 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1048 SelectionSelected(w, client_data, call_data) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1049 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1050 XtPointer client_data; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1051 XtPointer call_data; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1052 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1053 OnTheSpotConversionWidget ocw = (OnTheSpotConversionWidget)client_data; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1054 int current = (int)call_data; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1055 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1056 TRACE(("OnTheSpotConversion:SelectionSelected()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1057 XtPopdown(ocw->onthespot.selectionshell); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1058 ocw->onthespot.selectionpoppedup = False; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1059 ICSelectItem(ocw->ccontrol.inputobj, current); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1060 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1061 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1062 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1063 *+ miscelaneous functions |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1064 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1065 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1066 /*- SafeGetWindowAttributes: get window attributes -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1067 static Boolean |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1068 SafeGetWindowAttributes(dpy, w, attr) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1069 Display *dpy; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1070 Window w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1071 XWindowAttributes *attr; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1072 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1073 XAEHandle h; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1074 unsigned long errbits = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1075 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1076 h = XAESetRecordErrors(dpy, &errbits); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1077 (void)XGetWindowAttributes(dpy, w, attr); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1078 XAEUnset(h); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1079 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1080 return (errbits == 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1081 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1082 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1083 /*- MoveShell: move shell widget -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1084 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1085 MoveShell(w, x, y) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1086 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1087 Position x; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1088 Position y; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1089 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1090 XtWidgetGeometry req; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1091 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1092 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1093 * calling XtMoveWidget() is NOT enough to move shell widgets. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1094 * we must use XtMakeGeometryRequest() or XtSetValues() to |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1095 * invoke root-geometry-manager which modifies the size hint |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1096 * appropriately. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1097 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1098 req.request_mode = CWX | CWY; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1099 req.x = x; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1100 req.y = y; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1101 (void)XtMakeGeometryRequest(w, &req, (XtWidgetGeometry *)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1102 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1103 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1104 /*- getToplevelWindow: get top-level window of a given window -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1105 static Window |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1106 getToplevelWindow(dpy, win) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1107 Display *dpy; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1108 Window win; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1109 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1110 Atom wm_state; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1111 Atom type; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1112 int format; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1113 unsigned long nitems, bytesafter; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1114 unsigned char *data; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1115 Window root, parent; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1116 Window *children; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1117 unsigned int nchildren; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1118 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1119 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1120 * find toplevel window which has WM_STATE property or if no exists, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1121 * direct subwindow of the root window. (ie I assume that if a |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1122 * window manager is running, that is a ICCCM compliant one) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1123 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1124 wm_state = CachedInternAtom(dpy, "WM_STATE", True); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1125 for (;;) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1126 type = None; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1127 if (wm_state != None) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1128 data = NULL; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1129 XGetWindowProperty(dpy, win, wm_state, 0L, 0L, False, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1130 AnyPropertyType, &type, &format, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1131 &nitems, &bytesafter, &data); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1132 if (data != NULL) XtFree((char *)data); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1133 if (type != None) break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1134 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1135 if (!XQueryTree(dpy, win, &root, &parent, &children, &nchildren)) break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1136 if (nchildren > 0) XtFree((char *)children); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1137 if (root == parent) break; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1138 win = parent; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1139 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1140 return win; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1141 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1142 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1143 /*- setTransientFor: set WM_TRANSIENT_FOR property to specified widget -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1144 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1145 setTransientFor(w, win) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1146 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1147 Window win; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1148 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1149 if (!XtIsRealized(w)) XtRealizeWidget(w); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1150 XSetTransientForHint(XtDisplay(w), XtWindow(w), win); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1151 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1152 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1153 /*- allocDisplaySegments: prepare specified number of display segments -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1154 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1155 allocDisplaySegments(ocw, n) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1156 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1157 Cardinal n; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1158 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1159 if (ocw->onthespot.dispsegmentsize > n) return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1160 n = ((n + 3) / 4) * 4 ; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1161 if (ocw->onthespot.dispsegments == NULL) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1162 ocw->onthespot.dispsegments = (DisplaySegment *)XtMalloc(n * sizeof(DisplaySegment)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1163 } else { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1164 ocw->onthespot.dispsegments = (DisplaySegment *)XtRealloc((char *)ocw->onthespot.dispsegments, n * sizeof(DisplaySegment)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1165 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1166 ocw->onthespot.dispsegmentsize = n; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1167 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1168 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1169 /*- freeDisplaySegment: free display segment's contents -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1170 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1171 freeDisplaySegment(dsp) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1172 DisplaySegment *dsp; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1173 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1174 freeString(&dsp->seg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1175 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1176 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1177 /*- clearAllDisplaySegments: clear all display segment's -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1178 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1179 clearAllDisplaySegments(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1180 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1181 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1182 DisplaySegment *dsp = ocw->onthespot.dispsegments; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1183 int i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1184 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1185 for (i = 0; i < ocw->onthespot.numsegments; i++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1186 freeDisplaySegment(dsp++); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1187 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1188 ocw->onthespot.numsegments = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1189 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1190 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1191 /*- copyString: copy ICString -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1192 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1193 copyString(from, to) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1194 ICString *from; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1195 ICString *to; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1196 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1197 *to = *from; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1198 to->data = XtMalloc(to->nbytes); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1199 (void)bcopy(from->data, to->data, to->nbytes); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1200 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1201 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1202 /*- freeString: free ICString -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1203 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1204 freeString(seg) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1205 ICString *seg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1206 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1207 XtFree(seg->data); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1208 seg->data = NULL; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1209 seg->nbytes = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1210 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1211 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1212 /*- allocAttributeBuffer: allocate attribute buffer -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1213 static AttributeBuffer * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1214 allocAttributeBuffer() |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1215 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1216 AttributeBuffer *buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1217 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1218 buffer = (AttributeBuffer *)XtMalloc(sizeof(AttributeBuffer)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1219 buffer->attrs_length = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1220 buffer->attrs_limit = 64; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1221 buffer->attrs_buffer = (unsigned long *)XtMalloc(buffer->attrs_limit * sizeof(unsigned long)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1222 return buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1223 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1224 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1225 /*- destroyAttributeBuffer: destroy draw string buffer's contents -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1226 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1227 destroyAttributeBuffer(buffer) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1228 AttributeBuffer *buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1229 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1230 XtFree((char *)buffer->attrs_buffer); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1231 XtFree((char *)buffer); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1232 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1233 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1234 /*- addAttributeBuffer: add segment to draw string buffer's contents -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1235 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1236 addAttributeBuffer(buffer, inputobj, seg, offset, fba) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1237 AttributeBuffer *buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1238 Widget inputobj; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1239 ICString *seg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1240 int offset; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1241 FeedbackAttributes *fba; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1242 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1243 int nchars = seg->nchars - offset; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1244 unsigned long fb; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1245 int i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1246 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1247 if (buffer->attrs_length + nchars > buffer->attrs_limit) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1248 unsigned long *new_attrs_buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1249 int new_limit = buffer->attrs_limit * 2; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1250 if (new_limit < buffer->attrs_length + nchars) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1251 new_limit = buffer->attrs_length + nchars + 8; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1252 new_attrs_buffer = (unsigned long *)XtMalloc(new_limit * sizeof(unsigned long)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1253 bcopy(buffer->attrs_buffer, new_attrs_buffer, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1254 buffer->attrs_length * sizeof(unsigned long)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1255 XtFree((char *)buffer->attrs_buffer); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1256 buffer->attrs_limit = new_limit; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1257 buffer->attrs_buffer = new_attrs_buffer; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1258 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1259 fb = attrToFeedback(fba, seg->attr); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1260 for (i = 0; i < nchars; i++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1261 buffer->attrs_buffer[buffer->attrs_length + i] = fb; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1262 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1263 buffer->attrs_length += nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1264 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1265 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1266 /*- attrToFeedback: ICString attribute -> XIMFeedback attribute converter -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1267 static unsigned long |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1268 attrToFeedback(fba, attr) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1269 FeedbackAttributes *fba; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1270 int attr; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1271 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1272 int idx; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1273 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1274 if (attr == ICAttrNormalString) return 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1275 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1276 if (!(attr & ICAttrConverted)) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1277 /* Not yet converted */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1278 idx = FEEDBACK_NOCONV; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1279 } else if (attr & ICAttrCurrentSegment) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1280 /* it's converted and the current segment */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1281 idx = FEEDBACK_CURRENT; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1282 } else if (attr & ICAttrCurrentSubSegment) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1283 /* it's converted and the current sub segment */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1284 idx = FEEDBACK_CURRENTSUB; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1285 } else { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1286 /* converted, not current */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1287 idx = FEEDBACK_CONV; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1288 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1289 return fba->feedbacks[idx]; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1290 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1291 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1292 /*- CBPreeditStart: callback preedit start -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1293 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1294 CBPreeditStart(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1295 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1296 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1297 if (ocw->onthespot.preeditstartcallback == NULL || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1298 XtHasCallbacks((Widget)ocw, XtNpreeditStartCallback) != XtCallbackHasSome) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1299 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1300 /* no callback */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1301 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1302 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1303 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1304 TRACE(("OnTheSpot:CBPreeditStart()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1305 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1306 XtCallCallbackList((Widget)ocw, ocw->onthespot.preeditstartcallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1307 (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1308 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1309 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1310 /*- CBPreeditDone: callback preedit done -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1311 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1312 CBPreeditDone(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1313 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1314 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1315 if (ocw->onthespot.preeditdonecallback == NULL || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1316 XtHasCallbacks((Widget)ocw, XtNpreeditDoneCallback) != XtCallbackHasSome) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1317 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1318 /* no callback */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1319 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1320 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1321 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1322 TRACE(("OnTheSpot:CBPreeditDone()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1323 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1324 XtCallCallbackList((Widget)ocw, ocw->onthespot.preeditdonecallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1325 (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1326 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1327 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1328 /*- CBPreeditDraw: callback preedit draw -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1329 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1330 CBPreeditDraw(ocw, caret, chg_first, chg_length, encoding, format, text_length, text, attrs_length, attrs) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1331 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1332 int caret; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1333 int chg_first; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1334 int chg_length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1335 Atom encoding; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1336 int format; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1337 int text_length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1338 XtPointer text; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1339 int attrs_length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1340 unsigned long *attrs; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1341 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1342 OCCPreeditDrawArg arg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1343 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1344 if (ocw->onthespot.preeditdrawcallback == NULL || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1345 XtHasCallbacks((Widget)ocw, XtNpreeditDrawCallback) != XtCallbackHasSome) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1346 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1347 /* no callback */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1348 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1349 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1350 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1351 TRACE(("OnTheSpot:CBPreeditDraw()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1352 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1353 arg.caret = caret; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1354 arg.chg_first = chg_first; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1355 arg.chg_length = chg_length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1356 arg.encoding = encoding; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1357 arg.format = format; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1358 arg.text_length = text_length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1359 arg.text = text; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1360 arg.attrs_length = attrs_length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1361 arg.attrs = attrs; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1362 XtCallCallbackList((Widget)ocw, ocw->onthespot.preeditdrawcallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1363 (XtPointer)&arg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1364 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1365 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1366 /*- CBPreeditCaret: callback preedit caret -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1367 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1368 CBPreeditCaret(ocw, caret) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1369 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1370 int caret; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1371 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1372 if (ocw->onthespot.preeditcaretcallback == NULL || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1373 XtHasCallbacks((Widget)ocw, XtNpreeditCaretCallback) != XtCallbackHasSome) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1374 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1375 /* no callback */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1376 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1377 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1378 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1379 TRACE(("OnTheSpot:CBPreeditCaret()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1380 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1381 XtCallCallbackList((Widget)ocw, ocw->onthespot.preeditcaretcallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1382 (XtPointer)caret); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1383 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1384 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1385 /*- CBStatusStart: callback status start -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1386 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1387 CBStatusStart(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1388 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1389 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1390 if (ocw->onthespot.statusstartcallback == NULL || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1391 XtHasCallbacks((Widget)ocw, XtNstatusStartCallback) != XtCallbackHasSome) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1392 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1393 /* no callback */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1394 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1395 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1396 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1397 TRACE(("OnTheSpot:CBStatusStart()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1398 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1399 XtCallCallbackList((Widget)ocw, ocw->onthespot.statusstartcallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1400 (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1401 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1402 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1403 /*- CBStatusDone: callback status done -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1404 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1405 CBStatusDone(ocw) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1406 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1407 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1408 if (ocw->onthespot.statusdonecallback == NULL || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1409 XtHasCallbacks((Widget)ocw, XtNstatusDoneCallback) != XtCallbackHasSome) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1410 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1411 /* no callback */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1412 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1413 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1414 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1415 TRACE(("OnTheSpot:CBStatusDone()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1416 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1417 XtCallCallbackList((Widget)ocw, ocw->onthespot.statusdonecallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1418 (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1419 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1420 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1421 /*- CBStatusDraw: callback status draw -*/ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1422 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1423 CBStatusDraw(ocw, encoding, format, length, text, nchars) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1424 OnTheSpotConversionWidget ocw; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1425 Atom encoding; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1426 int format; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1427 int length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1428 XtPointer text; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1429 int nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1430 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1431 OCCPreeditDrawArg arg; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1432 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1433 if (ocw->onthespot.statusdrawcallback == NULL || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1434 XtHasCallbacks((Widget)ocw, XtNstatusDrawCallback) != XtCallbackHasSome) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1435 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1436 /* no callback */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1437 return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1438 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1439 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1440 TRACE(("OnTheSpot:CBStatusDraw()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1441 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1442 arg.caret = 0; /* ignored */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1443 arg.chg_first = 0; /* ignored */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1444 arg.chg_length = 0; /* ignored */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1445 arg.encoding = encoding; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1446 arg.format = format; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1447 arg.text_length = length; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1448 arg.text = text; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1449 arg.attrs_length = nchars; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1450 arg.attrs = NULL; /* ignored */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1451 XtCallCallbackList((Widget)ocw, ocw->onthespot.statusdrawcallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1452 (XtPointer)&arg); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1453 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1454 |