// @(#)root/gui:$Name: $:$Id: TGMdiFrame.cxx,v 1.6 2005/01/12 18:39:29 brun Exp $
// Author: Bertrand Bellenot 20/08/2004
/*************************************************************************
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
/**************************************************************************
This file is part of TGMdi an extension to the xclass toolkit.
Copyright (C) 1998-2002 by Harald Radke, Hector Peraza.
This application is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This application is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**************************************************************************/
//////////////////////////////////////////////////////////////////////////
// //
// TGMdiFrame. //
// //
// This file contains the TGMdiFrame class. //
// //
//////////////////////////////////////////////////////////////////////////
#include "TGFrame.h"
#include "TGMdiFrame.h"
#include "TGMdiMainFrame.h"
#include "TGMdiDecorFrame.h"
#include "Riostream.h"
ClassImp(TGMdiFrame)
//______________________________________________________________________________
TGMdiFrame::TGMdiFrame(TGMdiMainFrame *main, Int_t w, Int_t h, UInt_t options,
Pixel_t back) :
TGCompositeFrame(main->GetContainer(), w, h,
options | kOwnBackground | kMdiFrame, back)
{
fMain = main;
fMain->AddMdiFrame(this); // this reparents the window
fMdiHints = kMdiDefaultHints;
}
//______________________________________________________________________________
TGMdiFrame::~TGMdiFrame()
{
fMain->RemoveMdiFrame(this);
}
//______________________________________________________________________________
Bool_t TGMdiFrame::CloseWindow()
{
DeleteWindow();
return kTRUE;
}
//______________________________________________________________________________
void TGMdiFrame::DontCallClose()
{
// Typically call this method in the slot connected to the CloseWindow()
// signal to prevent the calling of the default or any derived CloseWindow()
// methods to prevent premature or double deletion of this window.
SetBit(kDontCallClose);
}
//______________________________________________________________________________
void TGMdiFrame::SetMdiHints(ULong_t mdihints)
{
fMdiHints = mdihints;
((TGMdiDecorFrame *)fParent)->SetMdiButtons(mdihints);
}
//______________________________________________________________________________
void TGMdiFrame::SetWindowName(const char *name)
{
((TGMdiDecorFrame *)fParent)->SetWindowName(name);
fMain->UpdateWinListMenu();
}
//______________________________________________________________________________
void TGMdiFrame::SetWindowIcon(const TGPicture *pic)
{
((TGMdiDecorFrame *)fParent)->SetWindowIcon(pic);
fMain->UpdateWinListMenu();
}
//______________________________________________________________________________
const char *TGMdiFrame::GetWindowName()
{
return ((TGMdiDecorFrame *)fParent)->GetWindowName();
}
//______________________________________________________________________________
const TGPicture *TGMdiFrame::GetWindowIcon()
{
return ((TGMdiDecorFrame *)fParent)->GetWindowIcon();
}
//______________________________________________________________________________
void TGMdiFrame::Move(Int_t x, Int_t y)
{
((TGMdiDecorFrame *)fParent)->Move(x, y);
fX = x; fY = y;
}
//______________________________________________________________________________
TString TGMdiFrame::GetMdiHintsString() const
{
// Returns a MDI option string - used in SavePrimitive().
TString hints;
if (fMdiHints == kMdiDefaultHints)
hints = "kMdiDefaultHints";
else {
if (fMdiHints & kMdiClose) {
if (hints.Length() == 0) hints = "kMdiClose";
else hints += " | kMdiClose";
}
if (fMdiHints & kMdiRestore) {
if (hints.Length() == 0) hints = "kMdiRestore";
else hints += " | kMdiRestore";
}
if (fMdiHints & kMdiMove) {
if (hints.Length() == 0) hints = "kMdiMove";
else hints += " | kMdiMove";
}
if (fMdiHints & kMdiSize) {
if (hints.Length() == 0) hints = "kMdiSize";
else hints += " | kMdiSize";
}
if (fMdiHints & kMdiMinimize) {
if (hints.Length() == 0) hints = "kMdiMinimize";
else hints += " | kMdiMinimize";
}
if (fMdiHints & kMdiMaximize) {
if (hints.Length() == 0) hints = "kMdiMaximize";
else hints += " | kMdiMaximize";
}
if (fMdiHints & kMdiHelp) {
if (hints.Length() == 0) hints = "kMdiHelp";
else hints += " | kMdiHelp";
}
if (fMdiHints & kMdiMenu) {
if (hints.Length() == 0) hints = "kMdiMenu";
else hints += " | kMdiMenu";
}
}
return hints;
}
//______________________________________________________________________________
void TGMdiFrame::SavePrimitive(ofstream &out, Option_t *option)
{
// Save a MDIframe as a C++ statement(s) on output stream out
char quote = '"';
if (fBackground != GetDefaultFrameBackground()) SaveUserColor(out, option);
TGMdiTitleBar *tb = fMain->GetWindowList()->GetDecorFrame()->GetTitleBar();
out << endl <<" // MDI frame "<< quote << GetWindowName() << quote << endl;
out << " TGMdiFrame *";
out << GetName() << " = new TGMdiFrame(" << fMain->GetName()
<< "," << GetWidth() + GetBorderWidth()*2
<< "," << GetHeight() + tb->GetHeight() + GetBorderWidth()*2;
if (fBackground == GetDefaultFrameBackground()) {
if (!GetOptions()) {
out << ");" << endl;
} else {
out << "," << GetOptionString() <<");" << endl;
}
} else {
out << "," << GetOptionString() << ",ucolor);" << endl;
}
SavePrimitiveSubframes(out, option);
out << " " << GetName() << "->SetWindowName(" << quote << GetWindowName()
<< quote << ");" << endl;
out << " " << GetName() << "->SetMdiHints(" << GetMdiHintsString()
<< ");" << endl;
if ((GetX() != 5) && (GetY() != 23))
out << " " << GetName() << "->Move(" << GetX() << "," << GetY()
<< ");" << endl;
out << " " << GetName() << "->MapSubwindows();" << endl;
out << " " << GetName() << "->Layout();" << endl;
}
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.