You should have received a copy of the GNU Lesser General Public
License along with the m17n library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
02111-1307, USA. */
#ifndef _M17N_GUI_H_
{
#endif
+#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE)
+
extern void m17n_init_win (void);
#undef M17N_INIT
#define M17N_INIT() m17n_init_win ()
#undef M17N_FINI
#define M17N_FINI() m17n_fini_win ()
+#endif
+
/***en @defgroup m17nGUI GUI API */
/***ja @defgroup m17nGUI GUI API */
/*=*/
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);
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 ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´Þ¤à¡£
- ¤³¤Î¹½Â¤ÂΤϥե©¥ó¥È¥»¥Ã¥ÈÆâ¤Î¥Õ¥©¥ó¥È¤ò»ØÄꤹ¤ë¾ì¹ç¤È¡¢»ÈÍѲÄǽ¤Ê
- ¥·¥¹¥Æ¥à¥Õ¥©¥ó¥È¤Î¾ðÊó¤ò³ÊǼ¤¹¤ë¾ì¹ç¤ÎξÊý¤ÇÍѤ¤¤é¤ì¤ë¡£
+ ¤³¤Î¹½Â¤ÂΤϥե©¥ó¥È¥»¥Ã¥ÈÆâ¤Î¥Õ¥©¥ó¥È¤ò»ØÄꤹ¤ëºÝ¤È¡¢»ÈÍѲÄǽ¤Ê¥·¥¹¥Æ¥à¥Õ¥©¥ó¥È¤Î¾ðÊó¤ò³ÊǼ¤¹¤ëºÝ¤ÎξÊý¤ËÍѤ¤¤é¤ì¤ë¡£
ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */
/*=*/
-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 (const 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 (const char *name);
extern MSymbol Mfoundry;
extern MSymbol Mfamily;
extern MSymbol Mstyle;
extern MSymbol Mstretch;
extern MSymbol Madstyle;
+extern MSymbol Mspacing;
extern MSymbol Mregistry;
extern MSymbol Msize;
extern MSymbol Mresolution;
+extern MSymbol Mmax_advance;
+extern MSymbol Motf;
+extern MSymbol Mfontfile;
+
+extern MSymbol Mfontconfig;
extern void *mfont_get_prop (MFont *font, MSymbol key);
font not greater than the #Msize property of $SPEC. */
/***ja
- @brief ¥Õ¥©¥ó¥È¤òõ¤¹
+ @brief ¥Õ¥©¥ó¥È¤òõ¤¹.
+
+ ´Ø¿ô mfont_find () ¤Ï¡¢¥Õ¥ì¡¼¥à $FRAME ¾å¤Ç¥Õ¥©¥ó¥ÈÄêµÁ $SPEC
+ ¤Ë¤â¤Ã¤È¤â¹çÃפ¹¤ë»ÈÍѲÄǽ¤Ê¥Õ¥©¥ó¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
+
+ $SCORE ¤Ï NULL ¤Ç¤¢¤ë¤«¡¢¸«¤Ä¤«¤Ã¤¿¥Õ¥©¥ó¥È¤¬ $SPEC
+ ¤Ë¤É¤ì¤Û¤É¹ç¤Ã¤Æ¤¤¤ë¤«¤ò¼¨¤¹¥¹¥³¥¢¤òÊݸ¤¹¤ë¾ì½ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
+ ¥¹¥³¥¢¤¬¾®¤µ¤¤¤Û¤ÉÎɤ¯¹ç¤Ã¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
- ´Ø¿ô mfont_find () ¤Ï¡¢¥Õ¥ì¡¼¥à $FRAME ¾å¤Ç¥Õ¥©¥ó¥ÈÄêµÁ $SPEC ¤Ë¤â¤Ã
- ¤È¤â¶á¤¤¥Õ¥©¥ó¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ */
+ $LIMITED_SIZE ¤¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢$SPEC ¤Î¥×¥í¥Ñ¥Æ¥£ #Msize
+ ¤è¤êÂ礤¯¤Ê¤¤¥Õ¥©¥ó¥È¤À¤±¤¬Ãµ¤µ¤ì¤ë¡£
+*/
extern MFont *mfont_find (MFrame *frame, MFont *spec,
int *score, int limited_size);
-
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);
+extern MPlist *mfont_list_family_names (MFrame *frame);
+
+typedef struct MFontset MFontset;
+
+extern int mfont_check (MFrame *frame, MFontset *fontset,
+ MSymbol script, MSymbol language, MFont *font);
+
+extern int mfont_match_p (MFont *font, MFont *spec);
+
+extern MFont *mfont_open (MFrame *frame, MFont *font);
+
+extern MFont *mfont_encapsulate (MFrame *frame, MSymbol data_type, void *data);
+
+extern int mfont_close (MFont *font);
+
/* end of font module */
/*=*/
/***en @defgroup m17nFontset Fontset */
/***ja @defgroup m17nFontset ¥Õ¥©¥ó¥È¥»¥Ã¥È */
/*=*/
-
-typedef struct MFontset MFontset;
-
+/*** @addtogroup m17nFontset
+ @{ */
extern MFontset *mfontset (char *name);
extern MSymbol mfontset_name (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 */
/*=*/
@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;
/*=*/
extern MFace *mface ();
+extern int mface_equal (MFace *face1, MFace *face2);
+
extern MFace *mface_copy (MFace *face);
extern MFace *mface_merge (MFace *dst, MFace *src);
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,
} 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;
/*=*/
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;
/***en
@brief Type of hook function of face.
- 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);
+ #MFaceHookFunc is a type of a hook function of a face. */
+/***ja
+ @brief ¥Õ¥§¡¼¥¹¤Î¥Õ¥Ã¥¯´Ø¿ô¤Î·¿Àë¸À.
+
+ #MFaceHookFunc ¤Ï¥Õ¥§¡¼¥¹¤Î¥Õ¥Ã¥¯´Ø¿ô¤Î·¿¤Ç¤¢¤ë¡£*/
+typedef void (*MFaceHookFunc) (MFace *face, void *arg, void *info);
/*=*/
extern void *mface_get_prop (MFace *face, MSymbol key);
extern int mface_put_prop (MFace *face, MSymbol key, void *val);
+extern MFaceHookFunc mface_get_hook (MFace *face);
+
+extern int mface_put_hook (MFace *face, MFaceHookFunc func);
+
extern void mface_update (MFrame *frame, MFace *face);
/* end of face module */
/***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;
/*=*/
/***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;
/*=*/
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
the next line. If <format> 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 ¤Ç²þ¹Ô¤·¡¢Â³¤¯Ê¸»ú¤Ï¼¡¤Î¹Ô¤Ëɽ¼¨¤¹¤ë¡£¤â¤· <format> ¤¬
+ 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 <format> is non-NULL. */
+ /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢ÃͤϤ³¤Î¥Ç¥£¥¹¥×¥ì¥¤¾å¤Ç³Æ¹Ô¤¬Àê¤á¤ë¤³¤È¤Î¤Ç¤¤ë¥Ô¥¯¥»¥ë¿ô¤ò¼¨¤¹¡£
+ 0 ¤Ï¸ÂÄꤵ¤ì¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£<format> ¤¬ 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
because of the width limit.
This has an effect only when <two_dimensional> is nonzero. */
+ /***ja 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢Ãͤϴؿô¤Ç¤¢¤ê¡¢¤½¤Î´Ø¿ô¤Ï¹ÔÈÖ¹æ LINE ¤ÈºÂɸ Y
+ ¤Ë´ð¤Å¤¤¤Æ³Æ¹Ô¤Î¥¤¥ó¥Ç¥ó¥È¤ÈºÇÂçÉý¤ò·×»»¤·¡¢¤½¤ì¤¾¤ì¤òINDENT ¤È
+ WIDTH ¤Ç»Ø¤µ¤ì¤ë¾ì½ê¤ËÊݸ¤¹¤ë¡£
+
+ ¥¤¥ó¥Ç¥ó¥È¤Ï¡¢³Æ¹Ô¤ÎºÇ½é¤Î¥°¥ê¥Õ¤ò±¦¡Ê¥á¥ó¥Ð
+ <orientation_reversed> ¤¬ 0
+ ¤Î»þ¡Ë¤¢¤ë¤¤¤Ïº¸¡Ê¤½¤ì°Ê³°¤Î»þ¡Ë¤Ë²¿¥Ô¥¯¥»¥ë¤º¤é¤¹¤«¤ò»ØÄꤹ¤ë¡£Ãͤ¬Éé¤Ê¤é¤ÐµÕÊý¸þ¤Ë¤º¤é¤¹¡£
+
+ ºÇÂçÉý¤Ï¡¢³Æ¹Ô¤¬¥Ç¥£¥¹¥×¥ì¥¤¾å¤ÇÀê¤á¤ë¤³¤È¤Î¤Ç¤¤ë¥Ô¥¯¥»¥ë¿ô¤ÎºÇÂçÃͤǤ¢¤ë¡£Ãͤ¬
+ 0 ¤Î¾ì¹ç¤ÏÀ©¸Â¤ò¼õ¤±¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+
+ LINE ¤È Y ¤Ï²þ¹Ôʸ»ú¤Ë¤è¤Ã¤Æ¹Ô¤¬²þ¤Þ¤Ã¤¿ºÝ¤Ë¤Ï 0
+ ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¡¢Ä¹¤¤¹Ô¤¬ºÇÂçÉý¤ÎÀ©¸Â¤Ë¤è¤Ã¤Æ²þ¹Ô¤µ¤ì¤ë¤¿¤Ó¤Ë 1 Áý¤ä¤µ¤ì¤ë¡£
+
+ ¤³¤ì¤Ï <two_dimensional> ¤¬ 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 <format>.
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 ¤Ï <format> ¤Î°ú¿ô¤ÈƱÍͤǤ¢¤ë¡£
+
+ ¤³¤Î´Ø¿ô¤Ï¹Ô¤ò²þ¤á¤ëʸ»ú°ÌÃÖ¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤Þ¤¿ MT ¤òÊѹ¹¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+
+ ´Ø¿ô mdraw_default_line_break ()
+ ¤Ï¡¢¶õÇò¤ò¸ì¤Î¶èÀÚ¤ê¤È¤·¤ÆÍѤ¤¤ë¥¹¥¯¥ê¥×¥ÈÍѤȤ·¤ÆÍÍѤǤ¢¤ë¡£ */
int (*line_break) (MText *mt, int pos, int from, int to, int line, int y);
int with_cursor;
displayed next to the last character of an M-text. If the value
is negative, even if <cursor_width> is nonzero, cursor is not
displayed. */
+ /***ja ¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ëʸ»ú°ÌÃÖ¤ò¼¨¤¹¡£ºÇÂç¤Îʸ»ú°ÌÃÖ¤è¤êÂ礤±¤ì¤Ð¡¢¥«¡¼¥½¥ë¤Ï
+ M-text ¤ÎºÇ¸å¤Îʸ»ú¤ÎÎÙ¤Ëɽ¼¨¤µ¤ì¤ë¡£Éé¤Ê¤é¤Ð¡¢
+ <cursor_width> ¤¬ 0 ¤Ç¤Ê¤¯¤Æ¤â¥«¡¼¥½¥ë¤Ïɽ¼¨¤µ¤ì¤Ê¤¤¡£
+ */
int cursor_pos;
/***en If nonzero, display a cursor at the character position
<cursor_pos>. 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 ¤Ç¤Ê¤±¤ì¤Ð¡¢<cursor_pos> ¤Ë¥«¡¼¥½¥ë¤òɽ¼¨¤¹¤ë¡£
+ Ãͤ¬Àµ¤Ê¤é¤Ð¡¢¥«¡¼¥½¥ë¤ÎÉý¤Ï¤½¤ÎÃÍ¡Ê¥Ô¥¯¥»¥ëñ°Ì¡Ë¤Ç¤¢¤ë¡£
+ Éé¤Ê¤é¤Ð¡¢¥«¡¼¥½¥ë¤Î¤¢¤ë¥°¥ê¥Õ¤ÈƱ¤¸Éý¤Ç¤¢¤ë¡£ */
int cursor_width;
/***en If nonzero and <cursor_width> is also nonzero, display double
bar cursors; at the character position <cursor_pos> 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 ¤Ç¤Ê¤¯¡¢¤«¤Ä <cursor_width> ¤â 0 ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Ð¡¼¥«¡¼¥½¥ë¤òʸ»ú°ÌÃÖ
+ <cursor_pos> ¤ÈÏÀÍýŪ¤Ë¤½¤ì¤ÎÁ°¤Ë¤¢¤ëʸ»ú¤Î£²¥ö½ê¤Ëɽ¼¨¤¹¤ë¡£
+ ÁÐÊý¤È¤â£±¥Ô¥¯¥»¥ëÉý¤Ç¡¢¾å¤«²¼¤Ë¿åÊ¿¤Î¾þ¤ê¤¬¤Ä¤¯¡£*/
int cursor_bidi;
/***en If nonzero, on drawing partial text, pixels of surrounding
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. */
} MDrawControl;
+extern int mdraw_line_break_option;
+
/*=*/
/*** @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;
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 <font_type> member is Mx, FT_Face if
+ <font_type> member is Mfreetype, and (XftFont *) if <font_type>
+ member is Mxft. */
+ /***ja ¥Õ¥©¥ó¥È¤Î¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¡£¼ÂºÝ¤Î·¿¤Ï <font_type> ¥á¥ó¥Ð¤¬
+ 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 <mt>. */
- /***ja ¥Õ¥©¥ó¥È¥»¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£¤³¤ì¤Ï M-text Æâ¤Ç»Ø
- Äꤵ¤ì¤¿¥Õ¥§¡¼¥¹¤Î¥Õ¥©¥ó¥È¥»¥Ã¥È¤ËÍ¥À褹¤ë*/
+ /***ja ¥Õ¥§¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£¥Õ¥§¡¼¥¹¤Î³Æ¥×¥í¥Ñ¥Æ¥£¤Ï
+ Mnil ¤Ç¤Ê¤±¤ì¤Ð <mt> ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥§¡¼¥¹¤ÎƱ¤¸¥×¥í¥Ñ¥Æ¥£¤ËÍ¥À褹¤ë*/
MFace *face;
/***en Pointer to a draw control object. The M-text <mt> is drawn
by mdraw_text_with_control () with this control object. */
+ /***ja ɽ¼¨À©¸æ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡£ mdraw_text_with_control ()
+ ¤Ï¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÍѤ¤¤Æ M-text <mt> ¤òɽ¼¨¤¹¤ë¡£ */
MDrawControl *control;
} MDrawTextItem;
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);
input method. */
/***ja
- @brief ´Ø¿ô minput_create_ic () ¤Î°ú¿ô $ARG ¤Ç»Ø¤µ¤ì¤ë¹½Â¤ÂÎ
+ @brief ´Ø¿ô minput_create_ic () ¤Î°ú¿ô¤Î·¿Àë¸À.
- #MInputGUIArgIC ·¿¤Ï¡¢´Ø¿ô minput_create_ic () ¤¬ÆâÉôÆþÎϥ᥽¥Ã
- ¥É¤òÀ¸À®¤¹¤ëºÝ¤Ë¡¢°ú¿ô $ARG ¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤ë¹½Â¤ÂΤǤ¢¤ë¡£ */
+ #MInputGUIArgIC ¤Ï¡¢´Ø¿ô minput_create_ic ()
+ ¤¬ÆâÉôÆþÎϥ᥽¥Ã¥É¤ÎÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤¹¤ëºÝ¤Î¡¢°ú¿ô $ARG ÍѤη¿¤Ç¤¢¤ë¡£ */
typedef struct
{