--- /dev/null
+(* Copyright (C) 2005:
+ * Stefano Zacchiroli <zack@cs.unibo.it>
+ * Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
+ *
+ * This file is part of lablgtksourceview, the OCaml binding for the
+ * GtkSourceView widget.
+ *
+ * lablgtksourceview is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * lablgtksourceview is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with lablgtksourceview; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * For details, send a mail to the authors.
+ *)
+
+open Gtk
+
+class source_view_signals :
+ ([> Gtk_sourceview.source_view ] as 'b) obj ->
+ object ('a)
+ method after : 'a
+ method copy_clipboard : callback:(unit -> unit) -> GtkSignal.id
+ method cut_clipboard : callback:(unit -> unit) -> GtkSignal.id
+ method delete_from_cursor :
+ callback:(Gtk.Tags.delete_type -> int -> unit) -> GtkSignal.id
+ method destroy : callback:(unit -> unit) -> GtkSignal.id
+ method insert_at_cursor : callback:(string -> unit) -> GtkSignal.id
+ method move_cursor :
+ callback:(Gtk.Tags.movement_step -> int -> extend:bool -> unit) ->
+ GtkSignal.id
+ method move_focus :
+ callback:(Gtk.Tags.direction_type -> unit) -> GtkSignal.id
+ method page_horizontally :
+ callback:(int -> extend:bool -> unit) -> GtkSignal.id
+ method paste_clipboard : callback:(unit -> unit) -> GtkSignal.id
+ method populate_popup :
+ callback:(Gtk.menu Gtk.obj -> unit) -> GtkSignal.id
+ method redo : callback:(unit -> unit) -> GtkSignal.id
+ method set_anchor : callback:(unit -> unit) -> GtkSignal.id
+ method set_scroll_adjustments :
+ callback:(GData.adjustment option -> GData.adjustment option -> unit) -> GtkSignal.id
+ method toggle_overwrite : callback:(unit -> unit) -> GtkSignal.id
+ method undo : callback:(unit -> unit) -> GtkSignal.id
+ end
+
+class source_view :
+ Gtk_sourceview.source_view Gtk.obj ->
+ object
+ method add_child_at_anchor : GObj.widget -> GText.child_anchor -> unit
+ method add_child_in_window :
+ child:GObj.widget ->
+ which_window:Gtk.Tags.text_window_type -> x:int -> y:int -> unit
+ method as_view : Gtk.text_view Gtk.obj
+ method as_widget : Gtk.widget Gtk.obj
+ method backward_display_line : GText.iter -> bool
+ method backward_display_line_start : GText.iter -> bool
+ method buffer : GText.buffer
+ method buffer_to_window_coords :
+ tag:Gtk.Tags.text_window_type -> x:int -> y:int -> int * int
+ method coerce : GObj.widget
+ method connect : source_view_signals
+ method cursor_visible : bool
+ method destroy : unit -> unit
+ method drag : GObj.drag_ops
+ method editable : bool
+ method event : GObj.event_ops
+ method forward_display_line : GText.iter -> bool
+ method forward_display_line_end : GText.iter -> bool
+ method get_border_window_size :
+ [ `BOTTOM | `LEFT | `RIGHT | `TOP ] -> int
+ method get_iter_at_location : x:int -> y:int -> GText.iter
+ method get_iter_location : GText.iter -> Gdk.Rectangle.t
+ method get_line_at_y : int -> GText.iter * int
+ method get_line_yrange : GText.iter -> int * int
+ method get_oid : int
+ method get_window : Gtk.Tags.text_window_type -> Gdk.window option
+ method get_window_type : Gdk.window -> Gtk.Tags.text_window_type
+ method indent : int
+ method justification : Gtk.Tags.justification
+ method left_margin : int
+ method misc : GObj.misc_ops
+ method move_child : child:GObj.widget -> x:int -> y:int -> unit
+ method move_mark_onscreen : GText.mark -> bool
+ method move_visually : GText.iter -> int -> bool
+ method pixels_above_lines : int
+ method pixels_below_lines : int
+ method pixels_inside_wrap : int
+ method place_cursor_onscreen : unit -> bool
+ method right_margin : int
+ method scroll_mark_onscreen : GText.mark -> unit
+ method scroll_to_iter :
+ ?within_margin:float ->
+ ?use_align:bool -> ?xalign:float -> ?yalign:float -> GText.iter -> bool
+ method scroll_to_mark :
+ ?within_margin:float ->
+ ?use_align:bool -> ?xalign:float -> ?yalign:float -> GText.mark -> unit
+ method set_border_window_size :
+ typ:[ `BOTTOM | `LEFT | `RIGHT | `TOP ] -> size:int -> unit
+ method set_buffer : GText.buffer -> unit
+ method set_cursor_visible : bool -> unit
+ method set_editable : bool -> unit
+ method set_indent : int -> unit
+ method set_justification : Gtk.Tags.justification -> unit
+ method set_left_margin : int -> unit
+ method set_pixels_above_lines : int -> unit
+ method set_pixels_below_lines : int -> unit
+ method set_pixels_inside_wrap : int -> unit
+ method set_right_margin : int -> unit
+ method set_show_line_numbers : bool -> unit
+ method set_wrap_mode : Gtk.Tags.wrap_mode -> unit
+ method show_line_numbers : bool
+ method starts_display_line : GText.iter -> bool
+ method visible_rect : Gdk.Rectangle.t
+ method window_to_buffer_coords :
+ tag:Gtk.Tags.text_window_type -> x:int -> y:int -> int * int
+ method wrap_mode : Gtk.Tags.wrap_mode
+ end
+
+val source_view :
+ ?auto_indent:bool ->
+ ?insert_spaces_instead_of_tabs:bool ->
+ ?margin:int ->
+ ?show_line_markers:bool ->
+ ?show_line_numbers:bool ->
+ ?show_margin:bool ->
+ ?smart_home_end:bool ->
+ ?tabs_width:int ->
+ ?editable:bool ->
+ ?cursor_visible:bool ->
+ ?justification:GtkEnums.justification ->
+ ?wrap_mode:GtkEnums.wrap_mode ->
+ ?border_width:int ->
+ ?width:int ->
+ ?height:int ->
+ ?packing:(GObj.widget -> unit) ->
+ ?show:bool ->
+ unit ->
+ source_view
+