sig
  val cast : 'Gobject.obj -> Gtk.text_view Gtk.obj
  module P :
    sig
      val editable : ([> `textview ], bool) Gobject.property
      val cursor_visible : ([> `textview ], bool) Gobject.property
      val indent : ([> `textview ], int) Gobject.property
      val justification :
        ([> `textview ], GtkEnums.justification) Gobject.property
      val left_margin : ([> `textview ], int) Gobject.property
      val pixels_above_lines : ([> `textview ], int) Gobject.property
      val pixels_below_lines : ([> `textview ], int) Gobject.property
      val pixels_inside_wrap : ([> `textview ], int) Gobject.property
      val right_margin : ([> `textview ], int) Gobject.property
      val wrap_mode : ([> `textview ], GtkEnums.wrap_mode) Gobject.property
      val accepts_tab : ([> `textview ], bool) Gobject.property
    end
  module S :
    sig
      val copy_clipboard : ([> `textview ], unit -> unit) GtkSignal.t
      val cut_clipboard : ([> `textview ], unit -> unit) GtkSignal.t
      val delete_from_cursor :
        ([> `textview ], GtkEnums.delete_type -> int -> unit) GtkSignal.t
      val insert_at_cursor : ([> `textview ], string -> unit) GtkSignal.t
      val move_cursor :
        ([> `textview ],
         GtkEnums.movement_step -> int -> extend:bool -> unit)
        GtkSignal.t
      val move_focus :
        ([> `textview ], GtkEnums.direction_type -> unit) GtkSignal.t
      val page_horizontally :
        ([> `textview ], int -> extend:bool -> unit) GtkSignal.t
      val paste_clipboard : ([> `textview ], unit -> unit) GtkSignal.t
      val populate_popup :
        ([> `textview ], Gtk.menu Gtk.obj -> unit) GtkSignal.t
      val set_anchor : ([> `textview ], unit -> unit) GtkSignal.t
      val set_scroll_adjustments :
        ([> `textview ],
         Gtk.adjustment Gtk.obj option ->
         Gtk.adjustment Gtk.obj option -> unit)
        GtkSignal.t
      val toggle_overwrite : ([> `textview ], unit -> unit) GtkSignal.t
    end
  val create : Gtk.text_view Gobject.param list -> Gtk.text_view Gtk.obj
  val make_params :
    cont:(([> `textview ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?editable:bool ->
    ?cursor_visible:bool ->
    ?justification:GtkEnums.justification ->
    ?wrap_mode:GtkEnums.wrap_mode -> ?accepts_tab:bool -> 'b
  external create_with_buffer : Gtk.text_buffer -> Gtk.text_view Gtk.obj
    = "ml_gtk_text_view_new_with_buffer"
  external set_buffer : [> `textview ] Gtk.obj -> Gtk.text_buffer -> unit
    = "ml_gtk_text_view_set_buffer"
  external get_buffer : [> `textview ] Gtk.obj -> Gtk.text_buffer
    = "ml_gtk_text_view_get_buffer"
  external scroll_to_mark :
    [> `textview ] Gtk.obj ->
    Gtk.text_mark -> float -> bool -> float -> float -> unit
    = "ml_gtk_text_view_scroll_to_mark_bc" "ml_gtk_text_view_scroll_to_mark"
  external scroll_to_iter :
    [> `textview ] Gtk.obj ->
    Gtk.text_iter -> float -> bool -> float -> float -> bool
    = "ml_gtk_text_view_scroll_to_iter_bc" "ml_gtk_text_view_scroll_to_iter"
  external scroll_mark_onscreen :
    [> `textview ] Gtk.obj -> Gtk.text_mark -> unit
    = "ml_gtk_text_view_scroll_mark_onscreen"
  external move_mark_onscreen :
    [> `textview ] Gtk.obj -> Gtk.text_mark -> bool
    = "ml_gtk_text_view_move_mark_onscreen"
  external place_cursor_onscreen : [> `textview ] Gtk.obj -> bool
    = "ml_gtk_text_view_place_cursor_onscreen"
  external get_visible_rect : [> `textview ] Gtk.obj -> Gdk.Rectangle.t
    = "ml_gtk_text_view_get_visible_rect"
  external get_iter_location :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> Gdk.Rectangle.t
    = "ml_gtk_text_view_get_iter_location"
  external get_line_at_y :
    [> `textview ] Gtk.obj -> int -> Gtk.text_iter * int
    = "ml_gtk_text_view_get_line_at_y"
  external get_line_yrange :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> int * int
    = "ml_gtk_text_view_get_line_yrange"
  external get_iter_at_location :
    [> `textview ] Gtk.obj -> int -> int -> Gtk.text_iter
    = "ml_gtk_text_view_get_iter_at_location"
  external buffer_to_window_coords :
    [> `textview ] Gtk.obj ->
    Gtk.Tags.text_window_type -> int -> int -> int * int
    = "ml_gtk_text_view_buffer_to_window_coords"
  external window_to_buffer_coords :
    [> `textview ] Gtk.obj ->
    Gtk.Tags.text_window_type -> int -> int -> int * int
    = "ml_gtk_text_view_window_to_buffer_coords"
  external get_window :
    [> `textview ] Gtk.obj -> Gtk.Tags.text_window_type -> Gdk.window option
    = "ml_gtk_text_view_get_window"
  external get_window_type :
    [> `textview ] Gtk.obj -> Gdk.window -> Gtk.Tags.text_window_type
    = "ml_gtk_text_view_get_window_type"
  external set_border_window_size :
    [> `textview ] Gtk.obj -> Gtk.Tags.side_type -> int -> unit
    = "ml_gtk_text_view_set_border_window_size"
  external get_border_window_size :
    [> `textview ] Gtk.obj -> Gtk.Tags.side_type -> int
    = "ml_gtk_text_view_get_border_window_size"
  external forward_display_line :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> bool
    = "ml_gtk_text_view_forward_display_line"
  external backward_display_line :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> bool
    = "ml_gtk_text_view_backward_display_line"
  external forward_display_line_end :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> bool
    = "ml_gtk_text_view_forward_display_line_end"
  external backward_display_line_start :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> bool
    = "ml_gtk_text_view_backward_display_line_start"
  external starts_display_line :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> bool
    = "ml_gtk_text_view_starts_display_line"
  external move_visually :
    [> `textview ] Gtk.obj -> Gtk.text_iter -> int -> bool
    = "ml_gtk_text_view_move_visually"
  external add_child_at_anchor :
    [> `textview ] Gtk.obj ->
    [> `widget ] Gtk.obj -> Gtk.text_child_anchor -> unit
    = "ml_gtk_text_view_add_child_at_anchor"
  external add_child_in_window :
    [> `textview ] Gtk.obj ->
    [> `widget ] Gtk.obj -> Gtk.Tags.text_window_type -> int -> int -> unit
    = "ml_gtk_text_view_add_child_in_window"
  external move_child :
    [> `textview ] Gtk.obj -> [> `widget ] Gtk.obj -> int -> int -> unit
    = "ml_gtk_text_view_move_child"
end