summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/gtk2/src/gtk+/gtk/gtkbindings.inc
blob: d8895db0e4ef2f0b1ee7d2aa662feba672203486 (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
139
140
141
142
143
// included by gtk2.pas

{$IFDEF read_forward_definitions}
{$ENDIF read_forward_definitions}

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

{$IFDEF read_interface_types}
   PGtkBindingEntry = ^TGtkBindingEntry;
   PGtkBindingSignal = ^TGtkBindingSignal;
   PGtkBindingArg = ^TGtkBindingArg;

{ Binding sets }
{ From RC content  }
   PGtkBindingSet = ^TGtkBindingSet;
   TGtkBindingSet = record
        set_name : Pgchar;
        priority : gint;
        widget_path_pspecs : PGSList;
        widget_class_pspecs : PGSList;
        class_branch_pspecs : PGSList;
        entries : PGtkBindingEntry;
        current : PGtkBindingEntry;
        flag0 : word;
     end;

{ key portion }
   TGtkBindingEntry = record
        keyval : guint;
        modifiers : TGdkModifierType;
        binding_set : PGtkBindingSet;
        flag0 : word;
        set_next : PGtkBindingEntry;
        hash_next : PGtkBindingEntry;
        signals : PGtkBindingSignal;
     end;

   TGtkBindingSignal = record
        next : PGtkBindingSignal;
        signal_name : Pgchar;
        n_args : guint;
        args : PGtkBindingArg;
     end;

   TGtkBindingArg = record
        arg_type : TGtkType;
        d : record
            case longint of
               0 : ( long_data : glong );
               1 : ( double_data : gdouble );
               2 : ( string_data : Pgchar );
            end;
     end;

{$ENDIF read_interface_types}

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

{$IFDEF read_interface_rest}

const
   bm_TGtkBindingSet_parsed = $1;
   bp_TGtkBindingSet_parsed = 0;

   bm_TGtkBindingEntry_destroyed = $1;
   bp_TGtkBindingEntry_destroyed = 0;
   bm_TGtkBindingEntry_in_emission = $2;
   bp_TGtkBindingEntry_in_emission = 1;

procedure gtk_binding_entry_add(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType);

function parsed(var a : TGtkBindingSet) : guint;
procedure set_parsed(var a : TGtkBindingSet; __parsed : guint);

function destroyed(var a : TGtkBindingEntry) : guint;
procedure set_destroyed(var a : TGtkBindingEntry; __destroyed : guint);
function in_emission(var a : TGtkBindingEntry) : guint;
procedure set_in_emission(var a : TGtkBindingEntry; __in_emission : guint);

{ Application-level methods  }
function gtk_binding_set_new(set_name:Pgchar):PGtkBindingSet; cdecl; external gtklib;
function gtk_binding_set_by_class(object_class:gpointer):PGtkBindingSet; cdecl; external gtklib;
function gtk_binding_set_find(set_name:Pgchar):PGtkBindingSet; cdecl; external gtklib;
function gtk_bindings_activate(anObject:PGtkObject; keyval:guint; modifiers:TGdkModifierType):gboolean; cdecl; external gtklib;
function gtk_binding_set_activate(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType; anObject:PGtkObject):gboolean; cdecl; external gtklib;

procedure gtk_binding_entry_clear(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType); cdecl; external gtklib;
{$IFNDEF KYLIX}
procedure gtk_binding_entry_add_signal(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType; signal_name:Pgchar; n_args:guint;
            args:array of const); cdecl; overload; external gtklib;
procedure gtk_binding_entry_add_signal(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType; signal_name:Pgchar; n_args:guint); cdecl; overload; varargs; external gtklib;
{$ELSE}
procedure gtk_binding_entry_add_signal(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType; signal_name:Pgchar; n_args:guint); varargs; cdecl; external gtklib;
{$ENDIF}
procedure gtk_binding_set_add_path(binding_set:PGtkBindingSet; path_type:TGtkPathType; path_pattern:Pgchar; priority:TGtkPathPriorityType); cdecl; external gtklib;
{ Non-public methods  }
procedure gtk_binding_entry_remove(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType); cdecl; external gtklib;
procedure gtk_binding_entry_add_signall(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType; signal_name:Pgchar; binding_args:PGSList); cdecl; external gtklib;
function gtk_binding_parse_binding(scanner:PGScanner):guint; cdecl; external gtklib;
function _gtk_bindings_activate_event(anObject:PGtkObject; event:PGdkEventKey):gboolean; cdecl; external gtklib;
procedure _gtk_binding_reset_parsed; cdecl; external gtklib;
{$ENDIF read_interface_rest}

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

{$IFDEF read_implementation}
function parsed(var a : TGtkBindingSet) : guint;
begin
   parsed:=(a.flag0 and bm_TGtkBindingSet_parsed) shr bp_TGtkBindingSet_parsed;
end;

procedure set_parsed(var a : TGtkBindingSet; __parsed : guint);
begin
   a.flag0:=a.flag0 or ((__parsed shl bp_TGtkBindingSet_parsed) and bm_TGtkBindingSet_parsed);
end;

function destroyed(var a : TGtkBindingEntry) : guint;
begin
   destroyed:=(a.flag0 and bm_TGtkBindingEntry_destroyed) shr bp_TGtkBindingEntry_destroyed;
end;

procedure set_destroyed(var a : TGtkBindingEntry; __destroyed : guint);
begin
   a.flag0:=a.flag0 or ((__destroyed shl bp_TGtkBindingEntry_destroyed) and bm_TGtkBindingEntry_destroyed);
end;

function in_emission(var a : TGtkBindingEntry) : guint;
begin
   in_emission:=(a.flag0 and bm_TGtkBindingEntry_in_emission) shr bp_TGtkBindingEntry_in_emission;
end;

procedure set_in_emission(var a : TGtkBindingEntry; __in_emission : guint);
begin
   a.flag0:=a.flag0 or ((__in_emission shl bp_TGtkBindingEntry_in_emission) and bm_TGtkBindingEntry_in_emission);
end;

procedure gtk_binding_entry_add(binding_set:PGtkBindingSet; keyval:guint; modifiers:TGdkModifierType);
begin
   gtk_binding_entry_clear(binding_set,keyval,modifiers);
end;
{$ENDIF read_implementation}
// included by gtk2.pas