pango-font.inc 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. // included by pango.pp
  2. {$IFDEF read_forward_definitions}
  3. {$ifdef PANGO_ENABLE_BACKEND}
  4. PPangoFont = ^TPangoFont;
  5. PPangoFontMetrics = ^TPangoFontMetrics;
  6. {$ENDIF}
  7. {$ENDIF read_forward_definitions}
  8. //------------------------------------------------------------------------------
  9. {$IFDEF read_interface_types}
  10. PPangoStyle = ^TPangoStyle;
  11. TPangoStyle = gint;
  12. PPangoVariant = ^TPangoVariant;
  13. TPangoVariant = gint;
  14. PPangoWeight = ^TPangoWeight;
  15. TPangoWeight = gint;
  16. PPangoStretch = ^TPangoStretch;
  17. TPangoStretch = gint;
  18. PPangoFontMask = ^TPangoFontMask;
  19. TPangoFontMask = longint; // see below for possible values
  20. {$ifdef PANGO_ENABLE_BACKEND}
  21. TPangoFontMetrics = record
  22. ref_count : guint;
  23. ascent : longint;
  24. descent : longint;
  25. approximate_char_width : longint;
  26. approximate_digit_width : longint;
  27. end;
  28. PPangoFontFamily = ^TPangoFontFamily;
  29. PPPangoFontFamily = ^PPangoFontFamily;
  30. PPPPangoFontFamily = ^PPPangoFontFamily;
  31. TPangoFontFamily = record
  32. parent_instance : TGObject;
  33. end;
  34. { Padding for future expansion }
  35. {}
  36. PPangoFontFace = ^TPangoFontFace;
  37. PPPangoFontFace = ^PPangoFontFace;
  38. PPPPangoFontFace = ^PPPangoFontFace;
  39. TPangoFontFace = record
  40. parent_instance : TGObject;
  41. end;
  42. TPangoFontFamilyClassListFaces =
  43. procedure (family:PPangoFontFamily; faces:PPPPangoFontFace;
  44. n_faces:Plongint); cdecl;
  45. TPangoFontFamilyClassGetName =
  46. function (family:PPangoFontFamily):Pchar; cdecl;
  47. PPangoFontFamilyClass = ^TPangoFontFamilyClass;
  48. TPangoFontFamilyClass = record
  49. parent_class : TGObjectClass;
  50. list_faces : TPangoFontFamilyClassListFaces;
  51. get_name : TPangoFontFamilyClassGetName;
  52. _pango_reserved1 : procedure; cdecl;
  53. _pango_reserved2 : procedure; cdecl;
  54. _pango_reserved3 : procedure; cdecl;
  55. _pango_reserved4 : procedure; cdecl;
  56. end;
  57. { Padding for future expansion }
  58. PPangoFontFaceClass = ^TPangoFontFaceClass;
  59. TPangoFontFaceClass = record
  60. parent_class : TGObjectClass;
  61. get_face_name : function (face:PPangoFontFace):Pchar; cdecl;
  62. describe : function (face:PPangoFontFace):PPangoFontDescription; cdecl;
  63. _pango_reserved1 : procedure ; cdecl;
  64. _pango_reserved2 : procedure ; cdecl;
  65. _pango_reserved3 : procedure ; cdecl;
  66. _pango_reserved4 : procedure ; cdecl;
  67. end;
  68. TPangoFont = record
  69. parent_instance : TGObject;
  70. end;
  71. TPangoFontClassDescribe =
  72. function (font:PPangoFont):PPangoFontDescription; cdecl;
  73. TPangoFontClassGetCoverage =
  74. function (font:PPangoFont; lang:PPangoLanguage):PPangoCoverage;
  75. TPangoFontClassFindShaper =
  76. function (font:PPangoFont; lang:PPangoLanguage;
  77. ch:guint32):PPangoEngineShape;
  78. TPangoFontClassGetGlyphExtents =
  79. procedure (font:PPangoFont; glyph:TPangoGlyph; ink_rect:PPangoRectangle;
  80. logical_rect:PPangoRectangle);
  81. TPangoFontClassGetMetrics =
  82. function (font:PPangoFont; language:PPangoLanguage):PPangoFontMetrics;
  83. { Padding for future expansion }
  84. PPangoFontClass = ^TPangoFontClass;
  85. TPangoFontClass = record
  86. parent_class : TGObjectClass;
  87. describe : TPangoFontClassDescribe;
  88. get_coverage : TPangoFontClassGetCoverage;
  89. find_shaper : TPangoFontClassFindShaper;
  90. get_glyph_extents : TPangoFontClassGetGlyphExtents;
  91. get_metrics : TPangoFontClassGetMetrics;
  92. _pango_reserved1 : procedure ; cdecl;
  93. _pango_reserved2 : procedure ; cdecl;
  94. _pango_reserved3 : procedure ; cdecl;
  95. _pango_reserved4 : procedure ; cdecl;
  96. end;
  97. {$ENDIF PANGO_ENABLE_BACKEND}
  98. {$ENDIF read_interface_types}
  99. //-----------------------------------------------------------------------------
  100. {$IFDEF read_interface_functions}
  101. const
  102. // values for TPangoStyle
  103. PANGO_STYLE_NORMAL = 0; // the font is upright
  104. PANGO_STYLE_OBLIQUE = 1; // the font is slanted, but in a roman style
  105. PANGO_STYLE_ITALIC = 2; // the font is slanted in an italic style
  106. //values for TPangoVariant
  107. PANGO_VARIANT_NORMAL = 0;
  108. PANGO_VARIANT_SMALL_CAPS = 1;
  109. // values for TPangoWeight
  110. PANGO_WEIGHT_ULTRALIGHT = 200;
  111. PANGO_WEIGHT_LIGHT = 300;
  112. PANGO_WEIGHT_NORMAL = 400;
  113. PANGO_WEIGHT_BOLD = 700;
  114. PANGO_WEIGHT_ULTRABOLD = 800;
  115. PANGO_WEIGHT_HEAVY = 900;
  116. //values for TPangoStretch
  117. PANGO_STRETCH_ULTRA_CONDENSED = 0;
  118. PANGO_STRETCH_EXTRA_CONDENSED = 1;
  119. PANGO_STRETCH_CONDENSED = 2;
  120. PANGO_STRETCH_SEMI_CONDENSED = 3;
  121. PANGO_STRETCH_NORMAL = 4;
  122. PANGO_STRETCH_SEMI_EXPANDED = 5;
  123. PANGO_STRETCH_EXPANDED = 6;
  124. PANGO_STRETCH_EXTRA_EXPANDED = 7;
  125. PANGO_STRETCH_ULTRA_EXPANDED = 8;
  126. // values for TPangoFontMask
  127. PANGO_FONT_MASK_FAMILY = 1 shl 0;
  128. PANGO_FONT_MASK_STYLE = 1 shl 1;
  129. PANGO_FONT_MASK_VARIANT = 1 shl 2;
  130. PANGO_FONT_MASK_WEIGHT = 1 shl 3;
  131. PANGO_FONT_MASK_STRETCH = 1 shl 4;
  132. PANGO_FONT_MASK_SIZE = 1 shl 5;
  133. { CSS scale factors (1.2 factor between each size) }
  134. PANGO_SCALE_XX_SMALL = 0.5787037037037;
  135. PANGO_SCALE_X_SMALL = 0.6444444444444;
  136. PANGO_SCALE_SMALL = 0.8333333333333;
  137. PANGO_SCALE_MEDIUM = 1.0;
  138. PANGO_SCALE_LARGE = 1.2;
  139. PANGO_SCALE_X_LARGE = 1.4399999999999;
  140. PANGO_SCALE_XX_LARGE = 1.728;
  141. {
  142. PangoFontDescription
  143. }
  144. function PANGO_TYPE_FONT_DESCRIPTION : GType;
  145. function pango_font_description_get_type:GType; cdecl; external pangolib;
  146. function pango_font_description_new:PPangoFontDescription; cdecl; external pangolib;
  147. function pango_font_description_copy(desc:PPangoFontDescription):PPangoFontDescription; cdecl; external pangolib;
  148. function pango_font_description_copy_static(desc:PPangoFontDescription):PPangoFontDescription; cdecl; external pangolib;
  149. function pango_font_description_hash(desc:PPangoFontDescription):guint; cdecl; external pangolib;
  150. function pango_font_description_equal(desc1:PPangoFontDescription; desc2:PPangoFontDescription):gboolean; cdecl; external pangolib;
  151. procedure pango_font_description_free(desc:PPangoFontDescription); cdecl; external pangolib;
  152. procedure pango_font_descriptions_free(var descs:PPangoFontDescription; n_descs:longint); cdecl; external pangolib;
  153. procedure pango_font_description_set_family(desc:PPangoFontDescription; family:Pchar); cdecl; external pangolib;
  154. procedure pango_font_description_set_family_static(desc:PPangoFontDescription; family:Pchar); cdecl; external pangolib;
  155. function pango_font_description_get_family(desc:PPangoFontDescription):Pchar; cdecl; external pangolib;
  156. procedure pango_font_description_set_style(desc:PPangoFontDescription; style:TPangoStyle); cdecl; external pangolib;
  157. function pango_font_description_get_style(desc:PPangoFontDescription):TPangoStyle; cdecl; external pangolib;
  158. procedure pango_font_description_set_variant(desc:PPangoFontDescription; variant:TPangoVariant); cdecl; external pangolib;
  159. function pango_font_description_get_variant(desc:PPangoFontDescription):TPangoVariant; cdecl; external pangolib;
  160. procedure pango_font_description_set_weight(desc:PPangoFontDescription; weight:TPangoWeight); cdecl; external pangolib;
  161. function pango_font_description_get_weight(desc:PPangoFontDescription):TPangoWeight; cdecl; external pangolib;
  162. procedure pango_font_description_set_stretch(desc:PPangoFontDescription; stretch:TPangoStretch); cdecl; external pangolib;
  163. function pango_font_description_get_stretch(desc:PPangoFontDescription):TPangoStretch; cdecl; external pangolib;
  164. procedure pango_font_description_set_size(desc:PPangoFontDescription; size:gint); cdecl; external pangolib;
  165. function pango_font_description_get_size(desc:PPangoFontDescription):gint; cdecl; external pangolib;
  166. function pango_font_description_get_set_fields(desc:PPangoFontDescription):TPangoFontMask; cdecl; external pangolib;
  167. procedure pango_font_description_unset_fields(desc:PPangoFontDescription; to_unset:TPangoFontMask); cdecl; external pangolib;
  168. procedure pango_font_description_merge(desc:PPangoFontDescription; desc_to_merge:PPangoFontDescription; replace_existing:gboolean); cdecl; external pangolib;
  169. procedure pango_font_description_merge_static(desc:PPangoFontDescription; desc_to_merge:PPangoFontDescription; replace_existing:gboolean); cdecl; external pangolib;
  170. function pango_font_description_better_match(desc:PPangoFontDescription; old_match:PPangoFontDescription; new_match:PPangoFontDescription):gboolean; cdecl; external pangolib;
  171. function pango_font_description_from_string(str:Pchar):PPangoFontDescription; cdecl; external pangolib;
  172. function pango_font_description_to_string(desc:PPangoFontDescription):Pchar; cdecl; external pangolib;
  173. function pango_font_description_to_filename(desc:PPangoFontDescription):Pchar; cdecl; external pangolib;
  174. {
  175. PangoFontMetrics
  176. }
  177. function PANGO_TYPE_FONT_METRICS:GType;
  178. function pango_font_metrics_get_type:GType; cdecl; external pangolib;
  179. function pango_font_metrics_ref(metrics:PPangoFontMetrics):PPangoFontMetrics; cdecl; external pangolib;
  180. procedure pango_font_metrics_unref(metrics:PPangoFontMetrics); cdecl; external pangolib;
  181. function pango_font_metrics_get_ascent(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  182. function pango_font_metrics_get_descent(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  183. function pango_font_metrics_get_approximate_char_width(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  184. function pango_font_metrics_get_approximate_digit_width(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  185. {$ifdef PANGO_ENABLE_BACKEND}
  186. function pango_font_metrics_new:PPangoFontMetrics; cdecl; external pangolib;
  187. {$endif PANGO_ENABLE_BACKEND}
  188. { PANGO_ENABLE_BACKEND }
  189. {
  190. PangoFontFamily
  191. }
  192. function PANGO_TYPE_FONT_FAMILY: GType;
  193. function PANGO_FONT_FAMILY(anObject: Pointer): PPangoFontFamily;
  194. function PANGO_IS_FONT_FAMILY(anObject : Pointer) : boolean;
  195. function pango_font_family_get_type:GType; cdecl; external pangolib;
  196. procedure pango_font_family_list_faces(family:PPangoFontFamily;
  197. faces:PPPPangoFontFace; n_faces:Plongint); cdecl; external pangolib;
  198. function pango_font_family_get_name(family:PPangoFontFamily):Pchar; cdecl; external pangolib;
  199. {$ifdef PANGO_ENABLE_BACKEND}
  200. function PANGO_FONT_FAMILY_CLASS(klass : pointer) : PPangoFontFamilyClass;
  201. function PANGO_IS_FONT_FAMILY_CLASS(klass : pointer) : boolean;
  202. function PANGO_FONT_FAMILY_GET_CLASS(obj : PPangoFontFamily) : PPangoFontFamilyClass;
  203. {$endif}
  204. { PANGO_ENABLE_BACKEND }
  205. {
  206. PangoFontFace
  207. }
  208. function PANGO_TYPE_FONT_FACE : GType;
  209. function PANGO_FONT_FACE(anObject : pointer) : PPangoFontFace;
  210. function PANGO_IS_FONT_FACE(anObject : pointer) : boolean;
  211. function pango_font_face_get_type:GType; cdecl; external pangolib;
  212. function pango_font_face_describe(face:PPangoFontFace):PPangoFontDescription; cdecl; external pangolib;
  213. function pango_font_face_get_face_name(face:PPangoFontFace):Pchar; cdecl; external pangolib;
  214. {$ifdef PANGO_ENABLE_BACKEND}
  215. function PANGO_FONT_FACE_CLASS(klass : pointer) : PPangoFontFaceClass;
  216. function PANGO_IS_FONT_FACE_CLASS(klass : pointer) : boolean;
  217. function PANGO_FONT_FACE_GET_CLASS(obj : pointer) : PPangoFontFaceClass;
  218. {$endif}
  219. { PANGO_ENABLE_BACKEND }
  220. {
  221. PangoFont
  222. }
  223. function PANGO_TYPE_FONT : GType;
  224. function PANGO_FONT(anObject : pointer) : PPangoFont;
  225. function PANGO_IS_FONT(anObject : pointer) : boolean;
  226. function pango_font_get_type:GType; cdecl; external pangolib;
  227. function pango_font_describe(font:PPangoFont):PPangoFontDescription; cdecl; external pangolib;
  228. function pango_font_get_coverage(font:PPangoFont; language:PPangoLanguage):PPangoCoverage; cdecl; external pangolib;
  229. function pango_font_find_shaper(font:PPangoFont; language:PPangoLanguage; ch:guint32):PPangoEngineShape; cdecl; external pangolib;
  230. function pango_font_get_metrics(font:PPangoFont; language:PPangoLanguage):PPangoFontMetrics; cdecl; external pangolib;
  231. procedure pango_font_get_glyph_extents(font:PPangoFont; glyph:TPangoGlyph; ink_rect:PPangoRectangle; logical_rect:PPangoRectangle); cdecl; external pangolib;
  232. {$ifdef PANGO_ENABLE_BACKEND}
  233. function PANGO_FONT_CLASS(klass : pointer) : PPangoFontClass;
  234. function PANGO_IS_FONT_CLASS(klass : pointer) : boolean;
  235. function PANGO_FONT_GET_CLASS(obj : PPangoFont) : PPangoFontClass;
  236. {$endif}
  237. { PANGO_ENABLE_BACKEND }
  238. {$ENDIF read_interface_functions}
  239. //------------------------------------------------------------------------------
  240. {$IFDEF read_implementation}
  241. function PANGO_TYPE_FONT_DESCRIPTION : GType;
  242. begin
  243. PANGO_TYPE_FONT_DESCRIPTION:=pango_font_description_get_type;
  244. end;
  245. function PANGO_TYPE_FONT_METRICS : GType;
  246. begin
  247. PANGO_TYPE_FONT_METRICS:=pango_font_metrics_get_type;
  248. end;
  249. function PANGO_TYPE_FONT_FAMILY : GType;
  250. begin
  251. PANGO_TYPE_FONT_FAMILY:=pango_font_family_get_type;
  252. end;
  253. function PANGO_FONT_FAMILY(anObject : pointer) : PPangoFontFamily;
  254. begin
  255. PANGO_FONT_FAMILY:=PPangoFontFamily(G_TYPE_CHECK_INSTANCE_CAST(anObject,
  256. PANGO_TYPE_FONT_FAMILY));
  257. end;
  258. function PANGO_IS_FONT_FAMILY(anObject : Pointer) : boolean;
  259. begin
  260. PANGO_IS_FONT_FAMILY:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,
  261. PANGO_TYPE_FONT_FAMILY);
  262. end;
  263. function PANGO_FONT_FAMILY_CLASS(klass : Pointer) : PPangoFontFamilyClass;
  264. begin
  265. PANGO_FONT_FAMILY_CLASS:=PPangoFontFamilyClass(G_TYPE_CHECK_CLASS_CAST(klass,
  266. PANGO_TYPE_FONT_FAMILY));
  267. end;
  268. function PANGO_IS_FONT_FAMILY_CLASS(klass : Pointer) : boolean;
  269. begin
  270. PANGO_IS_FONT_FAMILY_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,
  271. PANGO_TYPE_FONT_FAMILY);
  272. end;
  273. function PANGO_FONT_FAMILY_GET_CLASS(obj : PPangoFontFamily) : PPangoFontFamilyClass;
  274. begin
  275. PANGO_FONT_FAMILY_GET_CLASS:=PPangoFontFamilyClass(G_TYPE_INSTANCE_GET_CLASS(
  276. obj,PANGO_TYPE_FONT_FAMILY));
  277. end;
  278. function PANGO_TYPE_FONT_FACE : GType;
  279. begin
  280. PANGO_TYPE_FONT_FACE:=pango_font_face_get_type;
  281. end;
  282. function PANGO_FONT_FACE(anObject : Pointer) : PPangoFontFace;
  283. begin
  284. PANGO_FONT_FACE:=PPangoFontFace(G_TYPE_CHECK_INSTANCE_CAST(anObject,
  285. PANGO_TYPE_FONT_FACE));
  286. end;
  287. function PANGO_IS_FONT_FACE(anObject : Pointer) : boolean;
  288. begin
  289. PANGO_IS_FONT_FACE:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,PANGO_TYPE_FONT_FACE);
  290. end;
  291. function PANGO_FONT_FACE_CLASS(klass : Pointer) : PPangoFontFaceClass;
  292. begin
  293. PANGO_FONT_FACE_CLASS:=PPangoFontFaceClass(G_TYPE_CHECK_CLASS_CAST(klass,
  294. PANGO_TYPE_FONT_FACE));
  295. end;
  296. function PANGO_IS_FONT_FACE_CLASS(klass : Pointer) : boolean;
  297. begin
  298. PANGO_IS_FONT_FACE_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,PANGO_TYPE_FONT_FACE);
  299. end;
  300. function PANGO_FONT_FACE_GET_CLASS(obj : Pointer) : PPangoFontFaceClass;
  301. begin
  302. PANGO_FONT_FACE_GET_CLASS:=PPangoFontFaceClass(G_TYPE_INSTANCE_GET_CLASS(obj,
  303. PANGO_TYPE_FONT_FACE));
  304. end;
  305. function PANGO_TYPE_FONT : GType;
  306. begin
  307. PANGO_TYPE_FONT:=pango_font_get_type;
  308. end;
  309. function PANGO_FONT(anObject : Pointer) : PPangoFont;
  310. begin
  311. PANGO_FONT:=PPangoFont(G_TYPE_CHECK_INSTANCE_CAST(anObject,PANGO_TYPE_FONT));
  312. end;
  313. function PANGO_IS_FONT(anObject : Pointer) : boolean;
  314. begin
  315. PANGO_IS_FONT:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,PANGO_TYPE_FONT);
  316. end;
  317. function PANGO_FONT_CLASS(klass : Pointer) : PPangoFontClass;
  318. begin
  319. PANGO_FONT_CLASS:=PPangoFontClass(G_TYPE_CHECK_CLASS_CAST(klass,
  320. PANGO_TYPE_FONT));
  321. end;
  322. function PANGO_IS_FONT_CLASS(klass : Pointer) : boolean;
  323. begin
  324. PANGO_IS_FONT_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,PANGO_TYPE_FONT);
  325. end;
  326. function PANGO_FONT_GET_CLASS(obj : PPangoFont) : PPangoFontClass;
  327. begin
  328. PANGO_FONT_GET_CLASS:=PPangoFontClass(G_TYPE_INSTANCE_GET_CLASS(obj,
  329. PANGO_TYPE_FONT));
  330. end;
  331. {$ENDIF read_implementation}