Index: oup/current/Main.dfm
===================================================================
--- oup/current/Main.dfm	(revision 82)
+++ oup/current/Main.dfm	(revision 83)
@@ -70,5 +70,4 @@
           Caption = 'Open level-&db ...'
           ImageIndex = 1
-          ShortCut = 16452
           OnClick = menu_loaddbClick
         end
@@ -109,7 +108,7 @@
         end
         object menu_binedit: TTBItem
-          Caption = '&Binary .dat editor ...'
+          Caption = 'Binary .&dat editor ...'
           ImageIndex = 5
-          ShortCut = 16450
+          ShortCut = 16452
           OnClick = menu_bineditClick
         end
@@ -332,4 +331,5 @@
         ShowOnChange = True
         TabOrder = 0
+        OnMouseMove = MDITabMouseMove
         OnMouseUp = MDITabMouseUp
       end
Index: oup/current/Main.pas
===================================================================
--- oup/current/Main.pas	(revision 82)
+++ oup/current/Main.pas	(revision 83)
@@ -111,4 +111,6 @@
     procedure ToolbarDockChanged(Sender: TObject);
     procedure menu_loaddbClick(Sender: TObject);
+    procedure MDITabMouseMove(Sender: TObject; Shift: TShiftState; X,
+      Y: Integer);
   private
   public
@@ -213,7 +215,35 @@
 
 
-
-
-
+procedure TForm_Main.MDITabMouseMove(Sender: TObject; Shift: TShiftState; X,
+  Y: Integer);
+var
+  pt: TPoint;
+  tabIndex: Integer;
+  hint: String;
+begin
+  pt.X := X;
+  pt.Y := Y;
+  tabIndex := MDITab.GetTabAtPos(pt);
+
+  if tabIndex >= 0 then
+  begin
+    if MDITab.MDIChildren[tabIndex] is TForm_ToolTemplate then
+      hint := 'Window: ' + MDITab.MDIChildren[tabIndex].Caption + #13+#10 +
+            'Selected File: ' +
+            TForm_ToolTemplate(MDITab.MDIChildren[tabIndex]).SelectedFile.FileName
+    else
+      hint := 'Window: ' + MDITab.MDIChildren[tabIndex].Caption;
+    if hint <> MDITab.Hint then
+    begin
+      MDITab.Hint := hint;
+      MDITab.ShowHint := True;
+    end;
+  end
+  else
+  begin
+    MDITab.ShowHint := False;
+    MDITab.Hint := '';
+  end;
+end;
 
 procedure TForm_Main.MDITabMouseUp(Sender: TObject; Button: TMouseButton;
@@ -242,4 +272,7 @@
   end;
 end;
+
+
+
 
 procedure TForm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
Index: oup/current/Tools/Template.pas
===================================================================
--- oup/current/Tools/Template.pas	(revision 82)
+++ oup/current/Tools/Template.pas	(revision 83)
@@ -61,4 +61,5 @@
     FAllowedExts: String;
     FAllowMultiSelect: Boolean;
+    FSelectedFile: TFileInfo;
     procedure SetAllowedExts(exts: String);
     procedure SetMultiSelect(allow: Boolean);
@@ -70,4 +71,5 @@
     property AllowedExts: String read FAllowedExts write SetAllowedExts;
     property AllowMultiSelect: Boolean read FAllowMultiSelect write SetMultiSelect;
+    property SelectedFile: TFileInfo read FSelectedFile;
   end;
 
@@ -203,4 +205,7 @@
   inherited;
   RecreateList;
+  FSelectedFile.ID := -1;
+  FSelectedFile.FileName := '';
+  FSelectedFile.FileNameHex := '';
   if Length(ToolList) > 0 then
   begin
@@ -267,6 +272,7 @@
     fileid := OniDataConnection.ExtractFileID(
           filelist.Items.Strings[filelist.ItemIndex]);
+    FSelectedFile := OniDataConnection.GetFileInfo(fileid);
     if Assigned(FOnNewFileSelected) then
-      FOnNewFileSelected(OniDataConnection.GetFileInfo(fileid));
+      FOnNewFileSelected(FSelectedFile);
   end;
 end;
