summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/gtk2/src/gtk+/gdk/gdkpango.inc
blob: 4ae9218ad42040fef541ba8cd797b9362b67aa27 (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// included by gdk2.pp

{$IFDEF read_forward_definitions}
   PGdkPangoRenderer = ^TGdkPangoRenderer;
{$ENDIF read_forward_definitions}

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

{$IFDEF read_interface_types}
   PGdkPangoRendererPrivate = ^TGdkPangoRendererPrivate;

   TGdkPangoRenderer = record
     // private
     parent_instance: TPangoRenderer;

     priv: PGdkPangoRendererPrivate;
   end;


   PGdkPangoRendererClass = ^TGdkPangoRendererClass;
   TGdkPangoRendererClass = record
     // private
     parent_class: TPangoRendererClass;
   end;
   
   TGdkPangoRendererPrivate = record
     screen: PGdkScreen;

     // GdkPangoRenderer specific state
     override_color: array[TPangoRenderPart] of TPangoColor;
     override_color_set: array[TPangoRenderPart] of gboolean;
     
     stipple: array[TPangoRenderPart] of PGdkBitmap;
     emboss_color: TPangoColor;
     embossed: gboolean;

     // cr: Pcairo_t;
     // last_part: TPangoRenderPart;

     // Current target
     // drawable: PGdkDrawable;
     // base_gc: PGdkGC;

     // gc_changed: gboolean;
   end;

{ Attributes use to render insensitive text in GTK+.  }
   PGdkPangoAttrStipple = ^TGdkPangoAttrStipple;
   TGdkPangoAttrStipple = record
        attr : TPangoAttribute;
        stipple : PGdkBitmap;
     end;

   PGdkPangoAttrEmbossed = ^TGdkPangoAttrEmbossed;
   TGdkPangoAttrEmbossed = record
        attr : TPangoAttribute;
        embossed : gboolean;
     end;


{$ENDIF read_interface_types}

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

{$IFDEF read_interface_rest}

{ Pango renderer }

function GDK_TYPE_PANGO_RENDERER: GType;
function GDK_PANGO_RENDERER(anObject: pointer): PGdkPangoRenderer;
function GDK_IS_PANGO_RENDERER(anObject: pointer): boolean;
function GDK_PANGO_RENDERER_CLASS(klass: pointer): PGdkPangoRendererClass;
function GDK_IS_PANGO_RENDERER_CLASS(klass: pointer): boolean;
function GDK_PANGO_RENDERER_GET_CLASS(obj: pointer): PGdkPangoRendererClass;

function gdk_pango_renderer_get_type: GType; cdecl; external gdklib;
function gdk_pango_renderer_new(screen:PGdkScreen):PGdkPangoRenderer; cdecl; external gdklib;
function gdk_pango_renderer_get_default(screen:PGdkScreen):PGdkPangoRenderer; cdecl; external gdklib;
procedure gdk_pango_renderer_set_drawable(gdk_renderer:PGdkPangoRenderer; drawable:PGdkDrawable); cdecl; external gdklib;
procedure gdk_pango_renderer_set_gc(gdk_renderer:PGdkPangoRenderer; gc:PGdkGC); cdecl; external gdklib;
procedure gdk_pango_renderer_set_stipple(gdk_renderer:PGdkPangoRenderer; part:TPangoRenderPart; stipple:PGdkBitmap); cdecl; external gdklib;
procedure gdk_pango_renderer_set_override_color(gdk_renderer:PGdkPangoRenderer; part:TPangoRenderPart; color:PGdkColor); cdecl; external gdklib;

{ Pango interaction  }

function gdk_pango_context_get_for_screen(screen:PGdkScreen):PPangoContext; cdecl; external gdklib;

{$ifndef GDK_MULTIHEAD_SAFE}
function gdk_pango_context_get:PPangoContext; cdecl; external gdklib;
{$endif}

procedure gdk_pango_context_set_colormap(context:PPangoContext; colormap:PGdkColormap); cdecl; external gdklib;

{ Get a clip region to draw only part of a layout or
   line. index_ranges contains alternating range starts/stops. The
   region is the region which contains the given ranges, i.e. if you
   draw with the region as clip, only the given ranges are drawn.
  }
function 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;
function gdk_pango_layout_get_clip_region(layout:PPangoLayout; x_origin:gint; y_origin:gint; index_ranges:Pgint; n_ranges:gint):PGdkRegion; cdecl; external gdklib;

function gdk_pango_attr_stipple_new(stipple:PGdkBitmap):PPangoAttribute; cdecl; external gdklib;
function gdk_pango_attr_embossed_new(embossed:gboolean):PPangoAttribute; cdecl; external gdklib;
{$endif read_interface_rest}

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

{$IFDEF read_implementation}
function GDK_TYPE_PANGO_RENDERER: GType;
begin
  GDK_TYPE_PANGO_RENDERER:=gdk_pango_renderer_get_type;
end;

function GDK_PANGO_RENDERER(anObject: pointer): PGdkPangoRenderer;
begin
  GDK_PANGO_RENDERER:=PGdkPangoRenderer(G_TYPE_CHECK_INSTANCE_CAST(anObject,GDK_TYPE_PANGO_RENDERER));
end;

function GDK_IS_PANGO_RENDERER(anObject: pointer): boolean;
begin
  GDK_IS_PANGO_RENDERER:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,GDK_TYPE_PANGO_RENDERER);
end;

function GDK_PANGO_RENDERER_CLASS(klass: pointer): PGdkPangoRendererClass;
begin
  GDK_PANGO_RENDERER_CLASS:=PGdkPangoRendererClass(G_TYPE_CHECK_CLASS_CAST(klass,GDK_TYPE_PANGO_RENDERER));
end;

function GDK_IS_PANGO_RENDERER_CLASS(klass: pointer) : boolean;
begin
  GDK_IS_PANGO_RENDERER_CLASS:=G_TYPE_CHECK_CLASS_TYPE(klass,GDK_TYPE_PANGO_RENDERER);
end;

function GDK_PANGO_RENDERER_GET_CLASS(obj: pointer): PGdkPangoRendererClass;
begin
  GDK_PANGO_RENDERER_GET_CLASS:=PGdkPangoRendererClass(G_TYPE_INSTANCE_GET_CLASS(obj,GDK_TYPE_PANGO_RENDERER));
end;
{$ENDIF}