X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Flablgtkmathview%2FgMathViewAux.ml;h=8880ee06cf12bdc96bed87ee8d32e87bbab0a80a;hb=8aaf525856e25bcd8f355e505fd00f45c62bc18f;hp=928e2196522e5981be0cc2efc98341de2a08dbcf;hpb=93393088bc8d331fb1cb0a81d94074240b16df4d;p=helm.git diff --git a/helm/DEVEL/lablgtkmathview/gMathViewAux.ml b/helm/DEVEL/lablgtkmathview/gMathViewAux.ml index 928e21965..8880ee06c 100644 --- a/helm/DEVEL/lablgtkmathview/gMathViewAux.ml +++ b/helm/DEVEL/lablgtkmathview/gMathViewAux.ml @@ -120,8 +120,9 @@ class single_selection_math_view obj = method action_toggle (elem : Gdome.element) = match elem#get_namespaceURI, elem#get_localName with Some ns, Some ln - when ns#to_string = "http://www.w3.org/1998/Math/MathML" && - ln#to_string = "maction" + when + (ns#to_string = "http://www.w3.org/1998/Math/MathML" && ln#to_string = "maction") || + (ns#to_string = "http://helm.cs.unibo.it/2003/BoxML" && ln#to_string = "action") -> begin let selection_attr = Gdome.domString "selection" in @@ -156,13 +157,13 @@ class single_selection_math_view obj = ignore (self#connect#select_begin - (fun (elem : Gdome.element option) _ -> + (fun ((elem : Gdome.element option), _, _, _) -> if not (same_element root_selected elem) then selection_changed elem ; first_selected <- elem)) ; ignore (self#connect#select_over - (fun (elem : Gdome.element option) _ -> + (fun ((elem : Gdome.element option), _, _, _) -> let new_selected = match first_selected, elem with Some first', Some last' -> @@ -176,7 +177,7 @@ class single_selection_math_view obj = ignore (self#connect#select_end - (fun (elem : Gdome.element option) _ -> first_selected <- None)) ; + (fun ((elem : Gdome.element option), _, _, _) -> first_selected <- None)) ; ignore (self#connect#select_abort @@ -184,33 +185,15 @@ class single_selection_math_view obj = first_selected <- None ; selection_changed None)) ; - ignore (self#connect#click (fun _ _ -> self#set_selection None)) + ignore (self#connect#click (fun _ -> self#set_selection None)) end ;; -let single_selection_math_view ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width - ?width ?height ?packing ?show () = - let w = - GtkMathView.MathView.create - ?adjustmenth:(Gaux.may_map ~f:GData.as_adjustment adjustmenth) - ?adjustmentv:(Gaux.may_map ~f:GData.as_adjustment adjustmentv) - () - in - GtkBase.Container.set w ?border_width ?width ?height; - let mathview = - GObj.pack_return (new single_selection_math_view w) ~packing ~show - in - begin - match font_size with - | Some size -> mathview#set_font_size size - | None -> () - end; - begin - match font_manager with - | Some manager -> mathview#set_font_manager_type ~fm_type:manager - | None -> () - end; - mathview +let single_selection_math_view ?hadjustment ?vadjustment ?font_size ?log_verbosity = + GtkBase.Widget.size_params ~cont:( + OgtkMathViewProps.pack_return + (fun p -> OgtkMathViewProps.set_params (new single_selection_math_view + (GtkMathViewProps.MathView_GMetaDOM.create p)) ~font_size ~log_verbosity)) [] ;; class multi_selection_math_view_signals obj @@ -244,8 +227,9 @@ class multi_selection_math_view obj = self#thaw method add_selection (elem : Gdome.element) = + List.iter self#unselect selected ; selected <- elem::(remove_descendants_of elem selected) ; - self#select elem + List.iter self#select selected method get_selections = selected @@ -267,31 +251,13 @@ class multi_selection_math_view obj = initializer ignore (self#connect#select_begin - (fun _ state -> + (fun (_,_,_,state) -> if not (List.mem `CONTROL (Gdk.Convert.modifier state)) then self#remove_selections)) ; - ignore - (self#connect#select_over - (fun _ state -> - Printf.printf "stable selections: %d\n" (List.length selected) ; - Printf.printf "select_over with state: " ; - let c = - function - `SHIFT -> "shift " - | `LOCK -> "lock " - | `CONTROL -> "control " - | `MOD1 -> "mod1 " - | _ -> "" - in - List.iter (fun x -> print_string (c x)) (Gdk.Convert.modifier state) ; - print_char '\n' ; - flush stdout)) ; - ignore (self#connect#select_end - (fun _ state -> - Printf.printf "select_end\n" ; flush stdout ; + (fun (_,_,_,state) -> if not (List.mem `CONTROL (Gdk.Convert.modifier state)) then self#remove_selections ; match root_selected with @@ -300,30 +266,13 @@ class multi_selection_math_view obj = ignore (self#connect#click - (fun _ _ -> self#remove_selections)) + (fun _ -> self#remove_selections)) end ;; -let multi_selection_math_view ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width - ?width ?height ?packing ?show () = - let w = - GtkMathView.MathView.create - ?adjustmenth:(Gaux.may_map ~f:GData.as_adjustment adjustmenth) - ?adjustmentv:(Gaux.may_map ~f:GData.as_adjustment adjustmentv) - () - in - GtkBase.Container.set w ?border_width ?width ?height; - let mathview = GObj.pack_return (new multi_selection_math_view w) ~packing ~show in - begin - match font_size with - | Some size -> mathview#set_font_size size - | None -> () - end; - begin - match font_manager with - | Some manager -> mathview#set_font_manager_type ~fm_type:manager - | None -> () - end; - mathview +let multi_selection_math_view ?hadjustment ?vadjustment ?font_size ?log_verbosity = + GtkBase.Widget.size_params ~cont:( + OgtkMathViewProps.pack_return + (fun p -> OgtkMathViewProps.set_params (new multi_selection_math_view + (GtkMathViewProps.MathView_GMetaDOM.create p)) ~font_size ~log_verbosity)) [] ;; -