adam@2: type t kkallio@14: (* The type of dateboxes, which are input elements kkallio@14: * allowing the user to select a date from a popup kkallio@14: * calendar. *) adam@2: adam@4: type date = {Year : int, Month : int, Day : int} kkallio@14: val date_eq : eq date adam@5: val date_ord : ord date adam@5: val time : date -> time kkallio@12: val date : time -> date kkallio@14: (* Type of dates and some useful utility functions. *) adam@4: adam@4: val create : time -> transaction t kkallio@14: (* Get a datebox initially set to the given time. *) kkallio@14: adam@15: val onChange : t -> (date -> transaction {}) -> transaction {} kkallio@14: (* Add an action to be run when the date changes. *) kkallio@14: adam@15: val set : t -> date -> transaction {} kkallio@14: (* Call this to change the selected date. *) kkallio@14: kkallio@14: val value : t -> signal date kkallio@14: (* Extract the current date value. *) kkallio@14: adam@2: val render : t -> xbody kkallio@14: (* Draws the datebox as a piece of xml. *)