summaryrefslogtreecommitdiffstats
path: root/otherlibs/labltk/browser/viewer.ml
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/labltk/browser/viewer.ml')
-rw-r--r--otherlibs/labltk/browser/viewer.ml23
1 files changed, 16 insertions, 7 deletions
diff --git a/otherlibs/labltk/browser/viewer.ml b/otherlibs/labltk/browser/viewer.ml
index b82e1f63f..0240dfe3b 100644
--- a/otherlibs/labltk/browser/viewer.ml
+++ b/otherlibs/labltk/browser/viewer.ml
@@ -141,7 +141,7 @@ let choose_symbol ~title ~env ?signature ?path l =
let frame = Frame.create tl in
pack [frame] ~side:`Bottom ~fill:`X;
add_shown_module path
- ~widgets:{ mw_frame = frame; mw_detach = detach;
+ ~widgets:{ mw_frame = frame; mw_title = None; mw_detach = detach;
mw_edit = edit; mw_intf = intf }
end
@@ -402,8 +402,10 @@ class st_viewer ?(dir=Unix.getcwd()) ?on () =
let menus = Frame.create tl ~name:"menubar" in
let filemenu = new Jg_menu.c "File" ~parent:menus
and modmenu = new Jg_menu.c "Modules" ~parent:menus
+ and viewmenu = new Jg_menu.c "View" ~parent:menus
and helpmenu = new Jg_menu.c "Help" ~parent:menus in
let boxes_frame = Frame.create tl ~name:"boxes" in
+ let label = Label.create tl ~anchor:`W ~padx:10 in
let view = Frame.create tl in
let buttons = Frame.create tl in
let all = Button.create buttons ~text:"Show all" ~padx:20
@@ -413,6 +415,7 @@ class st_viewer ?(dir=Unix.getcwd()) ?on () =
and intf = Button.create buttons ~text:"Intf" in
object (self)
val mutable boxes = []
+ val mutable show_all = fun () -> ()
method create_box =
let fmbox, mbox, sb = Jg_box.create_with_scrollbar boxes_frame in
@@ -429,10 +432,13 @@ object (self)
begin fun index ->
view_defined (Lident (Listbox.get mbox ~index)) ~env:!start_env
end;
+ bind mbox ~events:[`Modified([`Double], `ButtonPressDetail 1)]
+ ~action:(fun _ -> show_all ());
Setpath.add_update_hook (fun () -> reset_modules mbox; self#hide_after 1);
List.iter [1;2] ~f:(fun _ -> ignore self#create_box);
Searchpos.default_frame := Some
- { mw_frame = view; mw_detach = detach; mw_edit = edit; mw_intf = intf };
+ { mw_frame = view; mw_title = Some label;
+ mw_detach = detach; mw_edit = edit; mw_intf = intf };
(* Buttons *)
pack [close] ~side:`Right ~fill:`X ~expand:true;
@@ -453,16 +459,20 @@ object (self)
~command:(fun () -> reset_modules mbox; Env.reset_cache ());
modmenu#add_command "Search symbol..." ~command:search_symbol;
+ (* View menu *)
+ viewmenu#add_command "Show all" ~command:(fun () -> show_all ());
+
(* Help menu *)
helpmenu#add_command "Manual..." ~command:show_help;
- pack [filemenu#button; modmenu#button] ~side:`Left ~ipadx:5 ~anchor:`W;
+ pack [filemenu#button; modmenu#button; viewmenu#button]
+ ~side:`Left ~ipadx:5 ~anchor:`W;
pack [helpmenu#button] ~side:`Right ~anchor:`E ~ipadx:5;
pack [menus] ~side:`Top ~fill:`X;
(* pack [close; search] ~fill:`X ~side:`Right ~expand:true; *)
pack [boxes_frame] ~fill:`Both ~expand:true;
- pack [view] ~fill:`X ~expand:false;
pack [buttons] ~fill:`X ~side:`Bottom ~expand:false;
+ pack [view] ~fill:`Both ~side:`Bottom ~expand:true;
reset_modules mbox
val mutable shown_paths = []
@@ -539,12 +549,11 @@ object (self)
begin match signature with
None -> ()
| Some signature ->
- Button.configure all ~command:
+ show_all <-
begin fun () ->
current := None;
view_signature signature ~title ~env ?path
- end;
- pack [all] ~side:`Right ~fill:`X ~expand:true
+ end
end
end