Ignore:
Timestamp:
11/07/01 14:13:50 (23 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mmain
Files:
3 edited

Legend:

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

    r1030 r1050  
    3333#include <TGMsgBox.h>       // TGMsgBox
    3434#include <TGListBox.h>      // TGListBox
    35 #include <TGComboBox.h>     // TGComboBox
     35#include <TGTextEntry.h>    // TGTextEntry
     36#include <TGFSComboBox.h>   // TGFSComboBox, TGFSLboxEntry
    3637#include <TGProgressBar.h>  // TGHProgressBar
    3738#include <TGFSContainer.h>  // TGFileContainer
     
    4748
    4849enum {
    49     M_FILE_CLOSE          = 0x1000,
    50     M_PBUTTON_CDIR_UP     = 0x1001,
    51     M_PBUTTON_LIST_MODE   = 0x1002,
    52     M_PBUTTON_DETAIL_MODE = 0x1003,
    53     M_DIRBOX              = 0x1004
     50    kFileClose,
     51    kButDirUp,
     52    kButListMode,
     53    kButDetailMode,
     54    kCBDirectory,
     55    kTEFileName
    5456};
    5557
     
    6062    //
    6163    TGPopupMenu *filemenu = new TGPopupMenu(gClient->GetRoot());
    62     filemenu->AddEntry("Close", M_FILE_CLOSE);
    63     //filemenu->Associate(this);
     64    filemenu->AddEntry("Close", kFileClose);
    6465    fList->Add(filemenu);
    6566
     
    110111    // Create Dir-Listbox and buttons in first frame
    111112    //
    112     fDir = new TGComboBox(frame, M_DIRBOX);
     113    fDir = new TGFSComboBox(frame, kCBDirectory);
    113114    fDir->Resize(350, 20);
    114115
     
    123124    // Create the corresponding picture buttons
    124125    //
    125     fCdup     = new TGPictureButton(frame, fPic1, M_PBUTTON_CDIR_UP);
    126     fListMode = new TGPictureButton(frame, fPic2, M_PBUTTON_LIST_MODE);
    127     fDetail   = new TGPictureButton(frame, fPic3, M_PBUTTON_DETAIL_MODE);
     126    fCdup     = new TGPictureButton(frame, fPic1, kButDirUp);
     127    fListMode = new TGPictureButton(frame, fPic2, kButListMode);
     128    fDetail   = new TGPictureButton(frame, fPic3, kButDetailMode);
    128129
    129130    //
     
    163164    //    padding:   5, 5, 5, 5
    164165    //
    165     TGLayoutHints *layout = new TGLayoutHints(kLHintsNormal, 5, 5, 5, 5);
     166    TGLayoutHints *laydir = new TGLayoutHints(kLHintsExpandX|kLHintsLeft|kLHintsCenterY); //, 5, 5, 5, 5);
     167    fList->Add(laydir);
     168
     169    TGLayoutHints *layout = new TGLayoutHints(kLHintsRight|kLHintsCenterY, 10); //, 5, 5, 5);
    166170    fList->Add(layout);
    167171
    168     frame->AddFrame(fDir,      layout);
    169     frame->AddFrame(fCdup,     layout);
     172    frame->AddFrame(fDir,      laydir);
    170173    frame->AddFrame(fListMode, layout);
    171174    frame->AddFrame(fDetail,   layout);
     175    frame->AddFrame(fCdup,     layout);
    172176}
    173177
     
    193197    fFileCont->Sort(kSortByName);
    194198
    195     TGLayoutHints *layview = new TGLayoutHints(kLHintsTop|kLHintsExpandX|kLHintsExpandY, 5, 5, 5, 5);
     199    TGLayoutHints *layview = new TGLayoutHints(kLHintsTop|kLHintsExpandX|kLHintsExpandY); //, 5, 5, 5, 5);
    196200    fList->Add(layview);
    197201
     
    206210    // Create three frames for the first tab
    207211    //
    208     TGCompositeFrame *tab1  = new TGCompositeFrame(frame, 100, 100, kHorizontalFrame);
    209     TGCompositeFrame *tab1a = new TGCompositeFrame(frame, 100, 100, kHorizontalFrame);
    210     TGCompositeFrame *tab1b = new TGCompositeFrame(frame, 100, 100, kVerticalFrame);
    211 
    212     TGLayoutHints *laytab1b = new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, 5, 5, 5, 5);
    213     TGLayoutHints *laytab1  = new TGLayoutHints(kLHintsExpandX, 5, 5, 5, 5);
    214 
    215     fList->Add(laytab1b);
     212    TGHorizontalFrame *tab1a = new TGHorizontalFrame(frame, 100, 100);
     213    TGHorizontalFrame *tab1b = new TGHorizontalFrame(frame, 100, 100);
     214    TGVerticalFrame   *tab2  = new TGVerticalFrame  (frame, 100, 100);
     215
     216    TGLayoutHints *laytab1  = new TGLayoutHints(kLHintsNormal|kLHintsExpandX,  10, 10, 10);
     217    TGLayoutHints *laytab2  = new TGLayoutHints(kLHintsExpandX|kLHintsExpandY, 10, 10, 10, 10);
     218    TGLayoutHints *layentry = new TGLayoutHints(kLHintsNormal|kLHintsExpandX); //,  5, 5, 5);
     219
     220    frame->AddFrame(tab1a, laytab1);
     221    frame->AddFrame(tab1b, laytab1);
     222    frame->AddFrame(tab2,  laytab2);
     223
     224    fEntry = new TGTextEntry(tab1a, "", kTEFileName);
     225    fEntry->Resize(350, 20);
     226    fEntry->Associate(this);
     227    tab1a->AddFrame(fEntry, layentry);
     228
     229    CreateDirListMenu(tab1b);
     230    CreateDirListBox(tab2);
     231
    216232    fList->Add(laytab1);
    217 
    218     frame->AddFrame(tab1a);
    219     frame->AddFrame(tab1b, laytab1b);
    220     frame->AddFrame(tab1,  laytab1);
    221 
    222     fList->Add(tab1);
     233    fList->Add(laytab2);
    223234    fList->Add(tab1a);
    224235    fList->Add(tab1b);
    225 
    226     CreateDirListMenu(tab1a);
    227     CreateDirListBox(tab1b);
     236    fList->Add(tab2);
     237    fList->Add(layentry);
     238    fList->Add(fEntry);
    228239}
    229240
     
    394405    fFileCont->ChangeDirectory(txt?txt:gSystem->WorkingDirectory());
    395406
    396     const char  *dir = fFileCont->GetDirectory();
    397     //    const UInt_t num = fDir->GetSelected()+1;
    398 
    399     //
    400     // FIXME: This is a big workaround!
    401     //
    402     fDir->InsertEntry(dir, -1/*num*/, -1);
    403     fDir->Select(-1/*num*/);
     407    const char *dir = fFileCont->GetDirectory();
     408    fDir->Update(dir);
     409}
     410
     411void MBrowser::SetFileName(const char *name)
     412{
     413    //
     414    // determine the file type by extensions
     415    //
     416    const char *ext=strrchr(name, '.');
     417
     418    Bool_t failed = kFALSE;
     419
     420    if (!ext)
     421        failed = kTRUE;
     422    else
     423        if (strcasecmp(ext, ".root"))
     424            failed = kTRUE;
     425
     426    char *fname=NULL;
     427    if (!failed)
     428    {
     429        const char *dir = fFileCont->GetDirectory();
     430
     431        fname = Form("%s/%s", dir, name);
     432
     433        failed = gSystem->AccessPathName(fname, kFileExists);
     434    }
     435
     436    if (!failed)
     437        strcpy(fInputFile, fname);
     438    else
     439        fname = Form(fInputFile);
     440
     441    char *slash = strrchr(fname, '/');
     442
     443    fEntry->SetText(slash ? slash+1 : "");
     444
     445    if (!slash)
     446        return;
     447
     448    *slash = '\0';
     449    ChangeDir(fname);
    404450}
    405451
     
    410456  switch (GET_MSG(msg))
    411457  {
     458  case kC_TEXTENTRY:
     459      if (GET_SUBMSG(msg)!=kTE_ENTER)
     460          return kTRUE;
     461
     462      SetFileName(fEntry->GetText());
     463      return kTRUE;
     464
    412465  case kC_COMMAND:
    413466      switch (GET_SUBMSG(msg))
     
    417470          switch (parm1)
    418471          {
    419           case M_PBUTTON_CDIR_UP :
     472          case kButDirUp :
    420473              //
    421474              //  goto the parent directory
     
    424477              return kTRUE;
    425478           
    426             case M_PBUTTON_LIST_MODE:
     479            case kButListMode:
    427480              fFileView->SetViewMode(kLVList);
    428481              fDetail->SetState(kButtonUp) ;
    429482              return kTRUE;
    430483             
    431           case M_PBUTTON_DETAIL_MODE:
     484          case kButDetailMode:
    432485              fFileView->SetViewMode(kLVDetails);
    433486              fListMode->SetState(kButtonUp);
     
    441494          // But to do this we need the number of entries in the list.
    442495          //
    443           if (parm1 == M_DIRBOX)
    444               ChangeDir(((TGTextLBEntry*)fDir->GetSelectedEntry())->GetText()->GetString());
     496          if (parm1 != kCBDirectory)
     497              return kTRUE;
     498
     499          ChangeDir(((TGTreeLBEntry*)fDir->GetSelectedEntry())->GetPath()->GetString());
    445500          return kTRUE;
    446501
    447502        case kCM_MENU:
    448           if (parm1==M_FILE_CLOSE)
     503          if (parm1==kFileClose)
    449504              CloseWindow();
    450505          return kTRUE;
     
    465520          //
    466521
    467           if (parm1 != kButton1)
    468               return kTRUE;
    469 
    470           if (fFileCont->NumSelected() != 1 )
     522          if (parm1 != kButton1 || fFileCont->NumSelected() != 1)
    471523              return kTRUE;
    472524
     
    489541          }
    490542
    491           //
    492           // file is no directory, is a file
    493           //    determine the file type by extensions
    494           //
    495           const char *extension=strrchr(str, '.');
    496 
    497           if (!extension)
    498               return kTRUE;
    499 
    500           const char *dir = fFileCont->GetDirectory();
    501 
    502           if (!strcasecmp(extension, ".ps")) // postscript file
    503           {
    504               char *cmd = new char[strlen(dir)+strlen(str)+40];
    505               sprintf(cmd, "gv %s/%s &", dir, str);
    506               gSystem->Exec(cmd);
    507               delete cmd;
    508               return kTRUE;
    509           }
    510 
    511           if (!strcasecmp(extension, ".root"))
    512           {
    513               sprintf(fInputFile, "%s/%s", dir, str);
    514               return kTRUE;
    515           }
     543          SetFileName(str);
    516544          return kTRUE;
    517545      }
  • trunk/MagicSoft/Mars/mmain/MBrowser.h

    r1030 r1050  
    1313class TGTab;
    1414class TGListView;
    15 class TGComboBox;
     15class TGTextEntry;
     16class TGFSComboBox;
    1617class TGProgressBar;
    1718class TGPictureButton;
     
    2324    TGTab            *fTabs;
    2425
    25     TGComboBox       *fDir;
     26    TGFSComboBox     *fDir;
     27    TGTextEntry      *fEntry;
    2628
    2729    TGPictureButton  *fCdup;
     
    4244    void CreateDirListMenu(TGCompositeFrame *frame);
    4345    void CreateDirListBox(TGCompositeFrame *frame);
     46
     47    void SetFileName(const char *name);
    4448
    4549protected:
  • trunk/MagicSoft/Mars/mmain/MMars.cc

    r993 r1050  
    3030#include <TGTab.h>         // TGTab
    3131#include <TGMenu.h>        // TGPopupMenu
     32#include <TSystem.h>       // gSystem->Exec
    3233#include <TGMsgBox.h>      // TGMsgBox
    3334#include <TGButton.h>      // TGPictureButton
    3435#include <TG3DLine.h>      // TGHorizontal3DLine
    35                            // use TGSplitter.h for root<3.00
     36
    3637#include "MEvtDisp.h"
    3738#include "MAnalysis.h"
     
    289290
    290291            case M_PICTURE_MAGIC:
    291                 DisplWarning("Please open a Netscape to the MAGIC homepage\n"
    292                              "http://hegra1.mppmu.mpg.de/MAGICWeb/");
     292                gSystem->Exec("netscape http://hegra1.mppmu.mpg.de/MAGICWeb/ &");
    293293                return kTRUE;
    294294
    295295            case M_PICTURE_MARS:
    296                 DisplWarning("Please open a Netscape to the MARS homepage\n"
    297                              "http://magic.uni-sw.gwdg.de/mars/");
     296                gSystem->Exec("netscape http://magic.uni-sw.gwdg.de/mars/ &");
    298297                return kTRUE;
    299298            }
Note: See TracChangeset for help on using the changeset viewer.