Revision a5be373957d9bd95feb6d44e11b7141fd9357654 authored by Fons Rademakers on 28 September 2006, 14:49:37 UTC, committed by Fons Rademakers on 28 September 2006, 14:49:37 UTC
inline assembler. git-svn-id: http://root.cern.ch/svn/root/trunk@16366 27541ba8-7e3a-0410-8455-c3a389f83636
1 parent cfa89a5
RSAbout.cxx
// Author: Bertrand Bellenot 22/08/02
/*************************************************************************
* Copyright (C) 1995-2002, Bertrand Bellenot. *
* All rights reserved. *
* *
* For the licensing terms see the LICENSE file. *
*************************************************************************/
#include <TSystem.h>
#include <TROOT.h>
#include <TRootHelpDialog.h>
#include "RSAbout.h"
#include "RSVersion.h"
//______________________________________________________________________________
RootShowerAbout::RootShowerAbout(const TGWindow *p, const TGWindow *main,
UInt_t w, UInt_t h, UInt_t options) :
TGTransientFrame(p, main, w, h, options)
{
Int_t iday,imonth,iyear;
Char_t message1[80];
static const Char_t *months[] = {"January","February", "March","April","May","June","July",
"August", "September","October","November","December"};
TGPicture *fIconPicture;
TGIcon *fIcon;
UInt_t wh1 = (UInt_t)(0.6 * h);
UInt_t wh2 = h - wh1;
const Char_t *root_version = gROOT->GetVersion();
Int_t idatqq = gROOT->GetVersionDate();
iday = idatqq%100;
imonth = (idatqq/100)%100;
iyear = (idatqq/10000);
Char_t *root_date = Form("%s %d %4d",months[imonth-1],iday,iyear);
fVFrame = new TGVerticalFrame(this, w, wh1, 0);
TString theLogoFilename = StrDup(gProgPath);
theLogoFilename.Append("/icons/mclogo01.xpm");
fIconPicture = (TGPicture *)gClient->GetPicture(theLogoFilename);
fIcon = new TGIcon(this, fIconPicture,
fIconPicture->GetWidth(),
fIconPicture->GetHeight());
fLogoLayout = new TGLayoutHints(kLHintsCenterX, 0, 0, 0, 0);
AddFrame(fIcon, fLogoLayout);
sprintf(message1," ROOT Shower Monte Carlo / Event Display v %s ",
ROOTSHOWER_RELEASE);
fLabel1 = new TGLabel(fVFrame, message1);
sprintf(message1," Compiled with Root version %s, release date : %s ",
root_version, root_date);
fLabel2 = new TGLabel(fVFrame, message1);
fLabel4 = new TGLabel(fVFrame, " (c) Bertrand Bellenot 1994 - 2002 ");
fBly = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 0, 0, 5, 5);
fBfly = new TGLayoutHints(kLHintsTop | kLHintsRight| kLHintsExpandX, 0, 0, 5, 5);
fVFrame->AddFrame(fLabel1,fBly);
fVFrame->AddFrame(fLabel2,fBly);
fVFrame->AddFrame(fLabel4,fBly);
//------------------------------------------------------------------------------
// OK Cancel Buttons in Horizontal frame
//------------------------------------------------------------------------------
fHFrame = new TGHorizontalFrame(this, w, wh2, 0);
fOkButton = new TGTextButton(fHFrame, "&Ok", 1);
fOkButton->Resize(100, fOkButton->GetDefaultHeight());
fOkButton->Associate(this);
fL1 = new TGLayoutHints(kLHintsCenterX | kLHintsExpandX, 2, 2, 2, 2);
fL2 = new TGLayoutHints(kLHintsBottom | kLHintsCenterX | kLHintsExpandX, 150, 150, 2, 10);
fHFrame->AddFrame(fOkButton, fL1);
fHFrame->Resize(100, fOkButton->GetDefaultHeight());
AddFrame(fVFrame, fBfly);
AddFrame(fHFrame, fL2);
SetWindowName("About RootShower...");
TGDimension size = GetDefaultSize();
Resize(size);
SetWMSize(size.fWidth, size.fHeight);
SetWMSizeHints(size.fWidth, size.fHeight, size.fWidth, size.fHeight, 0, 0);
SetMWMHints(kMWMDecorAll | kMWMDecorResizeH | kMWMDecorMaximize |
kMWMDecorMinimize | kMWMDecorMenu, kMWMFuncAll |
kMWMFuncResize | kMWMFuncMaximize | kMWMFuncMinimize,
kMWMInputModeless);
// position relative to the parent's window
Int_t ax, ay;
Window_t wdummy;
gVirtualX->TranslateCoordinates(main->GetId(), GetParent()->GetId(),
(Int_t)(((TGFrame *) main)->GetWidth() - fWidth) >> 1,
(Int_t)(((TGFrame *) main)->GetHeight() - fHeight) >> 1,
ax, ay, wdummy);
if (ax < 0) ax = 10;
if (ay < 0) ay = 10;
Move(ax, ay);
SetWMPosition(ax, ay);
MapSubwindows();
MapWindow();
fClient->WaitFor(this);
}
//______________________________________________________________________________
RootShowerAbout::~RootShowerAbout()
{
delete fOkButton;
delete fVFrame;
delete fHFrame;
delete fLabel1;
delete fLabel2;
delete fLabel4;
delete fBly;
}
//______________________________________________________________________________
void RootShowerAbout::CloseWindow()
{
// Close dialog in response to window manager close.
DeleteWindow();
}
//______________________________________________________________________________
Bool_t RootShowerAbout::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
{
// Process messages sent to this dialog.
switch (GET_MSG(msg)) {
case kC_COMMAND:
switch (GET_SUBMSG(msg)) {
case kCM_BUTTON:
CloseWindow();
break;
default:
break;
}
break;
default:
break;
}
return kTRUE;
}
Computing file changes ...