5 type rgb = (float * float * float)
6 and rgba = (float * float * float * float)
7 and fitmodel = | FitWidth | FitProportional | FitPage
8 and irect = (int * int * int * int)
9 and colorspace = | Rgb | Gray
11 | KMinsrt of key | KMinsrl of key list | KMmulti of (key list * key list)
13 and keyhash = (key, keymap) Hashtbl.t
14 and keystate = | KSnone | KSinto of (key list * key list)
15 and css = string and dcf = string and hcs = string
17 | Csingle of singlecolumn
18 | Cmulti of multicolumns
19 | Csplit of splitcolumns
25 and multicolumns = (multicol * pagegeom)
26 and singlecolumn = pagegeom
27 and splitcolumns = (columncount * pagegeom)
28 and pagegeom = (pdimno * x * y * (pageno * width * height * leftx)) array
29 and multicol = (columncount * covercount * covercount)
31 and pdimno = int and pageno = int
32 and x = int and y = int and leftx = int
34 and width = int and height = int
35 and memsize = int and texcount = int
38 let scrollbvv = 1 and scrollbhv = 2
44 printf "mutable $1:$2;"
46 assi
="$assi dst.$1 <- src.$1;"
48 i
() { g
"$1" int
"$2"; }
49 b
() { g
"$1" bool
"$2"; }
50 f
() { g
"$1" float
"$2"; }
51 s
() { g
"$1" string
"$2"; }
53 printf "mutable $1:$2;\n"
55 assi
="$assi dst.keyhashes <- copykeyhashes src;"
58 printf "mutable $1 : float option;\n"
60 assi
="$assi dst.pax <- if src.pax = None then None else Some 0.0;"
65 i scrollb
"scrollbhv lor scrollbvv"
83 g fitmodel fitmodel FitProportional
85 g trimfuzz irect
"(0,0,0,0)"
86 g memlimit memsize
"128 lsl 20"
87 g texcount texcount
256
88 g sliceheight sliceheight
24
90 g bgcolor rgb
"(0.5, 0.5, 0.5)"
91 g papercolor rgba
"(1.0, 1.0, 1.0, 0.0)"
92 g sbarcolor rgba
"(0.64, 0.64, 0.64, 0.7)"
93 g sbarhndlcolor rgba
"(0.0, 0.0, 0.0, 0.7)"
94 g texturecolor rgba
"(0.0, 0.0, 0.0, 0.0)"
97 g mustoresize memsize
"256 lsl 20"
99 s urilauncher
"{|$uopen|}"
100 s pathlauncher
"{|$print|}"
101 g colorspace colorspace Rgb
104 g columns columns
"Csingle [||]"
105 g beyecolumns
"columncount option" None
107 s pastecmd
"{|$paste|}"
108 s paxcmd
'{|echo PAX "%s">&2|}'
112 K keyhashes
'(string * keyhash) list' \
113 '(let mk n = (n, Hashtbl.create 1) in
114 [ mk "global"; mk "info" ; mk "help"; mk "outline"; mk "listview"
115 ; mk "birdseye"; mk "textentry"; mk "links"; mk "view" ])'
116 i hfsize
'Wsi.fontsizescale 12'
119 s stcmd
"{|echo SyncTex|}"
121 g paxmark mark Mark_word
126 b coarseprespos false
132 s hcs
"{|aoeuidhtns|}"
139 let copykeyhashes c = List.map (fun (k, v) -> k, Hashtbl.copy v) c.keyhashes
140 let defconf = {$init}
141 let setconf dst src = $assi;