Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
functions.ml
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
include Raygui_c.Types include Raygui_c.Functions let to_struct a = (a : 'a Raylib.ctyp :> 'a Ctypes.structure) (* coercion with the ptr type did not work :( *) let to_struct_ptr a = Ctypes.( !@ ) a |> to_struct |> Ctypes.addr (* let to_struct_ptr a = * (a : 'a Raylib.ctyp Raylib.ptr :> 'a Ctypes.structure Raylib.ptr) *) let set_font fnt = _set_font @@ to_struct fnt let get_font () = Raylib.to_ctyp @@ _get_font () let window_box bx = _window_box @@ to_struct bx let group_box bx = _group_box @@ to_struct bx let line bx = _line @@ to_struct bx let panel bx = _panel @@ to_struct bx let scroll_panel a b c = _scroll_panel (to_struct a) (to_struct b) (to_struct_ptr c) |> Raylib.to_ctyp let label bx = _label @@ to_struct bx let bx = _button @@ to_struct bx let bx = _label_button @@ to_struct bx let toggle rct = _toggle @@ to_struct rct let toggle_group rct = _toggle_group @@ to_struct rct let check_box rct = _check_box @@ to_struct rct let combo_box rct = _combo_box @@ to_struct rct let dropdown_box rct labels vl edit = let vl_ptr = Raylib.ptr_of_int vl in let rt = _dropdown_box (to_struct rct) labels vl_ptr edit in (Ctypes.(!@vl_ptr), rt) let spinner rct label vl ~min ~max edit = let vl_ptr = Raylib.ptr_of_int vl in let rt = _spinner (to_struct rct) label vl_ptr min max edit in (Ctypes.(!@vl_ptr), rt) let value_box rct label vl ~min ~max edit = let vl_ptr = Raylib.ptr_of_int vl in let rt = _value_box (to_struct rct) label vl_ptr min max edit in (Ctypes.(!@vl_ptr), rt) let carray_of_string str = (* Two null bytes to have room for a new character *) let len = String.length str in let open Ctypes in let arr = CArray.make char (len + 2) in String.iteri (CArray.set arr) str; CArray.set arr len '\x00'; CArray.set arr (len + 1) '\x00'; arr let text_box rct txt state = let open Ctypes in let str_arr = CArray.of_string txt in let rt = _text_box (to_struct rct) (CArray.start str_arr) (CArray.length str_arr + 1) state in let str = Ctypes.string_from_ptr (CArray.start str_arr) ~length:(CArray.length str_arr) in let str = match String.index_opt str '\x00' with | Some last -> String.sub str 0 last | None -> str in (str, rt) let text_box_multi rct txt state = let open Ctypes in let str_arr = CArray.of_string txt in let rt = _text_box_multi (to_struct rct) (CArray.start str_arr) (CArray.length str_arr + 1) state in let str = Ctypes.string_from_ptr (CArray.start str_arr) ~length:(CArray.length str_arr) in let str = match String.index_opt str '\x00' with | Some last -> String.sub str 0 last | None -> str in (str, rt) let slider rct label txt value ~min ~max = _slider (to_struct rct) label txt value min max let slider_bar rct label txt value ~min ~max = _slider_bar (to_struct rct) label txt value min max let progress_bar rct label txt value ~min ~max = _progress_bar (to_struct rct) label txt value min max let status_bar rct = _status_bar @@ to_struct rct let dummy_rec rct = _dummy_rec @@ to_struct rct let scroll_bar rct value ~min ~max = _scroll_bar (to_struct rct) value min max let grid rct b c = _grid (to_struct rct) b c |> Raylib.to_ctyp let list_view rct label index active = let vl_ptr = Raylib.ptr_of_int index in let active = _list_view (to_struct rct) label vl_ptr active in (active, Ctypes.(!@vl_ptr)) let list_view_ex rct strings focus index active = let open Ctypes in let str_arr = CArray.of_list Ctypes.string strings in let focus_ptr = Raylib.ptr_of_int focus in let index_ptr = Raylib.ptr_of_int index in let active = _list_view_ex (to_struct rct) (CArray.start str_arr) (List.length strings) focus_ptr index_ptr active in (active, !@focus_ptr, !@index_ptr) let message_box rct = _message_box @@ to_struct rct let text_input_box rct title message text = let open Ctypes in let str_arr = CArray.of_string text in let rt = _text_input_box (to_struct rct) title message buttons (CArray.start str_arr) in (String.init (CArray.length str_arr) (CArray.unsafe_get str_arr), rt) let color_picker rct col = _color_picker (to_struct rct) (to_struct col) |> Raylib.to_ctyp let color_panel rct col = _color_panel (to_struct rct) (to_struct col) |> Raylib.to_ctyp let color_bar_alpha rct = _color_bar_alpha @@ to_struct rct let color_bar_hue rct = _color_bar_hue @@ to_struct rct