;; -*-theme-d-*-

;; Copyright (C) 2015 Tommi Höynälänmaa

(define-interface (gnome gtk)

  (import (standard-library core)
	  (gnome gobject))

  (import-and-reexport (gnome wrap gtk)
		       (gnome wrap gtk-support))

  (declare gtk-text-buffer-create-tag
	   (:procedure (<gtk-text-buffer> <string> (rest <object>))
		       <gtk-text-tag>
		       nonpure))

  (declare-method create-tag
		  (:simple-proc (<gtk-text-buffer> <string> (rest <object>))
				<gtk-text-tag>
				nonpure))

  (declare gtk-entry-new
	   (:procedure () <gtk-widget> nonpure))

  (declare gtk-entry-create
	   (:procedure () <gtk-entry> nonpure))

  (declare gtk-tree-or-list-store-set
	   (:procedure (<object> <object> (rest <object>))
		       <none> nonpure))

  (declare gtk-tree-selection-get-selected
  	   (:procedure (<gtk-tree-selection>)
  	    (:pair <gtk-tree-model> <gtk-tree-iter>)
  	    pure))

  (declare-method get-selected
  	   (:simple-proc (<gtk-tree-selection>)
  	    (:pair <gtk-tree-model> <gtk-tree-iter>)
  	    pure))

  (declare gtk-stock-id (:simple-proc (<symbol>) <string> pure))

  (declare gtk-dialog-new (:simple-proc (<string> <boolean> <boolean>)
					<gtk-widget> nonpure))

  (declare gtk-dialog-create (:simple-proc (<string> <boolean> <boolean>)
					   <gtk-dialog> nonpure))

  (declare gtk-frame-new-alt (:simple-proc
			      ((:maybe <string>) <symbol> <integer> <integer>)
			     <gtk-widget> nonpure))

  (declare gtk-frame-create-alt
	   (:simple-proc
	    ((:maybe <string>) <symbol> <integer> <integer>)
	    <gtk-frame> nonpure))

  (declare gtk-action-group-add-actions
  	   (:simple-proc (<gtk-action-group> <list>) <none> nonpure))

  (declare-method add-actions
  	   (:simple-proc (<gtk-action-group> <list>) <none> nonpure))

  (declare gtk-action-group-add-toggle-actions
  	   (:simple-proc (<gtk-action-group> <list>) <none> nonpure))

  (declare-method add-toggle-actions
  	   (:simple-proc (<gtk-action-group> <list>) <none> nonpure))

  (declare gtk-action-group-add-radio-actions
  	   (:simple-proc (<gtk-action-group> <list> <integer> <signal-handler>)
  			 <none> nonpure))

  (declare-method add-radio-actions
  	   (:simple-proc (<gtk-action-group> <list> <integer> <signal-handler>)
  			 <none> nonpure))

  (declare gtk-ui-manager-add-ui-from-string
  	   (:simple-proc (<gtk-ui-manager> <string>) <integer> nonpure))

  (declare-method add-ui-from-string
  	   (:simple-proc (<gtk-ui-manager> <string>) <integer> nonpure))

  (declare gtk-rc-style-create
	   (:simple-proc () <gtk-rc-style> nonpure))

  (declare gtk-combo-box-create-text
    (:simple-proc () <gtk-combo-box> nonpure))

  )
