Next: define-g-enum, Previous: define-g-object-class, Up: Generating type definitions by introspection
     (define-g-interface g-type-name name (&key (export t) type-initializer)
       &body property*)
     
     property ::= (name accessor gname type readable writable)
     property ::= (:cffi name acessor type reader writer)
   Parameters of define-g-interface
     
interface_get_type. 
Parameters of property:
     
gobject-class metaclass for information. 
gobject-class metaclass for information. 
Macro that expands to defclass for specified interface. Additionally, if export is true, it exports accessor names and name of a interface.
   
Example:
     (define-g-interface "GtkFileChooser" file-chooser
       (:export t :type-initializer "gtk_file_chooser_get_type")
       (do-overwrite-confirmation file-chooser-do-overwrite-confirmation "do-overwrite-confirmation" "gboolean" t t)
       (select-multiple file-chooser-select-multiple "select-multiple" "gboolean" t t)
       (filter file-chooser-filter "filter" "GtkFileFilter" t t)
       (local-only file-chooser-local-only "local-only" "gboolean" t t)
       (preview-widget file-chooser-preview-widget "preview-widget" "GtkWidget" t t)
       (use-preview-label file-chooser-use-preview-label "use-preview-label" "gboolean" t t)
       (preview-widget-active file-chooser-preview-widget-active "preview-widget-active" "gboolean" t t)
       (file-system-backend file-chooser-file-system-backend "file-system-backend" "gchararray" nil nil)
       (extra-widget file-chooser-extra-widget "extra-widget" "GtkWidget" t t)
       (show-hidden file-chooser-show-hidden "show-hidden" "gboolean" t t)
       (action file-chooser-action "action" "GtkFileChooserAction" t t)
       (:cffi current-name file-chooser-current-name
        (:string :free-to-foreign t :encoding :utf-8) nil "gtk_file_chooser_set_current_name")
       (:cffi filename file-chooser-filename
        (g-string :free-from-foreign t :free-to-foreign t)
        "gtk_file_chooser_get_filename" "gtk_file_chooser_set_filename")
       (:cffi current-folder file-chooser-current-folder
        (g-string :free-from-foreign t :free-to-foreign t)
        "gtk_file_chooser_get_current_folder"
        "gtk_file_chooser_set_current_folder")
       (:cffi uri file-chooser-uri
        (g-string :free-from-foreign t :free-to-foreign t)
        "gtk_file_chooser_get_uri" "gtk_file_chooser_set_uri")
       (:cffi current-folder-uri file-chooser-current-folder-uri
        (g-string :free-from-foreign t :free-to-foreign t)
        "gtk_file_chooser_get_current_folder_uri"
        "gtk_file_chooser_set_current_folder_uri")
       (:cffi preview-filename file-chooser-preview-filename
        (g-string :free-from-foreign t :free-to-foreign t)
        "gtk_file_chooser_get_preview_filename" nil)
       (:cffi preview-uri file-chooser-preview-uri
        (g-string :free-from-foreign t :free-to-foreign t)
        "gtk_file_chooser_get_preview_uri" nil))