;; -*- scheme -*-
; object definitions ...
(define-object Buffer
  (in-module "GtkSourceView")
  (parent "GtkTextBuffer")
  (c-name "GtkSourceBuffer")
  (gtype-id "GTK_TYPE_SOURCE_BUFFER")
)

(define-object Language
  (in-module "GtkSourceView")
  (parent "GObject")
  (c-name "GtkSourceLanguage")
  (gtype-id "GTK_TYPE_SOURCE_LANGUAGE")
)

(define-object LanguageManager
  (in-module "GtkSourceView")
  (parent "GObject")
  (c-name "GtkSourceLanguageManager")
  (gtype-id "GTK_TYPE_SOURCE_LANGUAGE_MANAGER")
)

(define-object Style
  (in-module "GtkSourceView")
  (parent "GObject")
  (c-name "GtkSourceStyle")
  (gtype-id "GTK_TYPE_SOURCE_STYLE")
)

(define-object StyleScheme
  (in-module "GtkSourceView")
  (parent "GObject")
  (c-name "GtkSourceStyleScheme")
  (gtype-id "GTK_TYPE_SOURCE_STYLE_SCHEME")
)

(define-object StyleSchemeManager
  (in-module "GtkSourceView")
  (parent "GObject")
  (c-name "GtkSourceStyleSchemeManager")
  (gtype-id "GTK_TYPE_SOURCE_STYLE_SCHEME_MANAGER")
)

(define-object View
  (in-module "GtkSourceView")
  (parent "GtkTextView")
  (c-name "GtkSourceView")
  (gtype-id "GTK_TYPE_SOURCE_VIEW")
)

;; Typedefs

;(define-object Marker
;  (in-module "GtkSourceView")
;  (parent "GtkTextMark")
;  (c-name "GtkSourceMarker")
;  (gtype-id "GTK_TYPE_SOURCE_MARKER")
;)

;; Enumerations and flags ...

(define-flags SearchFlags
  (in-module "GtkSourceView")
  (c-name "GtkSourceSearchFlags")
  (gtype-id "GTK_TYPE_SOURCE_SEARCH_FLAGS")
)

(define-enum SmartHomeEndType
  (in-module "GtkSourceView")
  (c-name "GtkSourceSmartHomeEndType")
  (gtype-id "GTK_TYPE_SOURCE_SMART_HOME_END_TYPE")
)


;; From gtksourcebuffer.h

(define-function gtk_source_buffer_new
  (c-name "gtk_source_buffer_new")
  (is-constructor-of "GtkSourceBuffer")
  (return-type "GtkSourceBuffer*")
  (properties
    '("language" (optional))
    '("tag_table" (optional))
  )
)

(define-method get_highlight_syntax
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_get_highlight_syntax")
  (return-type "gboolean")
)

(define-method set_highlight_syntax
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_set_highlight_syntax")
  (return-type "none")
  (parameters
    '("gboolean" "highlight")
  )
)

(define-method get_highlight_matching_brackets
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_get_highlight_matching_brackets")
  (return-type "gboolean")
)

(define-method set_highlight_matching_brackets
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_set_highlight_matching_brackets")
  (return-type "none")
  (parameters
    '("gboolean" "highlight")
  )
)

(define-method get_max_undo_levels
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_get_max_undo_levels")
  (return-type "gint")
)

(define-method set_max_undo_levels
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_set_max_undo_levels")
  (return-type "none")
  (parameters
    '("gint" "max_undo_levels")
  )
)

(define-method get_language
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_get_language")
  (return-type "GtkSourceLanguage*")
)

(define-method set_language
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_set_language")
  (return-type "none")
  (parameters
    '("GtkSourceLanguage*" "language" (null-ok))
  )
)

(define-method can_undo
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_can_undo")
  (return-type "gboolean")
)

(define-method can_redo
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_can_redo")
  (return-type "gboolean")
)

(define-method undo
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_undo")
  (return-type "none")
)

(define-method redo
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_redo")
  (return-type "none")
)

(define-method begin_not_undoable_action
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_begin_not_undoable_action")
  (return-type "none")
)

(define-method end_not_undoable_action
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_end_not_undoable_action")
  (return-type "none")
)

;(define-method create_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_create_marker")
;  (return-type "GtkSourceMarker*")
;  (parameters
;    '("const-gchar*" "name" (null-ok))
;    '("const-gchar*" "type" (null-ok))
;    '("const-GtkTextIter*" "where")
;  )
;)

;(define-method move_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_move_marker")
;  (return-type "none")
;  (parameters
;    '("GtkSourceMarker*" "marker")
;    '("const-GtkTextIter*" "where")
;  )
;)

