summaryrefslogtreecommitdiff
path: root/packages/extra/gtk2/pango/pango-engine.inc
blob: 788e4437a21f2f9f944a444d3d4b2aa815f83251 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// included by pango.pp
{$IFDEF read_forward_definitions}
{$ENDIF}

{$IFDEF read_interface_types}
   PPangoEngineRange = ^TPangoEngineRange;
   TPangoEngineRange = record
        start : guint32;
        theEnd : guint32;
        langs : Pgchar;
     end;

   PPangoEngineInfo = ^TPangoEngineInfo;
   TPangoEngineInfo = record
        id : Pgchar;
        engine_type : Pgchar;
        render_type : Pgchar;
        ranges : PPangoEngineRange;
        n_ranges : gint;
     end;

   PPangoEngine = ^TPangoEngine;
   TPangoEngine = record
        id : Pgchar;
        _type : Pgchar;
        length : gint;
     end;

   TPangoEngineLangScriptBreak =
     procedure (text:Pchar; len:longint; analysis:PPangoAnalysis;
                attrs:PPangoLogAttr; attrs_len:longint); cdecl;

   PPangoEngineLang = ^TPangoEngineLang;
   TPangoEngineLang = record
        engine : TPangoEngine;
        script_break : TPangoEngineLangScriptBreak;
     end;

   TPangoEngineShapeScript =
     procedure (font:PPangoFont; text:Pchar; length:longint;
                analysis:PPangoAnalysis; glyphs:PPangoGlyphString); cdecl;
   TPangoEngineShapeGetCoverage =
     function (font:PPangoFont; language:PPangoLanguage):PPangoCoverage; cdecl;

   PPangoEngineShape = ^TPangoEngineShape;
   TPangoEngineShape = record
        engine : TPangoEngine;
        script_shape : TPangoEngineShapeScript;
        get_coverage : TPangoEngineShapeGetCoverage
     end;

{$ENDIF read_interface_types}

//------------------------------------------------------------------------------

{$IFDEF read_interface_functions}

{$ifdef PANGO_ENABLE_ENGINE}
{ Module API  }

const
   PANGO_ENGINE_TYPE_LANG = 'PangoEngineLang';
   PANGO_ENGINE_TYPE_SHAPE = 'PangoEngineShape';
   PANGO_RENDER_TYPE_NONE = 'PangoRenderNone';

{ A module should export the following functions  }
procedure script_engine_list(var engines:PPangoEngineInfo; n_engines:Plongint); cdecl; external pangolib;
function script_engine_load(id:Pchar):PPangoEngine; cdecl; external pangolib;
procedure script_engine_unload(engine:PPangoEngine); cdecl; external pangolib;
{$endif}
{ PANGO_ENABLE_ENGINE  }
{$endif read_interface_functions}