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