;(define-method delete_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_delete_marker")
;  (return-type "none")
;  (parameters
;    '("GtkSourceMarker*" "marker")
;  )
;)

;(define-method get_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_get_marker")
;  (return-type "GtkSourceMarker*")
;  (parameters
;    '("const-gchar*" "name")
;  )
;)

;(define-method get_markers_in_region
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_get_markers_in_region")
;  (return-type "GSList*")
;  (parameters
;    '("const-GtkTextIter*" "begin")
;    '("const-GtkTextIter*" "end")
;  )
;)

;(define-method get_first_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_get_first_marker")
;  (return-type "GtkSourceMarker*")
;)

;(define-method get_last_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_get_last_marker")
;  (return-type "GtkSourceMarker*")
;)

;(define-method get_iter_at_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_get_iter_at_marker")
;  (return-type "none")
;  (parameters
;    '("GtkTextIter*" "iter")
;    '("GtkSourceMarker*" "marker")
;  )
;)

;(define-method get_next_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_get_next_marker")
;  (return-type "GtkSourceMarker*")
;  (parameters
;    '("GtkTextIter*" "iter")
;  )
;)

;(define-method get_prev_marker
;  (of-object "GtkSourceBuffer")
;  (c-name "gtk_source_buffer_get_prev_marker")
;  (return-type "GtkSourceMarker*")
;  (parameters
;    '("GtkTextIter*" "iter")
;  )
;)

(define-method get_style_scheme
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_get_style_scheme")
  (return-type "GtkSourceStyleScheme*")
)

(define-method set_style_scheme
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_set_style_scheme")
  (return-type "none")
  (parameters
    '("GtkSourceStyleScheme*" "scheme")
  )
)

(define-method ensure_highlight
  (of-object "GtkSourceBuffer")
  (c-name "gtk_source_buffer_ensure_highlight")
  (return-type "none")
  (parameters
    '("GtkTextIter*" "start")
    '("GtkTextIter*" "end")
  )
)



;; From gtksourceiter.h

(define-function gtk_source_iter_forward_search
  (c-name "gtk_source_iter_forward_search")
  (return-type "gboolean")
  (parameters
    '("const-GtkTextIter*" "iter")
    '("const-gchar*" "str")
    '("GtkSourceSearchFlags" "flags")
    '("GtkTextIter*" "match_start")
    '("GtkTextIter*" "match_end")
    '("const-GtkTextIter*" "limit")
  )
)

(define-function gtk_source_iter_backward_search
  (c-name "gtk_source_iter_backward_search")
  (return-type "gboolean")
  (parameters
    '("const-GtkTextIter*" "iter")
    '("const-gchar*" "str")
    '("GtkSourceSearchFlags" "flags")
    '("GtkTextIter*" "match_start")
    '("GtkTextIter*" "match_end")
    '("const-GtkTextIter*" "limit")
  )
)



;; From gtksourcelanguage.h

(define-method get_id
  (of-object "GtkSourceLanguage")
  (c-name "gtk_source_language_get_id")
  (return-type "const-gchar*")
)

(define-method get_name
  (of-object "GtkSourceLanguage")
  (c-name "gtk_source_language_get_name")
  (return-type "const-gchar*")
)

(define-method get_section
  (of-object "GtkSourceLanguage")
  (c-name "gtk_source_language_get_section")
  (return-type "const-gchar*")
)

(define-method get_hidden
  (of-object "GtkSourceLanguage")
  (c-name "gtk_source_language_get_hidden")
  (return-type "gboolean")
)

(define-method get_metadata
  (of-object "GtkSourceLanguage")
  (c-name "gtk_source_language_get_metadata")
  (return-type "const-gchar*")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_mime_types
  (of-object "GtkSourceLanguage")
  (c-name "gtk_source_language_get_mime_types")
  (return-type "gchar**")
)

(define-method get_globs
  (of-object "GtkSourceLanguage")
  (c-name "gtk_source_language_get_globs")
  (return-type "gchar**")
)



;; From gtksourcelanguagemanager.h

(define-function gtk_source_language_manager_new
  (c-name "gtk_source_language_manager_new")
  (is-constructor-of "GtkSourceLanguageManager")
  (return-type "GtkSourceLanguageManager*")
)

(define-function language_manager_get_default
  (c-name "gtk_source_language_manager_get_default")
  (return-type "GtkSourceLanguageManager*")
)

(define-method get_language_ids
  (of-object "GtkSourceLanguageManager")
  (c-name "gtk_source_language_manager_get_language_ids")
  (return-type "const-gchar**")
)

