NAME
UILib_intro — User interface library introDESCRIPTION
User interface libraries are responding to one-chracter or one-key input, return various kinds of information. They include the unfixed character string, fixed character string, marked segment position, status display character string, and candidate list character string. The application program displays the data according to the returned information. It can also control mode transition by triggering through something other than key pressing (for example, selection through the mouse). The user interface library provides jrKanjiString and jrKanjiControl for the input through the TTY. It also provides XLookupKanjiString and XKanjiControl for the input through the X window. Use of the user interface library requires the following:- -
- Through the TTY:
- Function
- jrKanjiString, jrKanjiControl
- Header file
- canna/jrkanji.h
- Library
- libcanna.a, libcanna.so
- -
- Through the X window:
- Function
- XLookupKanjiString, XKanjiControl
- Header file
- canna/kanji.h
- Library
- libXn.a, libXn.so, libcanna.a, libcanna.so
Outline
- jrKanjiString
- Converts ordinary keyboard input (input through the TTY, input with X) into Kanji strings.
- jrKanjiControl
- Executes the control with jrKanjiString according to the specified parameters.
- XLookupKanjiString
- Converts the keyboard input (key event) into Kanji strings in the X window system.
- XKanjiControl
- Executes the control with XLookupKanjiString according to the specified parameters.
NAME
jrKanjiString — Kana-to-Kanji Conversion for ordinary keyboard inputSYNOPSIS
#include <canna/jrkanji.h> int jrKanjiString(context_id, ch, buffer_return, bytes_buffer, kanji_status_return) int context_id; int ch; char *buffer_return; int bytes_buffer; jrKanjiStatus *kanji_status_return;
DESCRIPTION
jrKanjiString converts ordinary keyboard input (input through the TTY, input with X) into Kanji strings. jrKanjiString is a convenient routine which returns the character strings to be displayed. To convert the key input represented in ASCII code, into the Japanese characters, jrKanjiString specifies the input key code using ch. Romaji-to-Kana or Kana-to-Kanji Conversion is executed in jrKanjiString. For a function or cursor key, specify a special code (listed in ``FUNCTION KEYS'' below) to jrKanjiString. Do not specify the sequence caused by the key. For the context identifier specified in context_id, the value is not used as it is. Instead, a context that uses the context identifier as the key is created and used. Thus, the application program may specify any value for the context identifier to be specified for jrKanjiString. It is recommended that the input port's file descriptor be specified for this identifier. If 0 is specified for the identifier, the context prepared as the system default will be used by way of exception. It is recommended that 0 be specified unless particular consideration is given to the context. The intermediate result to be displayed is returned to the application through kanji_status_return. Responding to the input, it is necessary to display the intermediate result of Romaji-to-Kana or Kana-to-Kanji Conversion. The application must display the intermediate result according to the information returned by kanji_status_return, which is a jrKanjiStatus type structure. The jrKanjiStatus structure is defined as follows:typedef struct { unsigned char *echoStr; /* Character string for local echo */ int length; /* Length of the local echo character string */ int revPos; /* Offset to the reverse display field within local echo character string */ int revLen; /* Length of the reverse display within local echo echo character string */ unsigned long info; /* Other information */ unsigned char *mode; /* Mode information */ struct { unsigned char *line; /* Candidate list character string */ int length; /* Length of candidate list character string */ int revPos; /* Offset to the reverse display field within candidate list character string */ int revLen; /* Length of reverse display field within candidate list character string */ } gline; /* Information about the candidate list*/ } jrKanjiStatus;
FUNCTION KEYS
For any function key that issue an Escape sequence, specify one of the following codes as ch instead of the Escape sequence:- Logical name
- Code
- Nfer
- CANNA_KEY_Nfer
- Xfer
- CANNA_KEY_Xfer
- Up
- CANNA_KEY_Up
- Left
- CANNA_KEY_Left
- Right
- CANNA_KEY_Right
- Down
- CANNA_KEY_Down
- Insert
- CANNA_KEY_Insert
- Rollup
- CANNA_KEY_Rollup
- Rolldown
- CANNA_KEY_Rolldown
- Home
- CANNA_KEY_Home
- Help
- CANNA_KEY_Help
- S-Nfer
- CANNA_KEY_Shift_Nfer
- S-Xfer
- CANNA_KEY_Shift_Xfer
- S-Up
- CANNA_KEY_Shift_Up
- S-Left
- CANNA_KEY_Shift_Left
- S-Right
- CANNA_KEY_Shift_Right
- S-Down
- CANNA_KEY_Shift_Down
- C-Nfer
- CANNA_KEY_Control_Nfer
- C-Xfer
- CANNA_KEY_Control_Xfer
- C-Up
- CANNA_KEY_Control_Up
- C-Left
- CANNA_KEY_Control_Left
- C-Right
- CANNA_KEY_Control_Right
- C-Down
- CANNA_KEY_Control_Down
- F1
- CANNA_KEY_F1
- PF1
- CANNA_KEY_PF1
SEE ALSO
jrKanjiControl(3)RETURN VALUE
If an error occurs during input processing, -1 will return as the return value of this function. In this case, the error message will be stored in external variable (char*)jrKanjiError. If a call to this function causes a character string to be fixed, the length (bytes) of this character string will return. Otherwise, 0 will return.NAME
jrKanjiControl — Control the jrKanjiControl modes and processesSYNOPSIS
#include <canna/jrkanji.h> int jrKanjiControl(context_id, request, arg) int context_id; int request; char *arg;
DESCRIPTION
jrKanjiControl executes process request for conversion context context_id. Some processes are accompanied by the argument, specified in arg. jrKanjiControl controls the following 13 functions:- request name
- Function
- KC_INITIALIZE
- Initializes Kana-to-Kanji conversion.
- KC_CHANGEMODE
- Changes the input mode.
- KC_SETWIDTH
- Specifies the width used to display the candidate
- KC_FINALIZE
- Finalizes (terminates) Kana-to-Kanji conversion processing.
- KC_SETUNDEFKEYFUNCTION
- Sets a function for an undefined key.
- KC_SETMODEINFOSTYLE
- Specifies whether mode information is represented in numeric form.
- KC_KAKUTEI
- Fixes the currently entered character string.
- KC_KILL
- Deletes the currently entered character string.
- KC_QUERYMODE
- Queries about the current mode.
- KC_SETSERVERNAME
- Specifies the server to be connected.
- KC_SETINITFILENAME
- Specifies the customize file.
- KC_CLOSEUICONTEXT
- Closes the context.
- KC_QUERYMAXMODESTR
- Obtains the maximum length of mode display character string.
typedef struct { int val; /* The length of the character string in the buffer returns. */ unsigned char *buffer; /* Specifies the buffer used to store the fixed character string. */ int bytes_buffer; /* Specifies the size of the above buffer. */ jrKanjiStatus *ks; /* Pointer to the structure that contains information about the unfixed character string. */ } jrKanjiStatusWithValue;
- (1)
- KC_INITIALIZE — Initializes Kana-to-Kanji conversion.
KC_INITIALIZE initializes Kana-to-Kanji conversion by specifying KC_INITIALIZE
in the request field. Specify one of the following in arg: (1) the
pointer to the char ** type variable used to store the warning message and (2)
NULL.
The initialize process is basically executed automatically when
jrKanjiString(3) is first called. This is skipped by using
jrKanjiControl for initialization.
For example, when control about Kana-to-Kanji conversion is executed using
jrKanjiControl before use of jrKanjiString(3), Kana-to-Kanji
conversion must be initialized.
When the process terminates normally, 0 returns as the jrKanjiControl
return value. When it terminates abnormally, -1 returns.
When KC_INITIALIZE is executed, a warning, rather than an error, may occur. When
it occurs, the pointer to the warning character string array is stored in and
returns to the variable specified in arg. If no warning occurs, NULL is
stored and returns.
(Example)
In the library, malloc is done for the warning message returning to the third
argument. This message is freed when KC_INITIALIZE or KC_FINALIZE is executed
next. The application programmer must not free it. The maximum number of
warning messages is restricted to 64 now. The subsequent ones are discarded.
The following warnings may be included in a message:
int res; /* Prepare for error return */ char **warning; ..... res = jrKanjiControl(0, KC_INITIALIZE, &warning); if (warning) { char **p; for (p = warning ; *p ; p++) { fprintf(stderr, "%s0, *p); } }
- -
- All customize files including those of the system are unavailable.
- -
- The customize file contains a syntax error.
- -
- The Romaji-to-Kana conversion dictionary is unavailable.
- -
- The Kana-to-Kanji conversion dictionary is unavailable.
- -
- Connection to the Kana-to-Kanji conversion server is disabled.
- (2)
- KC_CHANGEMODE — Changes the input mode.
KC_CHANGEMODE changes the input mode from the application. Specify KC_CHANGEMODE
in the request field. Specify the jrKanjiStatusWithValue structure in
arg.
The Japanese mode is changed by specifying the mode number with the val
member of jrKanjiStatusWithValue structure. The mode number is indicated by
the following macros:
(Example)
- Macro number
- Mode
- CANNA_MODE_AlphaMode
- Alphabet mode
- CANNA_MODE_HenkanMode
- Conversion input mode
- CANNA_MODE_KigoMode
- Symbol input mode
- CANNA_MODE_ZenHiraKakuteiMode
- Full-wide Hiragana fixed input mode
- CANNA_MODE_ZenKataKakuteiMode
- Full-wide Katakana fixed mode
- CANNA_MODE_HanKataKakuteiMode
- Half-wide Katakana fixed input mode
- CANNA_MODE_ZenAlphaKakuteiMode
- Full-wide alphabet fixed input mode
- CANNA_MODE_HanAlphaKakuteiMode
- Half-wide alphabet fixed input mode
- CANNA_MODE_HexMode
- Hexadecimal code input mode
- CANNA_MODE_BushuMode
- Bushu input mode
- CANNA_MODE_TorokuMode
- Word register mode
jrKanjiStatus ks; jrKanjiStatusWithValue ksv; unsigned char buf[SOMESIZE]; ..... ksv.ks = &ks; ksv.buffer = buf; ksv.bytes_buffer = SOMESIZE; ksv.val = CANNA_MODE_HexMode; jrKanjiControl(context, KC_CHANGEMODE, &ksv); len = ksv.val; ..... /* Information about the unfixed or fixed character string is returned by ksv. */
- (3)
- KC_SETWIDTH — Specifies the width used to display the candidate list.
KC_SETWIDTH specifies the number of columns of the area on which the candidate
list is to be displayed. The width of one column equals that of an
alphabetical or half-wide Katakana character. Each full-wide Kanji character
occupies two columns. Using KC_SETWIDTH, specify the width of candidate list
display area to be specified in the request field. At this time,
specify the number of columns in arg.
(Example)
jrKanjiControl(0, KC_SETWIDTH, (char *)60);
- (4)
- KC_FINALIZE — Finalizes (terminates) processing of Kana-to-Kanji conversion
KC_FINALIZE specifies that Kana-to-Kanji conversion also finalizes (terminates)
at the end of the program and in other cases.
Be sure to execute this process when terminating Kana-to-Kanji conversion processing. All contents learned up to now are registered in the file. Specify KC_FINALIZE in the request field. When the process terminates normally, 0 returns. When it terminates abnormally, -1 returns. When KC_FINALIZE is executed, a warning, rather than an error, may occur. When it occurs, the pointer to the warning character string array is stored in and returns to the variable specified in arg. If no warning occurs, NULL is stored and returns.
(Example)
int res; /* Prepare for error return */
char **warning;
.....
res = jrKanjiControl(0, KC_FINALIZE, &warning);
if (warning) {
char **p;
for (p = warning ; *p ; p++) {
fprintf(stderr, "%s0, *p);
}
}
In the library, malloc is done for the warning message returning to the third
argument. This message is freed when KC_INITIALIZE or KC_FINALIZE is executed
next. The application programmer must not free it.
The maximum number of warning messages is restricted to 64 now. The subsequent
ones are discarded.
The following warning may be included in a message:
Be sure to execute this process when terminating Kana-to-Kanji conversion processing. All contents learned up to now are registered in the file. Specify KC_FINALIZE in the request field. When the process terminates normally, 0 returns. When it terminates abnormally, -1 returns. When KC_FINALIZE is executed, a warning, rather than an error, may occur. When it occurs, the pointer to the warning character string array is stored in and returns to the variable specified in arg. If no warning occurs, NULL is stored and returns.
int res; /* Prepare for error return */
char **warning;
.....
res = jrKanjiControl(0, KC_FINALIZE, &warning);
if (warning) {
char **p;
for (p = warning ; *p ; p++) {
fprintf(stderr, "%s0, *p);
}
}
- -
- The dictionary cannot be unmounted.
- (5)
- KC_SETUNDEFKEYFUNCTION — Sets a function for an undefined key.
For example, if you press CTRL-t during input of a reading, it is regarded as
undefined key input. The following processes are executed, responding to
undefined key input:
(Example)
- Macro name
- Process
- kc_normal
- Beep
- kc_through
- Passes the input to the application
- kc_kakutei
- Fixes the input and passes it to the application program.
- kc_kill
- Deletes the input and passes it to the application program.
extern (*jrBeepFunc)(), beep(); jrBeepFunc = beep; jrKanjiControl(0, KC_SETUNDEFKEYFUNCTION, kc_normal);
- (6)
- KC_SETMODEINFOSTYLE — Specifies mode information representation.
You may want to display mode information with data such as the bit map, rather
than character strings. In this case, return of numeric data as mode
information helps you execute the process. Specify KC_SETMODEINFOSTYLE in
jrKanjiControl, and pass 1 to arg. After this, one character
representing the mode code (numeric) plus ´@' (0x40) returns to the
jrKanjiStatus structure's mode member. To convert the value into the
mode code, subtract '@' (0x40) from the returned character string. For the
mode codes, see the mode change description of Item (2) KC_CHANGEMODE.
- (7)
- KC_KAKUTEI, (8) KC_KILL — Kill the currently input character string.
You may want to relinquish the currently entered character string for some
reason. There are two relinquishing methods. One is to relinquish the
character string after including the currently entered character string as a
fixed one. The other is to discard the character string completely then
relinquish it. For the first method, specify KC_KAKUTEI in
jrKanjiControl. For the second method, specify KC_KILL.
Each of the above influences the display. The jrKanjiStatusWithValue must thus
be specified as the third argument.
(Example)
jrKanjiStatusWithValue ksv; jrKanjiStatus ks; unsigned char buf[SOMESIZE]; ..... ksv.ks = &ks; ksv.buffer = buf; ksv.bytes_buffer = SOMESIZE; jrKanjiControl(context, KC_KAKUTEI, &ksv); len = ksv.val; .....
- (9)
- KC_QUERYMODE — Inquiry about the mode
To inquire about the current mode, specify KC_QUERYMODE in
jrKanjiControl.
Specify the pointer to the character array in which the mode character string is
to be stored. The mode character string is a character string ending with a
null character. To return a numeric here, specify KC_SETMODEINFOSTYLE in
jrKanjiControl to change the mode character string style.
(Example)
char currentMode[MAXMODELEN]; ..... jrKanjiControl(0, KC_QUERYMODE, currentMode); .....
- (10)
- KC_SETSERVERNAME Specifies the server to be connected.
KC_SETSERVERNAME enables you to switch the Kana-to-Kanji conversion server
without terminating the application program. To set the server to connect as
the Kana-to-Kanji conversion server, specify KC_SETSERVERNAME in
jrKanjiControl. In the third argument, specify the name of the server
to be connected.
- (11)
- KC_SETINITFILENAME — Specifies the customize file.
KC_SETINITFILENAM enables the application program to change the customize file.
To change the customize file, specify KC_SETINITFILENAME as the second
argument and the file name character string as the third argument. This
process must be executed before KC_INTIALIZE.
(Example)
char *inifile = "app-own.canna" ..... jrKanjiControl(0, KC_SETINITFILENAME, initfile); .....
- (12)
- KC_CLOSEUICONTEXT Closes the context.
Any integer may be assigned as the context ID that represents the conversion
context. A context ID that has never been used can be assigned to
jrKanjiString or jrKanjiControl. In this case, initialization
for this context is executed to reserve the required memory.
If an input port used up to now is not used, you may want to free the memory
reserved for the context ID assigned to this port. To do so, call
jrKanjiControl by specifying KC_CLOSEUICONTEXT as the second argument.
Because this process causes a display change, specify jrKanjiStatusWithValue as
the third structure.
(Example)
jrKanjiStatusWithValue ksv; jrKanjiStatus ks; unsigned char buf[SOMESIZE]; ..... ksv.ks = &ks; ksv.buffer = buf; ksv.bytes_buffer = SOMESIZE; jrKanjiControl(0, KC_CLOSEUICONTEXT, &ksv); .....
- (13)
- KC_QUERYMAXMODESTR — Obtains the maximum length of mode display character string.
The mode display character string can be customized using the initialize file.
It is necessary to examine the size of the display area (in the customized
resulting mode display character string) that is to be reserved. Specify
KC_QUERYMAXMODESTR as the second argument, then call jrKanjiControl. As
a result, the number of columns necessary for the mode display character
string is returned. The number of columns is represented, defining that the
width of one half-wide alphanumeric character is 1.
The third argument is unused; dummy value 0 is assigned to it.
(Example)
int max_mode_columns; ..... max_mode_columns = jrKanjiControl(0, KC_QUERYMAXMODESTR, 0); .....
NAME
XLookupKanjiString — Converts the keyboard input into KanjiSYNOPSIS
#include <X11/Xlib.h> #include <X11/kanji.h>
int XLookupKanjiString( event_struct, buffer_return, bytes_buffer, keysym_return, status_return, kanji_status_return) XKeyEvent *event_struct; char *buffer_return; int bytes_buffer; KeySym *keysym_return; XComposeStatus *status_return; XKanjiStatus *kanji_status_return;
ARGUMENTS
- event_struct
- Specifies the key event.
- buffer_return
- Returns the resulting Kanji string.
- bytes_buffer
- Specifies the buffer length.
- keysym_return
- Returns the key symbol. NULL may be specified
- status_return
- Specifies the pointer to the XCompose structure.
- kanji_status_return
- Returns the Kana-to-Kanji conversion status.
DESCRIPTION
XLookupKanjiString is a convenient routine that associates a key event with a Japanese character string. It uses the modifier key bit to processes such as shift, lock, and control. XLookupKanjiString enables eight- and 16-bit Japanese characters to be processed. XLookupKanjiString processes alphabetical characters in the same way as XLookupString. For Japanese character processing, Romaji-to-Kana conversion and Kana-to-Kanji conversion are done in this function. The XKanjiStatus, defined below, is used during Japanese data input:typedef struct _XKanjiStatus { unsigned char *echoStr; /* local echo string */ int length; /* length of echo string */ int revPos; /* reverse position */ int revLen; /* reverse length */ unsigned long info; /* other information */ unsigned char *mode; /* mode information */ struct { unsigned char *line; /* a grance of Kanji characters */ int length; /* length of it */ int revPos; /* reverse position of it */ int revLen; /* reverse length of it */ } gline; /* a grancing line information */ } XKanjiStatus; #define KanjiModeInfo 01 #define KanjiGLineInfo 02When Kana-to-Kanji conversion is used during Japanese input, information such as the readings to be converted need to be echoed (local echo). XLookupKanjiString does not perform display such as local echo. Instead, it returns the character strings to be submitted to local echo, to the application by using the XKanjiStatus structure. The EUC character strings to be submitted to local echo include characters already converted into Kana from Romaji and conversion candidate characters. Until the conversion is fixed, they are returned by the echoStr member. At this time, the length of local echo character string is returned by the length member. Also, the starting position and length (bytes) of reverse display are returned by the revPos and revLen member, respectively. The buffer for local echo character strings is reserved automatically by XLookupKanjiString. It should be used only for reading. No character string must be written into this buffer. If no character string is to be submitted to local echo, 0 will return to the length member. The contents to be submitted to local echo may be the same as when XLookupKanjiString was previously called. (This occurs, for example, when the Shift key is pressed.) In this case, -1 returns to the length member. Mode changes and existence of information about the candidate list are passed by the info member. If info member's KanjiModeInfo bit is on, the character string indicating the new mode will return to mode. If the info member's KanjiGLineInfo bit is on, the gline structure has contained information such as the candidate list. The character string for candidate list display returns to the gline structure's line member. The length, reverse dispaly starting position, and reverse display duration of the candidate list character string return to the gline structure's line, revPos, and revLen, respectively. If there is an EUC character string fixed during conversion, it will be stored in buffer_return. In this case, the length (bytes) of this character string will return as the return value of this function. If there is no fixed character string, the return value will be 0.
NAME
XKanjiControl — Control the XLookupKanjiString mode and process.SYNOPSIS
#include <X11/kanji.h> int XKanjiControl(dpy, win, request, arg) Display dpy; Window win; int request; char *arg;
DESCRIPTION
XKanjiControl executes a process that relates to Japanese input within the window defined by dpy and win. The process is specified in request. Some processes are accompanied by the argument, specified in arg. XKanjiControl controls the following functions:- request name
- Function
- KC_INITIALIZE
- Initializes Kana-to-Kanji conversion.
- KC_CHANGEMODE
- Changes the input mode.
- KC_SETWIDTH
- Specifies the width used to display the candidate
- KC_FINALIZE
- Finalizes (terminates) Kana-to-Kanji conversion processing.
- KC_SETUNDEFKEYFUNCTION
- Sets a function for an undefined key.
- KC_SETMODEINFOSTYLE
- Specifies whether mode information is represented in numeric form.
- KC_KAKUTEI
- Fixes the currently entered character string.
- KC_KILL
- Deletes the currently entered character string.
- KC_QUERYMODE
- Queries about the current mode.
- KC_SETSERVERNAME
- Specifies the server to be connected.
- KC_SETINITFILENAME
- Specifies the customize file.
- KC_CLOSEUICONTEXT
- Closes the context.
- KC_QUERYMAXMODESTR
- Obtains the maximum length of mode display character string.
typedef struct { int val; /* The length of the character string in the buffer returns. */ unsigned char *buffer; /* Specifies the buffer used to store the fixed character string. */ int bytes_buffer; /* Specifies the size of the above buffer. */ XKanjiStatus *ks; /* Pointer to the structure that contains information about the unfixed character string. */ } XKanjiStatusWithValue;
- (1)
- KC_INITIALIZE — Initializes Kana-to-Kanji conversion.
KC_INITIALIZE initializes Kana-to-Kanji conversion by specifying KC_INITIALIZE
in the request field. Specify one of the following in arg: (1) the
pointer to the char ** type variable used to store the warning message and (2)
NULL. The initialize process is basically executed automatically when
XLookupKanjiString(3) is first called. This is skipped by using
XKanjiControl for initialization.
For example, when control about Kana-to-Kanji conversion is executed using
XKanjiControl before use of XLookupKanjiString(3), Kana-to-Kanji
conversion must be initialized.
When the process terminates normally, 0 returns as the XKanjiControl
return value. When it terminates abnormally, -1 returns.
When KC_INITIALIZE is executed, a warning, rather than an error, may occur. When
it occurs, the pointer to the warning character string array is stored in and
returns to the variable specified in arg. If no warning occurs, NULL is
stored and returns.
(Example)
In the library, malloc is done for the warning message returning to the fourth
argument. This message is freed when KC_INITIALIZE or KC_FINALIZE is executed
next. The application programmer must not free it. The maximum number of
warning messages is restricted to 64 now. The subsequent ones are discarded.
The following warnings may be included in a message:
int res; /* Prepare for error return */ char **warning; ..... res = XKanjiControl(dpy, win, KC_INITIALIZE, &warning); if (warning) { char **p; for (p = warning ; *p ; p++) { fprintf(stderr, "%s0, *p); } }
- -
- All customize files including those of the system are unavailable.
- -
- The customize file contains a syntax error.
- -
- The Romaji-to-Kana conversion dictionary is unavailable.
- -
- The Kana-to-Kanji conversion dictionary is unavailable.
- -
- Connection to the Kana-to-Kanji conversion server is disabled.
- (2)
- KC_CHANGEMODE — Changes the input mode.
KC_CHANGEMODE changes the input mode from the application. Specify KC_CHANGEMODE
in the request field. Specify the XKanjiStatusWithValue structure in
arg. The Japanese mode is changed by specifying the mode number
with the val member of XKanjiStatusWithValue structure. The mode number
is indicated by the following macros:
(Example)
- Macro number
- Mode
- CANNA_MODE_AlphaMode
- Alphabet mode
- CANNA_MODE_HenkanMode
- Conversion input mode
- CANNA_MODE_KigoMode
- Symbol input mode
- CANNA_MODE_ZenHiraKakuteiMode
- Full-wide Hiragana fixed input mode
- CANNA_MODE_ZenKataKakuteiMode
- Full-wide Katakana fixed mode
- CANNA_MODE_HanKataKakuteiMode
- Half-wide Katakana fixed input mode
- CANNA_MODE_ZenAlphaKakuteiMode
- Full-wide alphabet fixed input mode
- CANNA_MODE_HanAlphaKakuteiMode
- Half-wide alphabet fixed input mode
- CANNA_MODE_HexMode
- Hexadecimal code input mode
- CANNA_MODE_BushuMode
- Bushu input mode
- CANNA_MODE_TorokuMode
- Word register mode
XKanjiStatus ks; XKanjiStatusWithValue ksv; unsigned char buf[SOMESIZE]; ..... ksv.ks = &ks; ksv.buffer = buf; ksv.bytes_buffer = SOMESIZE; ksv.val = CANNA_MODE_HexMode; XKanjiControl(dpy, win, KC_CHANGEMODE, &ksv); len = ksv.val; ..... /* Information about the unfixed or fixed character string is returned by ksv. */
- (3)
- KC_SETWIDTH — Specifies the width used to display the candidate list.
KC_SETWIDTH specifies the number of columns of the area on which the candidate
list is to be displayed. The width of one column equals that of an
alphabetical or half-wide Katakana character. Each full-wide Kanji character
occupies two columns. Using KC_SETWIDTH, specify the width of candidate list
display area to be specified in the request field. At this time,
specify the number of columns in arg.
(Example)
XKanjiControl(dpy, win, KC_SETWIDTH, (char *)60);
- (4)
- KC_FINALIZE — Finalizes (terminates) processing of Kana-to-Kanji conversion
KC_FINALIZE specifies that Kana-to-Kanji conversion also finalizes (terminates)
at the end of the program and in other cases. Be sure to execute this process
when terminating Kana-to-Kanji conversion processing. All contents learned up
to now are registered in the file. Specify KC_FINALIZE in the request
field.
When the process terminates normally, 0 returns. When it terminates abnormally,
-1 returns.
When KC_INITIALIZE is executed, a warning, rather than an error, may occur. When
it occurs, the pointer to the warning character string array is stored in and
returns to the variable specified in arg. If no warning occurs, NULL is stored
and returns.
(Example)
int res; /* Prepare for error return */
char **warning;
.....
res = XKanjiControl(dpy, win, KC_FINALIZE, &warning);
if (warning) {
char **p;
for (p = warning ; *p ; p++) {
fprintf(stderr, "%s0, *p);
}
}
In the library, malloc is done for the warning message returning to the fourth
argument. This message is freed when KC_INITIALIZE or KC_FINALIZE is executed
next. The application programmer must not free it.
The maximum number of warning messages is restricted to 64 now. The subsequent
ones are discarded.
The following warning may be included in a message:
int res; /* Prepare for error return */
char **warning;
.....
res = XKanjiControl(dpy, win, KC_FINALIZE, &warning);
if (warning) {
char **p;
for (p = warning ; *p ; p++) {
fprintf(stderr, "%s0, *p);
}
}
- -
- The dictionary cannot be unmounted.
- (5)
- KC_SETUNDEFKEYFUNCTION — Sets a function for an undefined key.
For example, if you press CTRL-t during input of a reading, it is regarded as
undefined key input. The following processes are executed, responding to
undefined key input:
(Example)
- Macro name
- Process
- kc_normal
- Beep
- kc_through
- Passes the input to the application program.
- kc_kakutei
- Fixes the input and passes it to the application program.
- kc_kill
- Deletes the input and passes it to the application program.
extern (*jrBeepFunc)(), beep(); jrBeepFunc = beep; XKanjiControl(dpy, win, KC_SETUNDEFKEYFUNCTION, kc_normal);
- (6)
- KC_SETMODEINFOSTYLE — Specifies mode information representation.
You may want to display mode information with data such as the bit map, rather
than character strings. In this case, return of numeric data as mode
information helps you execute the process. Specify KC_SETMODEINFOSTYLE in
XKanjiControl, and pass 1 to arg. After this, one character
representing the mode code (numeric) plus ´@' (0x40) returns to the
XKanjiStatus structure's mode member. To convert the value into the
mode code, subtract '@' (0x40) from the returned character string. For the
mode codes, see the mode change description of Item (2) KC_CHANGEMODE.
- (7)
- KC_KAKUTEI, (8) KC_KILL — Kill the currently input character string.
You may want to relinquish the currently entered character string for some
reason. There are two relinquishing methods. One is to relinquish the
character string after including the currently entered character string as a
fixed one. The other is to discard the character string completely then
relinquish it. For the first method, specify KC_KAKUTEI in
jrKanjiControl. For the second method, specify KC_KILL.
Each of the above influences the display. The XKanjiStatusWithValue must thus be
specified as the fourth argument.
(Example)
XKanjiStatusWithValue ksv; XKanjiStatus ks; unsigned char buf[SOMESIZE]; ..... ksv.ks = &ks; ksv.buffer = buf; ksv.bytes_buffer = SOMESIZE; XKanjiControl(dpy, win, KC_KAKUTEI, &ksv); len = ksv.val; .....
- (9)
- KC_QUERYMODE — Inquiry about the mode
To inquire about the current mode, specify KC_QUERYMODE in XKanjiControl.
Specify the pointer to the character array in which the mode character string is
to be stored. The mode character string is a character string ending with a
null character. To return a numeric here, specify KC_SETMODEINFOSTYLE in
XKanjiControl to change the mode character string style.
(Example)
char currentMode[MAXMODELEN]; ..... XKanjiControl(dpy, win, KC_QUERYMODE, currentMode); .....
- (10)
- KC_SETSERVERNAME — Specifies the server to be connected.
KC_SETSERVERNAME enables you to switch the Kana-to-Kanji conversion server
without terminating the application program. To set the server to connect as
the Kana-to-Kanji conversion server, specify KC_SETSERVERNAME in
XKanjiControl. In the fourth argument, specify the name of the server
to be connected.
- (11)
- KC_SETINITFILENAME — Specifies the customize file.
KC_SETINITFILENAM enables the application program to change the customize file.
To change the customize file, specify KC_SETINITFILENAME as the third argument
and the file name character string as the fourth argument. This process must
be executed before KC_INTIALIZE.
(Example)
char *inifile = "app-own.canna" ..... XKanjiControl(dpy, win, KC_SETINITFILENAME, initfile); .....
- (12)
- KC_CLOSEUICONTEXT Closes the context.
When XKanjiControl or XLookupKanjiString is called, one conversion
context is assigned to combination of dpy and win. Combination
of dpy and win not used yet can be specified for
XKanjiControl or XLookupKanjiString. When this is done, a new
context is created for the window and the required memory is reserved.
If a window used up to now is not used, you may want to free the context memory
that has been assigned to this window. To do so, call XKanjiControl by
specifying KC_CLOSEUICONTEXT as the third argument.
Because this process causes a display change, specify XKanjiStatusWithValue as
the fourth structure.
(Example)
XKanjiStatusWithValue ksv; XKanjiStatus ks; unsigned char buf[SOMESIZE]; ..... ksv.ks = &ks; ksv.buffer = buf; ksv.bytes_buffer = SOMESIZE; XKanjiControl(dpy, win, KC_CLOSEUICONTEXT, &ksv); .....
- (13)
- KC_QUERYMAXMODESTR — Obtains the maximum length of mode display character string.
The mode display character string can be customized using the initialize file.
It is necessary to examine the size of the display area (in the customized
resulting mode display character string) that is to be reserved. Specify
KC_QUERYMAXMODESTR as the third argument, then call XKanjiControl. As a
result, the number of columns necessary for the mode display character string
is returned. (The number of columns is represented, defining that the width of
one half-wide alphanumeric character is 1.
The fourth argument is unused; dummy value 0 is assigned to it.
(Example)
int max_mode_columns; ..... max_mode_columns = XKanjiControl(dpy, win, KC_QUERYMAXMODESTR, 0); .....