From 20d09c4eee5c192d01d4d5f0619cf99488542a1b Mon Sep 17 00:00:00 2001 From: malc Date: Sun, 19 Feb 2012 10:52:04 +0400 Subject: [PATCH] Refactor --- main.ml | 149 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 75 insertions(+), 74 deletions(-) diff --git a/main.ml b/main.ml index 35bee8a..599cfe3 100644 --- a/main.ml +++ b/main.ml @@ -636,6 +636,80 @@ struct ;; end;; +let getopaque pageno = + try Some (Hashtbl.find state.pagemap (pageno, state.gen)) + with Not_found -> None +;; + +let putopaque pageno opaque = + Hashtbl.replace state.pagemap (pageno, state.gen) opaque +;; + +let pagetranslatepoint l x y = + let dy = y - l.pagedispy in + let y = dy + l.pagey in + let dx = x - l.pagedispx in + let x = dx + l.pagex in + (x, y); +;; + +let getunder x y = + let rec f = function + | l :: rest -> + begin match getopaque l.pageno with + | Some opaque -> + let x0 = l.pagedispx in + let x1 = x0 + l.pagevw in + let y0 = l.pagedispy in + let y1 = y0 + l.pagevh in + if y >= y0 && y <= y1 && x >= x0 && x <= x1 + then + let px, py = pagetranslatepoint l x y in + match whatsunder opaque px py with + | Unone -> f rest + | under -> under + else f rest + | _ -> + f rest + end + | [] -> Unone + in + f state.layout +;; + +let showtext c s = + state.text <- Printf.sprintf "%c%s" c s; + G.postRedisplay "showtext"; +;; + +let updateunder x y = + match getunder x y with + | Unone -> Wsi.setcursor Wsi.CURSOR_INHERIT + | Ulinkuri uri -> + if conf.underinfo then showtext 'u' ("ri: " ^ uri); + Wsi.setcursor Wsi.CURSOR_INFO + | Ulinkgoto (page, _) -> + if conf.underinfo + then showtext 'p' ("age: " ^ string_of_int (page+1)); + Wsi.setcursor Wsi.CURSOR_INFO + | Utext s -> + if conf.underinfo then showtext 'f' ("ont: " ^ s); + Wsi.setcursor Wsi.CURSOR_TEXT + | Uunexpected s -> + if conf.underinfo then showtext 'u' ("nexpected: " ^ s); + Wsi.setcursor Wsi.CURSOR_INHERIT + | Ulaunch s -> + if conf.underinfo then showtext 'l' ("launch: " ^ s); + Wsi.setcursor Wsi.CURSOR_INHERIT + | Unamed s -> + if conf.underinfo then showtext 'n' ("named: " ^ s); + Wsi.setcursor Wsi.CURSOR_INHERIT + | Uremote (filename, pageno) -> + if conf.underinfo then showtext 'r' + (Printf.sprintf "emote: %s (%d)" filename pageno); + Wsi.setcursor Wsi.CURSOR_INFO +;; + let addchar s c = let b = Buffer.create (String.length s + 1) in Buffer.add_string b s; @@ -1021,15 +1095,6 @@ let clamp incr = y; ;; -let getopaque pageno = - try Some (Hashtbl.find state.pagemap (pageno, state.gen)) - with Not_found -> None -;; - -let putopaque pageno opaque = - Hashtbl.replace state.pagemap (pageno, state.gen) opaque -;; - let itertiles l f = let tilex = l.pagex mod conf.tilew in let tiley = l.pagey mod conf.tileh in @@ -1657,11 +1722,6 @@ let enttext () = then drawstring s ;; -let showtext c s = - state.text <- Printf.sprintf "%c%s" c s; - G.postRedisplay "showtext"; -;; - let gctiles () = let len = Queue.length state.tilelru in let rec loop qpos = @@ -4616,14 +4676,6 @@ let scrollindicator () = ; ;; -let pagetranslatepoint l x y = - let dy = y - l.pagedispy in - let y = dy + l.pagey in - let dx = x - l.pagedispx in - let x = dx + l.pagex in - (x, y); -;; - let showsel () = match state.mstate with | Mnone | Mscrolly | Mscrollx | Mpan _ | Mzoom _ | Mzoomrect _ -> @@ -4707,30 +4759,6 @@ let display () = Wsi.swapb (); ;; -let getunder x y = - let rec f = function - | l :: rest -> - begin match getopaque l.pageno with - | Some opaque -> - let x0 = l.pagedispx in - let x1 = x0 + l.pagevw in - let y0 = l.pagedispy in - let y1 = y0 + l.pagevh in - if y >= y0 && y <= y1 && x >= x0 && x <= x1 - then - let px, py = pagetranslatepoint l x y in - match whatsunder opaque px py with - | Unone -> f rest - | under -> under - else f rest - | _ -> - f rest - end - | [] -> Unone - in - f state.layout -;; - let zoomrect x y x1 y1 = let x0 = min x x1 and x1 = max x x1 @@ -5053,34 +5081,7 @@ let uioh = object | View -> match state.mstate with - | Mnone -> - begin match getunder x y with - | Unone -> Wsi.setcursor Wsi.CURSOR_INHERIT - | Ulinkuri uri -> - if conf.underinfo then showtext 'u' ("ri: " ^ uri); - Wsi.setcursor Wsi.CURSOR_INFO - | Ulinkgoto (page, _) -> - if conf.underinfo - then showtext 'p' ("age: " ^ string_of_int (page+1)); - Wsi.setcursor Wsi.CURSOR_INFO - | Utext s -> - if conf.underinfo then showtext 'f' ("ont: " ^ s); - Wsi.setcursor Wsi.CURSOR_TEXT - | Uunexpected s -> - if conf.underinfo then showtext 'u' ("nexpected: " ^ s); - Wsi.setcursor Wsi.CURSOR_INHERIT - | Ulaunch s -> - if conf.underinfo then showtext 'l' ("launch: " ^ s); - Wsi.setcursor Wsi.CURSOR_INHERIT - | Unamed s -> - if conf.underinfo then showtext 'n' ("named: " ^ s); - Wsi.setcursor Wsi.CURSOR_INHERIT - | Uremote (filename, pageno) -> - if conf.underinfo then showtext 'r' - (Printf.sprintf "emote: %s (%d)" filename pageno); - Wsi.setcursor Wsi.CURSOR_INFO - end - + | Mnone -> updateunder x y | Mpan _ | Msel _ | Mzoom _ | Mscrolly | Mscrollx | Mzoomrect _ -> () end; -- 2.11.4.GIT