dialogs.rkt
#lang racket
(require
 ffi/unsafe
 "base.rkt")

(define libiup
  (case (system-type 'os)
    [(windows)
     (ffi-lib "iup")]
    [else
     (ffi-lib "libiup")]))

;; Standard dialogs

(define file-dialog
  (make-constructor-procedure
   (get-ffi-obj
    "IupFileDlg" libiup
    (_fun -> [handle : _ihandle]))))

(define message-dialog
  (make-constructor-procedure
   (get-ffi-obj
    "IupMessageDlg" libiup
    (_fun -> [handle : _ihandle]))))

(define color-dialog
  (make-constructor-procedure
   (get-ffi-obj
    "IupColorDlg" libiup
    (_fun -> [handle : _ihandle]))))

(define font-dialog
  (make-constructor-procedure
   (get-ffi-obj
    "IupFontDlg" libiup
    (_fun -> [handle : _ihandle]))))

(provide
 file-dialog message-dialog color-dialog font-dialog)