00001 /* m17n-gui.h -- header file for the GUI API of the m17n library. 00002 Copyright (C) 2003, 2004 00003 National Institute of Advanced Industrial Science and Technology (AIST) 00004 Registration Number H15PRO112 00005 00006 This file is part of the m17n library. 00007 00008 The m17n library is free software; you can redistribute it and/or 00009 modify it under the terms of the GNU Lesser General Public License 00010 as published by the Free Software Foundation; either version 2.1 of 00011 the License, or (at your option) any later version. 00012 00013 The m17n library is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public 00019 License along with the m17n library; if not, write to the Free 00020 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 00021 02111-1307, USA. */ 00022 00023 #ifndef _M17N_GUI_H_ 00024 #define _M17N_GUI_H_ 00025 00026 #ifndef _M17N_H_ 00027 #include <m17n.h> 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" 00032 { 00033 #endif 00034 00035 extern void m17n_init_win (void); 00036 #undef M17N_INIT 00037 #define M17N_INIT() m17n_init_win () 00038 00039 extern void m17n_fini_win (void); 00040 #undef M17N_FINI 00041 #define M17N_FINI() m17n_fini_win () 00042 00043 /***en @defgroup m17nGUI GUI API */ 00044 /***ja @defgroup m17nGUI GUI API */ 00045 /*=*/ 00046 00047 /*** @ingroup m17nGUI */ 00048 /***en @defgroup m17nFrame Frame */ 00049 /***ja @defgroup m17nFrame フレーム */ 00050 /*=*/ 00051 00052 /*** @ingroup m17nFrame */ 00053 /***en 00054 @brief Type of frames. 00055 00056 The type #MFrame is for a @e frame object. Each frame holds 00057 various information about the corresponding physical display/input 00058 device. 00059 00060 The internal structure of the type #MFrame is concealed from 00061 application code, and its contents depend on the window system in 00062 use. In the m17n-X library, it contains the information about @e 00063 display and @e screen in the X Window System. */ 00064 00065 /***ja 00066 @brief フレーム用構造体 00067 00068 #MFrame 型は、フレームオブジェクト用の構造体である。個々のフレー 00069 ムは、それが対応する物理デバイスの各種情報を保持する。 00070 00071 #MFrame 型の内部構造は、使用するウィンドウシステムに依存し、また 00072 アプリケーションプログラムからは見えない。m17n-X ライブラリにおけ 00073 るフレームは、X ウィンドウの display と screen に関する情報を持つ。 00074 */ 00075 00076 typedef struct MFrame MFrame; 00077 00078 /*=*/ 00079 00080 extern MSymbol Mfont; 00081 extern MSymbol Mfont_width; 00082 extern MSymbol Mfont_ascent; 00083 extern MSymbol Mfont_descent; 00084 extern MFrame *mframe_default; 00085 00086 extern MFrame *mframe (MPlist *plist); 00087 00088 extern void *mframe_get_prop (MFrame *frame, MSymbol key); 00089 00090 /* end of frame module */ 00091 /*=*/ 00092 00093 /*** @ingroup m17nGUI */ 00094 /***en @defgroup m17nFont Font */ 00095 /***ja @defgroup m17nFont フォント */ 00096 /*=*/ 00097 00098 /*** @ingroup m17nFont */ 00099 /***en 00100 @brief Type of fonts. 00101 00102 The type #MFont is the structure defining fonts. It contains 00103 information about the following properties of a font: foundry, 00104 family, weight, style, stretch, adstyle, registry, size, and 00105 resolution. 00106 00107 This structure is used both for specifying a font in a fontset 00108 and for storing information about available system fonts. 00109 00110 The internal structure is concealed from application code. */ 00111 00112 /***ja 00113 @brief フォントの構造 00114 00115 #MFont 型はフォント指定用の構造体であり、フォントのプロ 00116 パティとして family, weight, style, stretch, adstyle, registry, 00117 size, resolution を持つ。 00118 00119 この構造体はフォントセット内のフォントを指定する場合と、使用可能な 00120 システムフォントの情報を格納する場合の両方で用いられる。 00121 00122 内部構造はアプリケーションプログラムからは見えない。 */ 00123 00124 /*** 00125 @seealso 00126 mfont (), mfont_from_name (), mfont_find (). */ 00127 00128 typedef struct MFont MFont; 00129 00130 /*=*/ 00131 00132 extern MSymbol Mfont; 00133 00134 extern MPlist *mfont_freetype_path; 00135 00136 extern MFont *mfont (); 00137 00138 extern MFont *mfont_from_name (char *name); 00139 00140 extern MFont *mfont_copy (MFont *font); 00141 00142 extern char *mfont_name (MFont *font); 00143 00144 extern MFont *mfont_from_spec (char *family, char *weight, char *slant, 00145 char *swidth, char *adstyle, char *registry, 00146 unsigned short point, unsigned short res); 00147 00148 extern MSymbol Mfoundry; 00149 extern MSymbol Mfamily; 00150 extern MSymbol Mweight; 00151 extern MSymbol Mstyle; 00152 extern MSymbol Mstretch; 00153 extern MSymbol Madstyle; 00154 extern MSymbol Mregistry; 00155 extern MSymbol Msize; 00156 extern MSymbol Mresolution; 00157 00158 extern void *mfont_get_prop (MFont *font, MSymbol key); 00159 00160 extern int mfont_put_prop (MFont *font, MSymbol key, void *val); 00161 00162 extern int mfont_set_encoding (MFont *font, 00163 MSymbol encoding_name, MSymbol repertory_name); 00164 00165 00166 /*=*/ 00167 00168 /***en 00169 @brief Find a font. 00170 00171 The mfont_find () function returns a pointer to the available font 00172 that matches best with the specification $SPEC in frame $FRAME. 00173 00174 $SCORE, if not NULL, must point to a place to store the score 00175 value which indicates how well the found font matches $SPEC. The 00176 smaller score means a better match. 00177 00178 $LIMITED_SIZE, if nonzero, forces the font selector to find a 00179 font not greater than the #Msize property of $SPEC. */ 00180 00181 /***ja 00182 @brief フォントを探す 00183 00184 関数 mfont_find () は、フレーム $FRAME 上でフォント定義 $SPEC にもっ 00185 とも近いフォントへのポインタを返す。 */ 00186 00187 extern MFont *mfont_find (MFrame *frame, MFont *spec, 00188 int *score, int limited_size); 00189 00190 extern MSymbol *mfont_selection_priority (); 00191 00192 extern int mfont_set_selection_priority (MSymbol *keys); 00193 00194 /* end of font module */ 00195 /*=*/ 00196 00197 /*** @ingroup m17nGUI */ 00198 /***en @defgroup m17nFontset Fontset */ 00199 /***ja @defgroup m17nFontset フォントセット */ 00200 /*=*/ 00201 00202 typedef struct MFontset MFontset; 00203 00204 extern MFontset *mfontset (char *name); 00205 00206 extern MSymbol mfontset_name (MFontset *fontset); 00207 00208 extern MFontset *mfontset_copy (MFontset *fontset, char *name); 00209 00210 extern int mfontset_modify_entry (MFontset *fontset, 00211 MSymbol language, MSymbol script, 00212 MSymbol charset, 00213 MFont *spec, MSymbol layouter_name, 00214 int how); 00215 00216 /* end of fontset module */ 00217 /*=*/ 00218 00219 /*** @ingroup m17nGUI */ 00220 /***en @defgroup m17nFace Face */ 00221 /***ja @defgroup m17nFace フェース */ 00222 /*=*/ 00223 00224 /*** @ingroup m17nFace */ 00225 /***en 00226 @brief Type of faces. 00227 00228 The type #MFace is the structure of face objects. The internal 00229 structure is concealed from application code. */ 00230 00231 /***ja 00232 @brief フェース用構造体 00233 00234 #MFace 型はフェースオブジェクトのための構造体である。内部構造は 00235 アプリケーションプログラムからは見えない。 */ 00236 00237 typedef struct MFace MFace; 00238 /*=*/ 00239 00240 extern MSymbol Mforeground; 00241 extern MSymbol Mbackground; 00242 extern MSymbol Mvideomode; 00243 extern MSymbol Mnormal; 00244 extern MSymbol Mreverse; 00245 extern MSymbol Mhline; 00246 extern MSymbol Mbox; 00247 extern MSymbol Mfontset; 00248 extern MSymbol Mratio; 00249 extern MSymbol Mhook_func; 00250 extern MSymbol Mhook_arg; 00251 00252 /* Predefined faces. */ 00253 extern MFace *mface_normal_video; 00254 extern MFace *mface_reverse_video; 00255 extern MFace *mface_underline; 00256 extern MFace *mface_medium; 00257 extern MFace *mface_bold; 00258 extern MFace *mface_italic; 00259 extern MFace *mface_bold_italic; 00260 extern MFace *mface_xx_small; 00261 extern MFace *mface_x_small; 00262 extern MFace *mface_small; 00263 extern MFace *mface_normalsize; 00264 extern MFace *mface_large; 00265 extern MFace *mface_x_large; 00266 extern MFace *mface_xx_large; 00267 extern MFace *mface_black; 00268 extern MFace *mface_white; 00269 extern MFace *mface_red; 00270 extern MFace *mface_green; 00271 extern MFace *mface_blue; 00272 extern MFace *mface_cyan; 00273 extern MFace *mface_yellow; 00274 extern MFace *mface_magenta; 00275 00276 /* etc */ 00277 extern MSymbol Mface; 00278 00279 extern MFace *mface (); 00280 00281 extern MFace *mface_copy (MFace *face); 00282 00283 extern MFace *mface_merge (MFace *dst, MFace *src); 00284 00285 extern MFace *mface_from_font (MFont *font); 00286 00287 /*=*/ 00288 00289 /*** @ingroup m17nFace */ 00290 /***en 00291 @brief Type of horizontal line spec of face. 00292 00293 The type #MFaceHLineProp is to specify the detail of #Mhline 00294 property of a face. The value of the property must be a pointer 00295 to an object of this type. */ 00296 00297 typedef struct 00298 { 00299 /***en Type of the horizontal line. */ 00300 enum MFaceHLineType 00301 { 00302 MFACE_HLINE_BOTTOM, 00303 MFACE_HLINE_UNDER, 00304 MFACE_HLINE_STRIKE_THROUGH, 00305 MFACE_HLINE_OVER, 00306 MFACE_HLINE_TOP 00307 } type; 00308 00309 /***en Width of the line in pixels. */ 00310 unsigned width; 00311 00312 /***en Color of the line. If the value is Mnil, foreground color of 00313 a merged face is used. */ 00314 MSymbol color; 00315 } MFaceHLineProp; 00316 /*=*/ 00317 00318 /*** @ingroup m17nFace */ 00319 /***en 00320 @brief Type of box spec of face. 00321 00322 The type #MFaceBoxProp is to specify the detail of #Mbox property 00323 of a face. The value of the property must be a pointer to an 00324 object of this type. */ 00325 00326 typedef struct 00327 { 00328 /***en Width of the box line in pixels. */ 00329 unsigned width; 00330 00331 MSymbol color_top; 00332 MSymbol color_bottom; 00333 MSymbol color_left; 00334 MSymbol color_right; 00335 00336 unsigned inner_hmargin; 00337 unsigned inner_vmargin; 00338 unsigned outer_hmargin; 00339 unsigned outer_vmargin; 00340 00341 } MFaceBoxProp; 00342 /*=*/ 00343 00344 /*** @ingroup m17nFace */ 00345 /***en 00346 @brief Type of hook function of face. 00347 00348 The type #MFaceHookFunc is to specify the #Mhook property of a 00349 face. The value of the property must be function of this 00350 type. */ 00351 typedef void *(*MFaceHookFunc) (MFace *face, void *arg, void *info); 00352 /*=*/ 00353 00354 extern void *mface_get_prop (MFace *face, MSymbol key); 00355 00356 extern int mface_put_prop (MFace *face, MSymbol key, void *val); 00357 00358 extern void mface_update (MFrame *frame, MFace *face); 00359 00360 /* end of face module */ 00361 /*=*/ 00362 00363 /*** @ingroup m17nGUI */ 00364 /***en @defgroup m17nDraw Drawing */ 00365 /***ja @defgroup m17nDraw 表示 */ 00366 /*=*/ 00367 00368 /*** @ingroup m17nDraw */ 00369 /***en 00370 @brief Window system dependent type for a window. 00371 00372 The type MDrawWindow is for a window; a rectangular area that 00373 works in several ways like a miniature screen. 00374 00375 What it actually points depends on a window system. A program 00376 that uses the m17n-X library must coerce the type @c Drawable to 00377 this type. */ 00378 00379 /***ja ウィンドウシステムに依存する、ウィンドウを表すオブジェクト用の型。 00380 00381 m17n X ライブラリでは、@c Window 型と同じ. */ 00382 00383 typedef void *MDrawWindow; 00384 /*=*/ 00385 00386 /*** @ingroup m17nDraw */ 00387 /***en 00388 @brief Window system dependent type for a region. 00389 00390 The type MDrawRegion is for a region; an arbitrary set of pixels 00391 on the screen (typically a rectangular area). 00392 00393 What it actually points depends on a window system. A program 00394 that uses the m17n-X library must coerce the type @c Region to 00395 this type. */ 00396 00397 typedef void *MDrawRegion; 00398 /*=*/ 00399 00400 /*** @ingroup m17nDraw */ 00401 /***en 00402 @brief Type of a text drawing control. 00403 00404 The type #MDrawControl is the structure that controls how to draw 00405 an M-text. */ 00406 00407 typedef struct 00408 { 00409 /***en If nonzero, draw an M-text as image, i.e. with background 00410 filled with background colors of faces put on the M-text. 00411 Otherwise, the background is not changed. */ 00412 unsigned as_image : 1; 00413 00414 /***en If nonzero and the first glyph of each line has negative 00415 lbearing, shift glyphs horizontally to right so that no pixel is 00416 drawn to the left of the specified position. */ 00417 unsigned align_head : 1; 00418 00419 /***en If nonzero, draw an M-text two-dimensionally, i.e., newlines 00420 in M-text breaks lines and the following characters are drawn in 00421 the next line. If <format> is non-NULL, and the function 00422 returns nonzero line width, a line longer than that width is 00423 also broken. */ 00424 unsigned two_dimensional : 1; 00425 00426 /***en If nonzero, draw an M-text to the right of a specified 00427 position. */ 00428 unsigned orientation_reversed : 1; 00429 00430 /***en If nonzero, reorder glyphs correctly for bidi text. */ 00431 unsigned enable_bidi : 1; 00432 00433 /***en If nonzero, don't draw characters whose general category (in 00434 Unicode) is Cf (Other, format). */ 00435 unsigned ignore_formatting_char : 1; 00436 00437 /***en If nonzero, draw glyphs suitable for a terminal. Not yet 00438 implemented. */ 00439 unsigned fixed_width : 1; 00440 00441 /***en If nonzero, the values are minimum line ascent and descent 00442 pixels. */ 00443 unsigned int min_line_ascent; 00444 unsigned int min_line_descent; 00445 00446 /***en If nonzero, the values are maximum line ascent and descent 00447 pixels. */ 00448 unsigned int max_line_ascent; 00449 unsigned int max_line_descent; 00450 00451 /***en If nonzero, the value specifies how many pixels each line can 00452 occupy on the display. The value zero means that there is no 00453 limit. It is ignored if <format> is non-NULL. */ 00454 unsigned int max_line_width; 00455 00456 /***en If nonzero, the value specifies the distance between tab 00457 stops in columns (the width of one column is the width of a 00458 space in the default font of the frame). The value zero means 00459 8. */ 00460 unsigned int tab_width; 00461 00462 /***en If non-NULL, the value is a function that calculates the 00463 indentation and width limit of each line based on the line 00464 number LINE and the coordinate Y. The function store the 00465 indentation and width limit at the place pointed by INDENT and 00466 WIDTH respectively. 00467 00468 The indentation specifies how many pixels the first glyph of 00469 each line is shifted to the right (if the member 00470 <orientation_reversed> is zero) or to the left (otherwise). If 00471 the value is negative, each line is shifted to the reverse 00472 direction. 00473 00474 The width limit specifies how many pixels each line can occupy 00475 on the display. The value 0 means that there is no limit. 00476 00477 LINE and Y are reset to 0 when a line is broken by a newline 00478 character, and incremented each time when a long line is broken 00479 because of the width limit. 00480 00481 This has an effect only when <two_dimensional> is nonzero. */ 00482 void (*format) (int line, int y, int *indent, int *width); 00483 00484 /***en If non-NULL, the value is a function that calculates a line 00485 breaking position when a line is too long to fit within the 00486 width limit. POS is a position of the character next to the 00487 last one that fits within the limit. FROM is a position of the 00488 first character of the line, and TO is a position of the last 00489 character displayed on the line if there were not width limit. 00490 LINE and Y are the same as the arguments to <format>. 00491 00492 The function must return a character position to break the 00493 line. 00494 00495 The function should not modify MT. 00496 00497 The mdraw_default_line_break () function is useful for such a 00498 script that uses SPACE as a word separator. */ 00499 int (*line_break) (MText *mt, int pos, int from, int to, int line, int y); 00500 00501 int with_cursor; 00502 00503 /***en Specifies the character position to display a cursor. If it 00504 is greater than the maximum character position, the cursor is 00505 displayed next to the last character of an M-text. If the value 00506 is negative, even if <cursor_width> is nonzero, cursor is not 00507 displayed. */ 00508 int cursor_pos; 00509 00510 /***en If nonzero, display a cursor at the character position 00511 <cursor_pos>. If the value is positive, it is the pixel width 00512 of the cursor. If the value is negative, the cursor width is 00513 the same as the underlining glyph(s). */ 00514 int cursor_width; 00515 00516 /***en If nonzero and <cursor_width> is also nonzero, display double 00517 bar cursors; at the character position <cursor_pos> and at the 00518 logically previous character. Both cursors have one pixel width 00519 with horizontal fringes at upper or lower positions. HOW TO 00520 EXPLAIN THE DOUBLE CURSORS? */ 00521 int cursor_bidi; 00522 00523 /***en If nonzero, on drawing partial text, pixels of surrounding 00524 texts that intrude into the drawing area are also drawn. For 00525 instance, some CVC sequence of Thai text (C is consonant, V is 00526 upper vowel) is drawn so that V is placed over the middle of two 00527 Cs. If this CVC sequence is already drawn and only the last C 00528 is drawn again (for instance by updating cursor position), the 00529 left half of V is erased if this member is zero. By setting 00530 this member to nonzero, even with such a drawing, we can keep 00531 this CVC sequence correctly displayed. */ 00532 int partial_update; 00533 00534 /***en If nonzero, don't cache the result of any drawing information 00535 of an M-text. */ 00536 int disable_caching; 00537 00538 /* If non-NULL, limit the drawing effect to the specified region. */ 00539 MDrawRegion clip_region; 00540 00541 } MDrawControl; 00542 00543 /*=*/ 00544 00545 /*** @ingroup m17nDraw */ 00546 /***en 00547 @brief Type of metric for gylphs and texts. 00548 00549 The type #MDrawMetric is for a metric of a glyph and a drawn text. 00550 It is also used to represent a rectangle area of a graphic 00551 device. */ 00552 00553 typedef struct { 00554 int x, y; 00555 unsigned int width, height; 00556 } MDrawMetric; 00557 00558 /*=*/ 00559 00560 /*** @ingroup m17nDraw */ 00561 /***en 00562 @brief Type of information about a glyph. 00563 00564 The type #MDrawGlyphInfo is the structure that contains 00565 information about a glyph. It is used by mdraw_glyph_info (). */ 00566 00567 typedef struct 00568 { 00569 /***en Character range corresponding to the glyph. */ 00570 int from, to; 00571 00572 /***en Character ranges corresponding to the line of the glyph. */ 00573 int line_from, line_to; 00574 00575 /***en X/Y coordinates of the glyph. */ 00576 int x, y; 00577 00578 /***en Metric of the glyph. */ 00579 MDrawMetric this; 00580 00581 /***en Font used for the glyph. Set to NULL if no font is found for 00582 the glyph. */ 00583 MFont *font; 00584 00585 /***en Character ranges corresponding to logically previous and next 00586 glyphs. Note that we do not need the members prev_to and 00587 next_from because they must be the same as the memberse from and 00588 to respectively. */ 00589 int prev_from, next_to; 00590 00591 /***en Character ranges corresponding to visually left and right 00592 glyphs. */ 00593 int left_from, left_to; 00594 int right_from, right_to; 00595 00596 } MDrawGlyphInfo; 00597 00598 /*=*/ 00599 00600 /***en 00601 @brief Type of text items. 00602 00603 The type #MDrawTextItem is for @e textitem objects. 00604 Each textitem contains an M-text and some other information to 00605 control the drawing of the M-text. */ 00606 00607 /***ja 00608 @brief textitem 用構造体 00609 00610 型 #MDrawTextItem は @e テキストアイテム オブジェクト用の構造体であ 00611 る。各テキストアイテムは、1個の M-text と、その表示を制御するため 00612 の各種情報を含んでいる。 00613 00614 @latexonly \IPAlabel{MTextItem} @endlatexonly */ 00615 00616 typedef struct 00617 { 00618 /***en M-text. */ 00619 /***ja M-text */ 00620 MText *mt; 00621 00622 /***en Optional change in the position (in the unit of pixel) along 00623 the X-axis before the M-text is drawn. */ 00624 /***ja 描画前に行なうX軸方向の位置調整 (ピクセル単位) */ 00625 int delta; 00626 00627 /***en Pointer to a face object. Each property of the face, if not 00628 Mnil, overrides the same property of face(s) specified as a text 00629 property in <mt>. */ 00630 /***ja フォントセットオブジェクトへのポインタ。これは M-text 内で指 00631 定されたフェースのフォントセットに優先する*/ 00632 MFace *face; 00633 00634 /***en Pointer to a draw control object. The M-text <mt> is drawn 00635 by mdraw_text_with_control () with this control object. */ 00636 MDrawControl *control; 00637 00638 } MDrawTextItem; 00639 00640 /*=*/ 00641 00642 extern int mdraw_text (MFrame *frame, MDrawWindow win, int x, int y, 00643 MText *mt, int from, int to); 00644 00645 extern int mdraw_image_text (MFrame *frame, MDrawWindow win, int x, int y, 00646 MText *mt, int from, int to); 00647 00648 extern int mdraw_text_with_control (MFrame *frame, MDrawWindow win, 00649 int x, int y, MText *mt, int from, int to, 00650 MDrawControl *control); 00651 00652 extern int mdraw_coordinates_position (MFrame *frame, 00653 MText *mt, int from, int to, 00654 int x, int y, MDrawControl *control); 00655 00656 extern int mdraw_text_extents (MFrame *frame, 00657 MText *mt, int from, int to, 00658 MDrawControl *control, 00659 MDrawMetric *overall_ink_return, 00660 MDrawMetric *overall_logical_return, 00661 MDrawMetric *overall_line_return); 00662 00663 extern int mdraw_text_per_char_extents (MFrame *frame, 00664 MText *mt, int from, int to, 00665 MDrawControl *control, 00666 MDrawMetric *ink_array_return, 00667 MDrawMetric *logical_array_return, 00668 int array_size, 00669 int *num_chars_return, 00670 MDrawMetric *overall_ink_return, 00671 MDrawMetric *overall_logical_return); 00672 00673 extern int mdraw_glyph_info (MFrame *frame, MText *mt, int from, int pos, 00674 MDrawControl *control, MDrawGlyphInfo *info); 00675 00676 extern void mdraw_text_items (MFrame *frame, MDrawWindow win, int x, int y, 00677 MDrawTextItem *items, int nitems); 00678 00679 extern void mdraw_per_char_extents (MFrame *frame, MText *mt, 00680 MDrawMetric *array_return, 00681 MDrawMetric *overall_return); 00682 00683 extern int mdraw_default_line_break (MText *mt, int pos, 00684 int from, int to, int line, int y); 00685 00686 extern void mdraw_clear_cache (MText *mt); 00687 00688 /* end of drawing module */ 00689 /*=*/ 00690 00691 /*** @ingroup m17nGUI */ 00692 /***en @defgroup m17nInputMethodWin Input Method (GUI) */ 00693 /***ja @defgroup m17nInputMethodWin 入力メソッド (GUI) */ 00694 /*=*/ 00695 00696 extern MInputDriver minput_gui_driver; 00697 00698 /*=*/ 00699 /*** @ingroup m17nInputMethodWin */ 00700 /***en 00701 @brief Type of the argument to the function minput_create_ic (). 00702 00703 The type #MInputGUIArgIC is for the argument $ARG of the function 00704 minput_create_ic () to create an input context of an internal 00705 input method. */ 00706 00707 /***ja 00708 @brief 関数 minput_create_ic () の引数 $ARG で指される構造体 00709 00710 #MInputGUIArgIC 型は、関数 minput_create_ic () が内部入力メソッ 00711 ドを生成する際に、引数 $ARG によって指される構造体である。 */ 00712 00713 typedef struct 00714 { 00715 /***en Frame of the client. */ 00716 /***ja クライアントのフレーム */ 00717 MFrame *frame; 00718 00719 /***en Window on which to display the preedit and status text. */ 00720 /***ja preedit テキストと status テキストを表示するウィンドウ */ 00721 MDrawWindow client; 00722 00723 /***en Window that the input context has a focus on. */ 00724 /***ja 入力コンテクストがフォーカスをおいているウィンドウ */ 00725 MDrawWindow focus; 00726 } MInputGUIArgIC; 00727 00728 /*=*/ 00729 00730 extern MSymbol minput_event_to_key (MFrame *frame, void *event); 00731 00732 /* end of input module */ 00733 /*=*/ 00734 /* end of window modules */ 00735 /*=*/ 00736 00737 extern MFace *mdebug_dump_face (MFace *face, int indent); 00738 extern MFont *mdebug_dump_font (MFont *font); 00739 extern MFontset *mdebug_dump_fontset (MFontset *fontset, int indent); 00740 00741 #ifdef __cplusplus 00742 } 00743 #endif 00744 00745 #endif /* _M17N_GUI_H_ */ 00746 00747 /* 00748 Local Variables: 00749 coding: euc-japan 00750 End: 00751 */