Add 100% API parity with gerbil-qt and port all 26 examples

ober

fb8e6613fbf50b9f93422b5e8952c80b37532649

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6c1c914
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.so
+*.wpo
diff --git a/chez-qt/ffi.ss b/chez-qt/ffi.ss
index f08e0e6..f469328 100644
--- a/chez-qt/ffi.ss
+++ b/chez-qt/ffi.ss
@@ -268,7 +268,513 @@
     ffi-qt-const-cursor-arrow ffi-qt-const-cursor-cross
     ffi-qt-const-cursor-wait ffi-qt-const-cursor-ibeam
     ffi-qt-const-cursor-pointing-hand ffi-qt-const-cursor-forbidden
-    ffi-qt-const-cursor-busy)
+    ffi-qt-const-cursor-busy
+
+    ;; Frame constants
+    ffi-qt-const-frame-no-frame ffi-qt-const-frame-box ffi-qt-const-frame-panel
+    ffi-qt-const-frame-win-panel ffi-qt-const-frame-hline ffi-qt-const-frame-vline
+    ffi-qt-const-frame-styled-panel
+    ffi-qt-const-frame-plain ffi-qt-const-frame-raised ffi-qt-const-frame-sunken
+
+    ;; Button box constants
+    ffi-qt-const-button-ok ffi-qt-const-button-cancel ffi-qt-const-button-apply
+    ffi-qt-const-button-close ffi-qt-const-button-yes ffi-qt-const-button-no
+    ffi-qt-const-button-reset ffi-qt-const-button-help ffi-qt-const-button-save
+    ffi-qt-const-button-discard
+    ffi-qt-const-button-role-invalid ffi-qt-const-button-role-accept
+    ffi-qt-const-button-role-reject ffi-qt-const-button-role-destructive
+    ffi-qt-const-button-role-action ffi-qt-const-button-role-help
+    ffi-qt-const-button-role-yes ffi-qt-const-button-role-no
+    ffi-qt-const-button-role-apply ffi-qt-const-button-role-reset
+
+    ;; Day-of-week constants
+    ffi-qt-const-monday ffi-qt-const-tuesday ffi-qt-const-wednesday
+    ffi-qt-const-thursday ffi-qt-const-friday ffi-qt-const-saturday ffi-qt-const-sunday
+
+    ;; Settings constants
+    ffi-qt-const-settings-native ffi-qt-const-settings-ini
+
+    ;; Completer constants
+    ffi-qt-const-completer-popup ffi-qt-const-completer-inline
+    ffi-qt-const-completer-unfiltered-popup
+
+    ;; Case sensitivity
+    ffi-qt-const-case-insensitive ffi-qt-const-case-sensitive
+
+    ;; Match filter mode
+    ffi-qt-const-match-starts-with ffi-qt-const-match-contains
+    ffi-qt-const-match-ends-with
+
+    ;; Validator state
+    ffi-qt-const-validator-invalid ffi-qt-const-validator-intermediate
+    ffi-qt-const-validator-acceptable
+
+    ;; PlainTextEdit wrap
+    ffi-qt-const-plain-no-wrap ffi-qt-const-plain-widget-wrap
+
+    ;; ToolButton constants
+    ffi-qt-const-delayed-popup ffi-qt-const-menu-button-popup ffi-qt-const-instant-popup
+    ffi-qt-const-no-arrow ffi-qt-const-up-arrow ffi-qt-const-down-arrow
+    ffi-qt-const-left-arrow ffi-qt-const-right-arrow
+    ffi-qt-const-tool-button-icon-only ffi-qt-const-tool-button-text-only
+    ffi-qt-const-tool-button-text-beside-icon ffi-qt-const-tool-button-text-under-icon
+
+    ;; Size policy
+    ffi-qt-const-size-fixed ffi-qt-const-size-minimum ffi-qt-const-size-minimum-expanding
+    ffi-qt-const-size-maximum ffi-qt-const-size-preferred ffi-qt-const-size-expanding
+    ffi-qt-const-size-ignored
+
+    ;; Graphics constants
+    ffi-qt-const-item-movable ffi-qt-const-item-selectable ffi-qt-const-item-focusable
+    ffi-qt-const-drag-none ffi-qt-const-drag-scroll ffi-qt-const-drag-rubber-band
+    ffi-qt-const-render-antialiasing ffi-qt-const-render-smooth-pixmap
+    ffi-qt-const-render-text-antialiasing
+
+    ;; Process state
+    ffi-qt-const-process-not-running ffi-qt-const-process-starting
+    ffi-qt-const-process-running
+
+    ;; MDI view mode
+    ffi-qt-const-mdi-subwindow ffi-qt-const-mdi-tabbed
+
+    ;; LCD constants
+    ffi-qt-const-lcd-dec ffi-qt-const-lcd-hex ffi-qt-const-lcd-oct ffi-qt-const-lcd-bin
+    ffi-qt-const-lcd-outline ffi-qt-const-lcd-filled ffi-qt-const-lcd-flat
+
+    ;; Dir filter flags
+    ffi-qt-const-dir-dirs ffi-qt-const-dir-files ffi-qt-const-dir-hidden
+    ffi-qt-const-dir-no-dot-and-dot-dot
+
+    ;; Cursor movement
+    ffi-qt-const-cursor-no-move ffi-qt-const-cursor-start ffi-qt-const-cursor-up
+    ffi-qt-const-cursor-start-of-line ffi-qt-const-cursor-start-of-block
+    ffi-qt-const-cursor-previous-char ffi-qt-const-cursor-previous-block
+    ffi-qt-const-cursor-end-of-line ffi-qt-const-cursor-end-of-block
+    ffi-qt-const-cursor-next-char ffi-qt-const-cursor-next-block
+    ffi-qt-const-cursor-end ffi-qt-const-cursor-down
+    ffi-qt-const-cursor-left ffi-qt-const-cursor-word-left
+    ffi-qt-const-cursor-next-word ffi-qt-const-cursor-right
+    ffi-qt-const-cursor-word-right ffi-qt-const-cursor-previous-word
+    ffi-qt-const-move-anchor ffi-qt-const-keep-anchor
+
+    ;; Find flags
+    ffi-qt-const-find-backward ffi-qt-const-find-case-sensitive
+    ffi-qt-const-find-whole-words
+
+    ;; Dock area
+    ffi-qt-const-dock-left ffi-qt-const-dock-right
+    ffi-qt-const-dock-top ffi-qt-const-dock-bottom
+
+    ;; Tray icon message type
+    ffi-qt-const-tray-no-icon ffi-qt-const-tray-information
+    ffi-qt-const-tray-warning ffi-qt-const-tray-critical
+
+    ;; Key constants
+    ffi-qt-const-key-escape ffi-qt-const-key-tab ffi-qt-const-key-backtab
+    ffi-qt-const-key-backspace ffi-qt-const-key-return ffi-qt-const-key-enter
+    ffi-qt-const-key-insert ffi-qt-const-key-delete ffi-qt-const-key-pause
+    ffi-qt-const-key-home ffi-qt-const-key-end
+    ffi-qt-const-key-left ffi-qt-const-key-up ffi-qt-const-key-right ffi-qt-const-key-down
+    ffi-qt-const-key-page-up ffi-qt-const-key-page-down
+    ffi-qt-const-key-f1 ffi-qt-const-key-f2 ffi-qt-const-key-f3 ffi-qt-const-key-f4
+    ffi-qt-const-key-f5 ffi-qt-const-key-f6 ffi-qt-const-key-f7 ffi-qt-const-key-f8
+    ffi-qt-const-key-f9 ffi-qt-const-key-f10 ffi-qt-const-key-f11 ffi-qt-const-key-f12
+    ffi-qt-const-key-space
+
+    ;; Keyboard modifiers
+    ffi-qt-const-mod-none ffi-qt-const-mod-shift ffi-qt-const-mod-control
+    ffi-qt-const-mod-alt ffi-qt-const-mod-meta
+
+    ;; Selection mode/behavior
+    ffi-qt-const-select-no-selection ffi-qt-const-select-single
+    ffi-qt-const-select-multi ffi-qt-const-select-extended ffi-qt-const-select-contiguous
+    ffi-qt-const-select-items ffi-qt-const-select-rows ffi-qt-const-select-columns
+
+    ;; Edit triggers
+    ffi-qt-const-no-edit-triggers ffi-qt-const-edit-double-click
+    ffi-qt-const-edit-selected-click ffi-qt-const-edit-any-key-pressed
+    ffi-qt-const-edit-all-triggers
+
+    ;; Sort order
+    ffi-qt-const-sort-ascending ffi-qt-const-sort-descending
+
+    ;; Header resize mode
+    ffi-qt-const-header-interactive ffi-qt-const-header-stretch
+    ffi-qt-const-header-fixed ffi-qt-const-header-resize-to-contents
+
+    ;; Check state
+    ffi-qt-const-unchecked ffi-qt-const-partially-checked ffi-qt-const-checked
+
+    ;; ListView flow
+    ffi-qt-const-flow-top-to-bottom ffi-qt-const-flow-left-to-right
+
+    ;; Font Dialog / Color Dialog
+    ffi-qt-font-dialog-get-font ffi-qt-color-dialog-get-color
+
+    ;; Stacked Widget
+    ffi-qt-stacked-widget-create ffi-qt-stacked-widget-add-widget
+    ffi-qt-stacked-widget-set-current-index ffi-qt-stacked-widget-current-index
+    ffi-qt-stacked-widget-count ffi-qt-stacked-widget-on-current-changed
+
+    ;; Dock Widget
+    ffi-qt-dock-widget-create ffi-qt-dock-widget-set-widget
+    ffi-qt-dock-widget-widget ffi-qt-dock-widget-set-title ffi-qt-dock-widget-title
+    ffi-qt-dock-widget-set-floating ffi-qt-dock-widget-is-floating
+    ffi-qt-main-window-add-dock-widget
+
+    ;; System Tray Icon
+    ffi-qt-system-tray-icon-create ffi-qt-system-tray-icon-set-tooltip
+    ffi-qt-system-tray-icon-set-icon ffi-qt-system-tray-icon-show
+    ffi-qt-system-tray-icon-hide ffi-qt-system-tray-icon-show-message
+    ffi-qt-system-tray-icon-set-context-menu
+    ffi-qt-system-tray-icon-on-activated
+    ffi-qt-system-tray-icon-is-available ffi-qt-system-tray-icon-destroy
+
+    ;; QPainter
+    ffi-qt-pixmap-create-blank ffi-qt-pixmap-fill
+    ffi-qt-painter-create ffi-qt-painter-end ffi-qt-painter-destroy
+    ffi-qt-painter-set-pen-color ffi-qt-painter-set-pen-width
+    ffi-qt-painter-set-brush-color ffi-qt-painter-set-font-painter
+    ffi-qt-painter-set-antialiasing
+    ffi-qt-painter-draw-line ffi-qt-painter-draw-rect ffi-qt-painter-fill-rect
+    ffi-qt-painter-draw-ellipse ffi-qt-painter-draw-text ffi-qt-painter-draw-text-rect
+    ffi-qt-painter-draw-pixmap ffi-qt-painter-draw-point ffi-qt-painter-draw-arc
+    ffi-qt-painter-save ffi-qt-painter-restore
+    ffi-qt-painter-translate ffi-qt-painter-rotate ffi-qt-painter-scale
+
+    ;; Drag and Drop
+    ffi-qt-widget-set-accept-drops
+    ffi-qt-drop-filter-install ffi-qt-drop-filter-last-text
+    ffi-qt-drop-filter-destroy ffi-qt-drag-text
+
+    ;; Double Spin Box
+    ffi-qt-double-spin-box-create ffi-qt-double-spin-box-set-value
+    ffi-qt-double-spin-box-value ffi-qt-double-spin-box-set-range
+    ffi-qt-double-spin-box-set-single-step ffi-qt-double-spin-box-set-decimals
+    ffi-qt-double-spin-box-decimals ffi-qt-double-spin-box-set-prefix
+    ffi-qt-double-spin-box-set-suffix ffi-qt-double-spin-box-on-value-changed
+
+    ;; Date Edit
+    ffi-qt-date-edit-create ffi-qt-date-edit-set-date
+    ffi-qt-date-edit-year ffi-qt-date-edit-month ffi-qt-date-edit-day
+    ffi-qt-date-edit-date-string ffi-qt-date-edit-set-minimum-date
+    ffi-qt-date-edit-set-maximum-date ffi-qt-date-edit-set-calendar-popup
+    ffi-qt-date-edit-set-display-format ffi-qt-date-edit-on-date-changed
+
+    ;; Time Edit
+    ffi-qt-time-edit-create ffi-qt-time-edit-set-time
+    ffi-qt-time-edit-hour ffi-qt-time-edit-minute ffi-qt-time-edit-second
+    ffi-qt-time-edit-time-string ffi-qt-time-edit-set-display-format
+    ffi-qt-time-edit-on-time-changed
+
+    ;; Frame
+    ffi-qt-frame-create ffi-qt-frame-set-frame-shape ffi-qt-frame-frame-shape
+    ffi-qt-frame-set-frame-shadow ffi-qt-frame-frame-shadow
+    ffi-qt-frame-set-line-width ffi-qt-frame-line-width ffi-qt-frame-set-mid-line-width
+
+    ;; Progress Dialog
+    ffi-qt-progress-dialog-create ffi-qt-progress-dialog-set-value
+    ffi-qt-progress-dialog-value ffi-qt-progress-dialog-set-range
+    ffi-qt-progress-dialog-set-label-text ffi-qt-progress-dialog-was-canceled
+    ffi-qt-progress-dialog-set-minimum-duration
+    ffi-qt-progress-dialog-set-auto-close ffi-qt-progress-dialog-set-auto-reset
+    ffi-qt-progress-dialog-reset ffi-qt-progress-dialog-on-canceled
+
+    ;; Input Dialog
+    ffi-qt-input-dialog-get-text ffi-qt-input-dialog-get-int
+    ffi-qt-input-dialog-get-double ffi-qt-input-dialog-get-item
+    ffi-qt-input-dialog-was-accepted
+
+    ;; Form Layout
+    ffi-qt-form-layout-create ffi-qt-form-layout-add-row
+    ffi-qt-form-layout-add-row-widget ffi-qt-form-layout-add-spanning-widget
+    ffi-qt-form-layout-row-count
+
+    ;; Shortcut
+    ffi-qt-shortcut-create ffi-qt-shortcut-set-key
+    ffi-qt-shortcut-set-enabled ffi-qt-shortcut-is-enabled
+    ffi-qt-shortcut-on-activated ffi-qt-shortcut-destroy
+
+    ;; Text Browser
+    ffi-qt-text-browser-create ffi-qt-text-browser-set-html
+    ffi-qt-text-browser-set-plain-text ffi-qt-text-browser-plain-text
+    ffi-qt-text-browser-set-open-external-links
+    ffi-qt-text-browser-set-source ffi-qt-text-browser-source
+    ffi-qt-text-browser-scroll-to-bottom ffi-qt-text-browser-append
+    ffi-qt-text-browser-html ffi-qt-text-browser-on-anchor-clicked
+
+    ;; Button Box
+    ffi-qt-button-box-create ffi-qt-button-box-button
+    ffi-qt-button-box-add-button
+    ffi-qt-button-box-on-accepted ffi-qt-button-box-on-rejected
+    ffi-qt-button-box-on-clicked
+
+    ;; Calendar
+    ffi-qt-calendar-create ffi-qt-calendar-set-selected-date
+    ffi-qt-calendar-selected-year ffi-qt-calendar-selected-month
+    ffi-qt-calendar-selected-day ffi-qt-calendar-selected-date-string
+    ffi-qt-calendar-set-minimum-date ffi-qt-calendar-set-maximum-date
+    ffi-qt-calendar-set-first-day-of-week ffi-qt-calendar-set-grid-visible
+    ffi-qt-calendar-is-grid-visible ffi-qt-calendar-set-navigation-bar-visible
+    ffi-qt-calendar-on-selection-changed ffi-qt-calendar-on-clicked
+
+    ;; QSettings
+    ffi-qt-settings-create ffi-qt-settings-create-file
+    ffi-qt-settings-set-string ffi-qt-settings-value-string
+    ffi-qt-settings-set-int ffi-qt-settings-value-int
+    ffi-qt-settings-set-double ffi-qt-settings-value-double
+    ffi-qt-settings-set-bool ffi-qt-settings-value-bool
+    ffi-qt-settings-contains ffi-qt-settings-remove
+    ffi-qt-settings-all-keys ffi-qt-settings-child-keys ffi-qt-settings-child-groups
+    ffi-qt-settings-begin-group ffi-qt-settings-end-group ffi-qt-settings-group
+    ffi-qt-settings-sync ffi-qt-settings-clear
+    ffi-qt-settings-file-name ffi-qt-settings-is-writable ffi-qt-settings-destroy
+
+    ;; QCompleter
+    ffi-qt-completer-create ffi-qt-completer-set-model-strings
+    ffi-qt-completer-set-case-sensitivity ffi-qt-completer-set-completion-mode
+    ffi-qt-completer-set-filter-mode ffi-qt-completer-set-max-visible-items
+    ffi-qt-completer-completion-count ffi-qt-completer-current-completion
+    ffi-qt-completer-set-completion-prefix
+    ffi-qt-completer-on-activated
+    ffi-qt-line-edit-set-completer ffi-qt-completer-destroy
+
+    ;; Tooltip / WhatsThis
+    ffi-qt-tooltip-show-text ffi-qt-tooltip-hide-text ffi-qt-tooltip-is-visible
+    ffi-qt-widget-tooltip ffi-qt-widget-set-whats-this ffi-qt-widget-whats-this
+
+    ;; QStandardItemModel
+    ffi-qt-standard-model-create ffi-qt-standard-model-destroy
+    ffi-qt-standard-model-row-count ffi-qt-standard-model-column-count
+    ffi-qt-standard-model-set-row-count ffi-qt-standard-model-set-column-count
+    ffi-qt-standard-model-set-item ffi-qt-standard-model-item
+    ffi-qt-standard-model-insert-row ffi-qt-standard-model-insert-column
+    ffi-qt-standard-model-remove-row ffi-qt-standard-model-remove-column
+    ffi-qt-standard-model-clear
+    ffi-qt-standard-model-set-horizontal-header
+    ffi-qt-standard-model-set-vertical-header
+
+    ;; QStandardItem
+    ffi-qt-standard-item-create ffi-qt-standard-item-text
+    ffi-qt-standard-item-set-text
+    ffi-qt-standard-item-tooltip ffi-qt-standard-item-set-tooltip
+    ffi-qt-standard-item-set-editable ffi-qt-standard-item-is-editable
+    ffi-qt-standard-item-set-enabled ffi-qt-standard-item-is-enabled
+    ffi-qt-standard-item-set-selectable ffi-qt-standard-item-is-selectable
+    ffi-qt-standard-item-set-checkable ffi-qt-standard-item-is-checkable
+    ffi-qt-standard-item-set-check-state ffi-qt-standard-item-check-state
+    ffi-qt-standard-item-set-icon
+    ffi-qt-standard-item-append-row ffi-qt-standard-item-row-count
+    ffi-qt-standard-item-column-count ffi-qt-standard-item-child
+
+    ;; QStringListModel
+    ffi-qt-string-list-model-create ffi-qt-string-list-model-destroy
+    ffi-qt-string-list-model-set-strings ffi-qt-string-list-model-strings
+    ffi-qt-string-list-model-row-count
+
+    ;; Views (common)
+    ffi-qt-view-set-model ffi-qt-view-set-selection-mode
+    ffi-qt-view-set-selection-behavior ffi-qt-view-set-alternating-row-colors
+    ffi-qt-view-set-sorting-enabled ffi-qt-view-set-edit-triggers
+
+    ;; QListView
+    ffi-qt-list-view-create ffi-qt-list-view-set-flow
+
+    ;; QTableView
+    ffi-qt-table-view-create ffi-qt-table-view-set-column-width
+    ffi-qt-table-view-set-row-height
+    ffi-qt-table-view-hide-column ffi-qt-table-view-show-column
+    ffi-qt-table-view-hide-row ffi-qt-table-view-show-row
+    ffi-qt-table-view-resize-columns-to-contents
+    ffi-qt-table-view-resize-rows-to-contents
+
+    ;; QTreeView
+    ffi-qt-tree-view-create ffi-qt-tree-view-expand-all ffi-qt-tree-view-collapse-all
+    ffi-qt-tree-view-set-indentation ffi-qt-tree-view-indentation
+    ffi-qt-tree-view-set-root-is-decorated ffi-qt-tree-view-set-header-hidden
+    ffi-qt-tree-view-set-column-width
+
+    ;; QHeaderView (via view)
+    ffi-qt-view-header-set-stretch-last-section
+    ffi-qt-view-header-set-section-resize-mode
+    ffi-qt-view-header-hide ffi-qt-view-header-show
+    ffi-qt-view-header-set-default-section-size
+
+    ;; QSortFilterProxyModel
+    ffi-qt-sort-filter-proxy-create ffi-qt-sort-filter-proxy-destroy
+    ffi-qt-sort-filter-proxy-set-source-model
+    ffi-qt-sort-filter-proxy-set-filter-regex
+    ffi-qt-sort-filter-proxy-set-filter-column
+    ffi-qt-sort-filter-proxy-set-filter-case-sensitivity
+    ffi-qt-sort-filter-proxy-set-filter-role
+    ffi-qt-sort-filter-proxy-sort ffi-qt-sort-filter-proxy-set-sort-role
+    ffi-qt-sort-filter-proxy-set-dynamic-sort-filter
+    ffi-qt-sort-filter-proxy-invalidate-filter
+    ffi-qt-sort-filter-proxy-row-count
+
+    ;; View signals + selection
+    ffi-qt-view-on-clicked ffi-qt-view-on-double-clicked
+    ffi-qt-view-on-activated ffi-qt-view-on-selection-changed
+    ffi-qt-view-last-clicked-row ffi-qt-view-last-clicked-col
+    ffi-qt-view-selected-rows ffi-qt-view-current-row
+
+    ;; Validators
+    ffi-qt-int-validator-create ffi-qt-double-validator-create
+    ffi-qt-regex-validator-create ffi-qt-validator-destroy
+    ffi-qt-validator-validate ffi-qt-line-edit-set-validator
+    ffi-qt-line-edit-has-acceptable-input
+
+    ;; QPlainTextEdit
+    ffi-qt-plain-text-edit-create ffi-qt-plain-text-edit-set-text
+    ffi-qt-plain-text-edit-text ffi-qt-plain-text-edit-append
+    ffi-qt-plain-text-edit-clear ffi-qt-plain-text-edit-set-read-only
+    ffi-qt-plain-text-edit-is-read-only ffi-qt-plain-text-edit-set-placeholder
+    ffi-qt-plain-text-edit-line-count ffi-qt-plain-text-edit-set-max-block-count
+    ffi-qt-plain-text-edit-cursor-line ffi-qt-plain-text-edit-cursor-column
+    ffi-qt-plain-text-edit-set-line-wrap
+    ffi-qt-plain-text-edit-on-text-changed
+    ;; Editor extensions
+    ffi-qt-plain-text-edit-cursor-position ffi-qt-plain-text-edit-set-cursor-position
+    ffi-qt-plain-text-edit-move-cursor
+    ffi-qt-plain-text-edit-select-all ffi-qt-plain-text-edit-selected-text
+    ffi-qt-plain-text-edit-selection-start ffi-qt-plain-text-edit-selection-end
+    ffi-qt-plain-text-edit-set-selection ffi-qt-plain-text-edit-has-selection
+    ffi-qt-plain-text-edit-insert-text ffi-qt-plain-text-edit-remove-selected-text
+    ffi-qt-plain-text-edit-undo ffi-qt-plain-text-edit-redo
+    ffi-qt-plain-text-edit-can-undo
+    ffi-qt-plain-text-edit-cut ffi-qt-plain-text-edit-copy ffi-qt-plain-text-edit-paste
+    ffi-qt-plain-text-edit-text-length ffi-qt-plain-text-edit-text-range
+    ffi-qt-plain-text-edit-line-from-position ffi-qt-plain-text-edit-line-end-position
+    ffi-qt-plain-text-edit-find-text
+    ffi-qt-plain-text-edit-ensure-cursor-visible ffi-qt-plain-text-edit-center-cursor
+    ffi-qt-text-document-create ffi-qt-plain-text-document-create
+    ffi-qt-text-document-destroy
+    ffi-qt-plain-text-edit-document ffi-qt-plain-text-edit-set-document
+    ffi-qt-text-document-is-modified ffi-qt-text-document-set-modified
+
+    ;; QToolButton
+    ffi-qt-tool-button-create ffi-qt-tool-button-set-text ffi-qt-tool-button-text
+    ffi-qt-tool-button-set-icon ffi-qt-tool-button-set-menu
+    ffi-qt-tool-button-set-popup-mode ffi-qt-tool-button-set-auto-raise
+    ffi-qt-tool-button-set-arrow-type ffi-qt-tool-button-set-tool-button-style
+    ffi-qt-tool-button-on-clicked
+
+    ;; Layout spacers / Size policy
+    ffi-qt-layout-add-spacing
+    ffi-qt-widget-set-size-policy ffi-qt-layout-set-stretch-factor
+
+    ;; Graphics Scene
+    ffi-qt-graphics-scene-create ffi-qt-graphics-scene-add-rect
+    ffi-qt-graphics-scene-add-ellipse ffi-qt-graphics-scene-add-line
+    ffi-qt-graphics-scene-add-text ffi-qt-graphics-scene-add-pixmap
+    ffi-qt-graphics-scene-remove-item ffi-qt-graphics-scene-clear
+    ffi-qt-graphics-scene-items-count ffi-qt-graphics-scene-set-background
+    ffi-qt-graphics-scene-destroy
+
+    ;; Graphics View
+    ffi-qt-graphics-view-create ffi-qt-graphics-view-set-render-hint
+    ffi-qt-graphics-view-set-drag-mode ffi-qt-graphics-view-fit-in-view
+    ffi-qt-graphics-view-scale ffi-qt-graphics-view-center-on
+
+    ;; Graphics Item
+    ffi-qt-graphics-item-set-pos ffi-qt-graphics-item-x ffi-qt-graphics-item-y
+    ffi-qt-graphics-item-set-pen ffi-qt-graphics-item-set-brush
+    ffi-qt-graphics-item-set-flags ffi-qt-graphics-item-set-tooltip
+    ffi-qt-graphics-item-set-zvalue ffi-qt-graphics-item-zvalue
+    ffi-qt-graphics-item-set-rotation ffi-qt-graphics-item-set-scale
+    ffi-qt-graphics-item-set-visible
+
+    ;; Paint Widget
+    ffi-qt-paint-widget-create ffi-qt-paint-widget-on-paint
+    ffi-qt-paint-widget-painter ffi-qt-paint-widget-update
+    ffi-qt-paint-widget-width ffi-qt-paint-widget-height
+
+    ;; QProcess
+    ffi-qt-process-create ffi-qt-process-start ffi-qt-process-write
+    ffi-qt-process-close-write ffi-qt-process-read-stdout ffi-qt-process-read-stderr
+    ffi-qt-process-wait-for-finished ffi-qt-process-exit-code ffi-qt-process-state
+    ffi-qt-process-kill ffi-qt-process-terminate
+    ffi-qt-process-on-finished ffi-qt-process-on-ready-read ffi-qt-process-destroy
+
+    ;; QWizard / QWizardPage
+    ffi-qt-wizard-create ffi-qt-wizard-add-page ffi-qt-wizard-set-start-id
+    ffi-qt-wizard-current-id ffi-qt-wizard-set-title ffi-qt-wizard-exec
+    ffi-qt-wizard-page-create ffi-qt-wizard-page-set-title
+    ffi-qt-wizard-page-set-subtitle ffi-qt-wizard-page-set-layout
+    ffi-qt-wizard-on-current-changed
+
+    ;; QMdiArea / QMdiSubWindow
+    ffi-qt-mdi-area-create ffi-qt-mdi-area-add-sub-window
+    ffi-qt-mdi-area-remove-sub-window ffi-qt-mdi-area-active-sub-window
+    ffi-qt-mdi-area-sub-window-count ffi-qt-mdi-area-cascade ffi-qt-mdi-area-tile
+    ffi-qt-mdi-area-set-view-mode ffi-qt-mdi-sub-window-set-title
+    ffi-qt-mdi-area-on-sub-window-activated
+
+    ;; QDial
+    ffi-qt-dial-create ffi-qt-dial-set-value ffi-qt-dial-value
+    ffi-qt-dial-set-range ffi-qt-dial-set-notches-visible ffi-qt-dial-set-wrapping
+    ffi-qt-dial-on-value-changed
+
+    ;; QLCDNumber
+    ffi-qt-lcd-create ffi-qt-lcd-display-int ffi-qt-lcd-display-double
+    ffi-qt-lcd-display-string ffi-qt-lcd-set-mode ffi-qt-lcd-set-segment-style
+
+    ;; QToolBox
+    ffi-qt-tool-box-create ffi-qt-tool-box-add-item
+    ffi-qt-tool-box-set-current-index ffi-qt-tool-box-current-index
+    ffi-qt-tool-box-count ffi-qt-tool-box-set-item-text
+    ffi-qt-tool-box-on-current-changed
+
+    ;; QUndoStack
+    ffi-qt-undo-stack-create ffi-qt-undo-stack-push
+    ffi-qt-undo-stack-undo ffi-qt-undo-stack-redo
+    ffi-qt-undo-stack-can-undo ffi-qt-undo-stack-can-redo
+    ffi-qt-undo-stack-undo-text ffi-qt-undo-stack-redo-text
+    ffi-qt-undo-stack-clear
+    ffi-qt-undo-stack-create-undo-action ffi-qt-undo-stack-create-redo-action
+    ffi-qt-undo-stack-destroy
+
+    ;; QFileSystemModel
+    ffi-qt-file-system-model-create ffi-qt-file-system-model-set-root-path
+    ffi-qt-file-system-model-set-filter ffi-qt-file-system-model-set-name-filters
+    ffi-qt-file-system-model-file-path ffi-qt-tree-view-set-file-system-root
+    ffi-qt-file-system-model-destroy
+
+    ;; Signal disconnect
+    ffi-qt-disconnect-all
+
+    ;; QSyntaxHighlighter
+    ffi-qt-syntax-highlighter-create ffi-qt-syntax-highlighter-destroy
+    ffi-qt-syntax-highlighter-add-rule ffi-qt-syntax-highlighter-add-keywords
+    ffi-qt-syntax-highlighter-add-multiline-rule
+    ffi-qt-syntax-highlighter-clear-rules ffi-qt-syntax-highlighter-rehighlight
+
+    ;; Line number area
+    ffi-qt-line-number-area-create ffi-qt-line-number-area-destroy
+    ffi-qt-line-number-area-set-visible
+    ffi-qt-line-number-area-set-bg-color ffi-qt-line-number-area-set-fg-color
+
+    ;; Extra selections
+    ffi-qt-plain-text-edit-clear-extra-selections
+    ffi-qt-plain-text-edit-add-extra-selection-line
+    ffi-qt-plain-text-edit-add-extra-selection-range
+    ffi-qt-plain-text-edit-apply-extra-selections
+
+    ;; Completer on editor
+    ffi-qt-completer-set-widget ffi-qt-completer-complete-rect
+
+    ;; QScintilla
+    ffi-qt-scintilla-create ffi-qt-scintilla-destroy
+    ffi-qt-scintilla-send-message ffi-qt-scintilla-send-message-string
+    ffi-qt-scintilla-receive-string
+    ffi-qt-scintilla-set-text ffi-qt-scintilla-get-text ffi-qt-scintilla-get-text-length
+    ffi-qt-scintilla-set-lexer-language ffi-qt-scintilla-get-lexer-language
+    ffi-qt-scintilla-set-read-only ffi-qt-scintilla-is-read-only
+    ffi-qt-scintilla-set-margin-width ffi-qt-scintilla-set-margin-type
+    ffi-qt-scintilla-set-focus
+    ffi-qt-scintilla-on-text-changed ffi-qt-scintilla-on-char-added
+    ffi-qt-scintilla-on-save-point-reached ffi-qt-scintilla-on-save-point-left
+    ffi-qt-scintilla-on-margin-clicked ffi-qt-scintilla-on-modified)
 
   (import (chezscheme))
 
