improved theory_source presentation (hook);
authorwenzelm
Sun, 03 Oct 1999 15:54:25 +0200
changeset 7685 3edd32d588a6
parent 7684 2e691e52281d
child 7686 4731f10af2e6
improved theory_source presentation (hook);
src/Pure/Thy/present.ML
--- a/src/Pure/Thy/present.ML	Sun Oct 03 15:54:04 1999 +0200
+++ b/src/Pure/Thy/present.ML	Sun Oct 03 15:54:25 1999 +0200
@@ -3,9 +3,6 @@
     Author:     Markus Wenzel, TU Muenchen
 
 Theory presentation abstract interface.
-
-TODO:
-  - presentation_modes: AND (!?);
 *)
 
 signature BASIC_PRESENT =
@@ -16,9 +13,31 @@
 signature PRESENT =
 sig
   include BROWSER_INFO
+  val theory_source_presenter:
+    (bool -> string -> (string, string list) Source.source * Position.T -> unit) -> unit
 end;
 
-structure Present: PRESENT = BrowserInfo;	(* FIXME *)
+structure Present: PRESENT =
+struct
+
+(*mostly fall back on BrowserInfo for the time being*)
+open BrowserInfo;
+
+
+(* theory source presenters *)
+
+local
+  val presenters =
+    ref ([]: (bool -> string -> (string, string list) Source.source  * Position.T -> unit) list);
+in
+  fun theory_source_presenter f = presenters := f :: ! presenters;
+  fun theory_source is_old name src = seq (fn f => f is_old name src) (! presenters);
+end;
+
+
+end;
+
+Present.theory_source_presenter BrowserInfo.theory_source;
 
 structure BasicPresent: BASIC_PRESENT = Present;
 open BasicPresent;