Ignore:
Timestamp:
06/23/03 11:19:04 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mmain/MStatusDisplay.cc

    r2194 r2207  
    340340void MStatusDisplay::SetLogStream(MLog *log, Bool_t enable)
    341341{
     342    if (gROOT->IsBatch())
     343        return;
     344
    342345    if (log && fLogBox==NULL)
    343346    {
     
    455458void MStatusDisplay::SetStatusLine1(const char *txt)
    456459{
     460    if (gROOT->IsBatch())
     461        return;
    457462    fStatusBar->SetText(txt, 0);
    458463    gClient->ProcessEventsFor(fStatusBar);
     
    465470void MStatusDisplay::SetStatusLine2(const char *txt)
    466471{
     472    if (gROOT->IsBatch())
     473        return;
    467474    fStatusBar->SetText(txt, 1);
    468475    gClient->ProcessEventsFor(fStatusBar);
     
    491498//
    492499MStatusDisplay::MStatusDisplay(Long_t t)
    493 : TGMainFrame(gClient->GetRoot(), 1, 1), fTimer(this, t, kTRUE), fStatus(kLoopNone), fLog(&gLog), fLogIdx(-1), fLogTimer(this, 250, kTRUE), fLogBox(NULL), fIsLocked(0)
     500: TGMainFrame(gClient ? gClient->GetRoot() : NULL, 1, 1), fTimer(this, t, kTRUE), fStatus(kLoopNone), fLog(&gLog), fLogIdx(-1), fLogTimer(this, 250, kTRUE), fLogBox(NULL), fIsLocked(0)
    494501{
    495502    gROOT->GetListOfSpecials()->Add(this);
    496     gROOT->GetListOfCleanups()->Add(this);
    497503
    498504    fFont = gVirtualX->LoadQueryFont("7x13bold");
     505
     506    fBatch.SetOwner();
    499507
    500508    //
     
    521529    // Add Widgets (from top to bottom)
    522530    //
    523     AddMenuBar();
    524     AddTabs();
    525     AddProgressBar();
    526     AddStatusBar();
     531    if (gClient) // BATCH MODE
     532    {
     533        AddMenuBar();
     534        AddTabs();
     535        AddProgressBar();
     536        AddStatusBar();
     537    }
    527538
    528539    //
     
    547558MStatusDisplay::~MStatusDisplay()
    548559{
     560    gROOT->GetListOfSpecials()->Remove(this);
     561
    549562    SetLogStream(NULL);
    550563
     
    553566    if (fFont)
    554567        gVirtualX->DeleteFont(fFont);
    555 
    556     gROOT->GetListOfSpecials()->Remove(this);
    557     gROOT->GetListOfCleanups()->Remove(this);
    558 }
     568}
    559569
    560570// --------------------------------------------------------------------------
     
    594604TCanvas *MStatusDisplay::GetCanvas(int i) const
    595605{
     606    if (gROOT->IsBatch())
     607        return (TCanvas*)fBatch.At(i-1);
     608
    596609    if (i<0 || i>=fTab->GetNumberOfTabs())
    597610    {
     
    656669TCanvas &MStatusDisplay::AddTab(const char *name)
    657670{
     671    if (gROOT->IsBatch())
     672    {
     673        TCanvas *c = new TCanvas(name, name);
     674        fBatch.Add(c);
     675        return *c;
     676    }
     677
    658678    // Add new tab
    659679    TGCompositeFrame *f = fTab->AddTab(name);
    660680
    661     // create root embedded canvas and add it to the tab
     681    // create root emb 0edded canvas and add it to the tab
    662682    TRootEmbeddedCanvas *ec = new TRootEmbeddedCanvas(name, f, f->GetWidth(), f->GetHeight(), 0);
    663683    f->AddFrame(ec, fLayCanvas);
     
    676696    // layout and map new tab
    677697//#if ROOT_VERSION_CODE < ROOT_VERSION(3,03,00)
     698//    MapSubwindows();
     699//    Layout();
     700//#else
     701    Layout();
    678702    MapSubwindows();
    679703    Layout();
    680 //#else
    681 //    Layout();
    682 //    MapSubwindows();
    683704//#endif
    684705
     
    707728        return;
    708729
    709     c->Modified();
    710     c->Update();
    711     c->Paint();
     730    // Code taken from TCanvas::Update() and TCanvas::Paint
     731    c->FeedbackMode(kFALSE);  // Goto double buffer mode
     732    c->Paint();               // Repaint all pad's
     733    c->Flush();               // Copy all pad pixmaps to the screen
     734    //c->SetCursor(kCross);
     735
     736    // Old version
     737    //c->Modified();
     738    //c->Update();
     739    //c->Paint();
    712740}
    713741
     
    803831Bool_t MStatusDisplay::HasCanvas(const TCanvas *c) const
    804832{
     833    if (gROOT->IsBatch())
     834        return fBatch.FindObject(c);
     835
    805836    for (int i=1; i<fTab->GetNumberOfTabs(); i++)
    806837        if (c==GetCanvas(i))
     
    829860    case kLoopStop:
    830861    case kFileExit:
    831         if (id==kFileExit && !fIsLocked)
     862        if (id==kFileExit)
    832863            delete this;
    833864        fStatus = (Status_t)id;
     
    11541185void MStatusDisplay::SetNoContextMenu(Bool_t flag)
    11551186{
    1156     if (fIsLocked>1)
     1187    if (fIsLocked>1 || gROOT->IsBatch())
    11571188        return;
    11581189
     
    11731204Bool_t MStatusDisplay::HandleTimer(TTimer *timer)
    11741205{
     1206    if (gROOT->IsBatch())
     1207        return kTRUE;
     1208
    11751209    const Int_t c = fTab->GetCurrent();
    11761210
     
    13021336    }
    13031337
    1304     if (num>=fTab->GetNumberOfTabs())
     1338    if (!gROOT->IsBatch() && num>=fTab->GetNumberOfTabs())
    13051339    {
    13061340        *fLog << warn << "MStatusDisplay::Write: Tab doesn't exist... skipped." << endl;
    13071341        return 0;
    13081342    }
     1343    if (gROOT->IsBatch() && num>fBatch.GetSize())
     1344    {
     1345        *fLog << warn << "MStatusDisplay::Write: Tab doesn't exist... skipped." << endl;
     1346        return 0;
     1347    }
    13091348
    13101349    TObjArray list;
    13111350
    1312     const Int_t from = num<0 ? 1 : num;
    1313     const Int_t to   = num<0 ? fTab->GetNumberOfTabs() : num+1;
     1351    const Int_t max  = gROOT->IsBatch() ? fBatch.GetSize()+1 : fTab->GetNumberOfTabs();
     1352    const Int_t from = num<0 ?   1 : num;
     1353    const Int_t to   = num<0 ? max : num+1;
    13141354
    13151355    TCanvas *c;
     
    14061446Bool_t MStatusDisplay::CheckTabForCanvas(int num) const
    14071447{
     1448    if (gROOT->IsBatch())
     1449        return num>0 && num<=fBatch.GetSize() || num<0;
     1450
    14081451    if (num>=fTab->GetNumberOfTabs())
    14091452    {
     
    15301573    // Maintain tab numbers
    15311574    //
    1532     const Int_t from = num<0 ? 1 : num;
    1533     const Int_t to   = num<0 ? fTab->GetNumberOfTabs() : num+1;
     1575    const Int_t max  = gROOT->IsBatch() ? fBatch.GetSize()+1 : fTab->GetNumberOfTabs();
     1576    const Int_t from = num<0 ?   1 : num;
     1577    const Int_t to   = num<0 ? max : num+1;
    15341578
    15351579    for (int i=from; i<to; i++)
     
    15721616        CanvasSetFillColor(*n, kWhite);
    15731617        l.Add(n);
    1574 
    15751618        //
    15761619        // Paint canvas into root file
     
    15781621        if (num<0)
    15791622            *fLog << inf << " - ";
    1580         *fLog << inf << "Writing Tab #" << i << ": " << c->GetName() << " (" << n << ") ";
     1623        *fLog << inf << "Writing Tab #" << i << ": " << c->GetName() << " (" << c << ") ";
    15811624        if (num>0)
    15821625            *fLog << "to " << name;
     
    16141657
    16151658    gPad = NULL; // Important!
    1616 
    16171659    l.Delete();
    16181660
     
    16211663
    16221664    gVirtualPS = psave;
    1623     padsav->cd();
     1665    if (padsav)
     1666        padsav->cd();
    16241667
    16251668    *fLog << inf << "done." << endl;
     
    16321675Bool_t MStatusDisplay::SaveAsGIF(Int_t num, TString name)
    16331676{
     1677    if (gROOT->IsBatch())
     1678    {
     1679        *fLog << warn << "Sorry, writing gif-files is not available in batch mode." << endl;
     1680        return 0;
     1681    }
    16341682    SetStatusLine1("Writing GIF file...");
    16351683    SetStatusLine2("");
Note: See TracChangeset for help on using the changeset viewer.