Blame builtin/builtini_bind.ml

Packit bd2e5d
##ifdef CAMLTK
Packit bd2e5d
Packit bd2e5d
let cCAMLtoTKxEvent = function
Packit bd2e5d
  | Activate -> "Activate"
Packit bd2e5d
  | ButtonPress -> "ButtonPress"
Packit bd2e5d
  | ButtonPressDetail n -> "ButtonPress-"^string_of_int n
Packit bd2e5d
  | ButtonRelease -> "ButtonRelease"
Packit bd2e5d
  | ButtonReleaseDetail n -> "ButtonRelease-"^string_of_int n
Packit bd2e5d
  | Circulate -> "Circulate"
Packit bd2e5d
  | ColorMap -> "Colormap"
Packit bd2e5d
  | Configure -> "Configure"
Packit bd2e5d
  | Deactivate -> "Deactivate"
Packit bd2e5d
  | Destroy -> "Destroy"
Packit bd2e5d
  | Enter -> "Enter"
Packit bd2e5d
  | Expose -> "Expose"
Packit bd2e5d
  | FocusIn -> "FocusIn"
Packit bd2e5d
  | FocusOut -> "FocusOut"
Packit bd2e5d
  | Gravity -> "Gravity"
Packit bd2e5d
  | KeyPress -> "KeyPress"
Packit bd2e5d
  | KeyPressDetail s -> "KeyPress-"^s
Packit bd2e5d
  | KeyRelease -> "KeyRelease"
Packit bd2e5d
  | KeyReleaseDetail s -> "KeyRelease-"^s
Packit bd2e5d
  | Leave -> "Leave"
Packit bd2e5d
  | Map -> "Map"
Packit bd2e5d
  | Motion -> "Motion"
Packit bd2e5d
  | Property -> "Property"
Packit bd2e5d
  | Reparent -> "Reparent"
Packit bd2e5d
  | Unmap -> "Unmap"
Packit bd2e5d
  | Visibility -> "Visibility"
Packit bd2e5d
  | Virtual s -> "<"^s^">"
Packit bd2e5d
;;
Packit bd2e5d
Packit bd2e5d
let cCAMLtoTKmodifier = function
Packit bd2e5d
  | Control -> "Control-"
Packit bd2e5d
  | Shift -> "Shift-"
Packit bd2e5d
  | Lock -> "Lock-"
Packit bd2e5d
  | Button1 -> "Button1-"
Packit bd2e5d
  | Button2 -> "Button2-"
Packit bd2e5d
  | Button3 -> "Button3-"
Packit bd2e5d
  | Button4 -> "Button4-"
Packit bd2e5d
  | Button5 -> "Button5-"
Packit bd2e5d
  | Double -> "Double-"
Packit bd2e5d
  | Triple -> "Triple-"
Packit bd2e5d
  | Mod1 -> "Mod1-"
Packit bd2e5d
  | Mod2 -> "Mod2-"
Packit bd2e5d
  | Mod3 -> "Mod3-"
Packit bd2e5d
  | Mod4 -> "Mod4-"
Packit bd2e5d
  | Mod5 -> "Mod5-"
Packit bd2e5d
  | Meta -> "Meta-"
Packit bd2e5d
  | Alt -> "Alt-"
Packit bd2e5d
;;
Packit bd2e5d
Packit bd2e5d
exception IllegalVirtualEvent
Packit bd2e5d
Packit bd2e5d
(* type event = modifier list * xEvent *)
Packit bd2e5d
let cCAMLtoTKevent (ml, xe) =
Packit bd2e5d
  match xe with
Packit bd2e5d
  | Virtual s ->
Packit bd2e5d
      if ml = [] then "<<"^s^">>"
Packit bd2e5d
      else raise IllegalVirtualEvent
Packit bd2e5d
  | _ ->
Packit bd2e5d
      "<" ^ (String.concat " " (List.map cCAMLtoTKmodifier ml))
Packit bd2e5d
      ^ (cCAMLtoTKxEvent xe) ^ ">"
Packit bd2e5d
;;
Packit bd2e5d
Packit bd2e5d
(* type eventSequence == (modifier list * xEvent) list *)
Packit bd2e5d
let cCAMLtoTKeventSequence l =
Packit bd2e5d
  TkToken(List.fold_left (^) "" (List.map cCAMLtoTKevent l))
