PageRenderTime 59ms CodeModel.GetById 26ms RepoModel.GetById 1ms app.codeStats 0ms

/jQuery.ml

http://github.com/pveber/ocaml-jquery
OCaml | 321 lines | 112 code | 7 blank | 202 comment | 0 complexity | 4b454cc703eb73c6407b00c511d60819 MD5 | raw file
  1. (*
  2. * JQuery binding for Js_of_ocaml - 2011-2012
  3. * jQuery module
  4. *
  5. * 2011 Gabriel Cardoso - gcardoso.w@gmail.com
  6. * 2012 Cagdas Bozman - cagdas.bozman@ocamlpro.com
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU Lesser General Public License as published by
  10. * the Free Software Foundation, with linking exception;
  11. * either version 2.1 of the License, or (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU Lesser General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU Lesser General Public License
  19. * along with this program; if not, write to the Free Software
  20. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  21. *)
  22. open Js
  23. open Effects
  24. class type jQuery = object
  25. method add : js_string t -> jQuery t meth
  26. method add_element : #Dom_html.element t -> jQuery t meth
  27. method add_jquery : jQuery t -> jQuery t meth
  28. method addClass : js_string t -> jQuery t meth
  29. method addClass_ : (int -> js_string t -> js_string t) callback
  30. -> jQuery t meth
  31. method after : (js_string t, #Dom_html.element t, jQuery t) Tools.Choice3.t
  32. -> jQuery t meth
  33. method after_fun :
  34. (int -> (js_string t, #Dom_html.element t, jQuery t) Tools.Choice3.t)
  35. -> jQuery t meth
  36. method ajaxComplete :
  37. (#Dom_html.event t -> #XmlHttpRequest.xmlHttpRequest t -> 'a) callback
  38. -> jQuery t meth
  39. method animate : Dom_html.cssStyleDeclaration t -> duration_pre opt
  40. -> easing_pre opt -> ('a, 'b) meth_callback opt -> jQuery t meth
  41. method append : js_string t -> jQuery t meth
  42. method appendTo : js_string t -> jQuery t meth
  43. method appendTo_jquery : jQuery t -> jQuery t meth
  44. method attr : js_string t -> js_string t optdef meth
  45. method attr_set : js_string t -> js_string t -> jQuery t meth
  46. method before : (js_string t, #Dom_html.element t, jQuery t) Tools.Choice3.t
  47. -> jQuery t meth
  48. method bind : js_string t -> ('a, 'b) meth_callback opt -> jQuery t meth
  49. method blur : ('a, 'b) meth_callback opt -> jQuery t meth
  50. method change : ('a, 'b) meth_callback opt -> jQuery t meth
  51. method clearQueue : js_string t opt -> jQuery t meth
  52. method click : ('a, 'b) meth_callback opt -> jQuery t meth
  53. method css_get : js_string t -> js_string t meth
  54. method css : js_string t -> js_string t -> jQuery t meth
  55. method delay : int -> js_string t opt -> jQuery t meth
  56. method dequeue : js_string t opt -> jQuery t meth
  57. method each : (int -> #Dom_html.element t -> 'a) callback -> jQuery t meth
  58. method eq : int -> jQuery t meth
  59. method fadeIn : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  60. -> jQuery t meth
  61. method fadeOut : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  62. -> jQuery t meth
  63. method fadeTo : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  64. -> jQuery t meth
  65. method fadeToggle : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  66. -> jQuery t meth
  67. method find : jQuery t -> jQuery t meth
  68. method focus : ('a, 'b) meth_callback opt -> jQuery t meth
  69. method has : js_string t -> jQuery t meth
  70. method hasClass : js_string t -> bool t meth
  71. method height : int meth
  72. method height_set : int -> jQuery t meth
  73. method hide : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  74. -> jQuery t meth
  75. method hover : ('a, 'b) meth_callback -> ('a, 'b) meth_callback opt -> jQuery t meth
  76. method html : js_string t meth
  77. method html_set : js_string t -> jQuery t meth
  78. method insertAfter : (js_string t, #Dom_html.element t, jQuery t)
  79. Tools.Choice3.t -> jQuery t meth
  80. method insertBefore : (js_string t, #Dom_html.element t, jQuery t)
  81. Tools.Choice3.t -> jQuery t meth
  82. method length : int readonly_prop
  83. method live : 'a Dom.Event.typ-> ('a, 'b) meth_callback -> jQuery t meth
  84. method prepend : js_string t -> unit meth
  85. method queue : js_string t opt -> js_string t js_array t meth
  86. method ready : ('a, 'b) meth_callback -> jQuery t meth
  87. method remove : unit meth
  88. method removeClass : js_string t opt -> jQuery t meth
  89. method removeClass_ : (int -> js_string t -> js_string t) callback
  90. -> jQuery t meth
  91. method select : ('a, 'b) meth_callback opt -> jQuery t meth
  92. method serialize : unit -> js_string meth
  93. method show : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  94. -> jQuery t meth
  95. method size : int meth
  96. method slideDown : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  97. -> jQuery t meth
  98. method slideToggle : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  99. -> jQuery t meth
  100. method slideUp : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  101. -> jQuery t meth
  102. method stop : bool t opt -> bool t opt -> jQuery t meth
  103. method submit : ('a, 'b) meth_callback opt -> jQuery t meth
  104. method toggle : bool t -> jQuery t meth
  105. method toggle_ : duration_pre opt -> easing_pre opt -> ('a, 'b) meth_callback opt
  106. -> jQuery t meth
  107. method toggleClass : js_string t -> jQuery t meth
  108. method text : js_string t meth
  109. method text_set : js_string t -> jQuery t meth
  110. method unbind : js_string t -> jQuery t meth
  111. method val_ : string_array t meth
  112. method val_set : js_string t -> jQuery t meth
  113. method width : int meth
  114. method width_set : int -> jQuery t meth
  115. method tableFilter : unit meth
  116. method tableFilterApplyFilterValues : unit meth
  117. (* TODO : implement the right types for these methods c.f. jQuery API
  118. method ajaxError
  119. method ajaxSend
  120. method ajaxStart
  121. method ajaxStop
  122. method ajaxSuccess
  123. method andSelf
  124. method change
  125. method children
  126. method click
  127. method clone
  128. method closest
  129. method contents
  130. method context
  131. method data
  132. method dblclick
  133. method delegate
  134. method die
  135. method each
  136. method empty
  137. method end_
  138. method error
  139. method filter
  140. method first
  141. method focusin
  142. method focusout
  143. method get
  144. method has
  145. method hasClass
  146. method height
  147. method hover
  148. method index
  149. method innerHeight
  150. method innerWidth
  151. method is
  152. method jquery
  153. method keydown
  154. method keypress
  155. method keyup
  156. method last
  157. method live
  158. method load
  159. method load
  160. method map
  161. method mousedown
  162. method mouseenter
  163. method mouseleave
  164. method mousemove
  165. method mouseout
  166. method mouseover
  167. method mouseup
  168. method next
  169. method nextAll
  170. method nextUntil
  171. method not
  172. method offset
  173. method offsetParent
  174. method one
  175. method outerHeight
  176. method outerWidth
  177. method parent
  178. method parents
  179. method parentsUntil
  180. method position
  181. method prependTo
  182. method prev
  183. method prevAll
  184. method prevUntil
  185. method promise
  186. method prop
  187. method pushStack
  188. method ready
  189. method removeAttr
  190. method removeData
  191. method removeProp
  192. method replaceAll
  193. method replaceWith
  194. method resize
  195. method scroll
  196. method scrollLeft
  197. method scrollTop
  198. method serializeArray
  199. method siblings
  200. method size
  201. method slice
  202. method toArray
  203. method trigger
  204. method triggerHandler
  205. method undelegate
  206. method unload
  207. method unwrap
  208. method width
  209. method wrap
  210. method wrapAll
  211. method wrapInner*)
  212. end
  213. let jQ s = Unsafe.fun_call
  214. (Unsafe.variable "jQuery") [|Unsafe.inject (Js.string s)|]
  215. let jQuery
  216. (selector : (js_string t,
  217. #Dom_html.element t,
  218. #Dom_html.element t js_array t,
  219. jQuery t) Tools.Choice4.t)
  220. (context_opt : (#Dom_html.element t,
  221. #Dom_html.document,
  222. jQuery t) Tools.Choice3.t opt) : jQuery t =
  223. Unsafe.fun_call
  224. (Unsafe.variable "jQuery")
  225. [|Unsafe.inject selector; Unsafe.inject context_opt|]
  226. let ajax : js_string t -> unit = Unsafe.variable "jQuery.ajax"
  227. (* TODO implement these values as in the jQuery API *)
  228. (*let ajaxPrefilter = Unsafe.variable "jQuery.ajaxPrefilter"
  229. let ajaxSetup = Unsafe.variable "jQuery.ajaxSetup"
  230. let boxModel = Unsafe.variable "jQuery.boxModel"
  231. let browser = Unsafe.variable "jQuery.browser"
  232. module Deferred = struct
  233. let always = Unsafe.variable "jQuery.deferred.always"
  234. let done_ = Unsafe.variable "jQuery.deferred.done"
  235. let fail = Unsafe.variable "jQuery.deferred.fail"
  236. let isRejected = Unsafe.variable "jQuery.deferred.isRejected"
  237. let isResolved = Unsafe.variable "jQuery.deferred.isResolved"
  238. let pipe = Unsafe.variable "jQuery.deferred.pipe"
  239. let promise = Unsafe.variable "jQuery.deferred.promise"
  240. let reject = Unsafe.variable "jQuery.deferred.reject"
  241. let rejectWith = Unsafe.variable "jQuery.deferred.rejectWith"
  242. let resolve = Unsafe.variable "jQuery.deferred.resolve"
  243. let resolveWith = Unsafe.variable "jQuery.deferred.resolveWith"
  244. let then_ = Unsafe.variable "jQuery.deferred.then"
  245. end
  246. let dequeue = Unsafe.variable "jQuery.browser"
  247. let each = Unsafe.variable "jQuery.each"
  248. let error = Unsafe.variable "jQuery.error"
  249. module Event = struct
  250. let currentTarget = Unsafe.variable "jQuery.event.currentTarget"
  251. let data = Unsafe.variable "jQuery.event.data"
  252. let isDefaultPrevented = Unsafe.variable "jQuery.event.isDefaultPrevented"
  253. let preventDefault = Unsafe.variable "jQuery.event.preventDefault"
  254. let isImmediatePropagationStopped =
  255. Unsafe.variable "jQuery.event.isImmediatePropagationStopped"
  256. let stopImmediatePropagation =
  257. Unsafe.variable "jQuery.event.stopImmediatePropagation"
  258. let isPropagationStopped =
  259. Unsafe.variable "jQuery.event.isPropagationStopped"
  260. let stopPropagation = Unsafe.variable "jQuery.event.stopPropagation"
  261. let namespace = Unsafe.variable "jQuery.event.namespace"
  262. let pageX = Unsafe.variable "jQuery.event.pageX"
  263. let pageY = Unsafe.variable "jQuery.event.pageY"
  264. let preventDefault = Unsafe.variable "jQuery.event.preventDefault"
  265. let relatedTarget = Unsafe.variable "jQuery.event.relatedTarget"
  266. let result = Unsafe.variable "jQuery.event.result"
  267. let stopImmediatePropagation =
  268. Unsafe.variable "jQuery.event.stopImmediatePropagation"
  269. let stopPropagation = Unsafe.variable "jQuery.event.stopPropagation"
  270. let target = Unsafe.variable "jQuery.event.target"
  271. let timeStamp = Unsafe.variable "jQuery.event.timeStamp"
  272. let type_ = Unsafe.variable "jQuery.event.type"
  273. let which = Unsafe.variable "jQuery.event.which"
  274. end
  275. let extend = Unsafe.variable "jQuery.extend"
  276. module Fx = struct
  277. let interval = Unsafe.variable "jQuery.fx.interval"
  278. let off = Unsafe.variable "jQuery.fx.off"
  279. end
  280. let get = Unsafe.variable "jQuery.get"
  281. let getJSON = Unsafe.variable "jQuery.getJSON"
  282. let getScript = Unsafe.variable "jQuery.getScript"
  283. let globalEval = Unsafe.variable "jQuery.globalEval"
  284. let grep = Unsafe.variable "jQuery.grep"
  285. let hasData = Unsafe.variable "jQuery.hasData"
  286. let holdReady = Unsafe.variable "jQuery.holdReady"
  287. let inArray = Unsafe.variable "jQuery.inArray"
  288. let isArray = Unsafe.variable "jQuery.isArray"
  289. let isEmptyObject = Unsafe.variable "jQuery.isEmptyObject"
  290. let isFunction = Unsafe.variable "jQuery.isFunction"
  291. let isPlainObject = Unsafe.variable "jQuery.isPlainObject"
  292. let isWindow = Unsafe.variable "jQuery.isWindow"
  293. let isXMLDoc = Unsafe.variable "jQuery.isXMLDoc"
  294. let makeArray = Unsafe.variable "jQuery.makeArray"
  295. let map = Unsafe.variable "jQuery.map"
  296. let merge = Unsafe.variable "jQuery.merge"
  297. let noConflict = Unsafe.variable "jQuery.noConflict"
  298. let noop = Unsafe.variable "jQuery.noop"
  299. let now = Unsafe.variable "jQuery.now"*)
  300. let param : Unsafe.any t -> bool t opt -> js_string t =
  301. Unsafe.variable "jQuery.param"
  302. (*let parseJSON = Unsafe.variable "jQuery.parseJSON"
  303. let parseXML = Unsafe.variable "jQuery.parseXML"
  304. let post = Unsafe.variable "jQuery.post"
  305. let proxy = Unsafe.variable "jQuery.proxy"
  306. let queue = Unsafe.variable "jQuery.queue"
  307. let removeData = Unsafe.variable "jQuery.removeData"
  308. let sub = Unsafe.variable "jQuery.sub"
  309. let suppo = Unsafe.variable "jQuery.suppo"
  310. let trim = Unsafe.variable "jQuery.trim"
  311. let type_ = Unsafe.variable "jQuery.type"
  312. let unique = Unsafe.variable "jQuery.unique"
  313. let when_ = Unsafe.variable "jQuery.when"
  314. *)