X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fm17n-gui.h;h=befc3cca48cb62639b40e85de20b0d1b85c41033;hb=819616dacfef49aad64a7a6f7460ab26c0bfbf2b;hp=ba9adf65d50b60c3b69ad665261f76856b92c6cc;hpb=1359a5c46aaaa266d1d6a0f30f2478a18e439b5c;p=m17n%2Fm17n-lib.git diff --git a/src/m17n-gui.h b/src/m17n-gui.h index ba9adf6..befc3cc 100644 --- a/src/m17n-gui.h +++ b/src/m17n-gui.h @@ -32,6 +32,8 @@ extern "C" { #endif +#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE) + extern void m17n_init_win (void); #undef M17N_INIT #define M17N_INIT() m17n_init_win () @@ -40,6 +42,8 @@ extern void m17n_fini_win (void); #undef M17N_FINI #define M17N_FINI() m17n_fini_win () +#endif + /***en @defgroup m17nGUI GUI API */ /***ja @defgroup m17nGUI GUI API */ /*=*/ @@ -57,32 +61,41 @@ extern void m17n_fini_win (void); various information about the corresponding physical display/input device. - The internal structure of the type #MFrame is concealed from - application code, and its contents depend on the window system in - use. In the m17n-X library, it contains the information about @e - display and @e screen in the X Window System. */ + The internal structure of the type #MFrame is concealed from an + application program, and its contents depend on the window system + in use. In the m17n-X library, it contains the information about + @e display and @e screen in the X Window System. */ /***ja - @brief ¥Õ¥ì¡¼¥àÍѹ½Â¤ÂÎ + @brief ¥Õ¥ì¡¼¥à¤Î·¿Àë¸À. - #MFrame ·¿¤Ï¡¢¥Õ¥ì¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÍѤι½Â¤ÂΤǤ¢¤ë¡£¸Ä¡¹¤Î¥Õ¥ì¡¼ - ¥à¤Ï¡¢¤½¤ì¤¬Âбþ¤¹¤ëʪÍý¥Ç¥Ð¥¤¥¹¤Î³Æ¼ï¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ + #MFrame ¤Ï¡¢@e ¥Õ¥ì¡¼¥à ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤη¿¤Ç¤¢¤ë¡£ + ¸Ä¡¹¤Î¥Õ¥ì¡¼¥à¤Ï¡¢¤½¤ì¤¬Âбþ¤¹¤ëʪÍýŪ¤Êɽ¼¨¡¿ÆþÎϥǥХ¤¥¹¤Î³Æ¼ï¾ðÊó¤òÊÝ»ý¤¹¤ë¡£ - #MFrame ·¿¤ÎÆâÉô¹½Â¤¤Ï¡¢»ÈÍѤ¹¤ë¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤·¡¢¤Þ¤¿ - ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£m17n-X ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤± - ¤ë¥Õ¥ì¡¼¥à¤Ï¡¢X ¥¦¥£¥ó¥É¥¦¤Î display ¤È screen ¤Ë´Ø¤¹¤ë¾ðÊó¤ò»ý¤Ä¡£ - */ + #MFrame ·¿¤ÎÆâÉô¹½Â¤¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ + ¤Þ¤¿¤½¤ÎÆâÍƤϻÈÍѤ¹¤ë¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£¤Þ¤¿ m17n-X + ¥é¥¤¥Ö¥é¥ê¤Ë¤ª¤±¤ë¥Õ¥ì¡¼¥à¤Ï¡¢X ¥¦¥£¥ó¥É¥¦¤Î @e display ¤È @e screen + ¤Ë´Ø¤¹¤ë¾ðÊó¤ò»ý¤Ä¡£ */ typedef struct MFrame MFrame; /*=*/ +extern MSymbol Mdevice; + extern MSymbol Mfont; extern MSymbol Mfont_width; extern MSymbol Mfont_ascent; extern MSymbol Mfont_descent; extern MFrame *mframe_default; +extern MSymbol Mdisplay; +extern MSymbol Mscreen; +extern MSymbol Mdrawable; +extern MSymbol Mwidget; +extern MSymbol Mdepth; +extern MSymbol Mcolormap; + extern MFrame *mframe (MPlist *plist); extern void *mframe_get_prop (MFrame *frame, MSymbol key); @@ -107,17 +120,16 @@ extern void *mframe_get_prop (MFrame *frame, MSymbol key); This structure is used both for specifying a font in a fontset and for storing information about available system fonts. - The internal structure is concealed from application code. */ + The internal structure is concealed from an application program. */ /***ja - @brief ¥Õ¥©¥ó¥È¤Î¹½Â¤ + @brief ¥Õ¥©¥ó¥È¤Î·¿Àë¸À. - #MFont ·¿¤Ï¥Õ¥©¥ó¥È»ØÄêÍѤι½Â¤ÂΤǤ¢¤ê¡¢¥Õ¥©¥ó¥È¤Î¥×¥í - ¥Ñ¥Æ¥£¤È¤·¤Æ family, weight, style, stretch, adstyle, registry, - size, resolution ¤ò»ý¤Ä¡£ + #MFont ·¿¤Ï¥Õ¥©¥ó¥È»ØÄêÍѤι½Â¤ÂΤǤ¢¤ê¡¢¥Õ¥©¥ó¥È¤Î¥×¥í¥Ñ¥Æ¥£¤Ç¤¢¤ë + foundry, family, weight, style, stretch, adstyle, registry, + size, resolution ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¡£ - ¤³¤Î¹½Â¤ÂΤϥե©¥ó¥È¥»¥Ã¥ÈÆâ¤Î¥Õ¥©¥ó¥È¤ò»ØÄꤹ¤ë¾ì¹ç¤È¡¢»ÈÍѲÄǽ¤Ê - ¥·¥¹¥Æ¥à¥Õ¥©¥ó¥È¤Î¾ðÊó¤ò³ÊǼ¤¹¤ë¾ì¹ç¤ÎξÊý¤ÇÍѤ¤¤é¤ì¤ë¡£ + ¤³¤Î¹½Â¤ÂΤϥե©¥ó¥È¥»¥Ã¥ÈÆâ¤Î¥Õ¥©¥ó¥È¤ò»ØÄꤹ¤ëºÝ¤È¡¢»ÈÍѲÄǽ¤Ê¥·¥¹¥Æ¥à¥Õ¥©¥ó¥È¤Î¾ðÊó¤ò³ÊǼ¤¹¤ëºÝ¤ÎξÊý¤ËÍѤ¤¤é¤ì¤ë¡£ ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */ @@ -129,21 +141,21 @@ typedef struct MFont MFont; /*=*/ -extern MSymbol Mfont; +extern MSymbol Mx, Mfreetype, Mxft; extern MPlist *mfont_freetype_path; extern MFont *mfont (); -extern MFont *mfont_from_name (char *name); - extern MFont *mfont_copy (MFont *font); -extern char *mfont_name (MFont *font); +extern MFont *mfont_parse_name (char *name, MSymbol format); -extern MFont *mfont_from_spec (char *family, char *weight, char *slant, - char *swidth, char *adstyle, char *registry, - unsigned short point, unsigned short res); +extern char *mfont_unparse_name (MFont *font, MSymbol format); + +/* These two are obsolete (from 1.1.0). */ +extern char *mfont_name (MFont *font); +extern MFont *mfont_from_name (char *name); extern MSymbol Mfoundry; extern MSymbol Mfamily; @@ -155,6 +167,8 @@ extern MSymbol Mregistry; extern MSymbol Msize; extern MSymbol Mresolution; +extern MSymbol Mfontconfig; + extern void *mfont_get_prop (MFont *font, MSymbol key); extern int mfont_put_prop (MFont *font, MSymbol key, void *val); @@ -179,10 +193,18 @@ extern int mfont_set_encoding (MFont *font, font not greater than the #Msize property of $SPEC. */ /***ja - @brief ¥Õ¥©¥ó¥È¤òõ¤¹ + @brief ¥Õ¥©¥ó¥È¤òõ¤¹. + + ´Ø¿ô mfont_find () ¤Ï¡¢¥Õ¥ì¡¼¥à $FRAME ¾å¤Ç¥Õ¥©¥ó¥ÈÄêµÁ $SPEC + ¤Ë¤â¤Ã¤È¤â¹çÃפ¹¤ë»ÈÍѲÄǽ¤Ê¥Õ¥©¥ó¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ - ´Ø¿ô mfont_find () ¤Ï¡¢¥Õ¥ì¡¼¥à $FRAME ¾å¤Ç¥Õ¥©¥ó¥ÈÄêµÁ $SPEC ¤Ë¤â¤Ã - ¤È¤â¶á¤¤¥Õ¥©¥ó¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ */ + $SCORE ¤Ï NULL ¤Ç¤¢¤ë¤«¡¢¸«¤Ä¤«¤Ã¤¿¥Õ¥©¥ó¥È¤¬ $SPEC + ¤Ë¤É¤ì¤Û¤É¹ç¤Ã¤Æ¤¤¤ë¤«¤ò¼¨¤¹¥¹¥³¥¢¤òÊݸ¤¹¤ë¾ì½ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ + ¥¹¥³¥¢¤¬¾®¤µ¤¤¤Û¤ÉÎɤ¯¹ç¤Ã¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ + + $LIMITED_SIZE ¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢$SPEC ¤Î¥×¥í¥Ñ¥Æ¥£ #Msize + ¤è¤êÂ礭¤¯¤Ê¤¤¥Õ¥©¥ó¥È¤À¤±¤¬Ãµ¤µ¤ì¤ë¡£ +*/ extern MFont *mfont_find (MFrame *frame, MFont *spec, int *score, int limited_size); @@ -191,6 +213,12 @@ extern MSymbol *mfont_selection_priority (); extern int mfont_set_selection_priority (MSymbol *keys); +extern int mfont_resize_ratio (MFont *font); + +extern MPlist *mfont_list (MFrame *frame, MFont *font, MSymbol language, + int maxnum); + + /* end of font module */ /*=*/ @@ -198,7 +226,8 @@ extern int mfont_set_selection_priority (MSymbol *keys); /***en @defgroup m17nFontset Fontset */ /***ja @defgroup m17nFontset ¥Õ¥©¥ó¥È¥»¥Ã¥È */ /*=*/ - +/*** @addtogroup m17nFontset + @{ */ typedef struct MFontset MFontset; extern MFontset *mfontset (char *name); @@ -213,6 +242,9 @@ extern int mfontset_modify_entry (MFontset *fontset, MFont *spec, MSymbol layouter_name, int how); +extern MPlist *mfontset_lookup (MFontset *fontset, MSymbol script, + MSymbol language, MSymbol charset); +/*** @} */ /* end of fontset module */ /*=*/ @@ -226,13 +258,13 @@ extern int mfontset_modify_entry (MFontset *fontset, @brief Type of faces. The type #MFace is the structure of face objects. The internal - structure is concealed from application code. */ + structure is concealed from an application program. */ /***ja - @brief ¥Õ¥§¡¼¥¹Íѹ½Â¤ÂÎ + @brief ¥Õ¥§¡¼¥¹¤Î·¿Àë¸À. - #MFace ·¿¤Ï¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ë¡£ÆâÉô¹½Â¤¤Ï - ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */ + #MFace ·¿¤Ï¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ë¡£ + ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */ typedef struct MFace MFace; /*=*/ @@ -293,10 +325,17 @@ extern MFace *mface_from_font (MFont *font); The type #MFaceHLineProp is to specify the detail of #Mhline property of a face. The value of the property must be a pointer to an object of this type. */ +/***ja + @brief ¥Õ¥§¡¼¥¹¤Î¿åÊ¿Àþ»ØÄêÍÑ·¿Àë¸À. + + #MFaceHLineProp ¤Ï¥Õ¥§¡¼¥¹¤Î #Mhline + ¥×¥í¥Ñ¥Æ¥£¤Î¾ÜºÙ¤ò»ØÄꤹ¤ë·¿¤Ç¤¢¤ë¡£¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϤ³¤Î·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + */ typedef struct { /***en Type of the horizontal line. */ + /***ja ¿åÊ¿Àþ¤Î¥¿¥¤¥×. */ enum MFaceHLineType { MFACE_HLINE_BOTTOM, @@ -307,10 +346,13 @@ typedef struct } type; /***en Width of the line in pixels. */ + /***ja ÀþÉý¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë. */ unsigned width; /***en Color of the line. If the value is Mnil, foreground color of a merged face is used. */ + /***ja Àþ¤Î¿§. Mnil ¤Ê¤é¤Ð¡¢Åý¹ç¤·¤¿¥Õ¥§¡¼¥¹¤ÎÁ°·Ê¿§¤¬»È¤ï¤ì¤ë¡£ */ + MSymbol color; } MFaceHLineProp; /*=*/ @@ -322,10 +364,17 @@ typedef struct The type #MFaceBoxProp is to specify the detail of #Mbox property of a face. The value of the property must be a pointer to an object of this type. */ +/***ja + @brief ¥Õ¥§¡¼¥¹¤Î°Ï¤ßÏÈ»ØÄêÍÑ·¿Àë¸À. + + #MFaceBoxProp ¤Ï¥Õ¥§¡¼¥¹¤Î #Mbox ¥×¥í¥Ñ¥Æ¥£¤Î¾ÜºÙ¤ò»ØÄꤹ¤ë·¿¤Ç¤¢¤ë¡£ + ¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϤ³¤Î·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + */ typedef struct { /***en Width of the box line in pixels. */ + /***ja ÀþÉý¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë. */ unsigned width; MSymbol color_top; @@ -348,7 +397,13 @@ typedef struct The type #MFaceHookFunc is to specify the #Mhook property of a face. The value of the property must be function of this type. */ -typedef void *(*MFaceHookFunc) (MFace *face, void *arg, void *info); +/***ja + @brief ¥Õ¥§¡¼¥¹¤Î¥Õ¥Ã¥¯´Ø¿ô¤Î·¿Àë¸À. + + #MFaceHookFunc ¤Ï¥Õ¥§¡¼¥¹¤Î #Mhook ¥×¥í¥Ñ¥Æ¥£¤ò»ØÄꤹ¤ë·¿¤Ç¤¢¤ë¡£ + ¤³¤Î¥×¥í¥Ñ¥Æ¥£¤ÎÃͤϡ¢¤³¤Î·¿¤Î´Ø¿ô¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + */ +typedef void (*MFaceHookFunc) (MFace *face, void *arg, void *info); /*=*/ extern void *mface_get_prop (MFace *face, MSymbol key); @@ -369,16 +424,19 @@ extern void mface_update (MFrame *frame, MFace *face); /***en @brief Window system dependent type for a window. - The type MDrawWindow is for a window; a rectangular area that + The type #MDrawWindow is for a window; a rectangular area that works in several ways like a miniature screen. What it actually points depends on a window system. A program that uses the m17n-X library must coerce the type @c Drawable to this type. */ +/***ja + @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡¢¥¦¥£¥ó¥É¥¦¤Î·¿Àë¸À. -/***ja ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡¢¥¦¥£¥ó¥É¥¦¤òɽ¤¹¥ª¥Ö¥¸¥§¥¯¥ÈÍѤη¿¡£ + #MDrawWindow ¤Ï¥¦¥£¥ó¥É¥¦¡¢¤¹¤Ê¤ï¤Á´ö¤Ä¤«¤ÎÅÀ¤Ç¥¹¥¯¥ê¡¼¥ó¤Î¥ß¥Ë¥Á¥å¥¢¤È¤·¤ÆƯ¤¯¶ë·ÁÎΰèÍѤη¿¤Ç¤¢¤ë¡£ - m17n X ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢@c Window ·¿¤ÈƱ¤¸. */ + ¼ÂºÝ¤Ë²¿¤ò»Ø¤¹¤«¤Ï¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ m17n X + ¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ï @c Drawable ·¿¤ò¤³¤Î·¿¤ËÊÑ´¹¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ */ typedef void *MDrawWindow; /*=*/ @@ -387,12 +445,19 @@ typedef void *MDrawWindow; /***en @brief Window system dependent type for a region. - The type MDrawRegion is for a region; an arbitrary set of pixels + The type #MDrawRegion is for a region; an arbitrary set of pixels on the screen (typically a rectangular area). What it actually points depends on a window system. A program that uses the m17n-X library must coerce the type @c Region to this type. */ +/***ja + @brief ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡¢Îΰè¤Î·¿Àë¸À. + + #MDrawRegion ¤ÏÎΰ衢¤¹¤Ê¤ï¤Á¥¹¥¯¥ê¡¼¥ó¾å¤ÎǤ°Õ¤Î¥Ô¥¯¥»¥ë¤Î½¸¹ç¡Êŵ·¿Åª¤Ë¤Ï¶ë·ÁÎΰè¡ËÍѤη¿¤Ç¤¢¤ë¡£ + + ¼ÂºÝ¤Ë²¿¤ò»Ø¤¹¤«¤Ï¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¡£ m17n X + ¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ¹¤ë¥×¥í¥°¥é¥à¤Ï @c Region ·¿¤ò¤³¤Î·¿¤ËÊÑ´¹¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ */ typedef void *MDrawRegion; /*=*/ @@ -403,17 +468,27 @@ typedef void *MDrawRegion; The type #MDrawControl is the structure that controls how to draw an M-text. */ +/***ja + @brief ¥Æ¥­¥¹¥Èɽ¼¨À©¸æ¤Î·¿Àë¸À. + + #MDrawControl ·¿¤Ï¡¢M-text ¤ò¤É¤¦É½¼¨¤¹¤ë¤«¤òÀ©¸æ¤¹¤ë¹½Â¤ÂΤǤ¢¤ë¡£ + */ + typedef struct { /***en If nonzero, draw an M-text as image, i.e. with background filled with background colors of faces put on the M-text. Otherwise, the background is not changed. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ M-text ¤ò²èÁü¤È¤·¤Æ¡¢¤¹¤Ê¤ï¤ÁÇطʤò M-text + ¤Î¥Õ¥§¡¼¥¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëÇØ·Ê¿§¤ÇËä¤á¤Æɽ¼¨¤¹¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤ÐÇطʤÏÊѤï¤é¤Ê¤¤¡£ */ unsigned as_image : 1; /***en If nonzero and the first glyph of each line has negative lbearing, shift glyphs horizontally to right so that no pixel is drawn to the left of the specified position. */ + /***ja 0 ¤Ç¤Ê¤¯¡¢³Æ¹Ô¤ÎºÇ½é¤Î¥°¥ê¥Õ¤Î lbearing + ¤¬Éé¤Ê¤é¤Ð¡¢¥°¥ê¥Õ¤ò¿åÊ¿¤Ë±¦¤Ë¤º¤é¤·¤Æ¡¢»ØÄꤷ¤¿°ÌÃÖ¤è¤êº¸¤Ë¥Ô¥¯¥»¥ë¤¬ÉÁ¤«¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ */ unsigned align_head : 1; /***en If nonzero, draw an M-text two-dimensionally, i.e., newlines @@ -421,42 +496,68 @@ typedef struct the next line. If is non-NULL, and the function returns nonzero line width, a line longer than that width is also broken. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤ò£²¼¡¸µÅª¤Ë¡¢¤¹¤Ê¤ï¤Á M-text Ãæ¤Î + newline ¤Ç²þ¹Ô¤·¡¢Â³¤¯Ê¸»ú¤Ï¼¡¤Î¹Ô¤Ëɽ¼¨¤¹¤ë¡£¤â¤· ¤¬ + NULL ¤Ç¤Ê¤¯¡¢¤½¤Î´Ø¿ô¤¬ 0 ¤Ç¤Ê¤¤¹ÔÉý¤òÊÖ¤»¤Ð¡¢¤½¤ÎÉý¤è¤êŤ¤¹Ô¤â²þ¹Ô¤µ¤ì¤ë¡£ */ unsigned two_dimensional : 1; /***en If nonzero, draw an M-text to the right of a specified position. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤ò»ØÄꤷ¤¿°ÌÃ֤ᦤËɽ¼¨¤¹¤ë¡£ */ unsigned orientation_reversed : 1; - /***en If nonzero, reorder glyphs correctly for bidi text. */ + /***en If nonzero, reorder glyphs correctly for bidi text. */ + /***ja 0 ¤Ê¤±¤ì¤Ð¡¢bidi ¥Æ¥­¥¹¥ÈÍѤ˥°¥ê¥Õ¤òÀµ¤·¤¯À°Î󤹤롣 */ unsigned enable_bidi : 1; /***en If nonzero, don't draw characters whose general category (in Unicode) is Cf (Other, format). */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥æ¥Ë¥³¡¼¥É¤ËÃÖ¤±¤ë°ìÈÌ¥«¥Æ¥´¥ê¤¬ Cf (Other, + format) ¤Ç¤¢¤ëʸ»ú¤òɽ¼¨¤·¤Ê¤¤¡£ */ unsigned ignore_formatting_char : 1; /***en If nonzero, draw glyphs suitable for a terminal. Not yet implemented. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ã¼ËöÍѤΥ°¥ê¥Õ¤òɽ¼¨¤¹¤ë¡£Ì¤¼ÂÁõ¡£ */ unsigned fixed_width : 1; + /***en If nonzero, draw glyphs with anti-aliasing if a backend font + driver supports it. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥¢¥ó¥Á¥¨¡¼¥ê¥¢¥¹¤Ç¥°¥ê¥Õ¤òɽ¼¨¤¹¤ë¡£ + ¡Ê¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥Õ¥©¥ó¥È¥É¥é¥¤¥Ð¤¬¥¢¥ó¥Á¥¨¡¼¥ê¥¢¥¹µ¡Ç½¤ò»ý¤Ä¾ì¹ç¤Î¤ß¡£¡Ë */ + unsigned anti_alias : 1; + + /***en If nonzero, disable the adjustment of glyph positions to + avoid horizontal overlapping at font boundary. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Õ¥©¥ó¥È¶­³¦¤Ç¤Î¿åÊ¿Êý¸þ¤Î¥°¥ê¥Õ¤Î½Å¤Ê¤ê¤òÈò¤±¤ë¤¿¤á¤Î¥°¥ê¥Õ°ÌÃÖ¤ÎÄ´À°¤ò̵¸ú¤Ë¤¹¤ë¡£ */ + unsigned disable_overlapping_adjustment : 1; + /***en If nonzero, the values are minimum line ascent and descent pixels. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤΠascent ¤È descent ¤ÎºÇ¾®Ãͤò¼¨¤¹¡£ */ unsigned int min_line_ascent; unsigned int min_line_descent; /***en If nonzero, the values are maximum line ascent and descent pixels. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤΠascent ¤È descent ¤ÎºÇÂçÃͤò¼¨¤¹¡£ */ unsigned int max_line_ascent; unsigned int max_line_descent; /***en If nonzero, the value specifies how many pixels each line can occupy on the display. The value zero means that there is no limit. It is ignored if is non-NULL. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϤ³¤Î¥Ç¥£¥¹¥×¥ì¥¤¾å¤Ç³Æ¹Ô¤¬Àê¤á¤ë¤³¤È¤Î¤Ç¤­¤ë¥Ô¥¯¥»¥ë¿ô¤ò¼¨¤¹¡£ + 0 ¤Ï¸ÂÄꤵ¤ì¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð̵»ë¤µ¤ì¤ë¡£ */ unsigned int max_line_width; /***en If nonzero, the value specifies the distance between tab stops in columns (the width of one column is the width of a space in the default font of the frame). The value zero means 8. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ãͤϥ¿¥Ö¥¹¥È¥Ã¥×´Ö¤Îµ÷Î¥¤ò¥³¥é¥àñ°Ì + ¡Ê¥³¥é¥à¤Ï¥Õ¥ì¡¼¥à¤Î¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤Ë¤ª¤±¤ë¶õÇòʸ»ú¤ÎÉý¤Ç¤¢¤ë¡Ë¤Ç¼¨¤¹¡£ + 0 ¤Ï 8 ¤ò°ÕÌ£¤¹¤ë¡£ */ unsigned int tab_width; /***en If non-NULL, the value is a function that calculates the @@ -479,13 +580,28 @@ typedef struct because of the width limit. This has an effect only when is nonzero. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ãͤϴؿô¤Ç¤¢¤ê¡¢¤½¤Î´Ø¿ô¤Ï¹ÔÈÖ¹æ LINE ¤ÈºÂɸ Y + ¤Ë´ð¤Å¤¤¤Æ³Æ¹Ô¤Î¥¤¥ó¥Ç¥ó¥È¤ÈºÇÂçÉý¤ò·×»»¤·¡¢¤½¤ì¤¾¤ì¤òINDENT ¤È + WIDTH ¤Ç»Ø¤µ¤ì¤ë¾ì½ê¤ËÊݸ¤¹¤ë¡£ + + ¥¤¥ó¥Ç¥ó¥È¤Ï¡¢³Æ¹Ô¤ÎºÇ½é¤Î¥°¥ê¥Õ¤ò±¦¡Ê¥á¥ó¥Ð + ¤¬ 0 + ¤Î»þ¡Ë¤¢¤ë¤¤¤Ïº¸¡Ê¤½¤ì°Ê³°¤Î»þ¡Ë¤Ë²¿¥Ô¥¯¥»¥ë¤º¤é¤¹¤«¤ò»ØÄꤹ¤ë¡£Ãͤ¬Éé¤Ê¤é¤ÐµÕÊý¸þ¤Ë¤º¤é¤¹¡£ + + ºÇÂçÉý¤Ï¡¢³Æ¹Ô¤¬¥Ç¥£¥¹¥×¥ì¥¤¾å¤ÇÀê¤á¤ë¤³¤È¤Î¤Ç¤­¤ë¥Ô¥¯¥»¥ë¿ô¤ÎºÇÂçÃͤǤ¢¤ë¡£Ãͤ¬ + 0 ¤Î¾ì¹ç¤ÏÀ©¸Â¤ò¼õ¤±¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ + + LINE ¤È Y ¤Ï²þ¹Ôʸ»ú¤Ë¤è¤Ã¤Æ¹Ô¤¬²þ¤Þ¤Ã¤¿ºÝ¤Ë¤Ï 0 + ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢Ä¹¤¤¹Ô¤¬ºÇÂçÉý¤ÎÀ©¸Â¤Ë¤è¤Ã¤Æ²þ¹Ô¤µ¤ì¤ë¤¿¤Ó¤Ë 1 Áý¤ä¤µ¤ì¤ë¡£ + + ¤³¤ì¤Ï ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¡£ */ void (*format) (int line, int y, int *indent, int *width); /***en If non-NULL, the value is a function that calculates a line breaking position when a line is too long to fit within the - width limit. POS is a position of the character next to the - last one that fits within the limit. FROM is a position of the - first character of the line, and TO is a position of the last + width limit. POS is the position of the character next to the + last one that fits within the limit. FROM is the position of the + first character of the line, and TO is the position of the last character displayed on the line if there were not width limit. LINE and Y are the same as the arguments to . @@ -496,6 +612,16 @@ typedef struct The mdraw_default_line_break () function is useful for such a script that uses SPACE as a word separator. */ + /***ja NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϹԤ¬ºÇÂçÉýÃæ¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¤Ë¹Ô¤ò²þ¤á¤ë°ÌÃÖ¤ò·×»»¤¹¤ë´Ø¿ô¤Ç¤¢¤ë¡£ + POS ¤ÏºÇÂçÉý¤Ë¼ý¤Þ¤ëºÇ¸å¤Îʸ»ú¤Î¼¡¤Îʸ»ú¤Î°ÌÃ֤Ǥ¢¤ë¡£FROM + ¤Ï¹Ô¤ÎºÇ½é¤Îʸ»ú¤Î°ÌÃÖ¡¢TO + ¤ÏºÇÂçÉý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤½¤Î¹Ô¤Ëɽ¼¨¤µ¤ì¤ëºÇ¸å¤Îʸ»ú¤Î°ÌÃ֤Ǥ¢¤ë¡£LINE + ¤È Y ¤Ï ¤Î°ú¿ô¤ÈƱÍͤǤ¢¤ë¡£ + + ¤³¤Î´Ø¿ô¤Ï¹Ô¤ò²þ¤á¤ëʸ»ú°ÌÃÖ¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤Þ¤¿ MT ¤òÊѹ¹¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + + ´Ø¿ô mdraw_default_line_break () + ¤Ï¡¢¶õÇò¤ò¸ì¤Î¶èÀÚ¤ê¤È¤·¤ÆÍѤ¤¤ë¥¹¥¯¥ê¥×¥ÈÍѤȤ·¤ÆÍ­ÍѤǤ¢¤ë¡£ */ int (*line_break) (MText *mt, int pos, int from, int to, int line, int y); int with_cursor; @@ -505,19 +631,28 @@ typedef struct displayed next to the last character of an M-text. If the value is negative, even if is nonzero, cursor is not displayed. */ + /***ja ¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ëʸ»ú°ÌÃÖ¤ò¼¨¤¹¡£ºÇÂç¤Îʸ»ú°ÌÃÖ¤è¤êÂ礭¤±¤ì¤Ð¡¢¥«¡¼¥½¥ë¤Ï + M-text ¤ÎºÇ¸å¤Îʸ»ú¤ÎÎÙ¤Ëɽ¼¨¤µ¤ì¤ë¡£Éé¤Ê¤é¤Ð¡¢ + ¤¬ 0 ¤Ç¤Ê¤¯¤Æ¤â¥«¡¼¥½¥ë¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£ + */ int cursor_pos; /***en If nonzero, display a cursor at the character position . If the value is positive, it is the pixel width of the cursor. If the value is negative, the cursor width is the same as the underlining glyph(s). */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ ¤Ë¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ë¡£ + Ãͤ¬Àµ¤Ê¤é¤Ð¡¢¥«¡¼¥½¥ë¤ÎÉý¤Ï¤½¤ÎÃÍ¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë¤Ç¤¢¤ë¡£ + Éé¤Ê¤é¤Ð¡¢¥«¡¼¥½¥ë¤Î¤¢¤ë¥°¥ê¥Õ¤ÈƱ¤¸Éý¤Ç¤¢¤ë¡£ */ int cursor_width; /***en If nonzero and is also nonzero, display double bar cursors; at the character position and at the logically previous character. Both cursors have one pixel width - with horizontal fringes at upper or lower positions. HOW TO - EXPLAIN THE DOUBLE CURSORS? */ + with horizontal fringes at upper or lower positions. */ + /***ja If 0 ¤Ç¤Ê¤¯¡¢¤«¤Ä ¤â 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Ð¡¼¥«¡¼¥½¥ë¤òʸ»ú°ÌÃÖ + ¤ÈÏÀÍýŪ¤Ë¤½¤ì¤ÎÁ°¤Ë¤¢¤ëʸ»ú¤Î£²¥ö½ê¤Ëɽ¼¨¤¹¤ë¡£ + ÁÐÊý¤È¤â£±¥Ô¥¯¥»¥ëÉý¤Ç¡¢¾å¤«²¼¤Ë¿åÊ¿¤Î¾þ¤ê¤¬¤Ä¤¯¡£*/ int cursor_bidi; /***en If nonzero, on drawing partial text, pixels of surrounding @@ -526,13 +661,22 @@ typedef struct upper vowel) is drawn so that V is placed over the middle of two Cs. If this CVC sequence is already drawn and only the last C is drawn again (for instance by updating cursor position), the - left half of V is erased if this member is zero. By setting + right half of V is erased if this member is zero. By setting this member to nonzero, even with such a drawing, we can keep this CVC sequence correctly displayed. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Æ¥­¥¹¥È¤Î°ìÉôʬ¤òɽ¼¨¤¹¤ëºÝ¤Ë¡¢Á°¸å¤Î¥Æ¥­¥¹¥È¤Î¤¦¤Á¤½¤Îɽ¼¨Îΰè¤Ë¿¯Æþ¤¹¤ëÉôʬ¤âɽ¼¨¤¹¤ë¡£ + ¤¿¤È¤¨¤Ð¡¢¥¿¥¤¸ì¥Æ¥­¥¹¥È »Ò²»-Êì²»-»Ò²» + ¤È¤¤¤¦¥·¡¼¥¯¥¨¥ó¥¹¤Î¤¤¤¯¤Ä¤«¤Ï¡¢Êì²»¤¬Æó¤Ä¤Î»Ò²»¤Î´Ö¤Ë¾å¤Ë¤Î¤ë¤è¤¦¤ËÉÁ¤«¤ì¤ë¡£ + ¤³¤Î¤è¤¦¤Ê¥·¡¼¥¯¥¨¥ó¥¹¤¬¤¹¤Ç¤ËÉÁ¤«¤ì¤Æ¤ª¤ê¡¢ºÇ¸å¤Î»Ò²»¤À¤±¤òÉÁ¤­Ä¾¤¹¾ì¹ç + ¡Ê¤¿¤È¤¨¤Ð¡¢¥«¡¼¥½¥ë°ÌÃÖ¤ò¹¹¿·¤¹¤ëºÝ¤Ê¤É¡Ë¤³¤Î¥á¥ó¥Ð¤¬ 0 + ¤Ç¤¢¤ì¤Ð¡¢Êì²»¤Î±¦È¾Ê¬¤¬¾Ã¤µ¤ì¤Æ¤·¤Þ¤¦¡£¤³¤ì¤ò 0 °Ê³°¤Ë¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤Î¤è¤¦¤ÊºÝ¤Ë¤â + »Ò²»-Êì²»-»Ò²» ¤Î¥·¡¼¥¯¥¨¥ó¥¹¤òÀµ¤·¤¯É½¼¨¤·Â³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ */ int partial_update; /***en If nonzero, don't cache the result of any drawing information of an M-text. */ + /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢M-text ¤Îɽ¼¨¤Ë´Ø¤¹¤ë¾ðÊó¤ò¥­¥ã¥Ã¥·¥å¤·¤Ê¤¤¡£ + */ int disable_caching; /* If non-NULL, limit the drawing effect to the specified region. */ @@ -544,11 +688,16 @@ typedef struct /*** @ingroup m17nDraw */ /***en - @brief Type of metric for gylphs and texts. + @brief Type of metric for glyphs and texts. The type #MDrawMetric is for a metric of a glyph and a drawn text. It is also used to represent a rectangle area of a graphic device. */ +/***ja + @brief ¥°¥ê¥Õ¤È¥Æ¥­¥¹¥È¤ÎÀ£Ë¡¤Î·¿Àë¸À. + + #MDrawMetric ¤Ï¥°¥ê¥Õ¤Èɽ¼¨¤µ¤ì¤¿¥Æ¥­¥¹¥È¤ÎÀ£Ë¡ÍѤη¿¤Ç¤¢¤ë¡£ + ¤Þ¤¿¡¢É½¼¨¥Ç¥Ð¥¤¥¹¤Î¶ë·ÁÎΰè¤òɽ¤¹¤Î¤Ë¤âÍѤ¤¤é¤ì¤ë¡£ */ typedef struct { int x, y; @@ -563,76 +712,154 @@ typedef struct { The type #MDrawGlyphInfo is the structure that contains information about a glyph. It is used by mdraw_glyph_info (). */ +/***ja + @brief ¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤Î·¿Àë¸À. + + #MDrawGlyphInfo ·¿¤Ï¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¹½Â¤ÂΤǤ¢¤ë¡£ + mdraw_glyph_info () ¤Ï¤³¤ì¤òÍѤ¤¤ë¡£ */ typedef struct { /***en Character range corresponding to the glyph. */ + /***ja ¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï. */ int from, to; /***en Character ranges corresponding to the line of the glyph. */ + /***ja ¥°¥ê¥Õ¤ÎÎó¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï. */ int line_from, line_to; /***en X/Y coordinates of the glyph. */ + /***ja ¥°¥ê¥Õ¤Î X/Y ºÂɸ. */ int x, y; /***en Metric of the glyph. */ - MDrawMetric this; + /***ja ¥°¥ê¥Õ¤ÎÀ£Ë¡. */ + MDrawMetric metrics; /***en Font used for the glyph. Set to NULL if no font is found for the glyph. */ + /***ja ¥°¥ê¥Õ¤Ë»È¤ï¤ì¤ë¥Õ¥©¥ó¥È¡£¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð NULL¡£ */ + MFont *font; /***en Character ranges corresponding to logically previous and next glyphs. Note that we do not need the members prev_to and - next_from because they must be the same as the memberse from and + next_from because they must be the same as the members from and to respectively. */ + /***ja ÏÀÍýŪ¤ÊÁ°¸å¤Î¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï¡£¥á¥ó¥Ð prev_to ¤È + next_from ¤Ï¡¢¤½¤ì¤¾¤ì¥á¥ó¥Ð from ¤Èto + ¤ÈƱ¤¸¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤¿¤áÉÔÍפǤ¢¤ë¡£ */ int prev_from, next_to; /***en Character ranges corresponding to visually left and right glyphs. */ + /***ja ɽ¼¨¾å¤Îº¸±¦¤Î¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï¡£ */ int left_from, left_to; int right_from, right_to; + /***en Logical width of the glyph. Nominal distance to the next + glyph. */ + /***ja ¥°¥ê¥Õ¤ÎÏÀÍýŪÉý¡£¼¡¤Î¥°¥ê¥Õ¤È¤Î̾Ìܾå¤Îµ÷Î¥¡£ */ + int logical_width; } MDrawGlyphInfo; /*=*/ +/*** @ingroup m17nDraw */ +/***en + @brief Type of information about a glyph metric and font. + + The type #MDrawGlyph is the structure that contains information + about a glyph metric and font. It is used by the function + mdraw_glyph_list (). */ +/***ja + @brief ¥°¥ê¥Õ¤ÎÀ£Ë¡¤È¥Õ¥©¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤Î·¿Àë¸À. + + #MDrawGlyph ·¿¤Ï¥°¥ê¥Õ¤ÎÀ£Ë¡¤È¥Õ¥©¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¹½Â¤ÂΤǤ¢¤ë¡£ + mdraw_glyph_list () ¤Ï¤³¤ì¤òÍѤ¤¤ë¡£ */ + +typedef struct +{ + /***en Character range corresponding to the glyph. */ + /***ja ¥°¥ê¥Õ¤ËÂбþ¤¹¤ëʸ»ú¤ÎÈÏ°Ï. */ + int from, to; + + /***en Font glyph code of the glyph. */ + /***ja ¥Õ¥©¥ó¥ÈÆâ¤Î¥°¥ê¥Õ¥³¡¼¥É¡£ */ + int glyph_code; + + /***en Logical width of the glyph. Nominal distance to the next + glyph. */ + /***ja ¥°¥ê¥Õ¤ÎÏÀÍýŪÉý¡£¼¡¤Î¥°¥ê¥Õ¤È¤Î̾Ìܾå¤Îµ÷Î¥¡£ */ + int x_advance, y_advance; + + /***en X/Y offset relative to the glyph position. */ + /***ja ¥°¥ê¥Õ¤Î°ÌÃÖ¤ËÂФ¹¤ë X/Y ¥ª¥Õ¥»¥Ã¥È. */ + int x_off, y_off; + + /***en Metric of the glyph. */ + /***ja ¥°¥ê¥Õ¤ÎÀ£Ë¡. */ + int lbearing, rbearing, ascent, descent; + + /***en Font used for the glyph. Set to NULL if no font is found for + the glyph. */ + /***ja ¥°¥ê¥Õ¤Ë»È¤ï¤ì¤ë¥Õ¥©¥ó¥È¡£¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð NULL¡£ */ + MFont *font; + + /***en Type of the font. One of Mx, Mfreetype, Mxft. */ + /***ja ¥Õ¥©¥ó¥È¤Î¥¿¥¤¥×¡£Mx¡¢Mfreetype¡¢Mxft ¤Î¤¤¤º¤ì¤«¡£ */ + MSymbol font_type; + + /***en Pointer to the font structure. The actual type is + (XFontStruct *) if member is Mx, FT_Face if + member is Mfreetype, and (XftFont *) if + member is Mxft. */ + /***ja ¥Õ¥©¥ó¥È¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡£¼ÂºÝ¤Î·¿¤Ï ¥á¥ó¥Ð¤¬ + Mx ¤Ê¤é (XFontStruct *)¡¢ Mfreetype ¤Ê¤é FT_Face¡¢Mxft + ¤Ê¤é (XftFont *)¡£ */ + void *fontp; + +} MDrawGlyph; + +/*=*/ + /***en - @brief Type of text items. + @brief Type of textitems. The type #MDrawTextItem is for @e textitem objects. Each textitem contains an M-text and some other information to control the drawing of the M-text. */ /***ja - @brief textitem Íѹ½Â¤ÂÎ + @brief textitem ¤Î·¿Àë¸À. - ·¿ #MDrawTextItem ¤Ï @e ¥Æ¥­¥¹¥È¥¢¥¤¥Æ¥à ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤι½Â¤ÂΤǤ¢ - ¤ë¡£³Æ¥Æ¥­¥¹¥È¥¢¥¤¥Æ¥à¤Ï¡¢1¸Ä¤Î M-text ¤È¡¢¤½¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤¿¤á - ¤Î³Æ¼ï¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ + #MDrawTextItem ¤Ï @e ¥Æ¥­¥¹¥È¥¢¥¤¥Æ¥à ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤη¿¤Ç¤¢¤ë¡£ + ³Æ¥Æ¥­¥¹¥È¥¢¥¤¥Æ¥à¤Ï¡¢ 1 ¸Ä¤Î M-text ¤È¡¢¤½¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤¿¤á¤Î¾ðÊó¤ò´Þ¤ó¤Ç¤¤¤ë¡£ @latexonly \IPAlabel{MTextItem} @endlatexonly */ typedef struct { /***en M-text. */ - /***ja M-text */ + /***ja M-text. */ MText *mt; /***en Optional change in the position (in the unit of pixel) along the X-axis before the M-text is drawn. */ - /***ja ÉÁ²èÁ°¤Ë¹Ô¤Ê¤¦X¼´Êý¸þ¤Î°ÌÃÖÄ´À° (¥Ô¥¯¥»¥ëñ°Ì) */ + /***ja M-text ɽ¼¨Á°¤Ë¹Ô¤Ê¤¦X¼´Êý¸þ¤Î°ÌÃÖÄ´À° (¥Ô¥¯¥»¥ëñ°Ì) */ int delta; /***en Pointer to a face object. Each property of the face, if not Mnil, overrides the same property of face(s) specified as a text property in . */ - /***ja ¥Õ¥©¥ó¥È¥»¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£¤³¤ì¤Ï M-text Æâ¤Ç»Ø - Äꤵ¤ì¤¿¥Õ¥§¡¼¥¹¤Î¥Õ¥©¥ó¥È¥»¥Ã¥È¤ËÍ¥À褹¤ë*/ + /***ja ¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£¥Õ¥§¡¼¥¹¤Î³Æ¥×¥í¥Ñ¥Æ¥£¤Ï + Mnil ¤Ç¤Ê¤±¤ì¤Ð ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥§¡¼¥¹¤ÎƱ¤¸¥×¥í¥Ñ¥Æ¥£¤ËÍ¥À褹¤ë*/ MFace *face; /***en Pointer to a draw control object. The M-text is drawn by mdraw_text_with_control () with this control object. */ + /***ja ɽ¼¨À©¸æ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ mdraw_text_with_control () + ¤Ï¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÍѤ¤¤Æ M-text ¤òɽ¼¨¤¹¤ë¡£ */ MDrawControl *control; } MDrawTextItem; @@ -673,6 +900,10 @@ extern int mdraw_text_per_char_extents (MFrame *frame, extern int mdraw_glyph_info (MFrame *frame, MText *mt, int from, int pos, MDrawControl *control, MDrawGlyphInfo *info); +extern int mdraw_glyph_list (MFrame *frame, MText *mt, int from, int to, + MDrawControl *control, MDrawGlyph *glyphs, + int array_size, int *num_glyphs_return); + extern void mdraw_text_items (MFrame *frame, MDrawWindow win, int x, int y, MDrawTextItem *items, int nitems); @@ -705,10 +936,10 @@ extern MInputDriver minput_gui_driver; input method. */ /***ja - @brief ´Ø¿ô minput_create_ic () ¤Î°ú¿ô $ARG ¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂÎ + @brief ´Ø¿ô minput_create_ic () ¤Î°ú¿ô¤Î·¿Àë¸À. - #MInputGUIArgIC ·¿¤Ï¡¢´Ø¿ô minput_create_ic () ¤¬ÆâÉôÆþÎϥ᥽¥Ã - ¥É¤òÀ¸À®¤¹¤ëºÝ¤Ë¡¢°ú¿ô $ARG ¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤ë¹½Â¤ÂΤǤ¢¤ë¡£ */ + #MInputGUIArgIC ¤Ï¡¢´Ø¿ô minput_create_ic () + ¤¬ÆâÉôÆþÎϥ᥽¥Ã¥É¤ÎÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤¹¤ëºÝ¤Î¡¢°ú¿ô $ARG ÍѤη¿¤Ç¤¢¤ë¡£ */ typedef struct {