Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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 "TGLayout.h"
13#include "TString.h"
14#include "TImage.h"
15#include "TGShapedFrame.h"
16#include "TVirtualX.h"
17
18#include <iostream>
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) &&
97 (lm->InheritsFrom(TGHorizontalLayout::Class()))) {
98 ;
99 } else if ((GetOptions() & kVerticalFrame) &&
100 (lm->InheritsFrom(TGVerticalLayout::Class()))) {
101 ;
102 } else {
103 out << " " << GetName() <<"->SetLayoutManager(";
104 lm->SavePrimitive(out, option);
105 out << ");"<< std::endl;
106 }
107
108 SavePrimitiveSubframes(out, option);
109}
const Mask_t kWAOverrideRedirect
Definition GuiTypes.h:149
const Mask_t kWASaveUnder
Definition GuiTypes.h:150
@ kTempFrame
Definition GuiTypes.h:393
@ kVerticalFrame
Definition GuiTypes.h:381
@ kHorizontalFrame
Definition GuiTypes.h:382
#define h(i)
Definition RSha256.hxx:106
const Bool_t kTRUE
Definition RtypesCore.h:91
const char Option_t
Definition RtypesCore.h:66
#define ClassImp(name)
Definition Rtypes.h:364
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
Definition TError.cxx:187
#define gVirtualX
Definition TVirtualX.h:338
TGPicturePool * GetPicturePool() const
Definition TGClient.h:135
void FreePicture(const TGPicture *pic)
Free picture resource.
Definition TGClient.cxx:307
virtual TGLayoutManager * GetLayoutManager() const
Definition TGFrame.h:374
virtual void SavePrimitiveSubframes(std::ostream &out, Option_t *option="")
Auxilary protected method used to save subframes.
Definition TGFrame.cxx:2626
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition TGFrame.cxx:1149
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition TGFrame.cxx:668
virtual UInt_t GetOptions() const
Definition TGFrame.h:221
TString GetOptionString() const
Returns a frame option string - used in SavePrimitive().
Definition TGFrame.cxx:2465
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition TGFrame.cxx:590
UInt_t GetHeight() const
Definition TGFrame.h:249
UInt_t GetWidth() const
Definition TGFrame.h:248
void SaveUserColor(std::ostream &out, Option_t *)
Save a user color in a C++ macro file - used in SavePrimitive().
Definition TGFrame.cxx:2438
Pixel_t fBackground
Definition TGFrame.h:119
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
virtual ~TGShapedFrame()
Destructor.
TGShapedFrame(const TGShapedFrame &)=delete
TImage * fImage
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
virtual const char * GetName() const
Return unique name, used in SavePrimitive methods.
Definition TGWindow.cxx:335
virtual void SetBackgroundPixmap(Pixmap_t pixmap)
set background pixmap
Definition TGWindow.cxx:247
const TGWindow * fParent
Definition TGWindow.h:36
static TImage * Open(const char *file, EImageFileTypes type=kUnknown)
Open a specified image file.
Definition TImage.cxx:118
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:666
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition TObject.cxx:445
Basic string class.
Definition TString.h:136
const char * Data() const
Definition TString.h:369
Attributes that can be used when creating or changing a window.
Definition GuiTypes.h:93
Bool_t fOverrideRedirect
boolean value for override-redirect
Definition GuiTypes.h:107
Mask_t fMask
bit mask specifying which fields are valid
Definition GuiTypes.h:110
Bool_t fSaveUnder
should bits under be saved (popups)?
Definition GuiTypes.h:104