2
0

gtkeditable.pp 6.6 KB

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