ROOT logo
// @(#)root/sessionviewer:$Id: TSessionLogView.cxx 21413 2007-12-17 14:12:56Z brun $
// Author: Bertrand Bellenot, Gerri Ganis 15/09/2005

/*************************************************************************
 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include "TSessionLogView.h"
#include "TSessionViewer.h"
#include "TProof.h"
#include "KeySymbols.h"

//_____________________________________________________________________________
//
// TSessionLogView
//
// Dialog used to display session logs from the session viewer
//_____________________________________________________________________________

ClassImp(TSessionLogView)

//____________________________________________________________________________
TSessionLogView::TSessionLogView(TSessionViewer *viewer, UInt_t w, UInt_t h) :
   TGTransientFrame(gClient->GetRoot(), viewer, w, h)
{
   // Create an editor in a dialog.

   fViewer = viewer;
   fTextView = new TGTextView(this, w, h, kSunkenFrame | kDoubleBorder);
   fL1 = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 3, 3, 3, 3);
   AddFrame(fTextView, fL1);

   fClose = new TGTextButton(this, "  &Close  ");
   fL2 = new TGLayoutHints(kLHintsBottom | kLHintsCenterX, 0, 0, 5, 5);
   AddFrame(fClose, fL2);

   SetTitle();
   fViewer->SetLogWindow(this);

   MapSubwindows();

   Resize(GetDefaultSize());
}

//____________________________________________________________________________
TSessionLogView::~TSessionLogView()
{
}

//____________________________________________________________________________
void TSessionLogView::SetTitle()
{
   // Set title in editor window.

   char title[256] = {0};
   strcpy(title,Form("PROOF Processing Logs: %s",
         (fViewer->GetActDesc()->fProof ?
          fViewer->GetActDesc()->fProof->GetMaster() : "<dummy>")));
   SetWindowName(title);
   SetIconName(title);
}

//____________________________________________________________________________
void TSessionLogView::Popup()
{
   // Show editor.

   MapWindow();
}

//____________________________________________________________________________
void TSessionLogView::AddBuffer(const char *buffer)
{
   // Load a text buffer in the editor.

   TGText txt;
   txt.LoadBuffer(buffer);
   fTextView->AddText(&txt);
   fTextView->ShowBottom();
}

//____________________________________________________________________________
void TSessionLogView::ClearLogView()
{
   // Clear log window.

   fTextView->Clear();
}

//____________________________________________________________________________
void TSessionLogView::LoadBuffer(const char *buffer)
{
   // Load a text buffer in the editor.

   fTextView->LoadBuffer(buffer);
   fTextView->ShowBottom();
}

//____________________________________________________________________________
void TSessionLogView::LoadFile(const char *file)
{
   // Load a file in the editor.

   fTextView->LoadFile(file);
   fTextView->ShowBottom();
}

//____________________________________________________________________________
void TSessionLogView::CloseWindow()
{
   // Called when closed via window manager action.
   if (fViewer->GetActDesc()->fProof) {
      fViewer->GetActDesc()->fProof->Disconnect(
            "LogMessage(const char*,Bool_t)", fViewer,
            "LogMessage(const char*,Bool_t)");
   }
   fViewer->SetLogWindow(0);
   delete fTextView;
   delete fClose;
   delete fL1;
   delete fL2;
   DestroyWindow();
}

//____________________________________________________________________________
Bool_t TSessionLogView::ProcessMessage(Long_t msg, Long_t, Long_t)
{
   // Process OK button.

   switch (GET_MSG(msg)) {
      case kC_COMMAND:
         switch (GET_SUBMSG(msg)) {
            case kCM_BUTTON:
               // Only one button and one action...
               CloseWindow();
               break;
            default:
               break;
         }
         break;
      default:
         break;
   }
   return kTRUE;
}

 TSessionLogView.cxx:1
 TSessionLogView.cxx:2
 TSessionLogView.cxx:3
 TSessionLogView.cxx:4
 TSessionLogView.cxx:5
 TSessionLogView.cxx:6
 TSessionLogView.cxx:7
 TSessionLogView.cxx:8
 TSessionLogView.cxx:9
 TSessionLogView.cxx:10
 TSessionLogView.cxx:11
 TSessionLogView.cxx:12
 TSessionLogView.cxx:13
 TSessionLogView.cxx:14
 TSessionLogView.cxx:15
 TSessionLogView.cxx:16
 TSessionLogView.cxx:17
 TSessionLogView.cxx:18
 TSessionLogView.cxx:19
 TSessionLogView.cxx:20
 TSessionLogView.cxx:21
 TSessionLogView.cxx:22
 TSessionLogView.cxx:23
 TSessionLogView.cxx:24
 TSessionLogView.cxx:25
 TSessionLogView.cxx:26
 TSessionLogView.cxx:27
 TSessionLogView.cxx:28
 TSessionLogView.cxx:29
 TSessionLogView.cxx:30
 TSessionLogView.cxx:31
 TSessionLogView.cxx:32
 TSessionLogView.cxx:33
 TSessionLogView.cxx:34
 TSessionLogView.cxx:35
 TSessionLogView.cxx:36
 TSessionLogView.cxx:37
 TSessionLogView.cxx:38
 TSessionLogView.cxx:39
 TSessionLogView.cxx:40
 TSessionLogView.cxx:41
 TSessionLogView.cxx:42
 TSessionLogView.cxx:43
 TSessionLogView.cxx:44
 TSessionLogView.cxx:45
 TSessionLogView.cxx:46
 TSessionLogView.cxx:47
 TSessionLogView.cxx:48
 TSessionLogView.cxx:49
 TSessionLogView.cxx:50
 TSessionLogView.cxx:51
 TSessionLogView.cxx:52
 TSessionLogView.cxx:53
 TSessionLogView.cxx:54
 TSessionLogView.cxx:55
 TSessionLogView.cxx:56
 TSessionLogView.cxx:57
 TSessionLogView.cxx:58
 TSessionLogView.cxx:59
 TSessionLogView.cxx:60
 TSessionLogView.cxx:61
 TSessionLogView.cxx:62
 TSessionLogView.cxx:63
 TSessionLogView.cxx:64
 TSessionLogView.cxx:65
 TSessionLogView.cxx:66
 TSessionLogView.cxx:67
 TSessionLogView.cxx:68
 TSessionLogView.cxx:69
 TSessionLogView.cxx:70
 TSessionLogView.cxx:71
 TSessionLogView.cxx:72
 TSessionLogView.cxx:73
 TSessionLogView.cxx:74
 TSessionLogView.cxx:75
 TSessionLogView.cxx:76
 TSessionLogView.cxx:77
 TSessionLogView.cxx:78
 TSessionLogView.cxx:79
 TSessionLogView.cxx:80
 TSessionLogView.cxx:81
 TSessionLogView.cxx:82
 TSessionLogView.cxx:83
 TSessionLogView.cxx:84
 TSessionLogView.cxx:85
 TSessionLogView.cxx:86
 TSessionLogView.cxx:87
 TSessionLogView.cxx:88
 TSessionLogView.cxx:89
 TSessionLogView.cxx:90
 TSessionLogView.cxx:91
 TSessionLogView.cxx:92
 TSessionLogView.cxx:93
 TSessionLogView.cxx:94
 TSessionLogView.cxx:95
 TSessionLogView.cxx:96
 TSessionLogView.cxx:97
 TSessionLogView.cxx:98
 TSessionLogView.cxx:99
 TSessionLogView.cxx:100
 TSessionLogView.cxx:101
 TSessionLogView.cxx:102
 TSessionLogView.cxx:103
 TSessionLogView.cxx:104
 TSessionLogView.cxx:105
 TSessionLogView.cxx:106
 TSessionLogView.cxx:107
 TSessionLogView.cxx:108
 TSessionLogView.cxx:109
 TSessionLogView.cxx:110
 TSessionLogView.cxx:111
 TSessionLogView.cxx:112
 TSessionLogView.cxx:113
 TSessionLogView.cxx:114
 TSessionLogView.cxx:115
 TSessionLogView.cxx:116
 TSessionLogView.cxx:117
 TSessionLogView.cxx:118
 TSessionLogView.cxx:119
 TSessionLogView.cxx:120
 TSessionLogView.cxx:121
 TSessionLogView.cxx:122
 TSessionLogView.cxx:123
 TSessionLogView.cxx:124
 TSessionLogView.cxx:125
 TSessionLogView.cxx:126
 TSessionLogView.cxx:127
 TSessionLogView.cxx:128
 TSessionLogView.cxx:129
 TSessionLogView.cxx:130
 TSessionLogView.cxx:131
 TSessionLogView.cxx:132
 TSessionLogView.cxx:133
 TSessionLogView.cxx:134
 TSessionLogView.cxx:135
 TSessionLogView.cxx:136
 TSessionLogView.cxx:137
 TSessionLogView.cxx:138
 TSessionLogView.cxx:139
 TSessionLogView.cxx:140
 TSessionLogView.cxx:141
 TSessionLogView.cxx:142
 TSessionLogView.cxx:143
 TSessionLogView.cxx:144
 TSessionLogView.cxx:145
 TSessionLogView.cxx:146
 TSessionLogView.cxx:147
 TSessionLogView.cxx:148
 TSessionLogView.cxx:149
 TSessionLogView.cxx:150