- if not (jump element) then
- match mathview#get_action with
- Some n ->
- mathview#action_toggle ;
- print_string ("current action selection: " ^
- string_of_int mathview#action_get_selected ^ "\n") ;
- flush stdout ;
- | None ->
- print_string ("mouse is on: " ^
- (match (mathview#get_element : Gdome.element option) with
- Some e -> e#get_tagName#to_string
- | None -> "NO ELEMENT!\n"
- ) ^ "\n") ;
- print_endline ("clicked: " ^ element#get_tagName#to_string) ;
- flush stdout
-;;
-
-
-let activate_t1 (mathview : GMathView.math_view) () =
- mathview#set_font_manager_type `font_manager_t1;
- print_string "WIDGET SET WITH T1 FONTS\n" ;
- flush stdout
-;;
-
-let activate_gtk (mathview : GMathView.math_view) () =
- mathview#set_font_manager_type `font_manager_gtk ;
- print_string "WIDGET SET WITH GTK FONTS\n" ;
- flush stdout
-;;
-
-let get_font_manager_type mathview () =
- print_string "CURRENT FONT MANAGER TYPE: ";
- begin
- match mathview#get_font_manager_type with
- | `font_manager_t1 -> print_string "T1"
- | `font_manager_gtk -> print_string "GTK"
- end;
- print_newline();
- flush stdout
-;;
-
-let get_transparency mathview () =
- print_string ("CURRENT TRANSPARENCY: " ^
- (if mathview#get_transparency then "ON" else "OFF") ^ "\n") ;
- flush stdout
-;;
+ if element#get_tagName#to_string = "m:maction" then
+ let selection =
+ if element#hasAttribute ~name:(G.domString "selection") then
+ int_of_string (element#getAttribute ~name:(G.domString "selection"))#to_string
+ else
+ 1
+ in
+ mathview#freeze ;
+ (* the widget will cast the index back into a reasonable range *)
+ element#setAttribute ~name:(G.domString "selection") ~value:(G.domString (string_of_int (selection + 1))) ;
+ mathview#thaw ;
+ true
+ else
+ match element#get_parentNode with
+ Some p ->
+ begin
+ try
+ action mathview (new Gdome.element_of_node p)
+ with
+ GdomeInit.DOMCastException _ ->
+ print_string "action: NO MACTION FOUND\n" ;
+ flush stdout ;
+ false
+ end
+ | None -> assert false (* every element has a parent *)