// Author: Bertrand Bellenot 22/08/02 /************************************************************************* * Copyright (C) 1995-2002, Bertrand Bellenot. * * All rights reserved. * * * * For the licensing terms see the LICENSE file. * *************************************************************************/ #include #include "GButtonFrame.h" //______________________________________________________________________________ // GButtonFrame // // A GButtonFrame is a frame containing the RootShower buttons. //______________________________________________________________________________ //______________________________________________________________________________ GButtonFrame::GButtonFrame(const TGWindow* p, TGWindow* buttonHandler, Int_t nextEventId, Int_t showTrackId, Int_t interruptSimId) : TGCompositeFrame(p, 100, 100, kVerticalFrame) { // Create GButtonFrame object, with TGWindow parent *p. // // buttonHandler = pointer to button handler TGWindow // nextEventId = id of NextEvent button // Create Layout hints fButtonLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 2, 2, 2); // Create Event Buttons fNextEventButton = new TGTextButton(this, "Start &New Event", nextEventId); fNextEventButton->Associate(buttonHandler); fNextEventButton->SetToolTipText("Start new simulation event"); AddFrame(fNextEventButton, fButtonLayout); fStopSimButton = new TGTextButton(this, "&Interrupt Simulation", interruptSimId); fStopSimButton->Associate(buttonHandler); fStopSimButton->SetToolTipText("Interrupts the current simulation"); AddFrame(fStopSimButton, fButtonLayout); fShowTrackButton = new TGTextButton(this, "&Show Selection", showTrackId); fShowTrackButton->Associate(buttonHandler); fShowTrackButton->SetToolTipText("Shows the selected track"); AddFrame(fShowTrackButton, fButtonLayout); fNextEventButton->Resize(150,GetDefaultHeight()); fStopSimButton->Resize(150,GetDefaultHeight()); fShowTrackButton->Resize(150,GetDefaultHeight()); SetState(kAllActive); fShowTrackButton->SetState(kButtonDisabled); fStopSimButton->SetState(kButtonDisabled); } //______________________________________________________________________________ GButtonFrame::~GButtonFrame() { // Destroy GButtonFrame object. Delete all created widgets delete fNextEventButton; delete fButtonLayout; } //______________________________________________________________________________ void GButtonFrame::SetState(EState state) { // Set the state of the GButtonFrame. This sets the state of // the TGButton's in this frame. switch (state) { case kAllActive: fNextEventButton->SetState(kButtonUp); fShowTrackButton->SetState(kButtonUp); fStopSimButton->SetState(kButtonDisabled); break; case kNoneActive: fNextEventButton->SetState(kButtonDisabled); fShowTrackButton->SetState(kButtonDisabled); fStopSimButton->SetState(kButtonUp); break; } // switch state // make sure window gets updated... gClient->HandleInput(); }