(define-method get_language
  (of-object "GtkSourceLanguageManager")
  (c-name "gtk_source_language_manager_get_language")
  (return-type "GtkSourceLanguage*")
  (parameters
    '("const-gchar*" "id")
  )
)

(define-method get_search_path
  (of-object "GtkSourceLanguageManager")
  (c-name "gtk_source_language_manager_get_search_path")
  (return-type "const-gchar**")
)

(define-method set_search_path
  (of-object "GtkSourceLanguageManager")
  (c-name "gtk_source_language_manager_set_search_path")
  (return-type "none")
  (parameters
    '("gchar**" "dirs")
  )
)



;; From gtksourcemarker.h

;(define-method set_marker_type
;  (of-object "GtkSourceMarker")
;  (c-name "gtk_source_marker_set_marker_type")
;  (return-type "none")
;  (parameters
;    '("const-gchar*" "type")
;  )
;)

;(define-method get_marker_type
;  (of-object "GtkSourceMarker")
;  (c-name "gtk_source_marker_get_marker_type")
;  (return-type "gchar*")
;)

;(define-method get_line
;  (of-object "GtkSourceMarker")
;  (c-name "gtk_source_marker_get_line")
;  (return-type "gint")
;)

;(define-method get_name
;  (of-object "GtkSourceMarker")
;  (c-name "gtk_source_marker_get_name")
;  (return-type "const-gchar*")
;)

;(define-method get_buffer
;  (of-object "GtkSourceMarker")
;  (c-name "gtk_source_marker_get_buffer")
;  (return-type "GtkSourceBuffer*")
;)

;(define-method next
;  (of-object "GtkSourceMarker")
;  (c-name "gtk_source_marker_next")
;  (return-type "GtkSourceMarker*")
;)

;(define-method prev
;  (of-object "GtkSourceMarker")
;  (c-name "gtk_source_marker_prev")
;  (return-type "GtkSourceMarker*")
;)



;; From gtksourcestyle.h

(define-function gtk_source_style_new
  (c-name "gtk_source_style_new")
  (is-constructor-of "GtkSourceStyle")
  (return-type "GtkSourceStyle*")
)

(define-method copy
  (of-object "GtkSourceStyle")
  (c-name "gtk_source_style_copy")
  (return-type "GtkSourceStyle*")
)


;; From gtksourcestyleschememanager.h

(define-function gtk_source_style_scheme_manager_new
  (c-name "gtk_source_style_scheme_manager_new")
  (is-constructor-of "GtkSourceStyleSchemeManager")
  (return-type "GtkSourceStyleSchemeManager*")
)

(define-function style_scheme_manager_get_default
  (c-name "gtk_source_style_scheme_manager_get_default")
  (return-type "GtkSourceStyleSchemeManager*")
)

(define-method set_search_path
  (of-object "GtkSourceStyleSchemeManager")
  (c-name "gtk_source_style_scheme_manager_set_search_path")
  (return-type "none")
  (parameters
    '("gchar**" "path")
  )
)

(define-method get_search_path
  (of-object "GtkSourceStyleSchemeManager")
  (c-name "gtk_source_style_scheme_manager_get_search_path")
  (return-type "const-gchar**")
)

(define-method append_search_path
  (of-object "GtkSourceStyleSchemeManager")
  (c-name "gtk_source_style_scheme_manager_append_search_path")
  (return-type "none")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method prepend_search_path
  (of-object "GtkSourceStyleSchemeManager")
  (c-name "gtk_source_style_scheme_manager_prepend_search_path")
  (return-type "none")
  (parameters
    '("const-gchar*" "path")
  )
)

(define-method get_scheme_ids
  (of-object "GtkSourceStyleSchemeManager")
  (c-name "gtk_source_style_scheme_manager_get_scheme_ids")
  (return-type "const-gchar**")
)

(define-method get_scheme
  (of-object "GtkSourceStyleSchemeManager")
  (c-name "gtk_source_style_scheme_manager_get_scheme")
  (return-type "GtkSourceStyleScheme*")
  (parameters
    '("const-gchar*" "scheme_id")
  )
)

(define-method force_rescan
  (of-object "GtkSourceStyleSchemeManager")
  (c-name "gtk_source_style_scheme_manager_force_rescan")
  (return-type "none")
)



;; From gtksourcestylescheme.h

(define-method get_id
  (of-object "GtkSourceStyleScheme")
  (c-name "gtk_source_style_scheme_get_id")
  (return-type "const-gchar*")
)

(define-method get_name
  (of-object "GtkSourceStyleScheme")
  (c-name "gtk_source_style_scheme_get_name")
  (return-type "const-gchar*")
)

(define-method get_description
  (of-object "GtkSourceStyleScheme")
  (c-name "gtk_source_style_scheme_get_description")
  (return-type "const-gchar*")
)

