Logo ROOT  
Reference Guide
TGPicture.h
Go to the documentation of this file.
1 // @(#)root/gui:$Id$
2 // Author: Fons Rademakers 01/01/98
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, 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 #ifndef ROOT_TGPicture
13 #define ROOT_TGPicture
14 
15 
16 #include "TObject.h"
17 #include "TRefCnt.h"
18 #include "TString.h"
19 #include "TGClient.h"
20 #include "TGGC.h"
21 
22 class THashTable;
23 
24 
25 class TGPicture : public TObject, public TRefCnt {
26 
27 friend class TGPicturePool;
28 
29 protected:
30  TString fName; ///< name of picture
31  Bool_t fScaled; ///< kTRUE if picture is scaled
32  Pixmap_t fPic; ///< picture pixmap
33  Pixmap_t fMask; ///< picture mask pixmap
34  PictureAttributes_t fAttributes; ///< picture attributes
35 
36  TGPicture(const char *name, Bool_t scaled = kFALSE):
38  {
39  fAttributes.fPixels = 0;
40  SetRefCount(1);
41  }
42 
43  TGPicture(const char *name, Pixmap_t pxmap, Pixmap_t mask = 0);
44 
45  // override default of TObject
46  void Draw(Option_t * = "") { MayNotUse("Draw(Option_t*)"); }
47 
48 public:
49  virtual ~TGPicture();
50 
51  const char *GetName() const { return fName; }
52  UInt_t GetWidth() const { return fAttributes.fWidth; }
53  UInt_t GetHeight() const { return fAttributes.fHeight; }
54  Pixmap_t GetPicture() const { return fPic; }
55  Pixmap_t GetMask() const { return fMask; }
56  Bool_t IsScaled() const { return fScaled; }
57  ULong_t Hash() const { return fName.Hash(); }
58  static const char *HashName(const char *name, Int_t width, Int_t height);
59 
60  virtual void Draw(Handle_t id, GContext_t gc, Int_t x, Int_t y) const;
61  void Print(Option_t *option="") const;
62 
63  ClassDef(TGPicture,0) // Pictures and icons used by the GUI classes
64 };
65 
66 
67 class TGSelectedPicture : public TGPicture {
68 
69 protected:
70  const TGClient *fClient; // client to which selected picture belongs
71 
72  static TGGC *fgSelectedGC;
73  static TGGC &GetSelectedGC();
74 
76  TGPicture(gp), fClient(gp.fClient) { }
78  {if(this!=&gp) { TGPicture::operator=(gp); fClient=gp.fClient;}
79  return *this;}
80 
81 public:
82  TGSelectedPicture(const TGClient *client, const TGPicture *p);
83  virtual ~TGSelectedPicture();
84 
85  ClassDef(TGSelectedPicture,0) // Selected looking picture
86 };
87 
88 
89 class TGPicturePool : public TObject {
90 
91 protected:
92  const TGClient *fClient; ///< client for which we keep icon pool
93  TString fPath; ///< icon search path
94  THashTable *fPicList; ///< hash table containing the icons
95 
98 
99 public:
100  TGPicturePool(const TGClient *client, const char *path):
101  fClient(client), fPath(path), fPicList(0) { }
102  virtual ~TGPicturePool();
103 
104  const char *GetPath() const { return fPath; }
105  const TGPicture *GetPicture(const char *name);
106  const TGPicture *GetPicture(const char *name, char **xpm);
107  const TGPicture *GetPicture(const char *name, UInt_t new_width, UInt_t new_height);
108  const TGPicture *GetPicture(const char *name, Pixmap_t pxmap, Pixmap_t mask = 0);
109  void FreePicture(const TGPicture *pic);
110 
111  void Print(Option_t *option="") const;
112 
113  ClassDef(TGPicturePool,0) // Picture and icon cache
114 };
115 
116 #endif
TGPicture::fName
TString fName
name of picture
Definition: TGPicture.h:30
TGPicture::TGPicture
TGPicture(const char *name, Bool_t scaled=kFALSE)
Definition: TGPicture.h:36
Pixmap_t
Handle_t Pixmap_t
Pixmap handle.
Definition: GuiTypes.h:30
TGPicture
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
Definition: TGPicture.h:25
PictureAttributes_t::fPixels
ULong_t * fPixels
list of used color pixels (if set use delete[])
Definition: GuiTypes.h:330
TRefCnt::SetRefCount
void SetRefCount(UInt_t r)
Definition: TRefCnt.h:39
Option_t
const char Option_t
Definition: RtypesCore.h:66
TGPicture::HashName
static const char * HashName(const char *name, Int_t width, Int_t height)
Static function returning a unique name used to look up a picture.
Definition: TGPicture.cxx:375
TGPicture::GetWidth
UInt_t GetWidth() const
Definition: TGPicture.h:52
PictureAttributes_t::fWidth
UInt_t fWidth
width of picture
Definition: GuiTypes.h:326
TGSelectedPicture::~TGSelectedPicture
virtual ~TGSelectedPicture()
Delete selected picture.
Definition: TGPicture.cxx:430
TGPicture::Hash
ULong_t Hash() const
Return hash value for this object.
Definition: TGPicture.h:57
TGPicture::GetMask
Pixmap_t GetMask() const
Definition: TGPicture.h:55
TRefCnt.h
width
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
Int_t
int Int_t
Definition: RtypesCore.h:45
TString::Hash
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
Definition: TString.cxx:659
TGPicture::Draw
void Draw(Option_t *="")
Default Draw method for all objects.
Definition: TGPicture.h:46
x
Double_t x[n]
Definition: legend1.C:17
TGSelectedPicture
Definition: TGPicture.h:67
TObject::MayNotUse
void MayNotUse(const char *method) const
Use this method to signal that a method (defined in a base class) may not be called in a derived clas...
Definition: TObject.cxx:946
TGPicturePool::TGPicturePool
TGPicturePool(const TGClient *client, const char *path)
Definition: TGPicture.h:100
TGPicture::IsScaled
Bool_t IsScaled() const
Definition: TGPicture.h:56
TGPicture::fScaled
Bool_t fScaled
kTRUE if picture is scaled
Definition: TGPicture.h:31
TString
Basic string class.
Definition: TString.h:136
TGSelectedPicture::TGSelectedPicture
TGSelectedPicture(const TGSelectedPicture &gp)
Definition: TGPicture.h:75
TString.h
TGPicturePool::fPicList
THashTable * fPicList
hash table containing the icons
Definition: TGPicture.h:94
bool
GContext_t
Handle_t GContext_t
Graphics context handle.
Definition: GuiTypes.h:38
kNone
const Handle_t kNone
Definition: GuiTypes.h:88
TGPicturePool::TGPicturePool
TGPicturePool(const TGPicturePool &)
copy constructor
Definition: TGPicture.cxx:56
TGPicturePool::GetPicture
const TGPicture * GetPicture(const char *name)
Get a picture from the picture pool.
Definition: TGPicture.cxx:82
TGPicture::Print
void Print(Option_t *option="") const
Print picture info.
Definition: TGPicture.cxx:386
THashTable
THashTable implements a hash table to store TObject's.
Definition: THashTable.h:35
TGSelectedPicture::GetSelectedGC
static TGGC & GetSelectedGC()
Return selection graphics context in use.
Definition: TGPicture.cxx:439
TGSelectedPicture::fgSelectedGC
static TGGC * fgSelectedGC
Definition: TGPicture.h:72
TGPicturePool::GetPath
const char * GetPath() const
Definition: TGPicture.h:104
TGGC
Encapsulate a graphics context used in the low level graphics.
Definition: TGGC.h:22
TGGC.h
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:101
TGPicturePool::fClient
const TGClient * fClient
client for which we keep icon pool
Definition: TGPicture.h:92
TGPicturePool
Definition: TGPicture.h:89
UInt_t
unsigned int UInt_t
Definition: RtypesCore.h:46
y
Double_t y[n]
Definition: legend1.C:17
ULong_t
unsigned long ULong_t
Definition: RtypesCore.h:55
TGPicture::fPic
Pixmap_t fPic
picture pixmap
Definition: TGPicture.h:32
TGClient.h
TGPicture::fMask
Pixmap_t fMask
picture mask pixmap
Definition: TGPicture.h:33
TGPicturePool::operator=
TGPicturePool & operator=(const TGPicturePool &)
assignment operator
Definition: TGPicture.cxx:67
unsigned int
TGPicturePool::~TGPicturePool
virtual ~TGPicturePool()
Delete picture cache.
Definition: TGPicture.cxx:293
TGPicture::fAttributes
PictureAttributes_t fAttributes
picture attributes
Definition: TGPicture.h:34
TObject::operator=
TObject & operator=(const TObject &rhs)
TObject assignment operator.
Definition: TObject.h:283
PictureAttributes_t
Definition: GuiTypes.h:323
TObject.h
TGPicture::GetPicture
Pixmap_t GetPicture() const
Definition: TGPicture.h:54
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
Handle_t
ULong_t Handle_t
Generic resource handle.
Definition: GuiTypes.h:26
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
name
char name[80]
Definition: TGX11.cxx:110
TGPicture::GetName
const char * GetName() const
Returns name of object.
Definition: TGPicture.h:51
TGSelectedPicture::fClient
const TGClient * fClient
Definition: TGPicture.h:70
TGPicture::~TGPicture
virtual ~TGPicture()
Delete picture object.
Definition: TGPicture.cxx:361
TRefCnt
Definitions for TRefCnt, base class for reference counted objects.
Definition: TRefCnt.h:27
TGSelectedPicture::operator=
TGSelectedPicture & operator=(const TGSelectedPicture &gp)
Definition: TGPicture.h:77
TGPicturePool::FreePicture
void FreePicture(const TGPicture *pic)
Remove picture from cache if nobody is using it anymore.
Definition: TGPicture.cxx:277
TGPicture::GetHeight
UInt_t GetHeight() const
Definition: TGPicture.h:53
TGClient
Window client.
Definition: TGClient.h:37
TGPicturePool::fPath
TString fPath
icon search path
Definition: TGPicture.h:93
PictureAttributes_t::fHeight
UInt_t fHeight
height of picture
Definition: GuiTypes.h:327
TGPicturePool::Print
void Print(Option_t *option="") const
List all pictures in the pool.
Definition: TGPicture.cxx:307