mxml.ss
#lang scheme/base
(require (planet bzlib/base)
         xml)

;; generating the MXML....
;; we might be able to use syntax, but it seems to be easier to simply use functions!!...
(define (mx:app . widgets) 
  `(mx:Application ((xmlns:mx "http://www.adobe.com/2006/mxml"))
                   . ,widgets))

(define (mx:label (text "") #:id (id #f))
  `(mx:Label ((text ,text)
              ,@(if (not id) '() `((id ,id))))))

(define (mx:button #:label (label "") #:click (click #f))
  `(mx:Button ((label ,label) 
               ,@(if (not click) '() `((click ,click))))))

(define (mx:script (script "")) 
  `(mx:Script ,(make-cdata #f #f script)))

(provide/contract 
 (mx:app (->* () 
              ()
              #:rest (listof any/c)
              any))
 )