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 extern void m17n_init_win (void);
37 #define M17N_INIT() m17n_init_win ()
39 extern void m17n_fini_win (void);
41 #define M17N_FINI() m17n_fini_win ()
43 /***en @defgroup m17nGUI GUI API */
44 /***ja @defgroup m17nGUI GUI API */
47 /*** @ingroup m17nGUI */
48 /***en @defgroup m17nFrame Frame */
49 /***ja @defgroup m17nFrame ¥Õ¥ì¡¼¥à */
52 /*** @ingroup m17nFrame */
54 @brief Type of frames.
56 The type #MFrame is for a @e frame object. Each frame holds
57 various information about the corresponding physical display/input
60 The internal structure of the type #MFrame is concealed from an
61 application program, and its contents depend on the window system
62 in use. In the m17n-X library, it contains the information about
63 @e display and @e screen in the X Window System. */
66 @brief ¥Õ¥ì¡¼¥à¤Î·¿Àë¸À.
68 #MFrame ¤Ï¡¢@e ¥Õ¥ì¡¼¥à ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤη¿¤Ç¤¢¤ë¡£¸Ä¡¹¤Î¥Õ¥ì¡¼¥à¤Ï¡¢
69 ¤½¤ì¤¬Âбþ¤¹¤ëʪÍýŪ¤Êɽ¼¨¡¿ÆþÎϥǥХ¤¥¹¤Î³Æ¼ï¾ðÊó¤òÊÝ»ý¤¹¤ë¡£
71 #MFrame ·¿¤ÎÆâÉô¹½Â¤¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£
72 ¤Þ¤¿¤½¤ÎÆâÍƤϻÈÍѤ¹¤ë¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£¤Þ¤¿m17n-X ¥é
73 ¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë¥Õ¥ì¡¼¥à¤Ï¡¢X ¥¦¥£¥ó¥É¥¦¤Î @e display ¤È @e screen
77 typedef struct MFrame MFrame;
81 extern MSymbol Mdevice;
84 extern MSymbol Mfont_width;
85 extern MSymbol Mfont_ascent;
86 extern MSymbol Mfont_descent;
87 extern MFrame *mframe_default;
89 extern MSymbol Mdisplay;
90 extern MSymbol Mscreen;
91 extern MSymbol Mdrawable;
92 extern MSymbol Mwidget;
93 extern MSymbol Mdepth;
94 extern MSymbol Mcolormap;
98 extern MFrame *mframe (MPlist *plist);
100 extern void *mframe_get_prop (MFrame *frame, MSymbol key);
102 /* end of frame module */
105 /*** @ingroup m17nGUI */
106 /***en @defgroup m17nFont Font */
107 /***ja @defgroup m17nFont ¥Õ¥©¥ó¥È */
110 /*** @ingroup m17nFont */
112 @brief Type of fonts.
114 The type #MFont is the structure defining fonts. It contains
115 information about the following properties of a font: foundry,
116 family, weight, style, stretch, adstyle, registry, size, and
119 This structure is used both for specifying a font in a fontset
120 and for storing information about available system fonts.
122 The internal structure is concealed from an application program. */
125 @brief ¥Õ¥©¥ó¥È¤Î·¿Àë¸À.
127 #MFont ·¿¤Ï¥Õ¥©¥ó¥È»ØÄêÍѤι½Â¤ÂΤǤ¢¤ê¡¢¥Õ¥©¥ó¥È¤Î¥×¥í¥Ñ¥Æ¥£¤Ç¤¢
128 ¤ë foundry, family, weight, style, stretch, adstyle, registry,
129 size, resolution ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¡£
131 ¤³¤Î¹½Â¤ÂΤϥե©¥ó¥È¥»¥Ã¥ÈÆâ¤Î¥Õ¥©¥ó¥È¤ò»ØÄꤹ¤ëºÝ¤È¡¢»ÈÍѲÄǽ¤Ê¥·
132 ¥¹¥Æ¥à¥Õ¥©¥ó¥È¤Î¾ðÊó¤ò³ÊǼ¤¹¤ëºÝ¤ÎξÊý¤ËÍѤ¤¤é¤ì¤ë¡£
134 ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */
138 mfont (), mfont_from_name (), mfont_find (). */
140 typedef struct MFont MFont;
144 extern MSymbol Mfont;
146 extern MPlist *mfont_freetype_path;
148 extern MFont *mfont ();
150 extern MFont *mfont_copy (MFont *font);
152 extern MFont *mfont_parse_name (char *name, MSymbol format);
154 extern char *mfont_unparse_name (MFont *font, MSymbol format);
156 extern MFont *mfont_from_spec (char *family, char *weight, char *slant,
157 char *swidth, char *adstyle, char *registry,
158 unsigned short point, unsigned short res);
160 /* These two are obsolete (from 1.1.0). */
161 extern char *mfont_name (MFont *font);
162 extern MFont *mfont_from_name (char *name);
164 extern MSymbol Mfoundry;
165 extern MSymbol Mfamily;
166 extern MSymbol Mweight;
167 extern MSymbol Mstyle;
168 extern MSymbol Mstretch;
169 extern MSymbol Madstyle;
170 extern MSymbol Mregistry;
171 extern MSymbol Msize;
172 extern MSymbol Mresolution;
174 extern MSymbol Mfontconfig;
176 extern void *mfont_get_prop (MFont *font, MSymbol key);
178 extern int mfont_put_prop (MFont *font, MSymbol key, void *val);
180 extern int mfont_set_encoding (MFont *font,
181 MSymbol encoding_name, MSymbol repertory_name);
189 The mfont_find () function returns a pointer to the available font
190 that matches best with the specification $SPEC in frame $FRAME.
192 $SCORE, if not NULL, must point to a place to store the score
193 value which indicates how well the found font matches $SPEC. The
194 smaller score means a better match.
196 $LIMITED_SIZE, if nonzero, forces the font selector to find a
197 font not greater than the #Msize property of $SPEC. */
200 @brief ¥Õ¥©¥ó¥È¤òõ¤¹.
202 ´Ø¿ô mfont_find () ¤Ï¡¢¥Õ¥ì¡¼¥à $FRAME ¾å¤Ç¥Õ¥©¥ó¥ÈÄêµÁ $SPEC ¤Ë¤â¤Ã
203 ¤È¤â¹çÃפ¹¤ë»ÈÍѲÄǽ¤Ê¥Õ¥©¥ó¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
205 $SCORE ¤Ï NULL ¤Ç¤¢¤ë¤«¡¢¸«¤Ä¤«¤Ã¤¿¥Õ¥©¥ó¥È¤¬ $SPEC ¤Ë¤É¤ì¤Û¤É¹ç¤Ã
206 ¤Æ¤¤¤ë¤«¤ò¼¨¤¹¥¹¥³¥¢¤òÊݸ¤¹¤ë¾ì½ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£¥¹¥³¥¢¤¬¾®¤µ
207 ¤¤¤Û¤ÉÎɤ¯¹ç¤Ã¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
209 $LIMITED_SIZE ¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢$SPEC ¤Î¥×¥í¥Ñ¥Æ¥£ #Msize ¤è¤êÂç¤
210 ¤¯¤Ê¤¤¥Õ¥©¥ó¥È¤À¤±¤¬Ãµ¤µ¤ì¤ë¡£
213 extern MFont *mfont_find (MFrame *frame, MFont *spec,
214 int *score, int limited_size);
216 extern MSymbol *mfont_selection_priority ();
218 extern int mfont_set_selection_priority (MSymbol *keys);
220 /* end of font module */
223 /*** @ingroup m17nGUI */
224 /***en @defgroup m17nFontset Fontset */
225 /***ja @defgroup m17nFontset ¥Õ¥©¥ó¥È¥»¥Ã¥È */
228 typedef struct MFontset MFontset;
230 extern MFontset *mfontset (char *name);
232 extern MSymbol mfontset_name (MFontset *fontset);
234 extern MFontset *mfontset_copy (MFontset *fontset, char *name);
236 extern int mfontset_modify_entry (MFontset *fontset,
237 MSymbol language, MSymbol script,
239 MFont *spec, MSymbol layouter_name,
242 extern MPlist *mfontset_lookup (MFontset *fontset, MSymbol script,
243 MSymbol language, MSymbol charset);
245 /* end of fontset module */
248 /*** @ingroup m17nGUI */
249 /***en @defgroup m17nFace Face */
250 /***ja @defgroup m17nFace ¥Õ¥§¡¼¥¹ */
253 /*** @ingroup m17nFace */
255 @brief Type of faces.
257 The type #MFace is the structure of face objects. The internal
258 structure is concealed from an application program. */
261 @brief ¥Õ¥§¡¼¥¹¤Î·¿Àë¸À.
263 #MFace ·¿¤Ï¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ë¡£ÆâÉô¹½Â¤¤Ï
264 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */
266 typedef struct MFace MFace;
269 extern MSymbol Mforeground;
270 extern MSymbol Mbackground;
271 extern MSymbol Mvideomode;
272 extern MSymbol Mnormal;
273 extern MSymbol Mreverse;
274 extern MSymbol Mhline;
276 extern MSymbol Mfontset;
277 extern MSymbol Mratio;
278 extern MSymbol Mhook_func;
279 extern MSymbol Mhook_arg;
281 /* Predefined faces. */
282 extern MFace *mface_normal_video;
283 extern MFace *mface_reverse_video;
284 extern MFace *mface_underline;
285 extern MFace *mface_medium;
286 extern MFace *mface_bold;
287 extern MFace *mface_italic;
288 extern MFace *mface_bold_italic;
289 extern MFace *mface_xx_small;
290 extern MFace *mface_x_small;
291 extern MFace *mface_small;
292 extern MFace *mface_normalsize;
293 extern MFace *mface_large;
294 extern MFace *mface_x_large;
295 extern MFace *mface_xx_large;
296 extern MFace *mface_black;
297 extern MFace *mface_white;
298 extern MFace *mface_red;
299 extern MFace *mface_green;
300 extern MFace *mface_blue;
301 extern MFace *mface_cyan;
302 extern MFace *mface_yellow;
303 extern MFace *mface_magenta;
306 extern MSymbol Mface;
308 extern MFace *mface ();
310 extern MFace *mface_copy (MFace *face);
312 extern MFace *mface_merge (MFace *dst, MFace *src);
314 extern MFace *mface_from_font (MFont *font);
318 /*** @ingroup m17nFace */
320 @brief Type of horizontal line spec of face.
322 The type #MFaceHLineProp is to specify the detail of #Mhline
323 property of a face. The value of the property must be a pointer
324 to an object of this type. */
326 @brief ¥Õ¥§¡¼¥¹¤Î¿åÊ¿Àþ»ØÄêÍÑ·¿Àë¸À.
328 #MFaceHLineProp ¤Ï¥Õ¥§¡¼¥¹¤Î #Mhline ¥×¥í¥Ñ¥Æ¥£¤Î¾ÜºÙ¤ò»ØÄꤹ¤ë·¿
329 ¤Ç¤¢¤ë¡£¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϤ³¤Î·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
334 /***en Type of the horizontal line. */
335 /***ja ¿åÊ¿Àþ¤Î¥¿¥¤¥×. */
340 MFACE_HLINE_STRIKE_THROUGH,
345 /***en Width of the line in pixels. */
346 /***ja ÀþÉý¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë. */
349 /***en Color of the line. If the value is Mnil, foreground color of
350 a merged face is used. */
351 /***ja Àþ¤Î¿§. Mnil ¤Ê¤é¤Ð¡¢Åý¹ç¤·¤¿¥Õ¥§¡¼¥¹¤ÎÁ°·Ê¿§¤¬»È¤ï¤ì¤ë¡£ */
357 /*** @ingroup m17nFace */
359 @brief Type of box spec of face.
361 The type #MFaceBoxProp is to specify the detail of #Mbox property
362 of a face. The value of the property must be a pointer to an
363 object of this type. */
365 @brief ¥Õ¥§¡¼¥¹¤Î°Ï¤ßÏÈ»ØÄêÍÑ·¿Àë¸À.
367 #MFaceBoxProp ¤Ï¥Õ¥§¡¼¥¹¤Î #Mbox ¥×¥í¥Ñ¥Æ¥£¤Î¾ÜºÙ¤ò»ØÄꤹ¤ë·¿¤Ç¤¢
368 ¤ë¡£¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϤ³¤Î·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
373 /***en Width of the box line in pixels. */
374 /***ja ÀþÉý¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë. */
378 MSymbol color_bottom;
382 unsigned inner_hmargin;
383 unsigned inner_vmargin;
384 unsigned outer_hmargin;
385 unsigned outer_vmargin;
390 /*** @ingroup m17nFace */
392 @brief Type of hook function of face.
394 The type #MFaceHookFunc is to specify the #Mhook property of a
395 face. The value of the property must be function of this
398 @brief ¥Õ¥§¡¼¥¹¤Î¥Õ¥Ã¥¯´Ø¿ô¤Î·¿Àë¸À.
400 #MFaceHookFunc ¤Ï¥Õ¥§¡¼¥¹¤Î #Mhook ¥×¥í¥Ñ¥Æ¥£¤ò»ØÄꤹ¤ë·¿¤Ç¤¢¤ë¡£
401 ¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϡ¢¤³¤Î·¿¤Î´Ø¿ô¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
403 typedef void (*MFaceHookFunc) (MFace *face, void *arg, void *info);
406 extern void *mface_get_prop (MFace *face, MSymbol key);
408 extern int mface_put_prop (MFace *face, MSymbol key, void *val);
410 extern void mface_update (MFrame *frame, MFace *face);
412 /* end of face module */
415 /*** @ingroup m17nGUI */
416 /***en @defgroup m17nDraw Drawing */
417 /***ja @defgroup m17nDraw ɽ¼¨ */
420 /*** @ingroup m17nDraw */
422 @brief Window system dependent type for a window.
424 The type #MDrawWindow is for a window; a rectangular area that
425 works in several ways like a miniature screen.
427 What it actually points depends on a window system. A program
428 that uses the m17n-X library must coerce the type @c Drawable to
431 @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡¢¥¦¥£¥ó¥É¥¦¤Î·¿Àë¸À.
433 #MDrawWindow ¤Ï¥¦¥£¥ó¥É¥¦¡¢¤¹¤Ê¤ï¤Á´ö¤Ä¤«¤ÎÅÀ¤Ç¥¹¥¯¥ê¡¼¥ó¤Î¥ß¥Ë¥Á¥å
434 ¥¢¤È¤·¤ÆƯ¤¯¶ë·ÁÎΰèÍѤη¿¤Ç¤¢¤ë¡£
436 ¼ÂºÝ¤Ë²¿¤ò»Ø¤¹¤«¤Ï¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ m17n X ¥é¥¤¥Ö¥é¥ê
437 ¤òÍøÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ï @c Drawable ·¿¤ò¤³¤Î·¿¤ËÊÑ´¹¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é
440 typedef void *MDrawWindow;
443 /*** @ingroup m17nDraw */
445 @brief Window system dependent type for a region.
447 The type #MDrawRegion is for a region; an arbitrary set of pixels
448 on the screen (typically a rectangular area).
450 What it actually points depends on a window system. A program
451 that uses the m17n-X library must coerce the type @c Region to
454 @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡¢Îΰè¤Î·¿Àë¸À.
456 #MDrawRegion ¤ÏÎΰ衢¤¹¤Ê¤ï¤Á¥¹¥¯¥ê¡¼¥ó¾å¤ÎǤ°Õ¤Î¥Ô¥¯¥»¥ë¤Î½¸¹ç
457 ¡Êŵ·¿Åª¤Ë¤Ï¶ë·ÁÎΰè¡ËÍѤη¿¤Ç¤¢¤ë¡£
459 ¼ÂºÝ¤Ë²¿¤ò»Ø¤¹¤«¤Ï¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ m17n X ¥é¥¤¥Ö¥é¥ê
460 ¤òÍøÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ï @c Region ·¿¤ò¤³¤Î·¿¤ËÊÑ´¹¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é
463 typedef void *MDrawRegion;
466 /*** @ingroup m17nDraw */
468 @brief Type of a text drawing control.
470 The type #MDrawControl is the structure that controls how to draw
473 @brief ¥Æ¥¥¹¥Èɽ¼¨À©¸æ¤Î·¿Àë¸À.
475 #MDrawControl ·¿¤Ï¡¢M-text ¤ò¤É¤¦É½¼¨¤¹¤ë¤«¤òÀ©¸æ¤¹¤ë¹½Â¤ÂΤǤ¢¤ë¡£
481 /***en If nonzero, draw an M-text as image, i.e. with background
482 filled with background colors of faces put on the M-text.
483 Otherwise, the background is not changed. */
484 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ M-text ¤ò²èÁü¤È¤·¤Æ¡¢¤¹¤Ê¤ï¤ÁÇطʤò M-text ¤Î
485 ¥Õ¥§¡¼¥¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëÇØ·Ê¿§¤ÇËä¤á¤Æɽ¼¨¤¹¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÇØ
487 unsigned as_image : 1;
489 /***en If nonzero and the first glyph of each line has negative
490 lbearing, shift glyphs horizontally to right so that no pixel is
491 drawn to the left of the specified position. */
492 /***ja 0 ¤Ç¤Ê¤¯¡¢³Æ¹Ô¤ÎºÇ½é¤Î¥°¥ê¥Õ¤Îlbearing ¤¬Éé¤Ê¤é¤Ð¡¢¥°¥ê¥Õ¤ò¿å
493 Ê¿¤Ë±¦¤Ë¤º¤é¤·¤Æ¡¢»ØÄꤷ¤¿°ÌÃÖ¤è¤êº¸¤Ë¥Ô¥¯¥»¥ë¤¬ÉÁ¤«¤ì¤Ê¤¤¤è¤¦¤Ë
495 unsigned align_head : 1;
497 /***en If nonzero, draw an M-text two-dimensionally, i.e., newlines
498 in M-text breaks lines and the following characters are drawn in
499 the next line. If <format> is non-NULL, and the function
500 returns nonzero line width, a line longer than that width is
502 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤ò£²¼¡¸µÅª¤Ë¡¢¤¹¤Ê¤ï¤ÁM-text Ãæ¤Î
503 newline ¤Ç²þ¹Ô¤·¡¢Â³¤¯Ê¸»ú¤Ï¼¡¤®¤Î¹Ô¤Ëɽ¼¨¤¹¤ë¡£¤â¤· <format> ¤¬
504 NULL ¤Ç¤Ê¤¯¡¢¤½¤Î´Ø¿ô¤¬ 0 ¤Ç¤Ê¤¤¹ÔÉý¤òÊÖ¤»¤Ð¡¢¤½¤ÎÉý¤è¤êŤ¤¹Ô¤â
506 unsigned two_dimensional : 1;
508 /***en If nonzero, draw an M-text to the right of a specified
510 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤ò»ØÄꤷ¤¿°ÌÃ֤ᦤËɽ¼¨¤¹¤ë¡£ */
511 unsigned orientation_reversed : 1;
513 /***en If nonzero, reorder glyphs correctly for bidi text. */
514 /***ja 0 ¤Ê¤±¤ì¤Ð¡¢bidi ¥Æ¥¥¹¥ÈÍѤ˥°¥ê¥Õ¤òÀµ¤·¤¯À°Î󤹤롣 */
515 unsigned enable_bidi : 1;
517 /***en If nonzero, don't draw characters whose general category (in
518 Unicode) is Cf (Other, format). */
519 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥æ¥Ë¥³¡¼¥É¤ËÃÖ¤±¤ë°ìÈÌ¥«¥Æ¥´¥ê¤¬ Cf (Other,
520 format) ¤Ç¤¢¤ëʸ»ú¤òɽ¼¨¤·¤Ê¤¤¡£ */
521 unsigned ignore_formatting_char : 1;
523 /***en If nonzero, draw glyphs suitable for a terminal. Not yet
525 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ã¼ËöÍѤΥ°¥ê¥Õ¤òɽ¼¨¤¹¤ë¡£¡Ê̤¼ÂÁõ¡£¡Ë */
526 unsigned fixed_width : 1;
528 /***en If nonzero, draw glyphs with anti-aliasing if a backend font
529 driver supports it. */
530 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥¢¥ó¥Á¥¨¡¼¥ê¥¢¥¹¤Ç¥°¥ê¥Õ¤òɽ¼¨¤¹¤ë¡£¡Ê¥Ð¥Ã¥¯¥¨
531 ¥ó¥É¤Î¥Õ¥©¥ó¥È¥É¥é¥¤¥Ð¤¬¥¢¥ó¥Á¥¨¡¼¥ê¥¢¥¹µ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì
533 unsigned anti_alias : 1;
535 /***en If nonzero, the values are minimum line ascent and descent
537 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤΠascent ¤È descent ¤ÎºÇ¾®Ãͤò¼¨¤¹¡£ */
538 unsigned int min_line_ascent;
539 unsigned int min_line_descent;
541 /***en If nonzero, the values are maximum line ascent and descent
543 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤΠascent ¤È descent ¤ÎºÇÂçÃͤò¼¨¤¹¡£ */
544 unsigned int max_line_ascent;
545 unsigned int max_line_descent;
547 /***en If nonzero, the value specifies how many pixels each line can
548 occupy on the display. The value zero means that there is no
549 limit. It is ignored if <format> is non-NULL. */
550 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϤ³¤Î¥Ç¥£¥¹¥×¥ì¥¤¾å¤Ç³Æ¹Ô¤¬Àê¤á¤ë¤³¤È¤Î¤Ç¤
551 ¤ë¥Ô¥¯¥»¥ë¿ô¤ò¼¨¤¹¡£ 0 ¤Ï¸ÂÄꤵ¤ì¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£<format> ¤¬
552 NULL ¤Ç¤Ê¤±¤ì¤Ð̵»ë¤µ¤ì¤ë¡£ */
553 unsigned int max_line_width;
555 /***en If nonzero, the value specifies the distance between tab
556 stops in columns (the width of one column is the width of a
557 space in the default font of the frame). The value zero means
559 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ãͤϥ¿¥Ö¥¹¥È¥Ã¥×´Ö¤Îµ÷Î¥¤ò¥³¥é¥àñ°Ì¡Ê¥³¥é¥à¤Ï
560 ¥Õ¥ì¡¼¥à¤Î¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤Ë¤ª¤±¤ë¶õÇòʸ»ú¤ÎÉý¤Ç¤¢¤ë¡Ë¤Ç¼¨¤¹¡£
561 0 ¤Ï 8 ¤ò°ÕÌ£¤¹¤ë¡£ */
562 unsigned int tab_width;
564 /***en If non-NULL, the value is a function that calculates the
565 indentation and width limit of each line based on the line
566 number LINE and the coordinate Y. The function store the
567 indentation and width limit at the place pointed by INDENT and
570 The indentation specifies how many pixels the first glyph of
571 each line is shifted to the right (if the member
572 <orientation_reversed> is zero) or to the left (otherwise). If
573 the value is negative, each line is shifted to the reverse
576 The width limit specifies how many pixels each line can occupy
577 on the display. The value 0 means that there is no limit.
579 LINE and Y are reset to 0 when a line is broken by a newline
580 character, and incremented each time when a long line is broken
581 because of the width limit.
583 This has an effect only when <two_dimensional> is nonzero. */
584 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ãͤϴؿô¤Ç¤¢¤ê¡¢¤½¤Î´Ø¿ô¤Ï¹ÔÈÖ¹æ LINE ¤ÈºÂɸ Y
585 ¤Ë´ð¤Å¤¤¤Æ³Æ¹Ô¤Î¥¤¥ó¥Ç¥ó¥È¤ÈºÇÂçÉý¤ò·×»»¤·¡¢¤½¤ì¤¾¤ì¤òINDENT ¤È
586 WIDTH ¤Ç»Ø¤µ¤ì¤ë¾ì½ê¤ËÊݸ¤¹¤ë¡£
588 ¥¤¥ó¥Ç¥ó¥È¤Ï¡¢³Æ¹Ô¤ÎºÇ½é¤Î¥°¥ê¥Õ¤¬±¦¡Ê¥á¥ó¥Ð
589 <orientation_reversed> ¤¬ 0 ¤Î»þ¡Ë¤¢¤ë¤¤¤Ïº¸¡Ê¤½¤ì°Ê³°¤Î»þ¡Ë¤Ë²¿
590 ¥Ô¥¯¥»¥ë¤º¤é¤¹¤ò»ØÄꤹ¤ë¡£Ãͤ¬Éé¤Ê¤é¤ÐµÕÊý¸þ¤Ë¤º¤é¤¹¡£
592 ºÇÂçÉý¤Ï¡¢³Æ¹Ô¤¬¥Ç¥£¥¹¥×¥ì¥¤¾å¤ÇÀê¤á¤ë¤³¤È¤Î¤Ç¤¤ë¥Ô¥¯¥»¥ë¿ô¤ÎºÇ
593 ÂçÃͤǤ¢¤ë¡£Ãͤ¬ 0 ¤Î¾ì¹ç¤ÏÀ©¸Â¤ò¼õ¤±¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
595 LINE ¤È Y ¤Ï²þ¹Ôʸ»ú¤Ë¤è¤Ã¤Æ¹Ô¤¬²þ¤Þ¤Ã¤¿ºÝ¤Ë¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢
596 ºÇÂçÉý¤Ë¤è¤Ã¤Æ¹Ô¤¬²þ¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï 1 ¤Å¤ÄÁý¤ä¤µ¤ì¤ë¡£
598 ¤³¤ì¤Ï <two_dimensional> ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Î¤ß͸ú¤Ç¤¢¤ë¡£ */
599 void (*format) (int line, int y, int *indent, int *width);
601 /***en If non-NULL, the value is a function that calculates a line
602 breaking position when a line is too long to fit within the
603 width limit. POS is the position of the character next to the
604 last one that fits within the limit. FROM is the position of the
605 first character of the line, and TO is the position of the last
606 character displayed on the line if there were not width limit.
607 LINE and Y are the same as the arguments to <format>.
609 The function must return a character position to break the
612 The function should not modify MT.
614 The mdraw_default_line_break () function is useful for such a
615 script that uses SPACE as a word separator. */
616 /***ja NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤ¬ºÇÂçÉýÃæ¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¤Ë¹Ô¤ò²þ¤á¤ë
617 °ÌÃÖ¤ò·×»»¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£POS ¤ÏºÇÂçÉý¤Ë¼ý¤Þ¤ëºÇ¸å¤Îʸ»ú¤Î¼¡¤Îʸ
618 »ú¤Î°ÌÃ֤Ǥ¢¤ë¡£FROM ¤Ï¹Ô¤ÎºÇ½é¤Îʸ»ú¤Î°ÌÃÖ¡¢TO ¤ÏºÇÂçÉý¤¬»ØÄꤵ
619 ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤½¤Î¹Ô¤Ëɽ¼¨¤µ¤ì¤ëºÇ¸å¤Îʸ»ú¤Î°ÌÃ֤Ǥ¢¤ë¡£LINE ¤È
620 Y ¤Ï <format> ¤Î°ú¿ô¤ÈƱ¤¸¤Ç¤¢¤ë¡£
622 ¤³¤Î´Ø¿ô¤Ï¹Ô¤ò²þ¤á¤ëʸ»ú°ÌÃÖ¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤Þ¤¿MT ¤ò
625 ´Ø¿ô mdraw_default_line_break () ¤Ï¡¢¶õÇò¤ò¸ì¤Î¶èÀÚ¤ê¤È¤·¤ÆÍѤ¤
626 ¤ë¥¹¥¯¥ê¥×¥ÈÍѤȤ·¤ÆÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤ë¡£ */
627 int (*line_break) (MText *mt, int pos, int from, int to, int line, int y);
631 /***en Specifies the character position to display a cursor. If it
632 is greater than the maximum character position, the cursor is
633 displayed next to the last character of an M-text. If the value
634 is negative, even if <cursor_width> is nonzero, cursor is not
636 /***ja ¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ëʸ»ú°ÌÃÖ¤ò¼¨¤¹¡£ºÇÂç¤Îʸ»ú°ÌÃÖ¤è¤êÂ礤±¤ì
637 ¤Ð¡¢¥«¡¼¥½¥ë¤ÏM-text ¤ÎºÇ¸å¤Îʸ»ú¤ÎÎÙ¤Ëɽ¼¨¤µ¤ì¤ë¡£Éé¤Ê¤é¤Ð¡¢
638 <cursor_width> ¤¬ 0 ¤Ç¤Ê¤¯¤Æ¤â¥«¡¼¥½¥ë¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£
642 /***en If nonzero, display a cursor at the character position
643 <cursor_pos>. If the value is positive, it is the pixel width
644 of the cursor. If the value is negative, the cursor width is
645 the same as the underlining glyph(s). */
646 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢<cursor_pos> ¤Ë¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ë¡£Ãͤ¬Àµ¤Ê¤é¤Ð¡¢
647 ¥«¡¼¥½¥ë¤ÎÉý¤Ï¤½¤ÎÃÍ¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë¤Ç¤¢¤ë¡£Éé¤Ê¤é¤Ð¡¢¥«¡¼¥½¥ë¤Î
648 ¤¢¤ë¥°¥ê¥Õ¤ÈƱ¤¸Éý¤Ç¤¢¤ë¡£ */
651 /***en If nonzero and <cursor_width> is also nonzero, display double
652 bar cursors; at the character position <cursor_pos> and at the
653 logically previous character. Both cursors have one pixel width
654 with horizontal fringes at upper or lower positions. */
655 /***ja If 0 ¤Ç¤Ê¤¯¡¢¤«¤Ä <cursor_width> ¤â 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Ð¡¼¥«¡¼¥½
656 ¥ë¤òʸ»ú°ÌÃÖ<cursor_pos> ¤ÈÏÀÍýŪ¤Ë¤½¤ì¤ÎÁ°¤Ë¤¢¤ëʸ»ú¤Î£²¥ö½êɽ
657 ¼¨¤¹¤ë¡£ÁÐÊý¤È¤â£±¥Ô¥¯¥»¥ëÉý¤Ç¡¢¾å²¼¤Ë¿åÊ¿¤Î¾þ¤ê¤¬¤Ä¤¯¡£*/
660 /***en If nonzero, on drawing partial text, pixels of surrounding
661 texts that intrude into the drawing area are also drawn. For
662 instance, some CVC sequence of Thai text (C is consonant, V is
663 upper vowel) is drawn so that V is placed over the middle of two
664 Cs. If this CVC sequence is already drawn and only the last C
665 is drawn again (for instance by updating cursor position), the
666 right half of V is erased if this member is zero. By setting
667 this member to nonzero, even with such a drawing, we can keep
668 this CVC sequence correctly displayed. */
669 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Æ¥¥¹¥È¤Î°ìÉôʬ¤òɽ¼¨¤¹¤ëºÝ¤Ë¡¢Á°¸å¤Î¥Æ¥¥¹¥È
670 ¤Î¤¦¤Á¤½¤Îɽ¼¨Îΰè¤Ë¿¯Æþ¤¹¤ëÉôʬ¤âɽ¼¨¤¹¤ë¡£¤¿¤È¤¨¤Ð¡¢¥¿¥¤¸ìʸ½ñ
671 ¤Î»Ò²»-Êì²»-»Ò²»¤È¤¤¤¦¥·¡¼¥¯¥¨¥ó¥¹¤Î¤¤¤¯¤Ä¤«¤Ï¡¢Êì²»¤¬Æó¤Ä¤Î»Ò²»
672 ¤Î´Ö¤Ë¾å¤Ë¤Î¤ë¤è¤¦¤ËÉÁ¤«¤ì¤ë¡£¤³¤Î¤è¤¦¤Ê¥·¡¼¥¯¥¨¥ó¥¹¤¬¤¹¤Ç¤ËÉÁ¤«
673 ¤ì¤Æ¤ª¤ê¡¢ºÇ¸å¤Î»Ò²»¤À¤±¤òÉÁ¤Ä¾¤¹¾ì¹ç¡Ê¤¿¤È¤¨¤Ð¡¢¥«¡¼¥½¥ë°ÌÃÖ¤ò
674 ¹¹¿·¤¹¤ëºÝ¤Ê¤É¡Ë¤³¤Î¥á¥ó¥Ð¤¬ 0 ¤Ç¤¢¤ì¤Ð¡¢Êì²»¤Î±¦È¾Ê¬¤¬¾Ã¤µ¤ì¤Æ
675 ¤·¤Þ¤¦¡£¤³¤ì¤ò 0 °Ê³°¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¤è¤¦¤ÊºÝ¤Ë¤â»Ò²»-Êì
676 ²»-»Ò²»¥·¡¼¥¯¥¨¥ó¥¹¤òÀµ¤·¤¯É½¼¨¤·Â³¤±¤ë¤³¤È¤¬¤Ç¤¤ë¡£ */
679 /***en If nonzero, don't cache the result of any drawing information
681 /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤Îɽ¼¨¤Ë´Ø¤¹¤ë¾ðÊó¤ò¥¥ã¥Ã¥·¥å¤·¤Ê¤¤¡£
685 /* If non-NULL, limit the drawing effect to the specified region. */
686 MDrawRegion clip_region;
692 /*** @ingroup m17nDraw */
694 @brief Type of metric for gylphs and texts.
696 The type #MDrawMetric is for a metric of a glyph and a drawn text.
697 It is also used to represent a rectangle area of a graphic
700 @brief ¥°¥ê¥Õ¤È¥Æ¥¥¹¥È¤ÎÀ£Ë¡¤Î·¿Àë¸À.
702 #MDrawMetric ¤Ï¥°¥ê¥Õ¤Èɽ¼¨¤µ¤ì¤¿¥Æ¥¥¹¥È¤ÎÀ£Ë¡ÍѤη¿¤Ç¤¢¤ë¡£¤Þ¤¿¡¢
703 ɽ¼¨¥Ç¥Ð¥¤¥¹¤Î¶ë·ÁÎΰè¤òɽ¤¹¤Î¤Ë¤âÍѤ¤¤é¤ì¤ë¡£ */
707 unsigned int width, height;
712 /*** @ingroup m17nDraw */
714 @brief Type of information about a glyph.
716 The type #MDrawGlyphInfo is the structure that contains
717 information about a glyph. It is used by mdraw_glyph_info (). */
719 @brief ¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤Î·¿Àë¸À.
721 #MDrawGlyphInfo ·¿¤Ï¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¹½Â¤ÂΤǤ¢¤ë¡£
722 mdraw_glyph_info () ¤Ï¤³¤ì¤òÍѤ¤¤ë¡£ */
726 /***en Character range corresponding to the glyph. */
727 /***ja ¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï. */
730 /***en Character ranges corresponding to the line of the glyph. */
731 /***ja ¥°¥ê¥Õ¤ÎÎó¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï. */
732 int line_from, line_to;
734 /***en X/Y coordinates of the glyph. */
735 /***ja ¥°¥ê¥Õ¤Î X/Y ºÂɸ. */
738 /***en Metric of the glyph. */
739 /***ja ¥°¥ê¥Õ¤ÎÀ£Ë¡. */
742 /***en Font used for the glyph. Set to NULL if no font is found for
744 /***ja ¤½¤Î¥°¥ê¥ÕÍѤ˻Ȥï¤ì¤ë¥Õ¥©¥ó¥È¡£¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð NULL¡£
748 /***en Character ranges corresponding to logically previous and next
749 glyphs. Note that we do not need the members prev_to and
750 next_from because they must be the same as the members from and
752 /***ja ÏÀÍýŪ¤ÊÁ°¸å¤Î¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï¡£¥á¥ó¥Ð prev_to ¤È
753 next_from ¤Ï¡¢¤½¤ì¤¾¤ì¥á¥ó¥Ð from ¤Èto ¤ÈƱ¤¸¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤
754 ¤¿¤áÉÔÍפǤ¢¤ë¤³¤È¤ËÃí°Õ¡£ */
755 int prev_from, next_to;
757 /***en Character ranges corresponding to visually left and right
759 /***ja ɽ¼¨¾å¤Îº¸±¦¤Î¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï¡£ */
760 int left_from, left_to;
761 int right_from, right_to;
768 @brief Type of text items.
770 The type #MDrawTextItem is for @e textitem objects.
771 Each textitem contains an M-text and some other information to
772 control the drawing of the M-text. */
775 @brief textitem ¤Î·¿Àë¸À.
777 #MDrawTextItem ¤Ï @e ¥Æ¥¥¹¥È¥¢¥¤¥Æ¥à ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤη¿¤Ç¤¢¤ë¡£³Æ
778 ¥Æ¥¥¹¥È¥¢¥¤¥Æ¥à¤Ï¡¢1¸Ä¤Î M-text ¤È¡¢¤½¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤¿¤á¤Î³Æ¼ï
781 @latexonly \IPAlabel{MTextItem} @endlatexonly */
789 /***en Optional change in the position (in the unit of pixel) along
790 the X-axis before the M-text is drawn. */
791 /***ja M-text ɽ¼¨Á°¤Ë¹Ô¤Ê¤¦X¼´Êý¸þ¤Î°ÌÃÖÄ´À° (¥Ô¥¯¥»¥ëñ°Ì) */
794 /***en Pointer to a face object. Each property of the face, if not
795 Mnil, overrides the same property of face(s) specified as a text
797 /***ja ¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£¥Õ¥§¡¼¥¹¤Î³Æ¥×¥í¥Ñ¥Æ¥£¤Ï
798 Mnil ¤Ç¤Ê¤±¤ì¤Ð <mt> ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥§¡¼¥¹¤ÎƱ¤¸¥×¥í¥Ñ¥Æ¥£¤ËÍ¥Àè
802 /***en Pointer to a draw control object. The M-text <mt> is drawn
803 by mdraw_text_with_control () with this control object. */
804 /***ja ɽ¼¨À©¸æ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ mdraw_text_with_control ()
805 ¤Ï¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÍѤ¤¤Æ M-text <mt> ¤òɽ¼¨¤¹¤ë¡£ */
806 MDrawControl *control;
812 extern int mdraw_text (MFrame *frame, MDrawWindow win, int x, int y,
813 MText *mt, int from, int to);
815 extern int mdraw_image_text (MFrame *frame, MDrawWindow win, int x, int y,
816 MText *mt, int from, int to);
818 extern int mdraw_text_with_control (MFrame *frame, MDrawWindow win,
819 int x, int y, MText *mt, int from, int to,
820 MDrawControl *control);
822 extern int mdraw_coordinates_position (MFrame *frame,
823 MText *mt, int from, int to,
824 int x, int y, MDrawControl *control);
826 extern int mdraw_text_extents (MFrame *frame,
827 MText *mt, int from, int to,
828 MDrawControl *control,
829 MDrawMetric *overall_ink_return,
830 MDrawMetric *overall_logical_return,
831 MDrawMetric *overall_line_return);
833 extern int mdraw_text_per_char_extents (MFrame *frame,
834 MText *mt, int from, int to,
835 MDrawControl *control,
836 MDrawMetric *ink_array_return,
837 MDrawMetric *logical_array_return,
839 int *num_chars_return,
840 MDrawMetric *overall_ink_return,
841 MDrawMetric *overall_logical_return);
843 extern int mdraw_glyph_info (MFrame *frame, MText *mt, int from, int pos,
844 MDrawControl *control, MDrawGlyphInfo *info);
846 extern void mdraw_text_items (MFrame *frame, MDrawWindow win, int x, int y,
847 MDrawTextItem *items, int nitems);
849 extern void mdraw_per_char_extents (MFrame *frame, MText *mt,
850 MDrawMetric *array_return,
851 MDrawMetric *overall_return);
853 extern int mdraw_default_line_break (MText *mt, int pos,
854 int from, int to, int line, int y);
856 extern void mdraw_clear_cache (MText *mt);
858 /* end of drawing module */
861 /*** @ingroup m17nGUI */
862 /***en @defgroup m17nInputMethodWin Input Method (GUI) */
863 /***ja @defgroup m17nInputMethodWin ÆþÎϥ᥽¥Ã¥É (GUI) */
866 extern MInputDriver minput_gui_driver;
869 /*** @ingroup m17nInputMethodWin */
871 @brief Type of the argument to the function minput_create_ic ().
873 The type #MInputGUIArgIC is for the argument $ARG of the function
874 minput_create_ic () to create an input context of an internal
878 @brief ´Ø¿ô minput_create_ic () ¤Î°ú¿ô¤Î·¿Àë¸À.
880 #MInputGUIArgIC ¤Ï¡¢´Ø¿ô minput_create_ic () ¤¬ÆâÉôÆþÎϥ᥽¥Ã¥É¤Î
881 ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤¹¤ëºÝ¤Î¡¢°ú¿ô $ARG ÍѤη¿¤Ç¤¢¤ë¡£ */
885 /***en Frame of the client. */
886 /***ja ¥¯¥é¥¤¥¢¥ó¥È¤Î¥Õ¥ì¡¼¥à */
889 /***en Window on which to display the preedit and status text. */
890 /***ja preedit ¥Æ¥¥¹¥È¤È status ¥Æ¥¥¹¥È¤òɽ¼¨¤¹¤ë¥¦¥£¥ó¥É¥¦ */
893 /***en Window that the input context has a focus on. */
894 /***ja ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤¬¥Õ¥©¡¼¥«¥¹¤ò¤ª¤¤¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦ */
900 extern MSymbol minput_event_to_key (MFrame *frame, void *event);
902 /* end of input module */
904 /* end of window modules */
907 extern MFace *mdebug_dump_face (MFace *face, int indent);
908 extern MFont *mdebug_dump_font (MFont *font);
909 extern MFontset *mdebug_dump_fontset (MFontset *fontset, int indent);
915 #endif /* _M17N_GUI_H_ */