#lang racket
(require
ffi/unsafe
"base.rkt")
(define libiup
(case (system-type 'os)
[(windows)
(ffi-lib "iup")]
[else
(ffi-lib "libiup")]))
(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]))))
(define layout-dialog
(make-constructor-procedure
(get-ffi-obj
"IupLayoutDialog" libiup
(_fun ([dialog #f]) :: [dialog : _ihandle/null] -> [handle : _ihandle]))))
(define element-properties-dialog
(make-constructor-procedure
(get-ffi-obj
"IupElementPropertiesDialog" libiup
(_fun [element : _ihandle] -> [handle : _ihandle]))))
(provide
file-dialog message-dialog color-dialog font-dialog
layout-dialog element-properties-dialog)