@@ -1262,4 +1768,1500 @@
   (define ffi-qt-color-destroy
     (foreign-procedure "qt_color_destroy" (void*) void))
 
+  ;; -----------------------------------------------------------------------
+  ;; Font Dialog / Color Dialog
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-font-dialog-get-font
+    (foreign-procedure "qt_font_dialog_get_font" (void*) void*))
+  (define ffi-qt-color-dialog-get-color
+    (foreign-procedure "qt_color_dialog_get_color" (string void*) void*))
+
+  ;; -----------------------------------------------------------------------
+  ;; Stacked Widget
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-stacked-widget-create
+    (foreign-procedure "qt_stacked_widget_create" (void*) void*))
+  (define ffi-qt-stacked-widget-add-widget
+    (foreign-procedure "qt_stacked_widget_add_widget" (void* void*) int))
+  (define ffi-qt-stacked-widget-set-current-index
+    (foreign-procedure "qt_stacked_widget_set_current_index" (void* int) void))
+  (define ffi-qt-stacked-widget-current-index
+    (foreign-procedure "qt_stacked_widget_current_index" (void*) int))
+  (define ffi-qt-stacked-widget-count
+    (foreign-procedure "qt_stacked_widget_count" (void*) int))
+  (define ffi-qt-stacked-widget-on-current-changed
+    (foreign-procedure "chez_qt_stacked_widget_on_current_changed" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Dock Widget
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-dock-widget-create
+    (foreign-procedure "qt_dock_widget_create" (string void*) void*))
+  (define ffi-qt-dock-widget-set-widget
+    (foreign-procedure "qt_dock_widget_set_widget" (void* void*) void))
+  (define ffi-qt-dock-widget-widget
+    (foreign-procedure "qt_dock_widget_widget" (void*) void*))
+  (define ffi-qt-dock-widget-set-title
+    (foreign-procedure "qt_dock_widget_set_title" (void* string) void))
+  (define ffi-qt-dock-widget-title
+    (foreign-procedure "qt_dock_widget_title" (void*) string))
+  (define ffi-qt-dock-widget-set-floating
+    (foreign-procedure "qt_dock_widget_set_floating" (void* int) void))
+  (define ffi-qt-dock-widget-is-floating
+    (foreign-procedure "qt_dock_widget_is_floating" (void*) int))
+  (define ffi-qt-main-window-add-dock-widget
+    (foreign-procedure "qt_main_window_add_dock_widget" (void* int void*) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; System Tray Icon
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-system-tray-icon-create
+    (foreign-procedure "qt_system_tray_icon_create" (void* void*) void*))
+  (define ffi-qt-system-tray-icon-set-tooltip
+    (foreign-procedure "qt_system_tray_icon_set_tooltip" (void* string) void))
+  (define ffi-qt-system-tray-icon-set-icon
+    (foreign-procedure "qt_system_tray_icon_set_icon" (void* void*) void))
+  (define ffi-qt-system-tray-icon-show
+    (foreign-procedure "qt_system_tray_icon_show" (void*) void))
+  (define ffi-qt-system-tray-icon-hide
+    (foreign-procedure "qt_system_tray_icon_hide" (void*) void))
+  (define ffi-qt-system-tray-icon-show-message
+    (foreign-procedure "qt_system_tray_icon_show_message" (void* string string int int) void))
+  (define ffi-qt-system-tray-icon-set-context-menu
+    (foreign-procedure "qt_system_tray_icon_set_context_menu" (void* void*) void))
+  (define ffi-qt-system-tray-icon-on-activated
+    (foreign-procedure "chez_qt_system_tray_icon_on_activated" (void* long) void))
+  (define ffi-qt-system-tray-icon-is-available
+    (foreign-procedure "qt_system_tray_icon_is_available" () int))
+  (define ffi-qt-system-tray-icon-destroy
+    (foreign-procedure "qt_system_tray_icon_destroy" (void*) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; QPainter
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-pixmap-create-blank
+    (foreign-procedure "qt_pixmap_create_blank" (int int) void*))
+  (define ffi-qt-pixmap-fill
+    (foreign-procedure "qt_pixmap_fill" (void* int int int int) void))
+  (define ffi-qt-painter-create
+    (foreign-procedure "qt_painter_create" (void*) void*))
+  (define ffi-qt-painter-end
+    (foreign-procedure "qt_painter_end" (void*) void))
+  (define ffi-qt-painter-destroy
+    (foreign-procedure "qt_painter_destroy" (void*) void))
+  (define ffi-qt-painter-set-pen-color
+    (foreign-procedure "qt_painter_set_pen_color" (void* int int int int) void))
+  (define ffi-qt-painter-set-pen-width
+    (foreign-procedure "qt_painter_set_pen_width" (void* int) void))
+  (define ffi-qt-painter-set-brush-color
+    (foreign-procedure "qt_painter_set_brush_color" (void* int int int int) void))
+  (define ffi-qt-painter-set-font-painter
+    (foreign-procedure "qt_painter_set_font" (void* void*) void))
+  (define ffi-qt-painter-set-antialiasing
+    (foreign-procedure "qt_painter_set_antialiasing" (void* int) void))
+  (define ffi-qt-painter-draw-line
+    (foreign-procedure "qt_painter_draw_line" (void* int int int int) void))
+  (define ffi-qt-painter-draw-rect
+    (foreign-procedure "qt_painter_draw_rect" (void* int int int int) void))
+  (define ffi-qt-painter-fill-rect
+    (foreign-procedure "qt_painter_fill_rect" (void* int int int int int int int int) void))
+  (define ffi-qt-painter-draw-ellipse
+    (foreign-procedure "qt_painter_draw_ellipse" (void* int int int int) void))
+  (define ffi-qt-painter-draw-text
+    (foreign-procedure "qt_painter_draw_text" (void* int int string) void))
+  (define ffi-qt-painter-draw-text-rect
+    (foreign-procedure "qt_painter_draw_text_rect" (void* int int int int int string) void))
+  (define ffi-qt-painter-draw-pixmap
+    (foreign-procedure "qt_painter_draw_pixmap" (void* int int void*) void))
+  (define ffi-qt-painter-draw-point
+    (foreign-procedure "qt_painter_draw_point" (void* int int) void))
+  (define ffi-qt-painter-draw-arc
+    (foreign-procedure "qt_painter_draw_arc" (void* int int int int int int) void))
+  (define ffi-qt-painter-save
+    (foreign-procedure "qt_painter_save" (void*) void))
+  (define ffi-qt-painter-restore
+    (foreign-procedure "qt_painter_restore" (void*) void))
+  (define ffi-qt-painter-translate
+    (foreign-procedure "qt_painter_translate" (void* int int) void))
+  (define ffi-qt-painter-rotate
+    (foreign-procedure "qt_painter_rotate" (void* double) void))
+  (define ffi-qt-painter-scale
+    (foreign-procedure "qt_painter_scale" (void* double double) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Drag and Drop
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-widget-set-accept-drops
+    (foreign-procedure "qt_widget_set_accept_drops" (void* int) void))
+  (define ffi-qt-drop-filter-install
+    (foreign-procedure "qt_drop_filter_install" (void* void* long) void*))
+  (define ffi-qt-drop-filter-last-text
+    (foreign-procedure "qt_drop_filter_last_text" (void*) string))
+  (define ffi-qt-drop-filter-destroy
+    (foreign-procedure "qt_drop_filter_destroy" (void*) void))
+  (define ffi-qt-drag-text
+    (foreign-procedure "qt_drag_text" (void* string) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Double Spin Box
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-double-spin-box-create
+    (foreign-procedure "qt_double_spin_box_create" (void*) void*))
+  (define ffi-qt-double-spin-box-set-value
+    (foreign-procedure "qt_double_spin_box_set_value" (void* double) void))
+  (define ffi-qt-double-spin-box-value
+    (foreign-procedure "qt_double_spin_box_value" (void*) double))
+  (define ffi-qt-double-spin-box-set-range
+    (foreign-procedure "qt_double_spin_box_set_range" (void* double double) void))
+  (define ffi-qt-double-spin-box-set-single-step
+    (foreign-procedure "qt_double_spin_box_set_single_step" (void* double) void))
+  (define ffi-qt-double-spin-box-set-decimals
+    (foreign-procedure "qt_double_spin_box_set_decimals" (void* int) void))
+  (define ffi-qt-double-spin-box-decimals
+    (foreign-procedure "qt_double_spin_box_decimals" (void*) int))
+  (define ffi-qt-double-spin-box-set-prefix
+    (foreign-procedure "qt_double_spin_box_set_prefix" (void* string) void))
+  (define ffi-qt-double-spin-box-set-suffix
+    (foreign-procedure "qt_double_spin_box_set_suffix" (void* string) void))
+  (define ffi-qt-double-spin-box-on-value-changed
+    (foreign-procedure "chez_qt_double_spin_box_on_value_changed" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Date Edit
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-date-edit-create
+    (foreign-procedure "qt_date_edit_create" (void*) void*))
+  (define ffi-qt-date-edit-set-date
+    (foreign-procedure "qt_date_edit_set_date" (void* int int int) void))
+  (define ffi-qt-date-edit-year
+    (foreign-procedure "qt_date_edit_year" (void*) int))
+  (define ffi-qt-date-edit-month
+    (foreign-procedure "qt_date_edit_month" (void*) int))
+  (define ffi-qt-date-edit-day
+    (foreign-procedure "qt_date_edit_day" (void*) int))
+  (define ffi-qt-date-edit-date-string
+    (foreign-procedure "qt_date_edit_date_string" (void*) string))
+  (define ffi-qt-date-edit-set-minimum-date
+    (foreign-procedure "qt_date_edit_set_minimum_date" (void* int int int) void))
+  (define ffi-qt-date-edit-set-maximum-date
+    (foreign-procedure "qt_date_edit_set_maximum_date" (void* int int int) void))
+  (define ffi-qt-date-edit-set-calendar-popup
+    (foreign-procedure "qt_date_edit_set_calendar_popup" (void* int) void))
+  (define ffi-qt-date-edit-set-display-format
+    (foreign-procedure "qt_date_edit_set_display_format" (void* string) void))
+  (define ffi-qt-date-edit-on-date-changed
+    (foreign-procedure "chez_qt_date_edit_on_date_changed" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Time Edit
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-time-edit-create
+    (foreign-procedure "qt_time_edit_create" (void*) void*))
+  (define ffi-qt-time-edit-set-time
+    (foreign-procedure "qt_time_edit_set_time" (void* int int int) void))
+  (define ffi-qt-time-edit-hour
+    (foreign-procedure "qt_time_edit_hour" (void*) int))
+  (define ffi-qt-time-edit-minute
+    (foreign-procedure "qt_time_edit_minute" (void*) int))
+  (define ffi-qt-time-edit-second
+    (foreign-procedure "qt_time_edit_second" (void*) int))
+  (define ffi-qt-time-edit-time-string
+    (foreign-procedure "qt_time_edit_time_string" (void*) string))
+  (define ffi-qt-time-edit-set-display-format
+    (foreign-procedure "qt_time_edit_set_display_format" (void* string) void))
+  (define ffi-qt-time-edit-on-time-changed
+    (foreign-procedure "chez_qt_time_edit_on_time_changed" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Frame
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-frame-create
+    (foreign-procedure "qt_frame_create" (void*) void*))
+  (define ffi-qt-frame-set-frame-shape
+    (foreign-procedure "qt_frame_set_frame_shape" (void* int) void))
+  (define ffi-qt-frame-frame-shape
+    (foreign-procedure "qt_frame_frame_shape" (void*) int))
+  (define ffi-qt-frame-set-frame-shadow
+    (foreign-procedure "qt_frame_set_frame_shadow" (void* int) void))
+  (define ffi-qt-frame-frame-shadow
+    (foreign-procedure "qt_frame_frame_shadow" (void*) int))
+  (define ffi-qt-frame-set-line-width
+    (foreign-procedure "qt_frame_set_line_width" (void* int) void))
+  (define ffi-qt-frame-line-width
+    (foreign-procedure "qt_frame_line_width" (void*) int))
+  (define ffi-qt-frame-set-mid-line-width
+    (foreign-procedure "qt_frame_set_mid_line_width" (void* int) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Progress Dialog
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-progress-dialog-create
+    (foreign-procedure "qt_progress_dialog_create" (string string int int void*) void*))
+  (define ffi-qt-progress-dialog-set-value
+    (foreign-procedure "qt_progress_dialog_set_value" (void* int) void))
+  (define ffi-qt-progress-dialog-value
+    (foreign-procedure "qt_progress_dialog_value" (void*) int))
+  (define ffi-qt-progress-dialog-set-range
+    (foreign-procedure "qt_progress_dialog_set_range" (void* int int) void))
+  (define ffi-qt-progress-dialog-set-label-text
+    (foreign-procedure "qt_progress_dialog_set_label_text" (void* string) void))
+  (define ffi-qt-progress-dialog-was-canceled
+    (foreign-procedure "qt_progress_dialog_was_canceled" (void*) int))
+  (define ffi-qt-progress-dialog-set-minimum-duration
+    (foreign-procedure "qt_progress_dialog_set_minimum_duration" (void* int) void))
+  (define ffi-qt-progress-dialog-set-auto-close
+    (foreign-procedure "qt_progress_dialog_set_auto_close" (void* int) void))
+  (define ffi-qt-progress-dialog-set-auto-reset
+    (foreign-procedure "qt_progress_dialog_set_auto_reset" (void* int) void))
+  (define ffi-qt-progress-dialog-reset
+    (foreign-procedure "qt_progress_dialog_reset" (void*) void))
+  (define ffi-qt-progress-dialog-on-canceled
+    (foreign-procedure "chez_qt_progress_dialog_on_canceled" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Input Dialog
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-input-dialog-get-text
+    (foreign-procedure "qt_input_dialog_get_text" (void* string string string) string))
+  (define ffi-qt-input-dialog-get-int
+    (foreign-procedure "qt_input_dialog_get_int" (void* string string int int int int) int))
+  (define ffi-qt-input-dialog-get-double
+    (foreign-procedure "qt_input_dialog_get_double" (void* string string double double double int) double))
+  (define ffi-qt-input-dialog-get-item
+    (foreign-procedure "qt_input_dialog_get_item" (void* string string string int int) string))
+  (define ffi-qt-input-dialog-was-accepted
+    (foreign-procedure "qt_input_dialog_was_accepted" () int))
+
+  ;; -----------------------------------------------------------------------
+  ;; Form Layout
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-form-layout-create
+    (foreign-procedure "qt_form_layout_create" (void*) void*))
+  (define ffi-qt-form-layout-add-row
+    (foreign-procedure "qt_form_layout_add_row" (void* string void*) void))
+  (define ffi-qt-form-layout-add-row-widget
+    (foreign-procedure "qt_form_layout_add_row_widget" (void* void* void*) void))
+  (define ffi-qt-form-layout-add-spanning-widget
+    (foreign-procedure "qt_form_layout_add_spanning_widget" (void* void*) void))
+  (define ffi-qt-form-layout-row-count
+    (foreign-procedure "qt_form_layout_row_count" (void*) int))
+
+  ;; -----------------------------------------------------------------------
+  ;; Shortcut
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-shortcut-create
+    (foreign-procedure "qt_shortcut_create" (string void*) void*))
+  (define ffi-qt-shortcut-set-key
+    (foreign-procedure "qt_shortcut_set_key" (void* string) void))
+  (define ffi-qt-shortcut-set-enabled
+    (foreign-procedure "qt_shortcut_set_enabled" (void* int) void))
+  (define ffi-qt-shortcut-is-enabled
+    (foreign-procedure "qt_shortcut_is_enabled" (void*) int))
+  (define ffi-qt-shortcut-on-activated
+    (foreign-procedure "chez_qt_shortcut_on_activated" (void* long) void))
+  (define ffi-qt-shortcut-destroy
+    (foreign-procedure "qt_shortcut_destroy" (void*) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Text Browser
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-text-browser-create
+    (foreign-procedure "qt_text_browser_create" (void*) void*))
+  (define ffi-qt-text-browser-set-html
+    (foreign-procedure "qt_text_browser_set_html" (void* string) void))
+  (define ffi-qt-text-browser-set-plain-text
+    (foreign-procedure "qt_text_browser_set_plain_text" (void* string) void))
+  (define ffi-qt-text-browser-plain-text
+    (foreign-procedure "qt_text_browser_plain_text" (void*) string))
+  (define ffi-qt-text-browser-set-open-external-links
+    (foreign-procedure "qt_text_browser_set_open_external_links" (void* int) void))
+  (define ffi-qt-text-browser-set-source
+    (foreign-procedure "qt_text_browser_set_source" (void* string) void))
+  (define ffi-qt-text-browser-source
+    (foreign-procedure "qt_text_browser_source" (void*) string))
+  (define ffi-qt-text-browser-scroll-to-bottom
+    (foreign-procedure "qt_text_browser_scroll_to_bottom" (void*) void))
+  (define ffi-qt-text-browser-append
+    (foreign-procedure "qt_text_browser_append" (void* string) void))
+  (define ffi-qt-text-browser-html
+    (foreign-procedure "qt_text_browser_html" (void*) string))
+  (define ffi-qt-text-browser-on-anchor-clicked
+    (foreign-procedure "chez_qt_text_browser_on_anchor_clicked" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Button Box
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-button-box-create
+    (foreign-procedure "qt_button_box_create" (int void*) void*))
+  (define ffi-qt-button-box-button
+    (foreign-procedure "qt_button_box_button" (void* int) void*))
+  (define ffi-qt-button-box-add-button
+    (foreign-procedure "qt_button_box_add_button" (void* void* int) void))
+  (define ffi-qt-button-box-on-accepted
+    (foreign-procedure "chez_qt_button_box_on_accepted" (void* long) void))
+  (define ffi-qt-button-box-on-rejected
+    (foreign-procedure "chez_qt_button_box_on_rejected" (void* long) void))
+  (define ffi-qt-button-box-on-clicked
+    (foreign-procedure "chez_qt_button_box_on_clicked" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Calendar
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-calendar-create
+    (foreign-procedure "qt_calendar_create" (void*) void*))
+  (define ffi-qt-calendar-set-selected-date
+    (foreign-procedure "qt_calendar_set_selected_date" (void* int int int) void))
+  (define ffi-qt-calendar-selected-year
+    (foreign-procedure "qt_calendar_selected_year" (void*) int))
+  (define ffi-qt-calendar-selected-month
+    (foreign-procedure "qt_calendar_selected_month" (void*) int))
+  (define ffi-qt-calendar-selected-day
+    (foreign-procedure "qt_calendar_selected_day" (void*) int))
+  (define ffi-qt-calendar-selected-date-string
+    (foreign-procedure "qt_calendar_selected_date_string" (void*) string))
+  (define ffi-qt-calendar-set-minimum-date
+    (foreign-procedure "qt_calendar_set_minimum_date" (void* int int int) void))
+  (define ffi-qt-calendar-set-maximum-date
+    (foreign-procedure "qt_calendar_set_maximum_date" (void* int int int) void))
+  (define ffi-qt-calendar-set-first-day-of-week
+    (foreign-procedure "qt_calendar_set_first_day_of_week" (void* int) void))
+  (define ffi-qt-calendar-set-grid-visible
+    (foreign-procedure "qt_calendar_set_grid_visible" (void* int) void))
+  (define ffi-qt-calendar-is-grid-visible
+    (foreign-procedure "qt_calendar_is_grid_visible" (void*) int))
+  (define ffi-qt-calendar-set-navigation-bar-visible
+    (foreign-procedure "qt_calendar_set_navigation_bar_visible" (void* int) void))
+  (define ffi-qt-calendar-on-selection-changed
+    (foreign-procedure "chez_qt_calendar_on_selection_changed" (void* long) void))
+  (define ffi-qt-calendar-on-clicked
+    (foreign-procedure "chez_qt_calendar_on_clicked" (void* long) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; QSettings
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-settings-create
+    (foreign-procedure "qt_settings_create" (string string) void*))
+  (define ffi-qt-settings-create-file
+    (foreign-procedure "qt_settings_create_file" (string int) void*))
+  (define ffi-qt-settings-set-string
+    (foreign-procedure "qt_settings_set_string" (void* string string) void))
+  (define ffi-qt-settings-value-string
+    (foreign-procedure "qt_settings_value_string" (void* string string) string))
+  (define ffi-qt-settings-set-int
+    (foreign-procedure "qt_settings_set_int" (void* string int) void))
+  (define ffi-qt-settings-value-int
+    (foreign-procedure "qt_settings_value_int" (void* string int) int))
+  (define ffi-qt-settings-set-double
+    (foreign-procedure "qt_settings_set_double" (void* string double) void))
+  (define ffi-qt-settings-value-double
+    (foreign-procedure "qt_settings_value_double" (void* string double) double))
+  (define ffi-qt-settings-set-bool
+    (foreign-procedure "qt_settings_set_bool" (void* string int) void))
+  (define ffi-qt-settings-value-bool
+    (foreign-procedure "qt_settings_value_bool" (void* string int) int))
+  (define ffi-qt-settings-contains
+    (foreign-procedure "qt_settings_contains" (void* string) int))
+  (define ffi-qt-settings-remove
+    (foreign-procedure "qt_settings_remove" (void* string) void))
+  (define ffi-qt-settings-all-keys
+    (foreign-procedure "qt_settings_all_keys" (void*) string))
+  (define ffi-qt-settings-child-keys
+    (foreign-procedure "qt_settings_child_keys" (void*) string))
+  (define ffi-qt-settings-child-groups
+    (foreign-procedure "qt_settings_child_groups" (void*) string))
+  (define ffi-qt-settings-begin-group
+    (foreign-procedure "qt_settings_begin_group" (void* string) void))
+  (define ffi-qt-settings-end-group
+    (foreign-procedure "qt_settings_end_group" (void*) void))
+  (define ffi-qt-settings-group
+    (foreign-procedure "qt_settings_group" (void*) string))
+  (define ffi-qt-settings-sync
+    (foreign-procedure "qt_settings_sync" (void*) void))
+  (define ffi-qt-settings-clear
+    (foreign-procedure "qt_settings_clear" (void*) void))
+  (define ffi-qt-settings-file-name
+    (foreign-procedure "qt_settings_file_name" (void*) string))
+  (define ffi-qt-settings-is-writable
+    (foreign-procedure "qt_settings_is_writable" (void*) int))
+  (define ffi-qt-settings-destroy
+    (foreign-procedure "qt_settings_destroy" (void*) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; QCompleter
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-completer-create
+    (foreign-procedure "qt_completer_create" (string) void*))
+  (define ffi-qt-completer-set-model-strings
+    (foreign-procedure "qt_completer_set_model_strings" (void* string) void))
+  (define ffi-qt-completer-set-case-sensitivity
+    (foreign-procedure "qt_completer_set_case_sensitivity" (void* int) void))
+  (define ffi-qt-completer-set-completion-mode
+    (foreign-procedure "qt_completer_set_completion_mode" (void* int) void))
+  (define ffi-qt-completer-set-filter-mode
+    (foreign-procedure "qt_completer_set_filter_mode" (void* int) void))
+  (define ffi-qt-completer-set-max-visible-items
+    (foreign-procedure "qt_completer_set_max_visible_items" (void* int) void))
+  (define ffi-qt-completer-completion-count
+    (foreign-procedure "qt_completer_completion_count" (void*) int))
+  (define ffi-qt-completer-current-completion
+    (foreign-procedure "qt_completer_current_completion" (void*) string))
+  (define ffi-qt-completer-set-completion-prefix
+    (foreign-procedure "qt_completer_set_completion_prefix" (void* string) void))
+  (define ffi-qt-completer-on-activated
+    (foreign-procedure "chez_qt_completer_on_activated" (void* long) void))
+  (define ffi-qt-line-edit-set-completer
+    (foreign-procedure "qt_line_edit_set_completer" (void* void*) void))
+  (define ffi-qt-completer-destroy
+    (foreign-procedure "qt_completer_destroy" (void*) void))
+
+  ;; -----------------------------------------------------------------------
+  ;; Tooltip / WhatsThis
+  ;; -----------------------------------------------------------------------
+
+  (define ffi-qt-tooltip-show-text
+    (foreign-procedure "qt_tooltip_show_text" (int int string void*) void))
+  (define ffi-qt-tooltip-hide-text
+    (foreign-procedure "qt_tooltip_hide_text" () void))
+  (define ffi-qt-tooltip-is-visible
+    (foreign-procedure "qt_tooltip_is_visible" () int))