3.9) The input line objects.

type string_state =
    View_only
  | Editable
  | Edited
;;
type string_type =
    Gr_string
  | Gr_natural
  | Gr_int
  | Gr_hexa
  | Gr_float
  | Gr_password
;;
type gr_string =
  { st_window : gr_window
  ; mutable st_top : int
  ; mutable st_left : int
  ; mutable st_width : int
  ; mutable st_type : string_type
  ; mutable st_name : string
  ; mutable st_cursor : int
  ; mutable st_1st_char : int
  ; mutable st_state : string_state
  ; mutable st_callback : gr_string -> event -> bool
  }
;;
An object of type gr_string is a line where the user can edit a text or a number. The user clicks on the object with the mouse button. Then he can edit the text with the keyboard (functions keys or mouse can be use to set the cursor place). The management of the object depends on the value of the variable st_type: The input line objects are defined by: The functions linked with gr_string are:
gr_draw_string : gr_string -> unit
gr_draw_string String draws the object String.
gr_string_managed : gr_string -> event -> bool
is the function used by Camlwin to manage the input line objects.