File: main.ml

package info (click to toggle)
obrowser 1.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 3,216 kB
  • ctags: 3,498
  • sloc: ml: 13,505; makefile: 343; sh: 11
file content (45 lines) | stat: -rw-r--r-- 1,234 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
open JSOO
open Boot
open Events
open Style
open Geometry

let _ = eval "document.body" >>> append (new AXOToolkit.text_input "bob") # obj


let size = 80
let id = ref 0
let max_z = ref 0

let frame color =
  let frame = create "div" in
    (frame >>> style) # set_position `FIXED ;
    (frame >>> geometry) # set_bounds (!id * size, 0, size, size) ;
    frame >>> get "style" >>> set "background" (string color) ;
    body >>> append frame ;
    incr id ; incr max_z ;
    let sbx = ref 0 and sby = ref 0 and smx = ref 0 and smy = ref 0 in
    let move_handler (mx, my) = 
      (frame >>> geometry) # set_x (!sbx + mx - !smx) ;
      (frame >>> geometry) # set_y (!sby + my - !smy)
    in
      frame >>> Mouse_down.bind
	(fun (mx, my) ->
	   let bx = (frame >>> geometry) # x
	   and by = (frame >>> geometry) # y in
	     sbx := bx ; sby := by ;
	     smx := mx ; smy := my ;
	     window >>> Mouse_move.bind move_handler) ;
      frame >>> Mouse_down.bind
	(fun _ ->
	   incr max_z ;
	   frame >>> get "style" >>> set "zIndex" (int !max_z)
	) ;
      window >>> Mouse_up.bind
	(fun _ -> window >>> Mouse_move.unbind move_handler)
;;

let _ =
  List.iter frame [ "red" ; "green" ; "blue" ; "yellow" ; "pink" ; "grey" ; "cyan"]
;;