Ignore:
Timestamp:
05/05/03 10:37:08 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

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

    r2054 r2058  
    7979#include <TG3DLine.h>             // TGHorizontal3DLine
    8080#include <TGButton.h>             // TGPictureButton
    81 #include <TGListBox.h>            // TGListBox
     81#include <TGTextView.h>           // TGTextView
    8282#include <TGStatusBar.h>          // TGStatusBar
    8383#include <TGProgressBar.h>        // TGHProgressBar
     
    153153
    154154    //
     155    // Log Menu
     156    //
     157    MGPopupMenu *logmenu = new MGPopupMenu(gClient->GetRoot());
     158    logmenu->AddEntry("&Copy Selected", kLogCopy);
     159    logmenu->AddEntry("Clear all",      kLogClear);
     160    logmenu->AddSeparator();
     161    logmenu->AddEntry("Select All",     kLogSelect);
     162    /*
     163     logmenu->AddSeparator();
     164     logmenu->AddEntry("Search",         kLogSearch);
     165     */
     166    logmenu->AddSeparator();
     167    logmenu->AddEntry("Save",           kLogSave);
     168    logmenu->AddEntry("Save append",    kLogAppend);
     169    logmenu->Associate(this);
     170
     171    //
    155172    // Menu Bar
    156173    //
    157174    MGMenuBar *menubar = new MGMenuBar(this, 1, 1, kHorizontalFrame);
    158175    menubar->AddPopup("&File", filemenu, NULL);
     176    menubar->AddPopup("Lo&g",  logmenu,  NULL);
     177    menubar->AddPopup("&Size", sizemenu, NULL);
    159178    menubar->AddPopup("&Tab",  tabmenu,  NULL);
    160179    menubar->AddPopup("&Loop", loopmenu, NULL);
    161     menubar->AddPopup("&Size", sizemenu, NULL);
    162180    menubar->BindKeys(this);
    163181    AddFrame(menubar);
     
    180198    fList->Add(menubar);
    181199    fList->Add(tabmenu);
     200    fList->Add(logmenu);
    182201    fList->Add(linesep);
    183202}
     
    220239        f->AddFrame(mars, lay2);
    221240    }
    222     /*
    223      TGShutter *s = new TGShutter(f);
    224      fList->Add(s);
    225      f->AddFrame(s, lay);
    226      s->AddItem(new TGShutterItem(s, new TGHotString("Hallo1")));
    227      s->AddItem(new TGShutterItem(s, new TGHotString("Hallo2")));
    228      */
    229241
    230242    // Add date and time
     
    261273        TGCompositeFrame *f = fTab->AddTab("-Logbook-");
    262274
    263         // Create TGListBox(p, id=-1, opt, back) for logging contents
    264         fLogBox = new TGListBox(f, -1, kSunkenFrame);
    265         //fLogBox->Associate(this);
     275
     276        fLogBox = new TGTextView(f, 1, 1/*, -1, 0, TGTextView::GetBlackPixel()*/);
     277        if (fFont)
     278            fLogBox->SetFont(fFont);
     279        fLogBox->Associate(this);
    266280
    267281        // Add List box to the tab
     
    334348}
    335349
    336 
    337350// --------------------------------------------------------------------------
    338351//
     
    343356    fStatusBar = new TGStatusBar(this, 1, 1);
    344357
    345     fStatusBar->SetParts(2);
     358    //
     359    //     1-a     a
     360    // 1: ------|----
     361    //
     362    // a/(1-a) = (1-a)/1
     363    // a^2+a-1 = 0
     364    //       a = (-1+-sqrt(1+4))/2 = sqrt(5)/2-1/2 = 0.618
     365    //
     366    Int_t p[2] = {38, 62};
     367
     368    fStatusBar->SetParts(p, 2);
    346369
    347370    TGLayoutHints *layb = new TGLayoutHints(kLHintsNormal|kLHintsExpandX, 5, 4, 0, 3);
     
    399422    gROOT->GetListOfCleanups()->Add(this);
    400423
     424    fFont = gVirtualX->LoadQueryFont("7x13bold");
    401425
    402426    //
     
    452476
    453477    delete fList;
     478
     479    if (fFont)
     480        gVirtualX->DeleteFont(fFont);
    454481
    455482    gROOT->GetListOfSpecials()->Remove(this);
     
    643670}
    644671
     672/*
     673    if (...)
     674       fMenu->AddPopup("&CaOs", fCaOs, NULL);
     675    else
     676       fMenu->RemovePopup("CaOs");
     677    fMenu->Resize(fMenu->GetDefaultSize());
     678    MapSubwindows();
     679    MapWindow();
     680 */
     681
    645682// --------------------------------------------------------------------------
    646683//
     
    728765    case kSize1280:
    729766        Resize(1280, 980);
     767        return kTRUE;
     768
     769    case kLogClear:
     770        fLogBox->Clear();
     771        return kTRUE;
     772    case kLogCopy:
     773        fLogBox->Copy();
     774        return kTRUE;
     775    case kLogSelect:
     776        fLogBox->SelectAll();
     777        return kTRUE;
     778    case kLogSearch:
     779        //virtual Bool_t Search(const char *string, Bool_t direction, Bool_t caseSensitive);
     780        return kTRUE;
     781    case kLogSave:
     782        SetStatusLine1("Saving log...");
     783        SetStatusLine2("");
     784        *fLog << inf << "Saving log... " << flush;
     785        if (fLogBox->GetText()->Save("statusdisplay.log"))
     786        {
     787            *fLog << "done." << endl;
     788            SetStatusLine2("done.");
     789        }
     790        else
     791        {
     792            *fLog << "failed!" << endl;
     793            SetStatusLine2("Failed!");
     794        }
     795        return kTRUE;
     796
     797    case kLogAppend:
     798        SetStatusLine1("Appending logg...");
     799        SetStatusLine2("");
     800        *fLog << inf << "Appending log... " << flush;
     801        if (fLogBox->GetText()->Append("statusdisplay.log"))
     802        {
     803            *fLog << "done." << endl;
     804            SetStatusLine2("done.");
     805        }
     806        else
     807        {
     808            *fLog << "failed!" << endl;
     809            SetStatusLine2("Failed!");
     810        }
    730811        return kTRUE;
    731812
     
    795876// --------------------------------------------------------------------------
    796877//
     878// Process the kC_TEXTVIEW messages
     879//
     880Bool_t MStatusDisplay::ProcessMessageTextview(Long_t submsg, Long_t mp1, Long_t mp2)
     881{
     882    // kC_TEXTVIEW, kTXT_ISMARKED, widget id, [true|false]                  //
     883    // kC_TEXTVIEW, kTXT_DATACHANGE, widget id, 0                           //
     884    // kC_TEXTVIEW, kTXT_CLICK2, widget id, position (y << 16) | x)         //
     885    // kC_TEXTVIEW, kTXT_CLICK3, widget id, position (y << 16) | x)         //
     886    // kC_TEXTVIEW, kTXT_F3, widget id, true                                //
     887    // kC_TEXTVIEW, kTXT_OPEN, widget id, 0                                 //
     888    // kC_TEXTVIEW, kTXT_CLOSE, widget id, 0                                //
     889    // kC_TEXTVIEW, kTXT_SAVE, widget id, 0                                 //
     890    switch (submsg)
     891    {
     892    case kTXT_ISMARKED:
     893        cout << "Textview-IsMarked #" << mp1 << " " << (mp2?"yes":"no") << endl;
     894        return kTRUE;
     895
     896    case kTXT_DATACHANGE:
     897        cout << "Textview-DataChange #" << mp1 << endl;
     898        return kTRUE;
     899
     900    case kTXT_CLICK2:
     901        cout << "Textview-Click2 #" << mp1 << " x=" << (mp2&0xffff) << " y= " << (mp2>>16) << endl;
     902        return kTRUE;
     903
     904    case kTXT_CLICK3:
     905        cout << "Textview-Click3 #" << mp1 << " x=" << (mp2&0xffff) << " y= " << (mp2>>16) << endl;
     906        return kTRUE;
     907
     908    case kTXT_F3:
     909        cout << "Textview-F3 #" << mp1 << endl;
     910        return kTRUE;
     911
     912    case kTXT_OPEN:
     913        cout << "Textview-Open #" << mp1 << endl;
     914        return kTRUE;
     915
     916    case kTXT_CLOSE:
     917        cout << "Textview-Close #" << mp1 << endl;
     918        return kTRUE;
     919
     920    case kTXT_SAVE:
     921        cout << "Textview-Save #" << mp1 << endl;
     922        return kTRUE;
     923    }
     924
     925    cout << "Textview: " << "Submsg:" << submsg << " Mp1=" << mp1 << " Mp2=" << mp2 << endl;
     926    return kTRUE;
     927}
     928
     929// --------------------------------------------------------------------------
     930//
    797931// Process the messages from the GUI
    798932//
     
    804938    case kC_COMMAND:
    805939        return ProcessMessageCommand(GET_SUBMSG(msg), mp1, mp2);
     940
     941    case kC_TEXTVIEW:
     942        return ProcessMessageTextview(GET_SUBMSG(msg), mp1, mp2);
    806943    }
    807944
     
    8661003        fLog->UpdateGui();
    8671004
     1005        /*
    8681006        if (!fLogBox->TestBit(kHasChanged))
    8691007            return kTRUE;
    8701008
    871         fLogBox->MapSubwindows();
    872         fLogBox->Layout();
    873         fLogBox->ResetBit(kHasChanged);
     1009            fLogBox->ResetBit(kHasChanged);
     1010            */
    8741011        return kTRUE;
    8751012    }
Note: See TracChangeset for help on using the changeset viewer.