Changeset 2087 for trunk/MagicSoft


Ignore:
Timestamp:
05/07/03 11:32:44 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r2086 r2087  
    11                                                 -*-*- END OF LINE -*-*-
     2
     3 2003/05/07: Thomas Bretz
     4
     5   * mmain/Makefile, mmain/MainLinkDef.h:
     6     - added MSearch
     7     
     8   * mmain/MSearch.[h,cc]:
     9     - added
     10
     11   * mmmain/MStatusDisplay.[h,cc]:
     12     - implemented Search
     13
     14
    215
    316 2003/05/07: Abelardo Moralejo
     
    518   * mranforest/Makefile
    619     - fixed typo.
     20
     21
    722
    823 2003/05/06: Abelardo Moralejo
     
    2338       events, including non-triggers (while we usually run over files
    2439       containing only triggers).
     40
     41
    2542
    2643 2003/05/06: Thomas Bretz
  • trunk/MagicSoft/Mars/mmain/MStatusDisplay.cc

    r2082 r2087  
    9090#include "MGList.h"               // MGList
    9191#include "MGMenu.h"               // MGMenu, TGMenu
     92#include "MSearch.h"              // MSearch
    9293#include "MParContainer.h"        // MParContainer::GetDescriptor
    9394
     
    9697
    9798ClassImp(MStatusDisplay);
     99
     100// ------------ Workaround for a non working TGTextView::Search -------------
     101class MGTextView : public TGTextView
     102{
     103public:
     104    MGTextView(const TGWindow *parent, UInt_t w, UInt_t h, Int_t id = -1,
     105               UInt_t sboptions = 0, ULong_t back = GetWhitePixel()) :
     106    TGTextView(parent, w, h, id, sboptions, back) {}
     107    MGTextView(const TGWindow *parent, UInt_t w, UInt_t h, TGText *text,
     108               Int_t id = -1, UInt_t sboptions = 0, ULong_t back = GetWhitePixel()) :
     109    TGTextView(parent, w, h, text, id, sboptions, back) {}
     110    MGTextView(const TGWindow *parent, UInt_t w, UInt_t h, const char *string,
     111               Int_t id = -1, UInt_t sboptions = 0, ULong_t back = GetWhitePixel()) :
     112    TGTextView(parent, w, h, string, id, sboptions, back) {}
     113
     114    void Mark(Long_t xPos, Long_t yPos) { TGTextView::Mark(xPos, yPos); }
     115    void UnMark()                       { TGTextView::UnMark(); }
     116
     117    Bool_t Search(const char *string, Bool_t direction, Bool_t caseSensitive)
     118    {
     119        // Taken from TGTextView::Search and modified.
     120
     121        TGLongPosition pos, pos2;
     122        pos2.fX = pos2.fY = 0;
     123        if (fIsMarked) {
     124            if (!direction)
     125            {
     126                pos2.fX = fMarkedStart.fX;
     127                pos2.fY = fMarkedStart.fY;
     128            }
     129            else
     130            {
     131                pos2.fX = fMarkedEnd.fX + 1;
     132                pos2.fY = fMarkedEnd.fY;
     133            }
     134        }
     135        if (!fText->Search(&pos, pos2, string, direction, caseSensitive))
     136            return kFALSE;
     137        UnMark();
     138        fIsMarked = kTRUE;
     139        fMarkedStart.fY = fMarkedEnd.fY = pos.fY;
     140        fMarkedStart.fX = pos.fX;
     141        fMarkedEnd.fX = fMarkedStart.fX + strlen(string);
     142        pos.fY = ToObjYCoord(fVisible.fY);
     143        if ((fMarkedStart.fY < pos.fY) ||
     144            (ToScrYCoord(fMarkedStart.fY) >= (Int_t)fCanvas->GetHeight()))
     145            pos.fY = fMarkedStart.fY;
     146        pos.fX = ToObjXCoord(fVisible.fX, pos.fY);
     147        if ((fMarkedStart.fX < pos.fX) ||
     148            (ToScrXCoord(fMarkedStart.fX, pos.fY) >= (Int_t)fCanvas->GetWidth()))
     149            pos.fX = fMarkedStart.fX;
     150
     151        SetVsbPosition((ToScrYCoord(pos.fY) + fVisible.fY)/fScrollVal.fY);
     152        SetHsbPosition((ToScrXCoord(pos.fX, pos.fY) + fVisible.fX)/fScrollVal.fX);
     153        DrawRegion(0, (Int_t)ToScrYCoord(fMarkedStart.fY), fCanvas->GetWidth(),
     154                   UInt_t(ToScrYCoord(fMarkedEnd.fY+1) - ToScrYCoord(fMarkedEnd.fY)));
     155
     156        return kTRUE;
     157    }
     158};
     159// --------------------------------------------------------------------------
    98160
    99161// --------------------------------------------------------------------------
     
    163225    logmenu->AddSeparator();
    164226    logmenu->AddEntry("Select &All",    kLogSelect);
    165     /*
    166      logmenu->AddSeparator();
    167      logmenu->AddEntry("Search",         kLogSearch);
    168      */
     227    logmenu->AddSeparator();
     228    logmenu->AddEntry("&Find...",       kLogFind);
    169229    logmenu->AddSeparator();
    170230    logmenu->AddEntry("&Save",          kLogSave);
     
    280340
    281341        // Create Text View
    282         fLogBox = new TGTextView(f, 1, 1); // , -1, 0, TGFrame::GetDefaultFrameBackground());
     342        fLogBox = new MGTextView(f, 1, 1); // , -1, 0, TGFrame::GetDefaultFrameBackground());
    283343        if (fFont)
    284344            fLogBox->SetFont(fFont);
     
    782842        fLogBox->SelectAll();
    783843        return kTRUE;
    784     case kLogSearch:
    785         //virtual Bool_t Search(const char *string, Bool_t direction, Bool_t caseSensitive);
     844    case kLogFind:
     845        new MSearch(this);
    786846        return kTRUE;
    787847    case kLogSave:
     
    939999// --------------------------------------------------------------------------
    9401000//
     1001// Process the kC_USER messages
     1002//
     1003Bool_t MStatusDisplay::ProcessMessageUser(Long_t submsg, Long_t mp1, Long_t mp2)
     1004{
     1005    // kS_START, case sensitive | backward<<1, char *txt
     1006    switch (submsg)
     1007    {
     1008    case kS_START:
     1009        fLogBox->Search((char*)mp2, !(mp1&2>>1), mp1&1);
     1010        return kTRUE;
     1011#ifdef DEBUG
     1012    default:
     1013        cout << "User: " << "Submsg:" << submsg << " Mp1=" << mp1 << " Mp2=" << mp2 << endl;
     1014#endif
     1015    }
     1016    return kTRUE;
     1017}
     1018
     1019// --------------------------------------------------------------------------
     1020//
    9411021// Process the messages from the GUI
    9421022//
     
    9441024{
    9451025    // Can be found in WidgetMessageTypes.h
     1026    cout << "Msg: " << GET_MSG(msg) << " Submsg:" << GET_SUBMSG(msg);
     1027    cout << " Mp1=" << mp1 << " Mp2=" << mp2 << endl;
    9461028    switch (GET_MSG(msg))
    9471029    {
     
    9511033    case kC_TEXTVIEW:
    9521034        return ProcessMessageTextview(GET_SUBMSG(msg), mp1, mp2);
     1035
     1036    case kC_USER:
     1037        return ProcessMessageUser(GET_SUBMSG(msg), mp1, mp2);
    9531038    }
    9541039#ifdef DEBUG
  • trunk/MagicSoft/Mars/mmain/MStatusDisplay.h

    r2058 r2087  
    4444        kSize640, kSize800, kSize960, kSize1024, kSize1280,
    4545        // kLog
    46         kLogCopy, kLogClear, kLogSelect, kLogSearch, kLogSave, kLogAppend,
     46        kLogCopy, kLogClear, kLogSelect, kLogFind, kLogSave, kLogAppend,
    4747        // kPic
    48         kPicMagic, kPicMars
     48        kPicMagic, kPicMars,
     49        // kPic
     50        kSearch
    4951    } Status_t;
    5052
     
    8284    Bool_t ProcessMessageCommand(Long_t submsg, Long_t mp1, Long_t mp2);
    8385    Bool_t ProcessMessageTextview(Long_t submsg, Long_t mp1, Long_t mp2);
     86    Bool_t ProcessMessageUser(Long_t submsg, Long_t mp1, Long_t mp2);
    8487    Bool_t ProcessMessage(Long_t msg, Long_t mp1, Long_t mp2);
    8588    void   CloseWindow();
  • trunk/MagicSoft/Mars/mmain/MainLinkDef.h

    r1965 r2087  
    1313#pragma link C++ class MDataCheck+;
    1414#pragma link C++ class MMonteCarlo+;
     15#pragma link C++ class MSearch+;
    1516#pragma link C++ class MProgressBar+;
    1617#pragma link C++ class MCameraDisplay+;
  • trunk/MagicSoft/Mars/mmain/Makefile

    r2063 r2087  
    3737           MAnalysis.cc \
    3838           MMonteCarlo.cc \
     39           MSearch.cc \
    3940           MStatusDisplay.cc \
    4041           MProgressBar.cc \
Note: See TracChangeset for help on using the changeset viewer.