diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2006-01-04 16:55:50 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2006-01-04 16:55:50 +0000 |
commit | 125ea40d4c63e7bae69e30c2b6ba2b598b1bd5c2 (patch) | |
tree | 6884b9b9821851f7f57add043646b54fe4cc85f3 /otherlibs/labltk/browser/editor.ml | |
parent | 3aaf0659a4c172c71cbf4828ed3bb6aa833c53e0 (diff) |
fusion 3.09.0 -> 3.09.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7307 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/labltk/browser/editor.ml')
-rw-r--r-- | otherlibs/labltk/browser/editor.ml | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/otherlibs/labltk/browser/editor.ml b/otherlibs/labltk/browser/editor.ml index 1e6e3c0ee..617cdfa85 100644 --- a/otherlibs/labltk/browser/editor.ml +++ b/otherlibs/labltk/browser/editor.ml @@ -287,8 +287,8 @@ class editor ~top ~menus = object (self) val compiler_menu = new Jg_menu.c "Compiler" ~parent:menus val module_menu = new Jg_menu.c "Modules" ~parent:menus val window_menu = new Jg_menu.c "Windows" ~parent:menus - val label = - Checkbutton.create menus ~state:`Disabled + initializer + Menu.add_checkbutton menus ~state:`Disabled ~onvalue:"modified" ~offvalue:"unchanged" val mutable current_dir = Unix.getcwd () val mutable error_messages = [] @@ -314,14 +314,18 @@ class editor ~top ~menus = object (self) ~command:(fun () -> self#set_edit txt) end + method set_file_name txt = + Menu.configure_checkbutton menus `Last + ~label:(Filename.basename txt.name) + ~variable:txt.modified + method set_edit txt = if windows <> [] then Pack.forget [(List.hd windows).frame]; windows <- txt :: exclude txt windows; self#reset_window_menu; current_tw <- txt.tw; - Checkbutton.configure label ~text:(Filename.basename txt.name) - ~variable:txt.modified; + self#set_file_name txt; Textvariable.set vwindow txt.number; Text.yview txt.tw ~scroll:(`Page 0); pack [txt.frame] ~fill:`Both ~expand:true ~side:`Bottom @@ -381,7 +385,7 @@ class editor ~top ~menus = object (self) pack [sb] ~fill:`Y ~side:`Right; pack [tw] ~fill:`Both ~expand:true ~side:`Left; self#set_edit txt; - Checkbutton.deselect label; + Textvariable.set txt.modified "unchanged"; Lexical.init_tags txt.tw method clear_errors () = @@ -429,9 +433,8 @@ class editor ~top ~menus = object (self) let text = Text.get txt.tw ~start:tstart ~stop:(tposend 1) in output_string file text; close_out file; - Checkbutton.configure label ~text:(Filename.basename name); - Checkbutton.deselect label; - txt.name <- name + txt.name <- name; + self#set_file_name txt with Sys_error _ -> Jg_message.info ~master:top ~title:"Error" @@ -453,7 +456,7 @@ class editor ~top ~menus = object (self) | `No -> () | `Cancel -> raise Exit end; - Checkbutton.deselect label; + Textvariable.set txt.modified "unchanged"; (Text.index current_tw ~index:(`Mark"insert", []), []) with Not_found -> self#new_window name; tstart in @@ -629,13 +632,6 @@ class editor ~top ~menus = object (self) ~command:Viewer.search_symbol; module_menu#add_command "Close all" ~command:Viewer.close_all_views; - - (* pack everything *) - pack (List.map ~f:(fun m -> coe m#button) - [file_menu; edit_menu; compiler_menu; module_menu; window_menu] - @ [coe label]) - ~side:`Left ~ipadx:5 ~anchor:`W; - pack [menus] ~before:(List.hd windows).frame ~side:`Top ~fill:`X end (* The main function starts here ! *) @@ -658,7 +654,7 @@ let editor ?file ?(pos=0) ?(reuse=false) () = false then () else let top = Jg_toplevel.titled "OCamlBrowser Editor" in - let menus = Frame.create top ~name:"menubar" in + let menus = Jg_menu.menubar top in let ed = new editor ~top ~menus in already_open := !already_open @ [ed]; if file <> None then ed#reopen ~file ~pos |