1 /* m17n-gui.h -- header file for the GUI API of the m17n library.
2 Copyright (C) 2003, 2004
3 National Institute of Advanced Industrial Science and Technology (AIST)
4 Registration Number H15PRO112
6 This file is part of the m17n library.
8 The m17n library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public License
10 as published by the Free Software Foundation; either version 2.1 of
11 the License, or (at your option) any later version.
13 The m17n library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
18 You should have received a copy of the GNU Lesser General Public
19 License along with the m17n library; if not, write to the Free
20 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
35 #define M17N_INIT_X() 1
36 #define M17N_INIT_GD() 1
38 extern int m17n_init_win (void);
40 #define M17N_INIT() m17n_init_win ()
42 extern void m17n_fini_win (void);
44 #define M17N_FINI() m17n_fini_win ()
46 /***en @defgroup m17nGUI GUI API */
47 /***ja @defgroup m17nGUI GUI API */
50 /*** @ingroup m17nGUI */
51 /***en @defgroup m17nFrame Frame */
52 /***ja @defgroup m17nFrame ¥Õ¥ì¡¼¥à */
55 /*** @ingroup m17nFrame */
57 @brief Type of frames.
59 The type #MFrame is for a @e frame object. Each frame holds
60 various information about the corresponding physical display/input
63 The internal structure of the type #MFrame is concealed from an
64 application program, and its contents depend on the window system
65 in use. In the m17n-X library, it contains the information about
66 @e display and @e screen in the X Window System. */
69 @brief ¥Õ¥ì¡¼¥à¤Î·¿Àë¸À.
71 #MFrame ¤Ï¡¢@e ¥Õ¥ì¡¼¥à ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤη¿¤Ç¤¢¤ë¡£¸Ä¡¹¤Î¥Õ¥ì¡¼¥à¤Ï¡¢
72 ¤½¤ì¤¬Âбþ¤¹¤ëʪÍýŪ¤Êɽ¼¨¡¿ÆþÎϥǥХ¤¥¹¤Î³Æ¼ï¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
74 #MFrame ·¿¤ÎÆâÉô¹½Â¤¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£
75 ¤Þ¤¿¤½¤ÎÆâÍƤϻÈÍѤ¹¤ë¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£¤Þ¤¿m17n-X ¥é
76 ¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë¥Õ¥ì¡¼¥à¤Ï¡¢X ¥¦¥£¥ó¥É¥¦¤Î @e display ¤È @e screen
80 typedef struct MFrame MFrame;
84 extern MSymbol Mdevice;
87 extern MSymbol Mfont_width;
88 extern MSymbol Mfont_ascent;
89 extern MSymbol Mfont_descent;
90 extern MFrame *mframe_default;
92 extern MSymbol Mdisplay;
93 extern MSymbol Mscreen;
94 extern MSymbol Mdrawable;
95 extern MSymbol Mwidget;
96 extern MSymbol Mdepth;
97 extern MSymbol Mcolormap;
101 extern MFrame *mframe (MPlist *plist);
103 extern void *mframe_get_prop (MFrame *frame, MSymbol key);
105 /* end of frame module */
108 /*** @ingroup m17nGUI */
109 /***en @defgroup m17nFont Font */
110 /***ja @defgroup m17nFont ¥Õ¥©¥ó¥È */
113 /*** @ingroup m17nFont */
115 @brief Type of fonts.
117 The type #MFont is the structure defining fonts. It contains
118 information about the following properties of a font: foundry,
119 family, weight, style, stretch, adstyle, registry, size, and
122 This structure is used both for specifying a font in a fontset
123 and for storing information about available system fonts.
125 The internal structure is concealed from an application program. */
128 @brief ¥Õ¥©¥ó¥È¤Î·¿Àë¸À.
130 #MFont ·¿¤Ï¥Õ¥©¥ó¥È»ØÄêÍѤι½Â¤ÂΤǤ¢¤ê¡¢¥Õ¥©¥ó¥È¤Î¥×¥í¥Ñ¥Æ¥£¤Ç¤¢
131 ¤ë foundry, family, weight, style, stretch, adstyle, registry,
132 size, resolution ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¡£
134 ¤³¤Î¹½Â¤ÂΤϥե©¥ó¥È¥»¥Ã¥ÈÆâ¤Î¥Õ¥©¥ó¥È¤ò»ØÄꤹ¤ëºÝ¤È¡¢»ÈÍѲÄǽ¤Ê¥·
135 ¥¹¥Æ¥à¥Õ¥©¥ó¥È¤Î¾ðÊó¤ò³ÊǼ¤¹¤ëºÝ¤ÎξÊý¤ËÍѤ¤¤é¤ì¤ë¡£
137 ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */
141 mfont (), mfont_from_name (), mfont_find (). */
143 typedef struct MFont MFont;
147 extern MSymbol Mfont;
149 extern MPlist *mfont_freetype_path;
151 extern MFont *mfont ();
153 extern MFont *mfont_copy (MFont *font);
155 extern MFont *mfont_parse_name (char *name, MSymbol format);
157 extern char *mfont_unparse_name (MFont *font, MSymbol format);
159 extern MFont *mfont_from_spec (char *family, char *weight, char *slant,
160 char *swidth, char *adstyle, char *registry,
161 unsigned short point, unsigned short res);
163 /* These two are obsolete (from 1.1.0). */
164 extern char *mfont_name (MFont *font);
165 extern MFont *mfont_from_name (char *name);
167 extern MSymbol Mfoundry;
168 extern MSymbol Mfamily;
169 extern MSymbol Mweight;
170 extern MSymbol Mstyle;
171 extern MSymbol Mstretch;
172 extern MSymbol Madstyle;
173 extern MSymbol Mregistry;
174 extern MSymbol Msize;
175 extern MSymbol Mresolution;
177 extern MSymbol Mfontconfig;
179 extern void *mfont_get_prop (MFont *font, MSymbol key);
181 extern int mfont_put_prop (MFont *font, MSymbol key, void *val);
183 extern int mfont_set_encoding (MFont *font,
184 MSymbol encoding_name, MSymbol repertory_name);
192 The mfont_find () function returns a pointer to the available font
193 that matches best with the specification $SPEC in frame $FRAME.
195 $SCORE, if not NULL, must point to a place to store the score
196 value which indicates how well the found font matches $SPEC. The
197 smaller score means a better match.
199 $LIMITED_SIZE, if nonzero, forces the font selector to find a
200 font not greater than the #Msize property of $SPEC. */
203 @brief ¥Õ¥©¥ó¥È¤òõ¤¹.
205 ´Ø¿ô mfont_find () ¤Ï¡¢¥Õ¥ì¡¼¥à $FRAME ¾å¤Ç¥Õ¥©¥ó¥ÈÄêµÁ $SPEC ¤Ë¤â¤Ã
206 ¤È¤â¹çÃפ¹¤ë»ÈÍѲÄǽ¤Ê¥Õ¥©¥ó¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
208 $SCORE ¤Ï NULL ¤Ç¤¢¤ë¤«¡¢¸«¤Ä¤«¤Ã¤¿¥Õ¥©¥ó¥È¤¬ $SPEC ¤Ë¤É¤ì¤Û¤É¹ç¤Ã
209 ¤Æ¤¤¤ë¤«¤ò¼¨¤¹¥¹¥³¥¢¤òÊݸ¤¹¤ë¾ì½ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£¥¹¥³¥¢¤¬¾®¤µ
210 ¤¤¤Û¤ÉÎɤ¯¹ç¤Ã¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
212 $LIMITED_SIZE ¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢$SPEC ¤Î¥×¥í¥Ñ¥Æ¥£ #Msize ¤è¤êÂç¤
213 ¤¯¤Ê¤¤¥Õ¥©¥ó¥È¤À¤±¤¬Ãµ¤µ¤ì¤ë¡£
216 extern MFont *mfont_find (MFrame *frame, MFont *spec,
217 int *score, int limited_size);
219 extern MSymbol *mfont_selection_priority ();
221 extern int mfont_set_selection_priority (MSymbol *keys);
223 /* end of font module */
226 /*** @ingroup m17nGUI */
227 /***en @defgroup m17nFontset Fontset */
228 /***ja @defgroup m17nFontset ¥Õ¥©¥ó¥È¥»¥Ã¥È */
231 typedef struct MFontset MFontset;
233 extern MFontset *mfontset (char *name);
235 extern MSymbol mfontset_name (MFontset *fontset);
237 extern MFontset *mfontset_copy (MFontset *fontset, char *name);
239 extern int mfontset_modify_entry (MFontset *fontset,
240 MSymbol language, MSymbol script,
242 MFont *spec, MSymbol layouter_name,
245 extern MPlist *mfontset_lookup (MFontset *fontset, MSymbol script,
246 MSymbol language, MSymbol charset);
248 /* end of fontset module */
251 /*** @ingroup m17nGUI */
252 /***en @defgroup m17nFace Face */
253 /***ja @defgroup m17nFace ¥Õ¥§¡¼¥¹ */
256 /*** @ingroup m17nFace */
258 @brief Type of faces.
260 The type #MFace is the structure of face objects. The internal
261 structure is concealed from an application program. */
264 @brief ¥Õ¥§¡¼¥¹¤Î·¿Àë¸À.
266 #MFace ·¿¤Ï¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ë¡£ÆâÉô¹½Â¤¤Ï
267 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */
269 typedef struct MFace MFace;
272 extern MSymbol Mforeground;
273 extern MSymbol Mbackground;
274 extern MSymbol Mvideomode;
275 extern MSymbol Mnormal;
276 extern MSymbol Mreverse;
277 extern MSymbol Mhline;
279 extern MSymbol Mfontset;
280 extern MSymbol Mratio;
281 extern MSymbol Mhook_func;
282 extern MSymbol Mhook_arg;
284 /* Predefined faces. */
285 extern MFace *mface_normal_video;
286 extern MFace *mface_reverse_video;
287 extern MFace *mface_underline;
288 extern MFace *mface_medium;
289 extern MFace *mface_bold;
290 extern MFace *mface_italic;
291 extern MFace *mface_bold_italic;
292 extern MFace *mface_xx_small;
293 extern MFace *mface_x_small;
294 extern MFace *mface_small;
295 extern MFace *mface_normalsize;
296 extern MFace *mface_large;
297 extern MFace *mface_x_large;
298 extern MFace *mface_xx_large;
299 extern MFace *mface_black;
300 extern MFace *mface_white;
301 extern MFace *mface_red;
302 extern MFace *mface_green;
303 extern MFace *mface_blue;
304 extern MFace *mface_cyan;
305 extern MFace *mface_yellow;
306 extern MFace *mface_magenta;
309 extern MSymbol Mface;
311 extern MFace *mface ();
313 extern MFace *mface_copy (MFace *face);
315 extern MFace *mface_merge (MFace *dst, MFace *src);
317 extern MFace *mface_from_font (MFont *font);
321 /*** @ingroup m17nFace */
323 @brief Type of horizontal line spec of face.
325 The type #MFaceHLineProp is to specify the detail of #Mhline
326 property of a face. The value of the property must be a pointer
327 to an object of this type. */
329 @brief ¥Õ¥§¡¼¥¹¤Î¿åÊ¿Àþ»ØÄêÍÑ·¿Àë¸À.
331 #MFaceHLineProp ¤Ï¥Õ¥§¡¼¥¹¤Î #Mhline ¥×¥í¥Ñ¥Æ¥£¤Î¾ÜºÙ¤ò»ØÄꤹ¤ë·¿
332 ¤Ç¤¢¤ë¡£¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϤ³¤Î·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
337 /***en Type of the horizontal line. */
338 /***ja ¿åÊ¿Àþ¤Î¥¿¥¤¥×. */
343 MFACE_HLINE_STRIKE_THROUGH,
348 /***en Width of the line in pixels. */
349 /***ja ÀþÉý¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë. */
352 /***en Color of the line. If the value is Mnil, foreground color of
353 a merged face is used. */
354 /***ja Àþ¤Î¿§. Mnil ¤Ê¤é¤Ð¡¢Åý¹ç¤·¤¿¥Õ¥§¡¼¥¹¤ÎÁ°·Ê¿§¤¬»È¤ï¤ì¤ë¡£ */
360 /*** @ingroup m17nFace */
362 @brief Type of box spec of face.
364 The type #MFaceBoxProp is to specify the detail of #Mbox property
365 of a face. The value of the property must be a pointer to an
366 object of this type. */
368 @brief ¥Õ¥§¡¼¥¹¤Î°Ï¤ßÏÈ»ØÄêÍÑ·¿Àë¸À.
370 #MFaceBoxProp ¤Ï¥Õ¥§¡¼¥¹¤Î #Mbox ¥×¥í¥Ñ¥Æ¥£¤Î¾ÜºÙ¤ò»ØÄꤹ¤ë·¿¤Ç¤¢
371 ¤ë¡£¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϤ³¤Î·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
376 /***en Width of the box line in pixels. */
377 /***ja ÀþÉý¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë. */
381 MSymbol color_bottom;
385 unsigned inner_hmargin;
386 unsigned inner_vmargin;
387 unsigned outer_hmargin;
388 unsigned outer_vmargin;
393 /*** @ingroup m17nFace */
395 @brief Type of hook function of face.
397 The type #MFaceHookFunc is to specify the #Mhook property of a
398 face. The value of the property must be function of this
401 @brief ¥Õ¥§¡¼¥¹¤Î¥Õ¥Ã¥¯´Ø¿ô¤Î·¿Àë¸À.
403 #MFaceHookFunc ¤Ï¥Õ¥§¡¼¥¹¤Î #Mhook ¥×¥í¥Ñ¥Æ¥£¤ò»ØÄꤹ¤ë·¿¤Ç¤¢¤ë¡£
404 ¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϡ¢¤³¤Î·¿¤Î´Ø¿ô¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
406 typedef void (*MFaceHookFunc) (MFace *face, void *arg, void *info);
409 extern void *mface_get_prop (MFace *face, MSymbol key);
411 extern int mface_put_prop (MFace *face, MSymbol key, void *val);
413 extern void mface_update (MFrame *frame, MFace *face);
415 /* end of face module */
418 /*** @ingroup m17nGUI */
419 /***en @defgroup m17nDraw Drawing */
420 /***ja @defgroup m17nDraw ɽ¼¨ */
423 /*** @ingroup m17nDraw */
425 @brief Window system dependent type for a window.
427 The type #MDrawWindow is for a window; a rectangular area that
428 works in several ways like a miniature screen.
430 What it actually points depends on a window system. A program
431 that uses the m17n-X library must coerce the type @c Drawable to
434 @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡¢¥¦¥£¥ó¥É¥¦¤Î·¿Àë¸À.
436 #MDrawWindow ¤Ï¥¦¥£¥ó¥É¥¦¡¢¤¹¤Ê¤ï¤Á´ö¤Ä¤«¤ÎÅÀ¤Ç¥¹¥¯¥ê¡¼¥ó¤Î¥ß¥Ë¥Á¥å
437 ¥¢¤È¤·¤ÆƯ¤¯¶ë·ÁÎΰèÍѤη¿¤Ç¤¢¤ë¡£
439 ¼ÂºÝ¤Ë²¿¤ò»Ø¤¹¤«¤Ï¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ m17n X ¥é¥¤¥Ö¥é¥ê
440 ¤òÍøÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ï @c Drawable ·¿¤ò¤³¤Î·¿¤ËÊÑ´¹¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é
443 typedef void *MDrawWindow;
446 /*** @ingroup m17nDraw */
448 @brief Window system dependent type for a region.
450 The type #MDrawRegion is for a region; an arbitrary set of pixels
451 on the screen (typically a rectangular area).
453 What it actually points depends on a window system. A program
454 that uses the m17n-X library must coerce the type @c Region to
457 @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡¢Îΰè¤Î·¿Àë¸À.
459 #MDrawRegion ¤ÏÎΰ衢¤¹¤Ê¤ï¤Á¥¹¥¯¥ê¡¼¥ó¾å¤ÎǤ°Õ¤Î¥Ô¥¯¥»¥ë¤Î½¸¹ç
460 ¡Êŵ·¿Åª¤Ë¤Ï¶ë·ÁÎΰè¡ËÍѤη¿¤Ç¤¢¤ë¡£
462 ¼ÂºÝ¤Ë²¿¤ò»Ø¤¹¤«¤Ï¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ m17n X ¥é¥¤¥Ö¥é¥ê
463 ¤òÍøÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ï @c Region ·¿¤ò¤³¤Î·¿¤ËÊÑ´¹¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é
466 typedef void *MDrawRegion;
469 /*** @ingroup m17nDraw */
471 @brief Type of a text drawing control.
473 The type #MDrawControl is the structure that controls how to draw
476 @brief ¥Æ¥¥¹¥Èɽ¼¨À©¸æ¤Î·¿Àë¸À.
478 #MDrawControl ·¿¤Ï¡¢M-text ¤ò¤É¤¦É½¼¨¤¹¤ë¤«¤òÀ©¸æ¤¹¤ë¹½Â¤ÂΤǤ¢¤ë¡£
484 /***en If nonzero, draw an M-text as image, i.e. with background
485 filled with background colors of faces put on the M-text.
486 Otherwise, the background is not changed. */
487 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ M-text ¤ò²èÁü¤È¤·¤Æ¡¢¤¹¤Ê¤ï¤ÁÇطʤò M-text ¤Î
488 ¥Õ¥§¡¼¥¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëÇØ·Ê¿§¤ÇËä¤á¤Æɽ¼¨¤¹¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÇØ
490 unsigned as_image : 1;
492 /***en If nonzero and the first glyph of each line has negative
493 lbearing, shift glyphs horizontally to right so that no pixel is
494 drawn to the left of the specified position. */
495 /***ja 0 ¤Ç¤Ê¤¯¡¢³Æ¹Ô¤ÎºÇ½é¤Î¥°¥ê¥Õ¤Îlbearing ¤¬Éé¤Ê¤é¤Ð¡¢¥°¥ê¥Õ¤ò¿å
496 Ê¿¤Ë±¦¤Ë¤º¤é¤·¤Æ¡¢»ØÄꤷ¤¿°ÌÃÖ¤è¤êº¸¤Ë¥Ô¥¯¥»¥ë¤¬ÉÁ¤«¤ì¤Ê¤¤¤è¤¦¤Ë
498 unsigned align_head : 1;
500 /***en If nonzero, draw an M-text two-dimensionally, i.e., newlines
501 in M-text breaks lines and the following characters are drawn in
502 the next line. If <format> is non-NULL, and the function
503 returns nonzero line width, a line longer than that width is
505 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤ò£²¼¡¸µÅª¤Ë¡¢¤¹¤Ê¤ï¤ÁM-text Ãæ¤Î
506 newline ¤Ç²þ¹Ô¤·¡¢Â³¤¯Ê¸»ú¤Ï¼¡¤®¤Î¹Ô¤Ëɽ¼¨¤¹¤ë¡£¤â¤· <format> ¤¬
507 NULL ¤Ç¤Ê¤¯¡¢¤½¤Î´Ø¿ô¤¬ 0 ¤Ç¤Ê¤¤¹ÔÉý¤òÊÖ¤»¤Ð¡¢¤½¤ÎÉý¤è¤êŤ¤¹Ô¤â
509 unsigned two_dimensional : 1;
511 /***en If nonzero, draw an M-text to the right of a specified
513 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤ò»ØÄꤷ¤¿°ÌÃ֤ᦤËɽ¼¨¤¹¤ë¡£ */
514 unsigned orientation_reversed : 1;
516 /***en If nonzero, reorder glyphs correctly for bidi text. */
517 /***ja 0 ¤Ê¤±¤ì¤Ð¡¢bidi ¥Æ¥¥¹¥ÈÍѤ˥°¥ê¥Õ¤òÀµ¤·¤¯À°Î󤹤롣 */
518 unsigned enable_bidi : 1;
520 /***en If nonzero, don't draw characters whose general category (in
521 Unicode) is Cf (Other, format). */
522 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥æ¥Ë¥³¡¼¥É¤ËÃÖ¤±¤ë°ìÈÌ¥«¥Æ¥´¥ê¤¬ Cf (Other,
523 format) ¤Ç¤¢¤ëʸ»ú¤òɽ¼¨¤·¤Ê¤¤¡£ */
524 unsigned ignore_formatting_char : 1;
526 /***en If nonzero, draw glyphs suitable for a terminal. Not yet
528 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ã¼ËöÍѤΥ°¥ê¥Õ¤òɽ¼¨¤¹¤ë¡£¡Ê̤¼ÂÁõ¡£¡Ë */
529 unsigned fixed_width : 1;
531 /***en If nonzero, draw glyphs with anti-aliasing if a backend font
532 driver supports it. */
533 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥¢¥ó¥Á¥¨¡¼¥ê¥¢¥¹¤Ç¥°¥ê¥Õ¤òɽ¼¨¤¹¤ë¡£¡Ê¥Ð¥Ã¥¯¥¨
534 ¥ó¥É¤Î¥Õ¥©¥ó¥È¥É¥é¥¤¥Ð¤¬¥¢¥ó¥Á¥¨¡¼¥ê¥¢¥¹µ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì
536 unsigned anti_alias : 1;
538 /***en If nonzero, the values are minimum line ascent and descent
540 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤΠascent ¤È descent ¤ÎºÇ¾®Ãͤò¼¨¤¹¡£ */
541 unsigned int min_line_ascent;
542 unsigned int min_line_descent;
544 /***en If nonzero, the values are maximum line ascent and descent
546 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤΠascent ¤È descent ¤ÎºÇÂçÃͤò¼¨¤¹¡£ */
547 unsigned int max_line_ascent;
548 unsigned int max_line_descent;
550 /***en If nonzero, the value specifies how many pixels each line can
551 occupy on the display. The value zero means that there is no
552 limit. It is ignored if <format> is non-NULL. */
553 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϤ³¤Î¥Ç¥£¥¹¥×¥ì¥¤¾å¤Ç³Æ¹Ô¤¬Àê¤á¤ë¤³¤È¤Î¤Ç¤
554 ¤ë¥Ô¥¯¥»¥ë¿ô¤ò¼¨¤¹¡£ 0 ¤Ï¸ÂÄꤵ¤ì¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£<format> ¤¬
555 NULL ¤Ç¤Ê¤±¤ì¤Ð̵»ë¤µ¤ì¤ë¡£ */
556 unsigned int max_line_width;
558 /***en If nonzero, the value specifies the distance between tab
559 stops in columns (the width of one column is the width of a
560 space in the default font of the frame). The value zero means
562 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ãͤϥ¿¥Ö¥¹¥È¥Ã¥×´Ö¤Îµ÷Î¥¤ò¥³¥é¥àñ°Ì¡Ê¥³¥é¥à¤Ï
563 ¥Õ¥ì¡¼¥à¤Î¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤Ë¤ª¤±¤ë¶õÇòʸ»ú¤ÎÉý¤Ç¤¢¤ë¡Ë¤Ç¼¨¤¹¡£
564 0 ¤Ï 8 ¤ò°ÕÌ£¤¹¤ë¡£ */
565 unsigned int tab_width;
567 /***en If non-NULL, the value is a function that calculates the
568 indentation and width limit of each line based on the line
569 number LINE and the coordinate Y. The function store the
570 indentation and width limit at the place pointed by INDENT and
573 The indentation specifies how many pixels the first glyph of
574 each line is shifted to the right (if the member
575 <orientation_reversed> is zero) or to the left (otherwise). If
576 the value is negative, each line is shifted to the reverse
579 The width limit specifies how many pixels each line can occupy
580 on the display. The value 0 means that there is no limit.
582 LINE and Y are reset to 0 when a line is broken by a newline
583 character, and incremented each time when a long line is broken
584 because of the width limit.
586 This has an effect only when <two_dimensional> is nonzero. */
587 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ãͤϴؿô¤Ç¤¢¤ê¡¢¤½¤Î´Ø¿ô¤Ï¹ÔÈÖ¹æ LINE ¤ÈºÂɸ Y
588 ¤Ë´ð¤Å¤¤¤Æ³Æ¹Ô¤Î¥¤¥ó¥Ç¥ó¥È¤ÈºÇÂçÉý¤ò·×»»¤·¡¢¤½¤ì¤¾¤ì¤òINDENT ¤È
589 WIDTH ¤Ç»Ø¤µ¤ì¤ë¾ì½ê¤ËÊݸ¤¹¤ë¡£
591 ¥¤¥ó¥Ç¥ó¥È¤Ï¡¢³Æ¹Ô¤ÎºÇ½é¤Î¥°¥ê¥Õ¤¬±¦¡Ê¥á¥ó¥Ð
592 <orientation_reversed> ¤¬ 0 ¤Î»þ¡Ë¤¢¤ë¤¤¤Ïº¸¡Ê¤½¤ì°Ê³°¤Î»þ¡Ë¤Ë²¿
593 ¥Ô¥¯¥»¥ë¤º¤é¤¹¤ò»ØÄꤹ¤ë¡£Ãͤ¬Éé¤Ê¤é¤ÐµÕÊý¸þ¤Ë¤º¤é¤¹¡£
595 ºÇÂçÉý¤Ï¡¢³Æ¹Ô¤¬¥Ç¥£¥¹¥×¥ì¥¤¾å¤ÇÀê¤á¤ë¤³¤È¤Î¤Ç¤¤ë¥Ô¥¯¥»¥ë¿ô¤ÎºÇ
596 ÂçÃͤǤ¢¤ë¡£Ãͤ¬ 0 ¤Î¾ì¹ç¤ÏÀ©¸Â¤ò¼õ¤±¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
598 LINE ¤È Y ¤Ï²þ¹Ôʸ»ú¤Ë¤è¤Ã¤Æ¹Ô¤¬²þ¤Þ¤Ã¤¿ºÝ¤Ë¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢
599 ºÇÂçÉý¤Ë¤è¤Ã¤Æ¹Ô¤¬²þ¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï 1 ¤Å¤ÄÁý¤ä¤µ¤ì¤ë¡£
601 ¤³¤ì¤Ï <two_dimensional> ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß͸ú¤Ç¤¢¤ë¡£ */
602 void (*format) (int line, int y, int *indent, int *width);
604 /***en If non-NULL, the value is a function that calculates a line
605 breaking position when a line is too long to fit within the
606 width limit. POS is the position of the character next to the
607 last one that fits within the limit. FROM is the position of the
608 first character of the line, and TO is the position of the last
609 character displayed on the line if there were not width limit.
610 LINE and Y are the same as the arguments to <format>.
612 The function must return a character position to break the
615 The function should not modify MT.
617 The mdraw_default_line_break () function is useful for such a
618 script that uses SPACE as a word separator. */
619 /***ja NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤ¬ºÇÂçÉýÃæ¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¤Ë¹Ô¤ò²þ¤á¤ë
620 °ÌÃÖ¤ò·×»»¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£POS ¤ÏºÇÂçÉý¤Ë¼ý¤Þ¤ëºÇ¸å¤Îʸ»ú¤Î¼¡¤Îʸ
621 »ú¤Î°ÌÃ֤Ǥ¢¤ë¡£FROM ¤Ï¹Ô¤ÎºÇ½é¤Îʸ»ú¤Î°ÌÃÖ¡¢TO ¤ÏºÇÂçÉý¤¬»ØÄꤵ
622 ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤½¤Î¹Ô¤Ëɽ¼¨¤µ¤ì¤ëºÇ¸å¤Îʸ»ú¤Î°ÌÃ֤Ǥ¢¤ë¡£LINE ¤È
623 Y ¤Ï <format> ¤Î°ú¿ô¤ÈƱ¤¸¤Ç¤¢¤ë¡£
625 ¤³¤Î´Ø¿ô¤Ï¹Ô¤ò²þ¤á¤ëʸ»ú°ÌÃÖ¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤Þ¤¿MT ¤ò
628 ´Ø¿ô mdraw_default_line_break () ¤Ï¡¢¶õÇò¤ò¸ì¤Î¶èÀÚ¤ê¤È¤·¤ÆÍѤ¤
629 ¤ë¥¹¥¯¥ê¥×¥ÈÍѤȤ·¤ÆÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤ë¡£ */
630 int (*line_break) (MText *mt, int pos, int from, int to, int line, int y);
634 /***en Specifies the character position to display a cursor. If it
635 is greater than the maximum character position, the cursor is
636 displayed next to the last character of an M-text. If the value
637 is negative, even if <cursor_width> is nonzero, cursor is not
639 /***ja ¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ëʸ»ú°ÌÃÖ¤ò¼¨¤¹¡£ºÇÂç¤Îʸ»ú°ÌÃÖ¤è¤êÂ礤±¤ì
640 ¤Ð¡¢¥«¡¼¥½¥ë¤ÏM-text ¤ÎºÇ¸å¤Îʸ»ú¤ÎÎÙ¤Ëɽ¼¨¤µ¤ì¤ë¡£Éé¤Ê¤é¤Ð¡¢
641 <cursor_width> ¤¬ 0 ¤Ç¤Ê¤¯¤Æ¤â¥«¡¼¥½¥ë¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£
645 /***en If nonzero, display a cursor at the character position
646 <cursor_pos>. If the value is positive, it is the pixel width
647 of the cursor. If the value is negative, the cursor width is
648 the same as the underlining glyph(s). */
649 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢<cursor_pos> ¤Ë¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ë¡£Ãͤ¬Àµ¤Ê¤é¤Ð¡¢
650 ¥«¡¼¥½¥ë¤ÎÉý¤Ï¤½¤ÎÃÍ¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë¤Ç¤¢¤ë¡£Éé¤Ê¤é¤Ð¡¢¥«¡¼¥½¥ë¤Î
651 ¤¢¤ë¥°¥ê¥Õ¤ÈƱ¤¸Éý¤Ç¤¢¤ë¡£ */
654 /***en If nonzero and <cursor_width> is also nonzero, display double
655 bar cursors; at the character position <cursor_pos> and at the
656 logically previous character. Both cursors have one pixel width
657 with horizontal fringes at upper or lower positions. */
658 /***ja If 0 ¤Ç¤Ê¤¯¡¢¤«¤Ä <cursor_width> ¤â 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Ð¡¼¥«¡¼¥½
659 ¥ë¤òʸ»ú°ÌÃÖ<cursor_pos> ¤ÈÏÀÍýŪ¤Ë¤½¤ì¤ÎÁ°¤Ë¤¢¤ëʸ»ú¤Î£²¥ö½êɽ
660 ¼¨¤¹¤ë¡£ÁÐÊý¤È¤â£±¥Ô¥¯¥»¥ëÉý¤Ç¡¢¾å²¼¤Ë¿åÊ¿¤Î¾þ¤ê¤¬¤Ä¤¯¡£*/
663 /***en If nonzero, on drawing partial text, pixels of surrounding
664 texts that intrude into the drawing area are also drawn. For
665 instance, some CVC sequence of Thai text (C is consonant, V is
666 upper vowel) is drawn so that V is placed over the middle of two
667 Cs. If this CVC sequence is already drawn and only the last C
668 is drawn again (for instance by updating cursor position), the
669 right half of V is erased if this member is zero. By setting
670 this member to nonzero, even with such a drawing, we can keep
671 this CVC sequence correctly displayed. */
672 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Æ¥¥¹¥È¤Î°ìÉôʬ¤òɽ¼¨¤¹¤ëºÝ¤Ë¡¢Á°¸å¤Î¥Æ¥¥¹¥È
673 ¤Î¤¦¤Á¤½¤Îɽ¼¨Îΰè¤Ë¿¯Æþ¤¹¤ëÉôʬ¤âɽ¼¨¤¹¤ë¡£¤¿¤È¤¨¤Ð¡¢¥¿¥¤¸ìʸ½ñ
674 ¤Î»Ò²»-Êì²»-»Ò²»¤È¤¤¤¦¥·¡¼¥¯¥¨¥ó¥¹¤Î¤¤¤¯¤Ä¤«¤Ï¡¢Êì²»¤¬Æó¤Ä¤Î»Ò²»
675 ¤Î´Ö¤Ë¾å¤Ë¤Î¤ë¤è¤¦¤ËÉÁ¤«¤ì¤ë¡£¤³¤Î¤è¤¦¤Ê¥·¡¼¥¯¥¨¥ó¥¹¤¬¤¹¤Ç¤ËÉÁ¤«
676 ¤ì¤Æ¤ª¤ê¡¢ºÇ¸å¤Î»Ò²»¤À¤±¤òÉÁ¤Ä¾¤¹¾ì¹ç¡Ê¤¿¤È¤¨¤Ð¡¢¥«¡¼¥½¥ë°ÌÃÖ¤ò
677 ¹¹¿·¤¹¤ëºÝ¤Ê¤É¡Ë¤³¤Î¥á¥ó¥Ð¤¬ 0 ¤Ç¤¢¤ì¤Ð¡¢Êì²»¤Î±¦È¾Ê¬¤¬¾Ã¤µ¤ì¤Æ
678 ¤·¤Þ¤¦¡£¤³¤ì¤ò 0 °Ê³°¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¤è¤¦¤ÊºÝ¤Ë¤â»Ò²»-Êì
679 ²»-»Ò²»¥·¡¼¥¯¥¨¥ó¥¹¤òÀµ¤·¤¯É½¼¨¤·Â³¤±¤ë¤³¤È¤¬¤Ç¤¤ë¡£ */
682 /***en If nonzero, don't cache the result of any drawing information
684 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤Îɽ¼¨¤Ë´Ø¤¹¤ë¾ðÊó¤ò¥¥ã¥Ã¥·¥å¤·¤Ê¤¤¡£
688 /* If non-NULL, limit the drawing effect to the specified region. */
689 MDrawRegion clip_region;
695 /*** @ingroup m17nDraw */
697 @brief Type of metric for gylphs and texts.
699 The type #MDrawMetric is for a metric of a glyph and a drawn text.
700 It is also used to represent a rectangle area of a graphic
703 @brief ¥°¥ê¥Õ¤È¥Æ¥¥¹¥È¤ÎÀ£Ë¡¤Î·¿Àë¸À.
705 #MDrawMetric ¤Ï¥°¥ê¥Õ¤Èɽ¼¨¤µ¤ì¤¿¥Æ¥¥¹¥È¤ÎÀ£Ë¡ÍѤη¿¤Ç¤¢¤ë¡£¤Þ¤¿¡¢
706 ɽ¼¨¥Ç¥Ð¥¤¥¹¤Î¶ë·ÁÎΰè¤òɽ¤¹¤Î¤Ë¤âÍѤ¤¤é¤ì¤ë¡£ */
710 unsigned int width, height;
715 /*** @ingroup m17nDraw */
717 @brief Type of information about a glyph.
719 The type #MDrawGlyphInfo is the structure that contains
720 information about a glyph. It is used by mdraw_glyph_info (). */
722 @brief ¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤Î·¿Àë¸À.
724 #MDrawGlyphInfo ·¿¤Ï¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¹½Â¤ÂΤǤ¢¤ë¡£
725 mdraw_glyph_info () ¤Ï¤³¤ì¤òÍѤ¤¤ë¡£ */
729 /***en Character range corresponding to the glyph. */
730 /***ja ¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï. */
733 /***en Character ranges corresponding to the line of the glyph. */
734 /***ja ¥°¥ê¥Õ¤ÎÎó¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï. */
735 int line_from, line_to;
737 /***en X/Y coordinates of the glyph. */
738 /***ja ¥°¥ê¥Õ¤Î X/Y ºÂɸ. */
741 /***en Metric of the glyph. */
742 /***ja ¥°¥ê¥Õ¤ÎÀ£Ë¡. */
745 /***en Font used for the glyph. Set to NULL if no font is found for
747 /***ja ¥°¥ê¥Õ¤Ë»È¤ï¤ì¤ë¥Õ¥©¥ó¥È¡£¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð NULL¡£
751 /***en Character ranges corresponding to logically previous and next
752 glyphs. Note that we do not need the members prev_to and
753 next_from because they must be the same as the members from and
755 /***ja ÏÀÍýŪ¤ÊÁ°¸å¤Î¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï¡£¥á¥ó¥Ð prev_to ¤È
756 next_from ¤Ï¡¢¤½¤ì¤¾¤ì¥á¥ó¥Ð from ¤Èto ¤ÈƱ¤¸¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤
757 ¤¿¤áÉÔÍפǤ¢¤ë¤³¤È¤ËÃí°Õ¡£ */
758 int prev_from, next_to;
760 /***en Character ranges corresponding to visually left and right
762 /***ja ɽ¼¨¾å¤Îº¸±¦¤Î¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï¡£ */
763 int left_from, left_to;
764 int right_from, right_to;
766 /***en Font glyph code of the glyph. */
767 /***ja ¥Õ¥©¥ó¥ÈÆâ¤Î¥°¥ê¥Õ¥³¡¼¥É¡£ */
770 /***en Logical width of the glyph. Nominal distance to the next
772 /***ja ¥°¥ê¥Õ¤ÎÏÀÍýŪÉý¡£¼¡¤Î¥°¥ê¥Õ¤È¤Î̾Ìܾå¤Îµ÷Î¥¡£ */
780 @brief Type of text items.
782 The type #MDrawTextItem is for @e textitem objects.
783 Each textitem contains an M-text and some other information to
784 control the drawing of the M-text. */
787 @brief textitem ¤Î·¿Àë¸À.
789 #MDrawTextItem ¤Ï @e ¥Æ¥¥¹¥È¥¢¥¤¥Æ¥à ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤη¿¤Ç¤¢¤ë¡£³Æ
790 ¥Æ¥¥¹¥È¥¢¥¤¥Æ¥à¤Ï¡¢1¸Ä¤Î M-text ¤È¡¢¤½¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤¿¤á¤Î³Æ¼ï
793 @latexonly \IPAlabel{MTextItem} @endlatexonly */
801 /***en Optional change in the position (in the unit of pixel) along
802 the X-axis before the M-text is drawn. */
803 /***ja M-text ɽ¼¨Á°¤Ë¹Ô¤Ê¤¦X¼´Êý¸þ¤Î°ÌÃÖÄ´À° (¥Ô¥¯¥»¥ëñ°Ì) */
806 /***en Pointer to a face object. Each property of the face, if not
807 Mnil, overrides the same property of face(s) specified as a text
809 /***ja ¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£¥Õ¥§¡¼¥¹¤Î³Æ¥×¥í¥Ñ¥Æ¥£¤Ï
810 Mnil ¤Ç¤Ê¤±¤ì¤Ð <mt> ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥§¡¼¥¹¤ÎƱ¤¸¥×¥í¥Ñ¥Æ¥£¤ËÍ¥Àè
814 /***en Pointer to a draw control object. The M-text <mt> is drawn
815 by mdraw_text_with_control () with this control object. */
816 /***ja ɽ¼¨À©¸æ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ mdraw_text_with_control ()
817 ¤Ï¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÍѤ¤¤Æ M-text <mt> ¤òɽ¼¨¤¹¤ë¡£ */
818 MDrawControl *control;
824 extern int mdraw_text (MFrame *frame, MDrawWindow win, int x, int y,
825 MText *mt, int from, int to);
827 extern int mdraw_image_text (MFrame *frame, MDrawWindow win, int x, int y,
828 MText *mt, int from, int to);
830 extern int mdraw_text_with_control (MFrame *frame, MDrawWindow win,
831 int x, int y, MText *mt, int from, int to,
832 MDrawControl *control);
834 extern int mdraw_coordinates_position (MFrame *frame,
835 MText *mt, int from, int to,
836 int x, int y, MDrawControl *control);
838 extern int mdraw_text_extents (MFrame *frame,
839 MText *mt, int from, int to,
840 MDrawControl *control,
841 MDrawMetric *overall_ink_return,
842 MDrawMetric *overall_logical_return,
843 MDrawMetric *overall_line_return);
845 extern int mdraw_text_per_char_extents (MFrame *frame,
846 MText *mt, int from, int to,
847 MDrawControl *control,
848 MDrawMetric *ink_array_return,
849 MDrawMetric *logical_array_return,
851 int *num_chars_return,
852 MDrawMetric *overall_ink_return,
853 MDrawMetric *overall_logical_return);
855 extern int mdraw_glyph_info (MFrame *frame, MText *mt, int from, int pos,
856 MDrawControl *control, MDrawGlyphInfo *info);
858 extern int mdraw_glyph_list (MFrame *frame, MText *mt, int from, int to,
859 MDrawControl *control, MDrawGlyphInfo *info,
860 int array_size, int *num_glyphs_return);
862 extern void mdraw_text_items (MFrame *frame, MDrawWindow win, int x, int y,
863 MDrawTextItem *items, int nitems);
865 extern void mdraw_per_char_extents (MFrame *frame, MText *mt,
866 MDrawMetric *array_return,
867 MDrawMetric *overall_return);
869 extern int mdraw_default_line_break (MText *mt, int pos,
870 int from, int to, int line, int y);
872 extern void mdraw_clear_cache (MText *mt);
874 /* end of drawing module */
877 /*** @ingroup m17nGUI */
878 /***en @defgroup m17nInputMethodWin Input Method (GUI) */
879 /***ja @defgroup m17nInputMethodWin ÆþÎϥ᥽¥Ã¥É (GUI) */
882 extern MInputDriver minput_gui_driver;
885 /*** @ingroup m17nInputMethodWin */
887 @brief Type of the argument to the function minput_create_ic ().
889 The type #MInputGUIArgIC is for the argument $ARG of the function
890 minput_create_ic () to create an input context of an internal
894 @brief ´Ø¿ô minput_create_ic () ¤Î°ú¿ô¤Î·¿Àë¸À.
896 #MInputGUIArgIC ¤Ï¡¢´Ø¿ô minput_create_ic () ¤¬ÆâÉôÆþÎϥ᥽¥Ã¥É¤Î
897 ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤¹¤ëºÝ¤Î¡¢°ú¿ô $ARG ÍѤη¿¤Ç¤¢¤ë¡£ */
901 /***en Frame of the client. */
902 /***ja ¥¯¥é¥¤¥¢¥ó¥È¤Î¥Õ¥ì¡¼¥à */
905 /***en Window on which to display the preedit and status text. */
906 /***ja preedit ¥Æ¥¥¹¥È¤È status ¥Æ¥¥¹¥È¤òɽ¼¨¤¹¤ë¥¦¥£¥ó¥É¥¦ */
909 /***en Window that the input context has a focus on. */
910 /***ja ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤¬¥Õ¥©¡¼¥«¥¹¤ò¤ª¤¤¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦ */
916 extern MSymbol minput_event_to_key (MFrame *frame, void *event);
918 /* end of input module */
920 /* end of window modules */
923 extern MFace *mdebug_dump_face (MFace *face, int indent);
924 extern MFont *mdebug_dump_font (MFont *font);
925 extern MFontset *mdebug_dump_fontset (MFontset *fontset, int indent);
931 #endif /* _M17N_GUI_H_ */