Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 1915)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 1916)
@@ -42,4 +42,15 @@
      - changed naming style of variables
      - changes array access
+
+   * mhist/MHFadcCam.[h,cc]:
+     - added HasHi
+     - added Exists
+
+   * mmain/MDataCheck.cc:
+     - removed unimplemented buttons
+
+   * mdatacheck/MGDisplayAdc.[h,cc]:
+     - tried to implement some unimplemented buttons
+     - don't display non existing (empty) histograms in list
 
 
Index: /trunk/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc
===================================================================
--- /trunk/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc	(revision 1915)
+++ /trunk/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc	(revision 1916)
@@ -26,11 +26,13 @@
 #include "MGDisplayAdc.h"
 
+#include <stdlib.h>              // mkstemp
 #include <iostream.h>            // cout for debugging
 
+#include <TSystem.h>             // gSystem
+#include <TCanvas.h>             // TCanvas.h
+#include <TGSlider.h>            // TGVSlider
 #include <TGButton.h>            // TGTextButton
-#include <TCanvas.h>             // TCanvas.h
 #include <TGMsgBox.h>            // TGMsgBox
 #include <TGListBox.h>           // TGListBox
-#include <TGSlider.h>            // TGVSlider
 #include <TGButtonGroup.h>       // TGVButtonGroup
 #include <TRootEmbeddedCanvas.h> // TRootEmbeddedCanvas
@@ -302,5 +304,6 @@
 
     for (Int_t i=0; i<nhi; i++)
-        fHistoList->AddEntry(fHists->GetHistHi(i)->GetName(), i+1);
+        if (fHists->Exists(i))
+            fHistoList->AddEntry(fHists->GetHistHi(i)->GetName(), i+1);
 
     fHistoList->MapSubwindows();
@@ -323,4 +326,7 @@
 
     fCanvas->Clear();
+
+    if (!fHists->Exists(selected-1))
+        return;
 
     const Int_t type = fHists->HasLo(selected-1) ? fHistoType : M_RADIO_HI;
@@ -372,9 +378,20 @@
             {
             case M_BUTTON_SAVE:
-                cout << "Sorry, not yet implemented!" << endl;
+                fCanvas->SaveAs();
+                cout << "Sorry, no well implemented!" << endl;
                 return kTRUE;
 
             case M_BUTTON_PRINT:
-                cout << "Sorry, not yet implemented!" << endl;
+                {
+                    char *txt = (char*)"canvasXXXXXX";
+                    mkstemp(txt);
+                    TString name = txt;
+                    name += ".ps";
+                    fCanvas->SaveAs(name);
+                    cout << "Calling 'lpr " << name << ".ps'" << endl;
+                    gSystem->Exec(TString("lpr ")+name+".ps");
+                    gSystem->Exec(TString("rm ")+name+".ps");
+                }
+                cout << "Sorry, not well implemented!" << endl;
                 return kTRUE;
 
@@ -426,5 +443,5 @@
             return kTRUE;
 
-        // Check for the slider movement and sicronise with TGListBox
+        // Check for the slider movement and synchronise with TGListBox
         if (parm2<1 || parm2>577)
             return kTRUE;
Index: /trunk/MagicSoft/Mars/mhist/MHFadcCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHFadcCam.cc	(revision 1915)
+++ /trunk/MagicSoft/Mars/mhist/MHFadcCam.cc	(revision 1916)
@@ -130,7 +130,10 @@
 {
     for (Int_t i=0; i<577; i++)
-    {
-        GetHistHi(i)->Reset();
-        GetHistLo(i)->Reset();
-    }
+        Reset(i);
 }
+
+void MHFadcCam::Reset(Int_t i)
+{
+    GetHistHi(i)->Reset();
+    GetHistLo(i)->Reset();
+}
Index: /trunk/MagicSoft/Mars/mhist/MHFadcCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHFadcCam.h	(revision 1915)
+++ /trunk/MagicSoft/Mars/mhist/MHFadcCam.h	(revision 1916)
@@ -49,4 +49,5 @@
 
     void ResetHistograms();
+    void Reset(Int_t i);
 
     //
@@ -57,4 +58,7 @@
 
     Bool_t HasLo(UInt_t i) const { return GetHistLo(i)->GetEntries()>0; }
+    Bool_t HasHi(UInt_t i) const { return GetHistHi(i)->GetEntries()>0; }
+
+    Bool_t Exists(UInt_t i) const { return HasLo(i) && HasHi(i); }
 
     void DrawPix(UInt_t i)     { (*this)[i].Draw(); }
Index: /trunk/MagicSoft/Mars/mmain/MDataCheck.cc
===================================================================
--- /trunk/MagicSoft/Mars/mmain/MDataCheck.cc	(revision 1915)
+++ /trunk/MagicSoft/Mars/mmain/MDataCheck.cc	(revision 1916)
@@ -58,27 +58,27 @@
 : MBrowser(/*main,*/ p, w, h)
 {
-    TGTextButton *pedadc = new TGTextButton(fTop1, "ADC Spectra of Pedestals", kButPedAdc);
+    //TGTextButton *pedadc = new TGTextButton(fTop1, "ADC Spectra of Pedestals", kButPedAdc);
     TGTextButton *cradc  = new TGTextButton(fTop1, "ADC Spectra of Cosmics",    kButEvtAdc);
-    TGTextButton *pedtdc = new TGTextButton(fTop3, "Run Spectra of Pedestals", kButPedTdc);
-    TGTextButton *crtdc  = new TGTextButton(fTop3, "Run Spectra of Cosmics",    kButEvtTdc);
-
-    pedadc->Associate(this);
+    //TGTextButton *pedtdc = new TGTextButton(fTop3, "Run Spectra of Pedestals", kButPedTdc);
+    //TGTextButton *crtdc  = new TGTextButton(fTop3, "Run Spectra of Cosmics",    kButEvtTdc);
+
+    //pedadc->Associate(this);
     cradc ->Associate(this);
-    pedtdc->Associate(this);
-    crtdc ->Associate(this);
-
-    fList->Add(pedadc);
+    //pedtdc->Associate(this);
+    //crtdc ->Associate(this);
+
+    //fList->Add(pedadc);
     fList->Add(cradc);
-    fList->Add(pedtdc);
-    fList->Add(crtdc);
+    //fList->Add(pedtdc);
+    //fList->Add(crtdc);
 
     TGLayoutHints *laybut = new TGLayoutHints(kLHintsTop|kLHintsLeft, 10, 10, 5, 5);
     fList->Add(laybut);
 
-    fTop1->AddFrame(pedadc, laybut);
+    //fTop1->AddFrame(pedadc, laybut);
     fTop1->AddFrame(cradc,  laybut);
 
-    fTop3->AddFrame(pedtdc, laybut);
-    fTop3->AddFrame(crtdc,  laybut);
+    //fTop3->AddFrame(pedtdc, laybut);
+    //fTop3->AddFrame(crtdc,  laybut);
 
     MapSubwindows();
