亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pango-engine.h

?? windows平臺下開發gtk程序所需要的庫和頭文件等
?? H
字號:
/* Pango * pango-engine.h: Engines for script and language specific processing * * Copyright (C) 2000,2003 Red Hat Software * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */#ifndef __PANGO_ENGINE_H__#define __PANGO_ENGINE_H__#include <pango/pango-types.h>#include <pango/pango-item.h>#include <pango/pango-font.h>#include <pango/pango-glyph.h>#include <pango/pango-script.h>G_BEGIN_DECLS#ifdef PANGO_ENABLE_ENGINE/* Module API */#define PANGO_RENDER_TYPE_NONE "PangoRenderNone"#define PANGO_TYPE_ENGINE              (pango_engine_get_type ())#define PANGO_ENGINE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_ENGINE, PangoEngine))#define PANGO_IS_ENGINE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_ENGINE))#define PANGO_ENGINE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_ENGINE, PangoEngineClass))#define PANGO_IS_ENGINE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_ENGINE))#define PANGO_ENGINE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_ENGINE, PangoEngineClass))typedef struct _PangoEngine PangoEngine;typedef struct _PangoEngineClass PangoEngineClass;/** * PangoEngine: * * #PangoEngine is the base class for all types of language and * script specific engines. It has no functionality by itself. **/struct _PangoEngine{  /*< private >*/  GObject parent_instance;};/** * PangoEngineClass: * * Class structure for #PangoEngine **/struct _PangoEngineClass{  /*< private >*/  GObjectClass parent_class;};GType pango_engine_get_type (void) G_GNUC_CONST;#define PANGO_ENGINE_TYPE_LANG "PangoEngineLang"#define PANGO_TYPE_ENGINE_LANG              (pango_engine_lang_get_type ())#define PANGO_ENGINE_LANG(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_ENGINE_LANG, PangoEngineLang))#define PANGO_IS_ENGINE_LANG(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_ENGINE_LANG))#define PANGO_ENGINE_LANG_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_ENGINE_LANG, PangoEngineLangClass))#define PANGO_IS_ENGINE_LANG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_ENGINE_LANG))#define PANGO_ENGINE_LANG_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_ENGINE_LANG, PangoEngineLangClass))typedef struct _PangoEngineLangClass PangoEngineLangClass;/** * PangoEngineLang: * * The #PangoEngineLang class is implemented by engines that * customize the rendering-system independent part of the * Pango pipeline for a particular script or language. For * instance, a custom #PangoEngineLang could be provided for * Thai to implement the dictionary-based word boundary * lookups needed for that language. **/struct _PangoEngineLang{  /*< private >*/  PangoEngine parent_instance;};/** * PangoEngineLangClass: * @script_break: Provides a custom implementation of pango_break(). * If %NULL, pango_default_break() is used instead. If not %NULL, for * Pango versions before 1.16 (module interface version before 1.6.0), * this was called instead of pango_default_break(), but in newer versions, * pango_default_break() is always called and this is called after that to * allow tailoring the breaking results. * * Class structure for #PangoEngineLang **/struct _PangoEngineLangClass{  /*< private >*/  PangoEngineClass parent_class;  /*< public >*/  void (*script_break) (PangoEngineLang *engine,			const char    *text,			int            len,			PangoAnalysis *analysis,			PangoLogAttr  *attrs,			int            attrs_len);};GType pango_engine_lang_get_type (void) G_GNUC_CONST;#define PANGO_ENGINE_TYPE_SHAPE "PangoEngineShape"#define PANGO_TYPE_ENGINE_SHAPE              (pango_engine_shape_get_type ())#define PANGO_ENGINE_SHAPE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_ENGINE_SHAPE, PangoEngineShape))#define PANGO_IS_ENGINE_SHAPE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_ENGINE_SHAPE))#define PANGO_ENGINE_SHAPE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_ENGINE_SHAPE, PangoEngine_ShapeClass))#define PANGO_IS_ENGINE_SHAPE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_ENGINE_SHAPE))#define PANGO_ENGINE_SHAPE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_ENGINE_SHAPE, PangoEngineShapeClass))typedef struct _PangoEngineShapeClass PangoEngineShapeClass;/** * PangoEngineShape * * The #PangoEngineShape class is implemented by engines that * customize the rendering-system dependent part of the * Pango pipeline for a particular script or language. * A #PangoEngineShape implementation is then specific to both * a particular rendering system or group of rendering systems * and to a particular script. For instance, there is one * #PangoEngineShape implementation to handle shaping Arabic * for Fontconfig-based backends. **/struct _PangoEngineShape{  PangoEngine parent_instance;};/** * PangoEngineShapeClass: * @script_shape: Given a font, a piece of text, and a #PangoAnalysis *   structure, converts characters to glyphs and positions the *   resulting glyphs. The results are stored in the #PangoGlyphString *   that is passed in. (The implementation should resize it *   appropriately using pango_glyph_string_set_size()). All fields *   of the @log_clusters and @glyphs array must be filled in, with *   the exception that Pango will automatically generate *   <literal>glyphs->glyphs[i].attr.is_cluster_start</literal> *   using the @log_clusters array. Each input character must occur in one *   of the output logical clusters; *   if no rendering is desired for a character, this may involve *   inserting glyphs with the #PangoGlyph ID #PANGO_GLYPH_EMPTY, which *   is guaranteed never to render. If the shaping fails for any reason, *   the shaper should return with an empty (zero-size) glyph string. *   If the shaper has not set the size on the glyph string yet, simply *   returning signals the failure too. * @covers: Returns the characters that this engine can cover *   with a given font for a given language. If not overridden, the default *   implementation simply returns the coverage information for the *   font itself unmodified. * * Class structure for #PangoEngineShape **/struct _PangoEngineShapeClass{  /*< private >*/  PangoEngineClass parent_class;  /*< public >*/  void (*script_shape) (PangoEngineShape *engine,			PangoFont        *font,			const char       *text,			int               length,			const PangoAnalysis *analysis,			PangoGlyphString *glyphs);  PangoCoverageLevel (*covers)   (PangoEngineShape *engine,				  PangoFont        *font,				  PangoLanguage    *language,				  gunichar          wc);};GType pango_engine_shape_get_type (void) G_GNUC_CONST;typedef struct _PangoEngineInfo PangoEngineInfo;typedef struct _PangoEngineScriptInfo PangoEngineScriptInfo;struct _PangoEngineScriptInfo{  PangoScript script;  const gchar *langs;};struct _PangoEngineInfo{  const gchar *id;  const gchar *engine_type;  const gchar *render_type;  PangoEngineScriptInfo *scripts;  gint n_scripts;};/** * script_engine_list: * @engines: location to store a pointer to an array of engines. * @n_engines: location to store the number of elements in @engines. * * Function to be provided by a module to list the engines that the * module supplies. The function stores a pointer to an array * of #PangoEngineInfo structures and the length of that array in * the given location. * * Note that script_engine_init() will not be called before this * function. **/void script_engine_list (PangoEngineInfo **engines,			 int              *n_engines);/** * script_engine_init: * @module: a #GTypeModule structure used to associate any *  GObject types created in this module with the module. * * Function to be provided by a module to register any * GObject types in the module. **/void script_engine_init (GTypeModule *module);/** * script_engine_exit: * * Function to be provided by the module that is called * when the module is unloading. Frequently does nothing. **/void script_engine_exit (void);/** * script_engine_create: * @id: the ID of an engine as reported by script_engine_list. * * Function to be provided by the module to create an instance * of one of the engines implemented by the module. * * Return value: a newly created #PangoEngine of the specified *  type, or %NULL if an error occurred. (In normal operation, *  a module should not return %NULL. A %NULL return is only *  acceptable in the case where system misconfiguration or *  bugs in the driver routine are encountered.) **/PangoEngine *script_engine_create (const char *id);/* Utility macro used by PANGO_ENGINE_LANG_DEFINE_TYPE and * PANGO_ENGINE_LANG_DEFINE_TYPE */#define PANGO_ENGINE_DEFINE_TYPE(name, prefix, class_init, instance_init, parent_type) \static GType prefix ## _type;						  \static void								  \prefix ## _register_type (GTypeModule *module)				  \{									  \  const GTypeInfo object_info =						  \    {									  \      sizeof (name ## Class),						  \      (GBaseInitFunc) NULL,						  \      (GBaseFinalizeFunc) NULL,						  \      (GClassInitFunc) class_init,					  \      (GClassFinalizeFunc) NULL,					  \      NULL,          /* class_data */					  \      sizeof (name),							  \      0,             /* n_prelocs */					  \      (GInstanceInitFunc) instance_init,				  \      NULL           /* value_table */					  \    };									  \									  \  prefix ## _type =  g_type_module_register_type (module, parent_type,	  \						  # name,		  \						  &object_info, 0);	  \}/** * PANGO_ENGINE_LANG_DEFINE_TYPE: * @name: Name of the the type to register (for example:, <literal>ArabicEngineFc</literal> * @prefix: Prefix for symbols that will be defined (for example:, <literal>arabic_engine_fc</literal> * @class_init: Class initialization function for the new type, or %NULL * @instance_init: Instance initialization function for the new type, or %NULL * * Outputs the necessary code for GObject type registration for a * #PangoEngineLang class defined in a module. Two static symbols * are defined. * * <programlisting> *  static GType <replaceable>prefix</replaceable>_type; *  static void <replaceable>prefix</replaceable>_register_type (GTypeModule module); * </programlisting> * * The <function><replaceable>prefix</replaceable>_register_type()</function> * function should be called in your script_engine_init() function for * each type that your module implements, and then your script_engine_create() * function can create instances of the object as follows: * * <informalexample><programlisting> *  PangoEngine *engine = g_object_new (<replaceable>prefix</replaceable>_type, NULL); * </programlisting></informalexample> **/#define PANGO_ENGINE_LANG_DEFINE_TYPE(name, prefix, class_init, instance_init)	\  PANGO_ENGINE_DEFINE_TYPE (name, prefix,				\			    class_init, instance_init,			\			    PANGO_TYPE_ENGINE_LANG)/** * PANGO_ENGINE_SHAPE_DEFINE_TYPE: * @name: Name of the the type to register (for example:, <literal>ArabicEngineFc</literal> * @prefix: Prefix for symbols that will be defined (for example:, <literal>arabic_engine_fc</literal> * @class_init: Class initialization function for the new type, or %NULL * @instance_init: Instance initialization function for the new type, or %NULL * * Outputs the necessary code for GObject type registration for a * #PangoEngineShape class defined in a module. Two static symbols * are defined. * * <programlisting> *  static GType <replaceable>prefix</replaceable>_type; *  static void <replaceable>prefix</replaceable>_register_type (GTypeModule module); * </programlisting> * * The <function><replaceable>prefix</replaceable>_register_type()</function> * function should be called in your script_engine_init() function for * each type that your module implements, and then your script_engine_create() * function can create instances of the object as follows: * * <informalexample><programlisting> *  PangoEngine *engine = g_object_new (<replaceable>prefix</replaceable>_type, NULL); * </programlisting></informalexample> **/#define PANGO_ENGINE_SHAPE_DEFINE_TYPE(name, prefix, class_init, instance_init)	\  PANGO_ENGINE_DEFINE_TYPE (name, prefix,				\			    class_init, instance_init,			\			    PANGO_TYPE_ENGINE_SHAPE)/* Macro used for possibly builtin Pango modules. Not useful * for externally build modules. If we are compiling a module standaline, * then we name the entry points script_engine_list, etc. But if we * are compiling it for inclusion directly in Pango, then we need them to * to have distinct names for this module, so we prepend a prefix. * * The two intermediate macros are to deal with details of the C * preprocessor; token pasting tokens must be function arguments, * and macro substitution isn't used on function arguments that * are used for token pasting. */#ifdef PANGO_MODULE_PREFIX#define PANGO_MODULE_ENTRY(func) _PANGO_MODULE_ENTRY2(PANGO_MODULE_PREFIX,func)#define _PANGO_MODULE_ENTRY2(prefix,func) _PANGO_MODULE_ENTRY3(prefix,func)#define _PANGO_MODULE_ENTRY3(prefix,func) prefix##_script_engine_##func#else#define PANGO_MODULE_ENTRY(func) script_engine_##func#endif#endif /* PANGO_ENABLE_ENGINE */G_END_DECLS#endif /* __PANGO_ENGINE_H__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲麻豆国产自偷在线| 青娱乐精品视频在线| 日日夜夜一区二区| 懂色av一区二区三区免费看| 欧美亚洲尤物久久| 亚洲国产精品av| 男人的天堂久久精品| 91免费国产在线观看| 久久在线免费观看| 日韩av一区二区在线影视| 色婷婷激情综合| 欧美经典一区二区| 韩国av一区二区| 91麻豆精品国产自产在线| 亚洲黄色免费网站| 成人国产电影网| 国产午夜精品久久| 国产一区免费电影| 欧美xxxx在线观看| 免费成人你懂的| 欧美一区二区三区视频在线观看| 亚洲三级小视频| 99精品视频中文字幕| 欧美国产亚洲另类动漫| 国产精品99久| 国产婷婷精品av在线| 国产精品一区二区果冻传媒| 日韩免费看网站| 看片网站欧美日韩| 日韩一区二区精品葵司在线| 日日骚欧美日韩| 欧美视频在线不卡| 亚洲va欧美va人人爽| 欧美高清dvd| 奇米综合一区二区三区精品视频| 欧美伊人久久大香线蕉综合69| 亚洲精品久久久蜜桃| 日本电影欧美片| 午夜视频在线观看一区二区| 欧美日韩国产系列| 久久精品二区亚洲w码| 久久青草欧美一区二区三区| 成人午夜在线免费| 亚洲精品日日夜夜| 欧美精品成人一区二区三区四区| 日韩激情视频在线观看| 日韩欧美不卡一区| 国产激情一区二区三区四区| 国产精品午夜在线观看| 96av麻豆蜜桃一区二区| 亚洲一区免费视频| 69av一区二区三区| 国产福利91精品一区二区三区| 国产日韩亚洲欧美综合| 91福利视频网站| 美日韩黄色大片| 国产精品亲子伦对白| 欧美中文字幕亚洲一区二区va在线| 午夜精品国产更新| 国产喷白浆一区二区三区| 91理论电影在线观看| 日韩不卡一区二区三区| 国产欧美一区二区三区网站| 色先锋久久av资源部| 毛片av中文字幕一区二区| 国产欧美一区二区三区在线看蜜臀| 91婷婷韩国欧美一区二区| 日本麻豆一区二区三区视频| 日本一区二区三区四区在线视频| 91激情在线视频| 国产中文字幕精品| 亚洲午夜激情网页| 国产精品区一区二区三区| 欧美久久久久久蜜桃| 成人精品免费看| 日韩中文字幕区一区有砖一区 | 亚洲色大成网站www久久九九| 欧美色成人综合| 国产sm精品调教视频网站| 亚洲宅男天堂在线观看无病毒| 久久久国产精品麻豆| 欧美日韩性生活| a在线欧美一区| 精品一区免费av| 亚洲午夜久久久久久久久久久| 国产欧美日韩不卡| 精品国一区二区三区| 欧美三级日本三级少妇99| 成人av在线资源| 国内外成人在线| 偷窥少妇高潮呻吟av久久免费| 亚洲国产精品激情在线观看| 日韩欧美一区电影| 欧美私人免费视频| 色婷婷一区二区三区四区| 国产成人亚洲精品青草天美| 奇米影视一区二区三区小说| 亚洲v中文字幕| 亚洲综合激情网| 亚洲欧美电影一区二区| 国产精品美女一区二区| 国产偷国产偷亚洲高清人白洁 | 色先锋久久av资源部| 国产成人av电影在线观看| 激情av综合网| 美脚の诱脚舐め脚责91| 天涯成人国产亚洲精品一区av| 亚洲男人的天堂在线观看| 国产欧美精品区一区二区三区| 日韩欧美国产综合| 欧美一区二区三区思思人| 91精品在线观看入口| 欧美日韩久久一区二区| 欧美在线free| 欧美老人xxxx18| 欧美精品电影在线播放| 日韩色在线观看| 日韩欧美一级片| 国产日韩在线不卡| 国产精品久久久久久亚洲伦| 1000精品久久久久久久久| 国产精品初高中害羞小美女文| 亚洲视频每日更新| 一区二区三区在线观看动漫| 亚洲国产综合色| 男人的天堂久久精品| 捆绑紧缚一区二区三区视频| 国产成人精品亚洲777人妖| 国产91在线观看丝袜| 91视频com| 欧美日本在线一区| 亚洲精品在线观| 国产精品日日摸夜夜摸av| 亚洲欧美日韩在线播放| 午夜精品成人在线| 狠狠色丁香九九婷婷综合五月| 国产99久久久久久免费看农村| 99精品视频在线免费观看| 欧美日韩成人综合| 欧美大片免费久久精品三p| 日本一区二区三级电影在线观看| 自拍偷在线精品自拍偷无码专区| 亚洲图片一区二区| 国产一区二区0| 色琪琪一区二区三区亚洲区| 欧美第一区第二区| 日韩一区有码在线| 青青草一区二区三区| 成人精品国产一区二区4080| 欧美日韩一区二区在线观看 | 欧美一区二区女人| 国产欧美精品区一区二区三区| 樱花影视一区二区| 国产综合一区二区| 在线观看av一区二区| 久久久久久久久久久久电影| 亚洲美女在线国产| 激情综合一区二区三区| 色综合一区二区| 337p日本欧洲亚洲大胆精品 | 欧美日韩亚洲丝袜制服| 国产日韩在线不卡| 日本成人在线一区| 色狠狠色噜噜噜综合网| 久久午夜电影网| 午夜视频在线观看一区二区 | 偷拍与自拍一区| 成人在线综合网站| 日韩小视频在线观看专区| 亚洲色图在线看| 国产精品99久久久| 日韩免费观看高清完整版在线观看| 亚洲女与黑人做爰| 成人h版在线观看| 欧美精品一区二区久久婷婷| 午夜视频一区在线观看| 91片黄在线观看| 国产精品日产欧美久久久久| 免费观看在线综合色| 欧美三级蜜桃2在线观看| 最新中文字幕一区二区三区| 国产黄人亚洲片| 欧美mv日韩mv国产网站| 丝袜美腿亚洲一区| 欧美区在线观看| 亚洲综合成人网| 91国偷自产一区二区三区观看| 欧美—级在线免费片| 国产精品一区二区黑丝| 亚洲精品一区二区精华| 毛片av一区二区三区| 日韩一卡二卡三卡| 丝袜亚洲另类欧美| 欧美日韩一区成人| 亚洲国产一区二区a毛片| 在线视频你懂得一区| 亚洲一区中文日韩| 欧美日精品一区视频| 亚洲成年人网站在线观看| 欧美无砖专区一中文字|