Dojo/Dijit layout widgets.
The interface supports a monadic style of programming. The implementation of the monad is the continuation monad, capturing the continuation-based approach to loading libraries in the Dojo framework. For general information about the Dojo framework, see http://dojotoolkit.org/reference-guide/1.10/. In particuler see http://dojotoolkit.org/reference-guide/1.10/.structure Dojo : DOJO
signature DOJO = sig
type 'a M
val >>= : 'a M * ('a -> 'b M) -> 'b M
val ret : 'a -> 'a M
type icon = string * string
type hash = (string * string) list
type widget
val pane : hash -> Js.elem -> widget M
val titlePane : hash -> widget -> widget M
val linkPane : hash -> widget M
val accordionContainer : hash -> widget list -> widget M
val tabContainer : hash -> widget list -> widget M
val borderContainer : hash -> widget list -> widget M
val layoutContainer : hash -> widget list -> widget M
val tableContainer : hash -> {showLabels:bool} -> widget list -> widget M
val attachToElement : Js.elem -> widget M -> (unit -> unit) -> unit
val run : unit M -> unit
val setProperties : hash -> widget -> unit
val setBoolProperty : string*bool -> widget -> unit
val setContent : widget -> string -> unit
val setContentElement : widget -> Js.elem -> unit
val selectChild : widget -> widget -> unit
val addChild : widget -> widget -> unit
val startup : widget -> unit (* shouldn't be necessary... Hmm *)
val domNode : widget -> Js.elem
val resize : widget -> unit
val refresh : widget -> unit
val dialog : hash -> Js.elem -> widget M
val showDialog : widget -> unit
val hideDialog : widget -> unit
val runDialog : string -> Js.elem -> unit
type treeStore
val treeStore : hash list -> treeStore M
val treeStoreAdd : treeStore -> hash -> unit
val treeStoreRemove : treeStore -> string -> unit
val treeStoreClear : treeStore -> unit
val tree : hash -> string -> (string*string -> unit)
-> treeStore -> widget M
val treeWidget : hash -> {showRoot:bool} -> string -> (string*string -> unit)
-> treeStore -> widget M
type tabmap = widget * (string*widget)list ref
val advTabContainer : hash -> (tabmap*{select:string->unit,close:string->unit}) M
val lazyTabContainer : hash -> widget * (string*icon option*widget M) list -> (widget * {select:string->unit}) M
val set_onClose : widget -> (unit -> bool) -> unit
val set_onShow : widget -> (unit -> unit) -> unit
structure Menu : sig
type menu
val mk : hash -> (widget * menu) M
val menu : menu -> string -> menu M
val item : menu -> string * icon option * (unit -> unit) -> unit M
end
type 'a editCon
val optionBox : 'a editCon -> 'a option editCon (* raises Fail if applied to a 't option editCon', for some t *)
val orEmptyBox : string editCon -> string editCon
val textBox : hash -> string editCon
(* val numBox : hash -> string editCon
*)
val intBox : hash -> int editCon
val realBox : hash -> StringCvt.realfmt -> real editCon
val dateBox : hash -> string editCon
val validationBox : hash -> {fromString: string -> 'a option, toString: 'a -> string} -> 'a editCon
val selectBox : hash -> {id:string,name:string}list -> string editCon
val filterSelectBox : hash -> bool -> {id:string,name:string}list -> string editCon
structure Editor : sig
type 'a t
val mk : 'a editCon -> 'a t M
val getValue : 'a t -> 'a
val getValueOpt : 'a t -> 'a option
val setValue : 'a t -> 'a -> unit
val setDisabled : 'a t -> bool -> unit
val setReadOnly : 'a t -> bool -> unit
val onChange : 'a t -> ('a -> unit) -> unit
val domNode : 'a t -> Js.elem
val toForeignPtr : 'a t -> foreignptr
val startup : 'a t -> unit (* in particular for filterSelectBox *)
end
structure Form : sig
type t
val mk : hash -> t M
val domNode : t -> Js.elem
val toForeignPtr : t -> foreignptr
val validate : t -> bool
val startup : t -> unit
end
structure Button : sig
type t
val mk : hash -> (unit->unit) -> t M
val domNode : t -> Js.elem
val toForeignPtr : t -> foreignptr
end
structure UploadFile : sig
type t
val mk : hash -> {url:string,multiple:bool,uploadOnSelect:bool,name:string} -> t M
val domNode : t -> Js.elem
val toForeignPtr : t -> foreignptr
val upload : t -> hash -> unit
val reset : t -> unit
(* val getFileList : t -> string list *)
val onComplete : t -> (foreignptr -> unit) -> unit
val onError : t -> (unit -> unit) -> unit
val onBegin : t -> (unit -> unit) -> unit
(*
val onProgress : t -> (int*int -> unit) -> unit
*)
val startup : t -> unit
end
structure RestGrid : sig
type t
type colspec
type button = {label:string,icon:icon option}
datatype typ = INT | STRING | NUM of int
val valueColspec : {field:string,label:string,editor:'a editCon option,typ:typ} -> colspec
val valuePrettyColspec : {field:string,label:string,pretty:string->Js.elem,editor:'a editCon option,typ:typ} -> colspec
val valuePrettyLookColspec : {field:string,label:string,pretty:(string->string)->Js.elem,editor:'a editCon option,typ:typ} -> colspec
val valuePrettyWithIdColspec : {field:string,label:string,prettyWithId:string*string->Js.elem,editor:'a editCon option,typ:typ} -> colspec
val deleteColspec : {label:string,button:button} -> colspec
val actionColspec : {label:string,button:button,onclick:(string->string)->unit} -> colspec (* arg to onclick is a function for looking up a field value, given a key *)
val hidden : bool -> colspec -> colspec
val unhidable : bool -> colspec -> colspec
val sortable : bool -> colspec -> colspec (* e.g.: val cs = hidden true (sortable true cs) *)
val mk : {target:string, headers:(string*string)list, idProperty:string, addRow:(button*button) option,
notify:string->unit, notify_err:string->unit} -> colspec list -> t M
val domNode : t -> Js.elem
val toStore : t -> foreignptr
val setCollection : t -> {target:string} -> unit
val setSort : t -> {field:string} -> unit
val setSummary : t -> {field:string,elem:Js.elem} list -> unit
val startup : t -> unit
val refresh : t -> unit
type s
val memoryStore : {idProperty:string} -> s M
val memoryStoreAdd : s -> (string*string)list list -> unit
val memoryStoreClear : s -> unit
val mkFromStore : {store:s,notify:string->unit,notify_err:string->unit} -> colspec list -> t M
val setMemoryStore : t -> s -> unit
end
structure Grid : sig
type t
val mk : hash -> (string*string) list -> t M
val add : t -> (string*string) list list -> unit
val domNode : t -> Js.elem
val toForeignPtr : t -> foreignptr
end
(* TODO: Toolbar, Fieldset *)
structure Icon : sig
val save : icon
val print : icon
val cut : icon
val copy : icon
val clear : icon
val delete : icon
val undo : icon
val edit : icon
val newTask : icon
val editTask : icon
val editProperty : icon
val task : icon
val filter : icon
val configure : icon
val search : icon
val application : icon
val bookmark : icon
val chart : icon
val connector : icon
val database : icon
val documents : icon
val mail : icon
val leaf : icon
val file : icon
val function : icon
val key : icon
val package : icon
val sample : icon
val table : icon
val users : icon
val folderClosed : icon
val folderOpen : icon
val error : icon
end
structure EditorIcon : sig
val sep : icon
val save : icon
val print : icon
val cut : icon
val copy : icon
val paste : icon
val delete : icon
val cancel : icon
val undo : icon
val redo : icon
val selectAll : icon
val bold : icon
val italic : icon
val underline : icon
val strikethrough : icon
val superscript : icon
val subscript : icon
val justifyCenter : icon
val justifyFull : icon
val justifyLeft : icon
val justifyRight : icon
val indent : icon
val outdent : icon
val listBulletIndent : icon
val listBulletOutdent : icon
val listNumIndent : icon
val listNumOutdent : icon
val tabIndent : icon
val leftToRight : icon
val rightToLeft : icon
val toggleDir : icon
val backColor : icon
val foreColor : icon
val hiliteColor : icon
val newPage : icon
val insertImage : icon
val insertTable : icon
val space : icon
val insertHorizontalRule : icon
val insertOrderedList : icon
val insertUnorderedList : icon
val createLink : icon
val unlink : icon
val viewSource : icon
val removeFormat : icon
val fullScreen : icon
val wikiword : icon
end
end