1// included by gdk2.pp
2
3{$IFDEF read_forward_definitions}
4   PGdkPangoRenderer = ^TGdkPangoRenderer;
5{$ENDIF read_forward_definitions}
6
7//------------------------------------------------------------------------------
8
9{$IFDEF read_interface_types}
10   PGdkPangoRendererPrivate = ^TGdkPangoRendererPrivate;
11
12   TGdkPangoRenderer = record
13     // private
14     parent_instance: TPangoRenderer;
15
16     priv: PGdkPangoRendererPrivate;
17   end;
18
19
20   PGdkPangoRendererClass = ^TGdkPangoRendererClass;
21   TGdkPangoRendererClass = record
22     // private
23     parent_class: TPangoRendererClass;
24   end;
25
26   TGdkPangoRendererPrivate = record
27     screen: PGdkScreen;
28
29     // GdkPangoRenderer specific state
30     override_color: array[TPangoRenderPart] of TPangoColor;
31     override_color_set: array[TPangoRenderPart] of gboolean;
32
33     stipple: array[TPangoRenderPart] of PGdkBitmap;
34     emboss_color: TPangoColor;
35     embossed: gboolean;
36
37     // cr: Pcairo_t;
38     // last_part: TPangoRenderPart;
39
40     // Current target
41     // drawable: PGdkDrawable;
42     // base_gc: PGdkGC;
43
44     // gc_changed: gboolean;
45   end;
46
47{ Attributes use to render insensitive text in GTK+.  }
48   PGdkPangoAttrStipple = ^TGdkPangoAttrStipple;
49   TGdkPangoAttrStipple = record
50        attr : TPangoAttribute;
51        stipple : PGdkBitmap;
52     end;
53
54   PGdkPangoAttrEmbossed = ^TGdkPangoAttrEmbossed;
55   TGdkPangoAttrEmbossed = record
56        attr : TPangoAttribute;
57        embossed : gboolean;
58     end;
59
60
61{$ENDIF read_interface_types}
62
63//------------------------------------------------------------------------------
64
65{$IFDEF read_interface_rest}
66
67{ Pango renderer }
68
69function GDK_TYPE_PANGO_RENDERER: GType;
70function GDK_PANGO_RENDERER(anObject: pointer): PGdkPangoRenderer;
71function GDK_IS_PANGO_RENDERER(anObject: pointer): boolean;
72function GDK_PANGO_RENDERER_CLASS(klass: pointer): PGdkPangoRendererClass;
73function GDK_IS_PANGO_RENDERER_CLASS(klass: pointer): boolean;
74function GDK_PANGO_RENDERER_GET_CLASS(obj: pointer): PGdkPangoRendererClass;
75
76function gdk_pango_renderer_get_type: GType; cdecl; external gdklib;
77function gdk_pango_renderer_new(screen:PGdkScreen):PGdkPangoRenderer; cdecl; external gdklib;
78function gdk_pango_renderer_get_default(screen:PGdkScreen):PGdkPangoRenderer; cdecl; external gdklib;
79procedure gdk_pango_renderer_set_drawable(gdk_renderer:PGdkPangoRenderer; drawable:PGdkDrawable); cdecl; external gdklib;
80procedure gdk_pango_renderer_set_gc(gdk_renderer:PGdkPangoRenderer; gc:PGdkGC); cdecl; external gdklib;
81procedure gdk_pango_renderer_set_stipple(gdk_renderer:PGdkPangoRenderer; part:TPangoRenderPart; stipple:PGdkBitmap); cdecl; external gdklib;
82procedure gdk_pango_renderer_set_override_color(gdk_renderer:PGdkPangoRenderer; part:TPangoRenderPart; color:PGdkColor); cdecl; external gdklib;
83
84{ Pango interaction  }
85
86function gdk_pango_context_get_for_screen(screen:PGdkScreen):PPangoContext; cdecl; external gdklib;
87
88{$ifndef GDK_MULTIHEAD_SAFE}
89function gdk_pango_context_get:PPangoContext; cdecl; external gdklib;
90{$endif}
91
92procedure gdk_pango_context_set_colormap(context:PPangoContext; colormap:PGdkColormap); cdecl; external gdklib;
93
94{ Get a clip region to draw only part of a layout or
95   line. index_ranges contains alternating range starts/stops. The
96   region is the region which contains the given ranges, i.e. if you
97   draw with the region as clip, only the given ranges are drawn.
98  }
99function gdk_pango_layout_line_get_clip_region(line:PPangoLayoutLine; x_origin:gint; y_origin:gint; index_ranges:Pgint; n_ranges:gint):PGdkRegion; cdecl; external gdklib;
100function gdk_pango_layout_get_clip_region(layout:PPangoLayout; x_origin:gint; y_origin:gint; index_ranges:Pgint; n_ranges:gint):PGdkRegion; cdecl; external gdklib;
101
102function gdk_pango_attr_stipple_new(stipple:PGdkBitmap):PPangoAttribute; cdecl; external gdklib;
103function gdk_pango_attr_embossed_new(embossed:gboolean):PPangoAttribute; cdecl; external gdklib;
104{$endif read_interface_rest}
105
106//------------------------------------------------------------------------------
107
108{$IFDEF read_implementation}
109function GDK_TYPE_PANGO_RENDERER: GType;
110begin
111  GDK_TYPE_PANGO_RENDERER:=gdk_pango_renderer_get_type;
112end;
113
114function GDK_PANGO_RENDERER(anObject: pointer): PGdkPangoRenderer;
115begin
116  GDK_PANGO_RENDERER:=PGdkPangoRenderer(G_TYPE_CHECK_INSTANCE_CAST(anObject,GDK_TYPE_PANGO_RENDERER));
117end;
118
119function GDK_IS_PANGO_RENDERER(anObject: pointer): boolean;
120begin
121  GDK_IS_PANGO_RENDERER:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,GDK_TYPE_PANGO_RENDERER);
122end;
123
124function GDK_PANGO_RENDERER_CLASS(klass: pointer): PGdkPangoRendererClass;
125begin
126  GDK_PANGO_RENDERER_CLASS:=PGdkPangoRendererClass(G_TYPE_CHECK_CLASS_CAST(klass,GDK_TYPE_PANGO_RENDERER));
127end;
128
129function GDK_IS_PANGO_RENDERER_CLASS(klass: pointer) : boolean;
130begin
131  GDK_IS_PANGO_RENDERER_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GDK_TYPE_PANGO_RENDERER);
132end;
133
134function GDK_PANGO_RENDERER_GET_CLASS(obj: pointer): PGdkPangoRendererClass;
135begin
136  GDK_PANGO_RENDERER_GET_CLASS:=PGdkPangoRendererClass(G_TYPE_INSTANCE_GET_CLASS(obj,GDK_TYPE_PANGO_RENDERER));
137end;
138{$ENDIF}
139