Index: trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 9044)
+++ trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 9067)
@@ -2550,4 +2550,10 @@
         }
 
+        if (name.Index("%%%%title%%%%"))
+        {
+            name.ReplaceAll("%%title%%", c->GetTitle());
+            found = kTRUE;
+        }
+
         if (name.Index("%%%%tab%%%%"))
         {
@@ -2706,5 +2712,5 @@
         //
         const Double_t height = 0.015;  // Text height
-        const Double_t off    = 0.005;  // Line offset from Text
+        const Double_t off    = 0.005;  // Line offset from text
 
         const Double_t bot = height+off;
@@ -2990,4 +2996,61 @@
 }
 
+/*
+Bool_t MStatusDisplay::SaveAsCSV(Int_t num, TString name)
+{
+    num = InitWriteDisplay(num, name, "csv");
+    if (num==0)
+        return kFALSE;
+
+    gSystem->ExpandPathName(name);
+
+    ofstream fout(name);
+    if (!fout)
+    {
+        *fLog << err << "Cannot open file " << name << ": " << strerror(errno) << endl;
+        return kFALSE;
+    }
+
+    fout << "<?xml version=\"1.0\"?>" << endl;
+    fout << "<display name='" << GetName() << "'>" << endl;
+    fout << "   <file>" << name << "</file>" << endl;
+    fout << "   <status>" << endl;
+    fout << "      <name>" << GetName() << "</name>" << endl;
+    fout << "      <title>" << GetTitle() << "</title>" << endl;
+    fout << "   </status>" << endl;
+    fout << "   <tabs>" << endl;
+
+    fout << 0 << delim << GetName() << delim << GetTitle() << endl;
+
+    Int_t from, to;
+    GetCanvasRange(from, to, num);
+
+    for (int i=from; i<to; i++)
+    {
+        TCanvas *c;
+        if (!(c = GetCanvas(i)))
+        {
+            if (num<0)
+                *fLog << inf << " - ";
+            *fLog << "Tab #" << i << " doesn't contain an embedded Canvas... skipped." << endl;
+            continue;
+        }
+
+        fout << "      <tab index='" << i << "'>" << endl;
+        fout << "         <index>" << i << "</index>" << endl;
+        fout << "         <name>" << c->GetName()  << "</name>" << endl;
+        fout << "         <title>" << c->GetName()  << "</title>" << endl;
+        fout << "      </tab>" << endl;
+    }
+
+    fout << "  </tabs>" << endl;
+    fout << "</display>" << endl;
+
+    SetStatusLine2("Done.");
+
+    return kTRUE;
+}
+*/
+
 // --------------------------------------------------------------------------
 //
Index: trunk/MagicSoft/Mars/mbase/MStatusDisplay.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusDisplay.h	(revision 9044)
+++ trunk/MagicSoft/Mars/mbase/MStatusDisplay.h	(revision 9067)
@@ -269,4 +269,5 @@
 
      Bool_t SaveAsCSV(Int_t num, TString name="", Char_t delim='\t');
+     //Bool_t SaveAsXML(Int_t num, TString name="",);
      Int_t  PrintPS(Int_t num, const char *p=0, const char *cmd=0, const char *tmp=0);
      Bool_t PrintLog(const char *p=0, const char *c=0);
