6 type rgb = float * float * float
7 type rgba = float * float * float * float
8 type fitmodel = | FitWidth | FitProportional | FitPage
9 type irect = (int * int * int * int)
11 type colorspace = | Rgb | Gray
13 | KMinsrt of key | KMinsrl of key list | KMmulti of key list * key list
15 and keyhash = (key, keymap) Hashtbl.t
16 and keystate = | KSnone | KSinto of (key list * key list)
19 | Csingle of singlecolumn
20 | Cmulti of multicolumns
21 | Csplit of splitcolumns
27 and multicolumns = multicol * pagegeom
28 and singlecolumn = pagegeom
29 and splitcolumns = columncount * pagegeom
30 and trimcachepath = string
31 and pagegeom = (pdimno * x * y * (pageno * width * height * leftx)) array
32 and multicol = columncount * covercount * covercount
36 and x = int and y = int and leftx = int
38 and width = int and height = int
39 and memsize = int and texcount = int
40 and sliceheight = int;;
41 let scrollbvv = 1 and scrollbhv = 2;;
47 printf "mutable $1:$2;"
49 assi
="$assi dst.$1 <- src.$1;"
51 i
() { g
"$1" int
"$2"; }
52 b
() { g
"$1" bool
"$2"; }
53 f
() { g
"$1" float
"$2"; }
54 s
() { g
"$1" string
"$2"; }
56 printf "mutable $1:$2;\n"
58 assi
="$assi dst.keyhashes <- copykeyhashes src;"
61 printf "mutable $1 : float option;\n"
63 assi
="$assi dst.pax <- if src.pax = None then None else Some 0.0;"
68 i scrollb
"scrollbhv lor scrollbvv"
86 g fitmodel fitmodel FitProportional
88 g trimfuzz irect
"(0,0,0,0)"
89 g trimcachepath trimcachepath E.s
90 g memlimit memsize
"32 lsl 20"
91 g texcount texcount
256
92 g sliceheight sliceheight
24
94 g bgcolor rgb
"(0.5, 0.5, 0.5)"
95 g papercolor rgba
"(1.0, 1.0, 1.0, 0.0)"
96 g sbarcolor rgba
"(0.64, 0.64, 0.64, 0.7)"
97 g sbarhndlcolor rgba
"(0.0, 0.0, 0.0, 0.7)"
98 g texturecolor rgba
"(0.0, 0.0, 0.0, 0.0)"
101 g mustoresize memsize
"256 lsl 20"
104 s urilauncher
'(match[@warning "-4"] platform with |Pmacos -> {|open "%s"|}|_ -> {|echo "%s"|})'
105 s pathlauncher
'{|lp "%s"|}'
106 g colorspace colorspace Rgb
109 g columns columns
"Csingle [||]"
110 g beyecolumns
"columncount option" None
111 s selcmd
'(match platform with |Plinux|Pbsd -> "LC_CTYPE=UTF-8 xclip -i"|Pmacos -> "LC_CTYPE=UTF-8 pbcopy"|Punknown -> "cat")'
112 s pastecmd
'(match platform with |Plinux|Pbsd -> "LC_CTYPE=UTF-8 xclip -o"|Pmacos -> "LC_CTYPE=UTF-8 pbpaste"|Punknown -> "echo")'
117 K keyhashes
'(string * keyhash) list' \
118 '(let mk n = (n, Hashtbl.create 1) in
119 [ mk "global"; mk "info" ; mk "help"; mk "outline"; mk "listview"
120 ; mk "birdseye"; mk "textentry"; mk "links"; mk "view" ])'
121 i hfsize
'12 * Wsi.fontsizefactor ()'
125 s stcmd
"{|echo SyncTex|}"
127 g paxmark mark Mark_word
132 b coarseprespos false
140 let copykeyhashes c = List.map (fun (k, v) -> k, Hashtbl.copy v) c.keyhashes;;
141 let defconf = {$init};;
142 let setconf dst src = $assi;