Logo ROOT   6.18/05
Reference Guide
TGShapedFrame.cxx
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Bertrand Bellenot 23/01/2008
3
4/*************************************************************************
5 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#include "TGFrame.h"
13#include "TGLayout.h"
14#include "TString.h"
15#include "TGPicture.h"
16#include "TImage.h"
17#include "TGShapedFrame.h"
18#include "Riostream.h"
19
21
22////////////////////////////////////////////////////////////////////////////////
23/// Shaped window default constructor
24
25TGShapedFrame::TGShapedFrame(const char *pname, const TGWindow *p, UInt_t w,
26 UInt_t h, UInt_t options) :
27 TGCompositeFrame(p, w, h, options), fBgnd(0), fImage(0)
28{
29 TString picName;
30 // set a few attributes
31 if (options & kTempFrame) {
35 attr.fSaveUnder = kTRUE;
36 gVirtualX->ChangeWindowAttributes(fId, &attr);
37 }
38 // open the image file used as shape & background
39 if (pname)
40 picName = pname;
41 else
42 picName = "Default.png";
43 fImage = TImage::Open(picName.Data());
44 if (!fImage || !fImage->IsValid())
45 Error("TGShapedFrame", "%s not found", picName.Data());
48 // shape the window with the picture mask
49 gVirtualX->ShapeCombineMask(fId, 0, 0, fBgnd->GetMask());
50 // and finally set the background picture
52
54 Resize();
56}
57
58////////////////////////////////////////////////////////////////////////////////
59/// Destructor.
60
62{
63 delete fImage;
65}
66
67////////////////////////////////////////////////////////////////////////////////
68/// Save a shaped frame as a C++ statement(s) on output stream out.
69
70void TGShapedFrame::SavePrimitive(std::ostream &out, Option_t *option /*= ""*/)
71{
73
74 out << std::endl << " // shaped frame" << std::endl;
75 out << " TGShapedFrame *";
76 out << GetName() << " = new TGShapedFrame(" << fImage->GetName()
77 << "," << fParent->GetName() << "," << GetWidth() << ","
78 << GetHeight();
79
81 if (!GetOptions()) {
82 out << ");" << std::endl;
83 } else {
84 out << "," << GetOptionString() <<");" << std::endl;
85 }
86 } else {
87 out << "," << GetOptionString() << ",ucolor);" << std::endl;
88 }
89 if (option && strstr(option, "keep_names"))
90 out << " " << GetName() << "->SetName(\"" << GetName() << "\");" << std::endl;
91
92 // setting layout manager if it differs from the main frame type
93 // coverity[returned_null]
94 // coverity[dereference]
96 if ((GetOptions() & kHorizontalFrame) &&
98 ;
99 } else if ((GetOptions() & kVerticalFrame) &&
101 ;
102 } else {
103 out << " " << GetName() <<"->SetLayoutManager(";
104 lm->SavePrimitive(out, option);
105 out << ");"<< std::endl;
106 }
107
108 SavePrimitiveSubframes(out, option);
109}
void Class()
Definition: Class.C:29
const Mask_t kWAOverrideRedirect
Definition: GuiTypes.h:148
const Mask_t kWASaveUnder
Definition: GuiTypes.h:149
#define h(i)
Definition: RSha256.hxx:106
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kTRUE
Definition: RtypesCore.h:87
const char Option_t
Definition: RtypesCore.h:62
#define ClassImp(name)
Definition: Rtypes.h:365
@ kTempFrame
Definition: TGFrame.h:71
@ kVerticalFrame
Definition: TGFrame.h:59
@ kHorizontalFrame
Definition: TGFrame.h:60
#define gVirtualX
Definition: TVirtualX.h:345
TGPicturePool * GetPicturePool() const
Definition: TGClient.h:135
void FreePicture(const TGPicture *pic)
Free picture resource.
Definition: TGClient.cxx:308
virtual TGLayoutManager * GetLayoutManager() const
Definition: TGFrame.h:397
virtual void SavePrimitiveSubframes(std::ostream &out, Option_t *option="")
Auxilary protected method used to save subframes.
Definition: TGFrame.cxx:2621
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1146
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition: TGFrame.cxx:665
virtual UInt_t GetOptions() const
Definition: TGFrame.h:244
TString GetOptionString() const
Returns a frame option string - used in SavePrimitive().
Definition: TGFrame.cxx:2460
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
UInt_t GetHeight() const
Definition: TGFrame.h:272
UInt_t GetWidth() const
Definition: TGFrame.h:271
void SaveUserColor(std::ostream &out, Option_t *)
Save a user color in a C++ macro file - used in SavePrimitive().
Definition: TGFrame.cxx:2433
Pixel_t fBackground
Definition: TGFrame.h:142
TGClient * fClient
Definition: TGObject.h:37
Handle_t fId
Definition: TGObject.h:36
const TGPicture * GetPicture(const char *name)
Get a picture from the picture pool.
Definition: TGPicture.cxx:80
Pixmap_t GetMask() const
Definition: TGPicture.h:66
UInt_t GetHeight() const
Definition: TGPicture.h:64
Pixmap_t GetPicture() const
Definition: TGPicture.h:65
UInt_t GetWidth() const
Definition: TGPicture.h:63
TGShapedFrame(const TGShapedFrame &)
virtual ~TGShapedFrame()
Destructor.
TImage * fImage
Definition: TGShapedFrame.h:31
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a shaped frame as a C++ statement(s) on output stream out.
const TGPicture * fBgnd
Definition: TGShapedFrame.h:30
virtual const char * GetName() const
Return unique name, used in SavePrimitive methods.
Definition: TGWindow.cxx:221
const TGWindow * fParent
Definition: TGWindow.h:37
virtual void SetBackgroundPixmap(Pixmap_t pixmap)
Definition: TGWindow.h:102
static TImage * Open(const char *file, EImageFileTypes type=kUnknown)
Open a specified image file.
Definition: TImage.cxx:119
virtual Bool_t IsValid() const
Definition: TImage.h:230
virtual Pixmap_t GetPixmap()
Definition: TImage.h:235
virtual Pixmap_t GetMask()
Definition: TImage.h:236
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TObject.cxx:664
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition: TObject.cxx:443
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:880
Basic string class.
Definition: TString.h:131
const char * Data() const
Definition: TString.h:364
Bool_t fOverrideRedirect
Definition: GuiTypes.h:106