Main Page   Modules   Data Structures   Globals   Appendix  

m17n-gui.h

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

Top of this page

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark mule-aist@m17n.org