1 (* Copyright (C) 2004, HELM Team.
3 * This file is part of HELM, an Hypertextual, Electronic
4 * Library of Mathematics, developed at the Computer Science
5 * Department, University of Bologna, Italy.
7 * HELM is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * HELM is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with HELM; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
22 * For details, see the HELM World-Wide-Web page,
23 * http://helm.cs.unibo.it/
27 class stringListModel' uriChoiceDialog =
28 let tree_view = uriChoiceDialog#uriChoiceTreeView in
29 let column_list = new GTree.column_list in
30 let text_column = column_list#add Gobject.Data.string in
31 let list_store = GTree.list_store column_list in
32 let renderer = (GTree.cell_renderer_text [], ["text", text_column]) in
33 let view_column = GTree.view_column ~renderer () in
34 let _ = tree_view#set_model (Some (list_store :> GTree.model)) in
35 let _ = tree_view#append_column view_column in
38 let tree_iter = list_store#append () in
39 list_store#set ~row:tree_iter ~column:text_column s
40 method clear () = list_store#clear ()
44 open MatitaGeneratedGui
48 (* creation order _is_ relevant for windows placement *)
49 let toolbar = new toolBarWin ~file () in
50 let main = new mainWin ~file () in
51 let about = new aboutWin ~file () in
52 let fileSel = new fileSelectionWin ~file () in
53 let proof = new proofWin ~file () in
54 let keyBindingBoxes = (* event boxes which should receive global key events *)
55 [ toolbar#toolBarEventBox; proof#proofWinEventBox ]
59 (* glade's check widgets *)
60 List.iter (fun w -> w#check_widgets ())
61 (let c w = (w :> <check_widgets: unit -> unit>) in
62 [ c about; c fileSel; c main; c proof; c toolbar ]);
63 (* show/hide commands *)
64 toggle_visibility toolbar#toolBarWin main#showToolBarMenuItem;
65 toggle_visibility proof#proofWin main#showProofMenuItem;
66 (* "global" key bindings *)
67 List.iter (fun (key, callback) -> self#addKeyBinding key callback)
69 toggle_win ~check:main#showProofMenuItem proof#proofWin;
72 ignore (about#aboutWin#event#connect#delete (fun _ -> true));
73 ignore (main#aboutMenuItem#connect#activate (fun _ ->
74 about#aboutWin#show ()));
75 ignore (about#aboutDismissButton#connect#clicked (fun _ ->
76 about#aboutWin#misc#hide ()));
78 List.iter (fun w -> w#misc#set_sensitive false)
79 [ main#saveMenuItem; main#saveAsMenuItem ];
80 main#helpMenu#set_right_justified true;
84 method toolbar = toolbar
87 method fileSel = fileSel
90 method newUriDialog () =
91 let dialog = new uriChoiceDialog ~file () in
92 dialog#check_widgets ();
95 method newInterpDialog () =
96 let dialog = new interpChoiceDialog ~file () in
97 dialog#check_widgets ();
100 method newConfirmationDialog ~title ~msg () =
101 let dialog = new confirmationDialog ~file () in
102 dialog#confirmationDialog#set_title title;
103 dialog#confirmationDialogLabel#set_label msg;
104 dialog#check_widgets ();
107 method private addKeyBinding key callback =
108 List.iter (fun evbox -> add_key_binding key callback evbox)
111 method setQuitCallback callback =
112 ignore (main#toplevel#connect#destroy callback);
113 ignore (main#quitMenuItem#connect#activate callback);
114 self#addKeyBinding GdkKeysyms._q callback