/packages/gtk2/src/pango/pango-font.inc

https://github.com/slibre/freepascal · Pascal · 401 lines · 281 code · 67 blank · 53 comment · 0 complexity · 68a52888f63140a2a07f9e27d54c5c7d MD5 · raw file

  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. procedure pango_font_description_set_absolute_size(desc:PPangoFontDescription;size:double); cdecl; external pangolib;
  167. function pango_font_description_get_size_is_absolute (desc:PPangoFontDescription):gboolean; cdecl; external pangolib;
  168. function pango_font_description_get_set_fields(desc:PPangoFontDescription):TPangoFontMask; cdecl; external pangolib;
  169. procedure pango_font_description_unset_fields(desc:PPangoFontDescription; to_unset:TPangoFontMask); cdecl; external pangolib;
  170. procedure pango_font_description_merge(desc:PPangoFontDescription; desc_to_merge:PPangoFontDescription; replace_existing:gboolean); cdecl; external pangolib;
  171. procedure pango_font_description_merge_static(desc:PPangoFontDescription; desc_to_merge:PPangoFontDescription; replace_existing:gboolean); cdecl; external pangolib;
  172. function pango_font_description_better_match(desc:PPangoFontDescription; old_match:PPangoFontDescription; new_match:PPangoFontDescription):gboolean; cdecl; external pangolib;
  173. function pango_font_description_from_string(str:Pchar):PPangoFontDescription; cdecl; external pangolib;
  174. function pango_font_description_to_string(desc:PPangoFontDescription):Pchar; cdecl; external pangolib;
  175. function pango_font_description_to_filename(desc:PPangoFontDescription):Pchar; cdecl; external pangolib;
  176. {
  177. PangoFontMetrics
  178. }
  179. function PANGO_TYPE_FONT_METRICS:GType;
  180. function pango_font_metrics_get_type:GType; cdecl; external pangolib;
  181. function pango_font_metrics_ref(metrics:PPangoFontMetrics):PPangoFontMetrics; cdecl; external pangolib;
  182. procedure pango_font_metrics_unref(metrics:PPangoFontMetrics); cdecl; external pangolib;
  183. function pango_font_metrics_get_ascent(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  184. function pango_font_metrics_get_descent(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  185. function pango_font_metrics_get_approximate_char_width(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  186. function pango_font_metrics_get_approximate_digit_width(metrics:PPangoFontMetrics):longint; cdecl; external pangolib;
  187. {$ifdef PANGO_ENABLE_BACKEND}
  188. function pango_font_metrics_new:PPangoFontMetrics; cdecl; external pangolib;
  189. {$endif PANGO_ENABLE_BACKEND}
  190. { PANGO_ENABLE_BACKEND }
  191. {
  192. PangoFontFamily
  193. }
  194. function PANGO_TYPE_FONT_FAMILY: GType;
  195. function PANGO_FONT_FAMILY(anObject: Pointer): PPangoFontFamily;
  196. function PANGO_IS_FONT_FAMILY(anObject : Pointer) : boolean;
  197. function pango_font_family_get_type:GType; cdecl; external pangolib;
  198. procedure pango_font_family_list_faces(family:PPangoFontFamily;
  199. faces:PPPPangoFontFace; n_faces:Plongint); cdecl; external pangolib;
  200. function pango_font_family_get_name(family:PPangoFontFamily):Pchar; cdecl; external pangolib;
  201. function pango_font_family_is_monospace(family:PPangoFontFamily):gboolean; cdecl; external pangolib;
  202. {$ifdef PANGO_ENABLE_BACKEND}
  203. function PANGO_FONT_FAMILY_CLASS(klass : pointer) : PPangoFontFamilyClass;
  204. function PANGO_IS_FONT_FAMILY_CLASS(klass : pointer) : boolean;
  205. function PANGO_FONT_FAMILY_GET_CLASS(obj : PPangoFontFamily) : PPangoFontFamilyClass;
  206. {$endif}
  207. { PANGO_ENABLE_BACKEND }
  208. {
  209. PangoFontFace
  210. }
  211. function PANGO_TYPE_FONT_FACE : GType;
  212. function PANGO_FONT_FACE(anObject : pointer) : PPangoFontFace;
  213. function PANGO_IS_FONT_FACE(anObject : pointer) : boolean;
  214. function pango_font_face_get_type:GType; cdecl; external pangolib;
  215. function pango_font_face_describe(face:PPangoFontFace):PPangoFontDescription; cdecl; external pangolib;
  216. function pango_font_face_get_face_name(face:PPangoFontFace):Pchar; cdecl; external pangolib;
  217. {$ifdef PANGO_ENABLE_BACKEND}
  218. function PANGO_FONT_FACE_CLASS(klass : pointer) : PPangoFontFaceClass;
  219. function PANGO_IS_FONT_FACE_CLASS(klass : pointer) : boolean;
  220. function PANGO_FONT_FACE_GET_CLASS(obj : pointer) : PPangoFontFaceClass;
  221. {$endif}
  222. { PANGO_ENABLE_BACKEND }
  223. {
  224. PangoFont
  225. }
  226. function PANGO_TYPE_FONT : GType;
  227. function PANGO_FONT(anObject : pointer) : PPangoFont;
  228. function PANGO_IS_FONT(anObject : pointer) : boolean;
  229. function pango_font_get_type:GType; cdecl; external pangolib;
  230. function pango_font_describe(font:PPangoFont):PPangoFontDescription; cdecl; external pangolib;
  231. function pango_font_get_coverage(font:PPangoFont; language:PPangoLanguage):PPangoCoverage; cdecl; external pangolib;
  232. function pango_font_find_shaper(font:PPangoFont; language:PPangoLanguage; ch:guint32):PPangoEngineShape; cdecl; external pangolib;
  233. function pango_font_get_metrics(font:PPangoFont; language:PPangoLanguage):PPangoFontMetrics; cdecl; external pangolib;
  234. procedure pango_font_get_glyph_extents(font:PPangoFont; glyph:TPangoGlyph; ink_rect:PPangoRectangle; logical_rect:PPangoRectangle); cdecl; external pangolib;
  235. {$ifdef PANGO_ENABLE_BACKEND}
  236. function PANGO_FONT_CLASS(klass : pointer) : PPangoFontClass;
  237. function PANGO_IS_FONT_CLASS(klass : pointer) : boolean;
  238. function PANGO_FONT_GET_CLASS(obj : PPangoFont) : PPangoFontClass;
  239. {$endif}
  240. { PANGO_ENABLE_BACKEND }
  241. {$ENDIF read_interface_functions}
  242. //------------------------------------------------------------------------------
  243. {$IFDEF read_implementation}
  244. function PANGO_TYPE_FONT_DESCRIPTION : GType;
  245. begin
  246. PANGO_TYPE_FONT_DESCRIPTION:=pango_font_description_get_type;
  247. end;
  248. function PANGO_TYPE_FONT_METRICS : GType;
  249. begin
  250. PANGO_TYPE_FONT_METRICS:=pango_font_metrics_get_type;
  251. end;
  252. function PANGO_TYPE_FONT_FAMILY : GType;
  253. begin
  254. PANGO_TYPE_FONT_FAMILY:=pango_font_family_get_type;
  255. end;
  256. function PANGO_FONT_FAMILY(anObject : pointer) : PPangoFontFamily;
  257. begin
  258. PANGO_FONT_FAMILY:=PPangoFontFamily(G_TYPE_CHECK_INSTANCE_CAST(anObject,
  259. PANGO_TYPE_FONT_FAMILY));
  260. end;
  261. function PANGO_IS_FONT_FAMILY(anObject : Pointer) : boolean;
  262. begin
  263. PANGO_IS_FONT_FAMILY:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,
  264. PANGO_TYPE_FONT_FAMILY);
  265. end;
  266. function PANGO_FONT_FAMILY_CLASS(klass : Pointer) : PPangoFontFamilyClass;
  267. begin
  268. PANGO_FONT_FAMILY_CLASS:=PPangoFontFamilyClass(G_TYPE_CHECK_CLASS_CAST(klass,
  269. PANGO_TYPE_FONT_FAMILY));
  270. end;
  271. function PANGO_IS_FONT_FAMILY_CLASS(klass : Pointer) : boolean;
  272. begin
  273. PANGO_IS_FONT_FAMILY_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,
  274. PANGO_TYPE_FONT_FAMILY);
  275. end;
  276. function PANGO_FONT_FAMILY_GET_CLASS(obj : PPangoFontFamily) : PPangoFontFamilyClass;
  277. begin
  278. PANGO_FONT_FAMILY_GET_CLASS:=PPangoFontFamilyClass(G_TYPE_INSTANCE_GET_CLASS(
  279. obj,PANGO_TYPE_FONT_FAMILY));
  280. end;
  281. function PANGO_TYPE_FONT_FACE : GType;
  282. begin
  283. PANGO_TYPE_FONT_FACE:=pango_font_face_get_type;
  284. end;
  285. function PANGO_FONT_FACE(anObject : Pointer) : PPangoFontFace;
  286. begin
  287. PANGO_FONT_FACE:=PPangoFontFace(G_TYPE_CHECK_INSTANCE_CAST(anObject,
  288. PANGO_TYPE_FONT_FACE));
  289. end;
  290. function PANGO_IS_FONT_FACE(anObject : Pointer) : boolean;
  291. begin
  292. PANGO_IS_FONT_FACE:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,PANGO_TYPE_FONT_FACE);
  293. end;
  294. function PANGO_FONT_FACE_CLASS(klass : Pointer) : PPangoFontFaceClass;
  295. begin
  296. PANGO_FONT_FACE_CLASS:=PPangoFontFaceClass(G_TYPE_CHECK_CLASS_CAST(klass,
  297. PANGO_TYPE_FONT_FACE));
  298. end;
  299. function PANGO_IS_FONT_FACE_CLASS(klass : Pointer) : boolean;
  300. begin
  301. PANGO_IS_FONT_FACE_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,PANGO_TYPE_FONT_FACE);
  302. end;
  303. function PANGO_FONT_FACE_GET_CLASS(obj : Pointer) : PPangoFontFaceClass;
  304. begin
  305. PANGO_FONT_FACE_GET_CLASS:=PPangoFontFaceClass(G_TYPE_INSTANCE_GET_CLASS(obj,
  306. PANGO_TYPE_FONT_FACE));
  307. end;
  308. function PANGO_TYPE_FONT : GType;
  309. begin
  310. PANGO_TYPE_FONT:=pango_font_get_type;
  311. end;
  312. function PANGO_FONT(anObject : Pointer) : PPangoFont;
  313. begin
  314. PANGO_FONT:=PPangoFont(G_TYPE_CHECK_INSTANCE_CAST(anObject,PANGO_TYPE_FONT));
  315. end;
  316. function PANGO_IS_FONT(anObject : Pointer) : boolean;
  317. begin
  318. PANGO_IS_FONT:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,PANGO_TYPE_FONT);
  319. end;
  320. function PANGO_FONT_CLASS(klass : Pointer) : PPangoFontClass;
  321. begin
  322. PANGO_FONT_CLASS:=PPangoFontClass(G_TYPE_CHECK_CLASS_CAST(klass,
  323. PANGO_TYPE_FONT));
  324. end;
  325. function PANGO_IS_FONT_CLASS(klass : Pointer) : boolean;
  326. begin
  327. PANGO_IS_FONT_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,PANGO_TYPE_FONT);
  328. end;
  329. function PANGO_FONT_GET_CLASS(obj : PPangoFont) : PPangoFontClass;
  330. begin
  331. PANGO_FONT_GET_CLASS:=PPangoFontClass(G_TYPE_INSTANCE_GET_CLASS(obj,
  332. PANGO_TYPE_FONT));
  333. end;
  334. {$ENDIF read_implementation}