Packit bd2e5d
Packit bd2e5d
##else
Packit bd2e5d
Packit bd2e5d
let cCAMLtoTKmodifier : modifier -> string = function
Packit bd2e5d
 | `Control -> "Control-"
Packit bd2e5d
 | `Shift -> "Shift-"
Packit bd2e5d
 | `Lock -> "Lock-"
Packit bd2e5d
 | `Button1 -> "Button1-"
Packit bd2e5d
 | `Button2 -> "Button2-"
Packit bd2e5d
 | `Button3 -> "Button3-"
Packit bd2e5d
 | `Button4 -> "Button4-"
Packit bd2e5d
 | `Button5 -> "Button5-"
Packit bd2e5d
 | `Double -> "Double-"
Packit bd2e5d
 | `Triple -> "Triple-"
Packit bd2e5d
 | `Mod1 -> "Mod1-"
Packit bd2e5d
 | `Mod2 -> "Mod2-"
Packit bd2e5d
 | `Mod3 -> "Mod3-"
Packit bd2e5d
 | `Mod4 -> "Mod4-"
Packit bd2e5d
 | `Mod5 -> "Mod5-"
Packit bd2e5d
 | `Meta -> "Meta-"
Packit bd2e5d
 | `Alt -> "Alt-"
Packit bd2e5d
;;
Packit bd2e5d
Packit bd2e5d
exception IllegalVirtualEvent
Packit bd2e5d
Packit bd2e5d
let cCAMLtoTKevent (ev : event) =
Packit bd2e5d
  let modified = ref false in
Packit bd2e5d
  let rec convert = function
Packit bd2e5d
    | `Activate -> "Activate"
Packit bd2e5d
    | `ButtonPress -> "ButtonPress"
Packit bd2e5d
    | `ButtonPressDetail n -> "ButtonPress-"^string_of_int n
Packit bd2e5d
    | `ButtonRelease -> "ButtonRelease"
Packit bd2e5d
    | `ButtonReleaseDetail n -> "ButtonRelease-"^string_of_int n
Packit bd2e5d
    | `Circulate -> "Circulate"
Packit bd2e5d
    | `Colormap -> "Colormap"
Packit bd2e5d
    | `Configure -> "Configure"
Packit bd2e5d
    | `Deactivate -> "Deactivate"
Packit bd2e5d
    | `Destroy -> "Destroy"
Packit bd2e5d
    | `Enter -> "Enter"
Packit bd2e5d
    | `Expose -> "Expose"
Packit bd2e5d
    | `FocusIn -> "FocusIn"
Packit bd2e5d
    | `FocusOut -> "FocusOut"
Packit bd2e5d
    | `Gravity -> "Gravity"
Packit bd2e5d
    | `KeyPress -> "KeyPress"
Packit bd2e5d
    | `KeyPressDetail s -> "KeyPress-"^s
Packit bd2e5d
    | `KeyRelease -> "KeyRelease"
Packit bd2e5d
    | `KeyReleaseDetail s -> "KeyRelease-"^s
Packit bd2e5d
    | `Leave -> "Leave"
Packit bd2e5d
    | `Map -> "Map"
Packit bd2e5d
    | `Motion -> "Motion"
Packit bd2e5d
    | `Property -> "Property"
Packit bd2e5d
    | `Reparent -> "Reparent"
Packit bd2e5d
    | `Unmap -> "Unmap"
Packit bd2e5d
    | `Visibility -> "Visibility"
Packit bd2e5d
    | `Virtual s ->
Packit bd2e5d
        if !modified then raise IllegalVirtualEvent else "<"^s^">"
Packit bd2e5d
    | `Modified(ml, ev) ->
Packit bd2e5d
        modified := true;
Packit bd2e5d
        String.concat ~sep:"" (List.map ~f:cCAMLtoTKmodifier ml)
Packit bd2e5d
        ^ convert ev
Packit bd2e5d
  in "<" ^ convert ev ^ ">"
Packit bd2e5d
;;
Packit bd2e5d
Packit bd2e5d
let cCAMLtoTKeventSequence (l : event list) =
Packit bd2e5d
  TkToken(String.concat ~sep:"" (List.map ~f:cCAMLtoTKevent l))
Packit bd2e5d
;;
Packit bd2e5d
Packit bd2e5d
##endif