1{
2}
3
4{****************************************************************************
5                                 Interface
6****************************************************************************}
7
8{$ifdef read_interface}
9
10  type
11
12     PGtkEditable = ^TGtkEditable;
13     TGtkEditable = record
14          widget : TGtkWidget;
15          current_pos : guint;
16          selection_start_pos : guint;
17          selection_end_pos : guint;
18          flag0 : {$ifdef win32}longint{$else}word{$endif};
19          ic : PGdkIC;
20          ic_attr : PGdkICAttr;
21          clipboard_text : Pgchar;
22       end;
23     TGtkTextfunction = procedure (editable:PGtkEditable; time:guint32); cdecl;
24
25  const
26     bm_TGtkEditable_has_selection = $1;
27     bp_TGtkEditable_has_selection = 0;
28     bm_TGtkEditable_editable = $2;
29     bp_TGtkEditable_editable = 1;
30     bm_TGtkEditable_visible = $4;
31     bp_TGtkEditable_visible = 2;
32function  has_selection(var a : TGtkEditable) : guint;
33procedure set_has_selection(var a : TGtkEditable; __has_selection : guint);
34function  editable(var a : TGtkEditable) : guint;
35procedure set_editable(var a : TGtkEditable; __editable : guint);
36function  visible(var a : TGtkEditable) : guint;
37procedure set_visible(var a : TGtkEditable; __visible : guint);
38
39  type
40     PGtkEditableClass = ^TGtkEditableClass;
41     TGtkEditableClass = record
42          parent_class : TGtkWidgetClass;
43          changed : procedure (editable:PGtkEditable);cdecl;
44          insert_text : procedure (editable:PGtkEditable; thetext:Pgchar; length:gint; position:Pgint); cdecl;
45          delete_text : procedure (editable:PGtkEditable; start_pos:gint; end_pos:gint); cdecl;
46          activate : procedure (editable:PGtkEditable);cdecl;
47          set_editable : procedure (editable:PGtkEditable; is_editable:gboolean);cdecl;
48          move_cursor : procedure (editable:PGtkEditable; x:gint; y:gint);cdecl;
49          move_word : procedure (editable:PGtkEditable; n:gint);cdecl;
50          move_page : procedure (editable:PGtkEditable; x:gint; y:gint);cdecl;
51          move_to_row : procedure (editable:PGtkEditable; row:gint);cdecl;
52          move_to_column : procedure (editable:PGtkEditable; row:gint);cdecl;
53          kill_char : procedure (editable:PGtkEditable; direction:gint);cdecl;
54          kill_word : procedure (editable:PGtkEditable; direction:gint);cdecl;
55          kill_line : procedure (editable:PGtkEditable; direction:gint);cdecl;
56          cut_clipboard : procedure (editable:PGtkEditable);cdecl;
57          copy_clipboard : procedure (editable:PGtkEditable);cdecl;
58          paste_clipboard : procedure (editable:PGtkEditable);cdecl;
59          update_text : procedure (editable:PGtkEditable; start_pos:gint; end_pos:gint); cdecl;
60          get_chars : function (editable:PGtkEditable; start_pos:gint; end_pos:gint):Pgchar; cdecl;
61          set_selection : procedure (editable:PGtkEditable; start_pos:gint; end_pos:gint); cdecl;
62          set_position : procedure (editable:PGtkEditable; position:gint);cdecl;
63       end;
64
65Type
66  GTK_EDITABLE=PGtkEditable;
67  GTK_EDITABLE_CLASS=PGtkEditableClass;
68
69function  GTK_EDITABLE_TYPE:TGtkType;cdecl;external gtkdll name 'gtk_editable_get_type';
70function  GTK_IS_EDITABLE(obj:pointer):boolean;
71function  GTK_IS_EDITABLE_CLASS(klass:pointer):boolean;
72
73function  gtk_editable_get_type:TGtkType;cdecl;external gtkdll name 'gtk_editable_get_type';
74procedure gtk_editable_select_region(editable:PGtkEditable; start:gint; theend:gint);cdecl;external gtkdll name 'gtk_editable_select_region';
75procedure gtk_editable_insert_text(editable:PGtkEditable; new_text:Pgchar; new_text_length:gint; position:Pgint);cdecl;external gtkdll name 'gtk_editable_insert_text';
76procedure gtk_editable_delete_text(editable:PGtkEditable; start_pos:gint; end_pos:gint);cdecl;external gtkdll name 'gtk_editable_delete_text';
77function  gtk_editable_get_chars (editable:PGtkEditable; start_pos:gint; end_pos:gint):Pgchar;cdecl;external gtkdll name 'gtk_editable_get_chars';
78procedure gtk_editable_cut_clipboard(editable:PGtkEditable);cdecl;external gtkdll name 'gtk_editable_cut_clipboard';
79procedure gtk_editable_copy_clipboard(editable:PGtkEditable);cdecl;external gtkdll name 'gtk_editable_copy_clipboard';
80procedure gtk_editable_paste_clipboard(editable:PGtkEditable);cdecl;external gtkdll name 'gtk_editable_paste_clipboard';
81procedure gtk_editable_claim_selection(editable:PGtkEditable; claim:gboolean; time:guint32);cdecl;external gtkdll name 'gtk_editable_claim_selection';
82procedure gtk_editable_delete_selection(editable:PGtkEditable);cdecl;external gtkdll name 'gtk_editable_delete_selection';
83procedure gtk_editable_changed(editable:PGtkEditable);cdecl;external gtkdll name 'gtk_editable_changed';
84procedure gtk_editable_set_position(editable:PGtkEditable; position:gint);cdecl;external gtkdll name 'gtk_editable_set_position';
85function  gtk_editable_get_position(editable:PGtkEditable):gint;cdecl;external gtkdll name 'gtk_editable_get_position';
86procedure gtk_editable_set_editable(editable:PGtkEditable; is_editable:gboolean);cdecl;external gtkdll name 'gtk_editable_set_editable';
87
88{$endif read_interface}
89
90
91{****************************************************************************
92                              Implementation
93****************************************************************************}
94
95{$ifdef read_implementation}
96
97function  has_selection(var a : TGtkEditable) : guint;
98    begin
99       has_selection:=(a.flag0 and bm_TGtkEditable_has_selection) shr bp_TGtkEditable_has_selection;
100    end;
101
102procedure set_has_selection(var a : TGtkEditable; __has_selection : guint);
103    begin
104       a.flag0:=a.flag0 or ((__has_selection shl bp_TGtkEditable_has_selection) and bm_TGtkEditable_has_selection);
105    end;
106
107function  editable(var a : TGtkEditable) : guint;
108    begin
109       editable:=(a.flag0 and bm_TGtkEditable_editable) shr bp_TGtkEditable_editable;
110    end;
111
112procedure set_editable(var a : TGtkEditable; __editable : guint);
113    begin
114       a.flag0:=a.flag0 or ((__editable shl bp_TGtkEditable_editable) and bm_TGtkEditable_editable);
115    end;
116
117function  visible(var a : TGtkEditable) : guint;
118    begin
119       visible:=(a.flag0 and bm_TGtkEditable_visible) shr bp_TGtkEditable_visible;
120    end;
121
122procedure set_visible(var a : TGtkEditable; __visible : guint);
123    begin
124       a.flag0:=a.flag0 or ((__visible shl bp_TGtkEditable_visible) and bm_TGtkEditable_visible);
125    end;
126
127function  GTK_IS_EDITABLE(obj:pointer):boolean;
128begin
129  GTK_IS_EDITABLE:=(obj<>nil) and GTK_IS_EDITABLE_CLASS(PGtkTypeObject(obj)^.klass);
130end;
131
132function  GTK_IS_EDITABLE_CLASS(klass:pointer):boolean;
133begin
134  GTK_IS_EDITABLE_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=GTK_EDITABLE_TYPE);
135end;
136
137{$endif read_implementation}
138
139
140