(define-method get_authors
  (of-object "GtkSourceStyleScheme")
  (c-name "gtk_source_style_scheme_get_authors")
  (return-type "const-gchar**")
)

(define-method get_filename
  (of-object "GtkSourceStyleScheme")
  (c-name "gtk_source_style_scheme_get_filename")
  (return-type "const-gchar*")
)

(define-method get_style
  (of-object "GtkSourceStyleScheme")
  (c-name "gtk_source_style_scheme_get_style")
  (return-type "GtkSourceStyle*")
  (parameters
    '("const-gchar*" "style_name")
  )
)

; (define-method set_style
;   (of-object "GtkSourceStyleScheme")
;   (c-name "gtk_source_style_scheme_set_style")
;   (return-type "none")
;   (parameters
;     '("const-gchar*" "name")
;     '("const-GtkSourceStyle*" "style")
;   )
; )



;; From gtksourceview.h

(define-function gtk_source_view_new
  (c-name "gtk_source_view_new")
  (is-constructor-of "GtkSourceView")
  (return-type "GtkWidget*")
  (properties
    '("buffer" (optional))
  )
)

(define-method set_show_line_numbers
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_show_line_numbers")
  (return-type "none")
  (parameters
    '("gboolean" "show")
  )
)

(define-method get_show_line_numbers
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_show_line_numbers")
  (return-type "gboolean")
)

;(define-method set_show_line_markers
;  (of-object "GtkSourceView")
;  (c-name "gtk_source_view_set_show_line_markers")
;  (return-type "none")
;  (parameters
;    '("gboolean" "show")
;  )
;)

;(define-method get_show_line_markers
;  (of-object "GtkSourceView")
;  (c-name "gtk_source_view_get_show_line_markers")
;  (return-type "gboolean")
;)

(define-method set_indent_width
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_indent_width")
  (return-type "none")
  (parameters
    '("guint" "width")
  )
)

(define-method get_indent_width
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_indent_width")
  (return-type "guint")
)

(define-method set_tab_width
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_tab_width")
  (return-type "none")
  (parameters
    '("guint" "width")
  )
)

(define-method get_tab_width
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_tab_width")
  (return-type "guint")
)

(define-method set_auto_indent
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_auto_indent")
  (return-type "none")
  (parameters
    '("gboolean" "enable")
  )
)

(define-method get_auto_indent
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_auto_indent")
  (return-type "gboolean")
)

(define-method set_insert_spaces_instead_of_tabs
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_insert_spaces_instead_of_tabs")
  (return-type "none")
  (parameters
    '("gboolean" "enable")
  )
)

(define-method get_insert_spaces_instead_of_tabs
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_insert_spaces_instead_of_tabs")
  (return-type "gboolean")
)

(define-method set_indent_on_tab
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_indent_on_tab")
  (return-type "none")
  (parameters
    '("gboolean" "enable")
  )
)

(define-method get_indent_on_tab
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_indent_on_tab")
  (return-type "gboolean")
)

(define-method set_highlight_current_line
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_highlight_current_line")
  (return-type "none")
  (parameters
    '("gboolean" "show")
  )
)

(define-method get_highlight_current_line
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_highlight_current_line")
  (return-type "gboolean")
)

(define-method set_show_right_margin
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_show_right_margin")
  (return-type "none")
  (parameters
    '("gboolean" "show")
  )
)

(define-method get_show_right_margin
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_show_right_margin")
  (return-type "gboolean")
)

(define-method set_right_margin_position
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_right_margin_position")
  (return-type "none")
  (parameters
    '("guint" "pos")
  )
)

(define-method get_right_margin_position
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_right_margin_position")
  (return-type "guint")
)

;(define-method set_marker_pixbuf
;  (of-object "GtkSourceView")
;  (c-name "gtk_source_view_set_marker_pixbuf")
;  (return-type "none")
;  (parameters
;    '("const-gchar*" "marker_type")
;    '("GdkPixbuf*" "pixbuf")
;  )
;)

;(define-method get_marker_pixbuf
;  (of-object "GtkSourceView")
;  (c-name "gtk_source_view_get_marker_pixbuf")
;  (return-type "GdkPixbuf*")
;  (parameters
;    '("const-gchar*" "marker_type")
;  )
;)

(define-method set_smart_home_end
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_set_smart_home_end")
  (return-type "none")
  (parameters
    '("GtkSourceSmartHomeEndType" "smart_he")
  )
)

(define-method get_smart_home_end
  (of-object "GtkSourceView")
  (c-name "gtk_source_view_get_smart_home_end")
  (return-type "GtkSourceSmartHomeEndType")
)
