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//////////////////////////////////////////////////////////////////////////
17// //
18// TGPicture, TGSelectdPicture & TGPicturePool //
19// //
20// The TGPicture class implements pictures and icons used in the //
21// different GUI elements and widgets. The TGPicturePool class //
22// implements a TGPicture cache. TGPictures are created, managed and //
23// destroyed by the TGPicturePool. //
24// //
25//////////////////////////////////////////////////////////////////////////
26
27#include "TObject.h"
28#include "TRefCnt.h"
29#include "TString.h"
30#include "TGClient.h"
31#include "TGGC.h"
32
33class THashTable;
34
35
36class TGPicture : public TObject, public TRefCnt {
37
38friend class TGPicturePool;
39
40protected:
41 TString fName; // name of picture
42 Bool_t fScaled; // kTRUE if picture is scaled
43 Pixmap_t fPic; // picture pixmap
44 Pixmap_t fMask; // picture mask pixmap
45 PictureAttributes_t fAttributes; // picture attributes
46
47 TGPicture(const char *name, Bool_t scaled = kFALSE):
49 {
51 SetRefCount(1);
52 }
53
54 TGPicture(const char *name, Pixmap_t pxmap, Pixmap_t mask = 0);
55
56 // override default of TObject
57 void Draw(Option_t * = "") { MayNotUse("Draw(Option_t*)"); }
58
59public:
60 virtual ~TGPicture();
61
62 const char *GetName() const { return fName; }
63 UInt_t GetWidth() const { return fAttributes.fWidth; }
64 UInt_t GetHeight() const { return fAttributes.fHeight; }
65 Pixmap_t GetPicture() const { return fPic; }
66 Pixmap_t GetMask() const { return fMask; }
67 Bool_t IsScaled() const { return fScaled; }
68 ULong_t Hash() const { return fName.Hash(); }
69 static const char *HashName(const char *name, Int_t width, Int_t height);
70
71 virtual void Draw(Handle_t id, GContext_t gc, Int_t x, Int_t y) const;
72 void Print(Option_t *option="") const;
73
74 ClassDef(TGPicture,0) // Pictures and icons used by the GUI classes
75};
76
77
79
80protected:
81 const TGClient *fClient; // client to which selected picture belongs
82
84 static TGGC &GetSelectedGC();
85
87 TGPicture(gp), fClient(gp.fClient) { }
89 {if(this!=&gp) { TGPicture::operator=(gp); fClient=gp.fClient;}
90 return *this;}
91
92public:
93 TGSelectedPicture(const TGClient *client, const TGPicture *p);
94 virtual ~TGSelectedPicture();
95
96 ClassDef(TGSelectedPicture,0) // Selected looking picture
97};
98
99
100class TGPicturePool : public TObject {
101
102protected:
103 const TGClient *fClient; // client for which we keep icon pool
104 TString fPath; // icon search path
105 THashTable *fPicList; // hash table containing the icons
106
109
110public:
111 TGPicturePool(const TGClient *client, const char *path):
112 fClient(client), fPath(path), fPicList(0) { }
113 virtual ~TGPicturePool();
114
115 const char *GetPath() const { return fPath; }
116 const TGPicture *GetPicture(const char *name);
117 const TGPicture *GetPicture(const char *name, char **xpm);
118 const TGPicture *GetPicture(const char *name, UInt_t new_width, UInt_t new_height);
119 const TGPicture *GetPicture(const char *name, Pixmap_t pxmap, Pixmap_t mask = 0);
120 void FreePicture(const TGPicture *pic);
121
122 void Print(Option_t *option="") const;
123
124 ClassDef(TGPicturePool,0) // Picture and icon cache
125};
126
127#endif
ULong_t Handle_t
Definition: GuiTypes.h:25
Handle_t Pixmap_t
Definition: GuiTypes.h:29
const Handle_t kNone
Definition: GuiTypes.h:87
Handle_t GContext_t
Definition: GuiTypes.h:37
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
unsigned long ULong_t
Definition: RtypesCore.h:51
bool Bool_t
Definition: RtypesCore.h:59
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:326
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
char name[80]
Definition: TGX11.cxx:109
Definition: TGGC.h:31
const char * GetPath() const
Definition: TGPicture.h:115
virtual ~TGPicturePool()
Delete picture cache.
Definition: TGPicture.cxx:293
TString fPath
Definition: TGPicture.h:104
THashTable * fPicList
Definition: TGPicture.h:105
void Print(Option_t *option="") const
List all pictures in the pool.
Definition: TGPicture.cxx:307
TGPicturePool(const TGPicturePool &)
copy constructor
Definition: TGPicture.cxx:54
void FreePicture(const TGPicture *pic)
Remove picture from cache if nobody is using it anymore.
Definition: TGPicture.cxx:277
const TGClient * fClient
Definition: TGPicture.h:103
const TGPicture * GetPicture(const char *name)
Get a picture from the picture pool.
Definition: TGPicture.cxx:80
TGPicturePool & operator=(const TGPicturePool &)
assignment operator
Definition: TGPicture.cxx:65
TGPicturePool(const TGClient *client, const char *path)
Definition: TGPicture.h:111
Pixmap_t fPic
Definition: TGPicture.h:43
PictureAttributes_t fAttributes
Definition: TGPicture.h:45
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
Pixmap_t fMask
Definition: TGPicture.h:44
ULong_t Hash() const
Return hash value for this object.
Definition: TGPicture.h:68
Pixmap_t GetMask() const
Definition: TGPicture.h:66
Bool_t IsScaled() const
Definition: TGPicture.h:67
const char * GetName() const
Returns name of object.
Definition: TGPicture.h:62
TGPicture(const char *name, Bool_t scaled=kFALSE)
Definition: TGPicture.h:47
UInt_t GetHeight() const
Definition: TGPicture.h:64
void Draw(Option_t *="")
Default Draw method for all objects.
Definition: TGPicture.h:57
Pixmap_t GetPicture() const
Definition: TGPicture.h:65
virtual ~TGPicture()
Delete picture object.
Definition: TGPicture.cxx:361
Bool_t fScaled
Definition: TGPicture.h:42
void Print(Option_t *option="") const
Print picture info.
Definition: TGPicture.cxx:386
TString fName
Definition: TGPicture.h:41
UInt_t GetWidth() const
Definition: TGPicture.h:63
static TGGC & GetSelectedGC()
Return selection graphics context in use.
Definition: TGPicture.cxx:439
static TGGC * fgSelectedGC
Definition: TGPicture.h:83
TGSelectedPicture(const TGSelectedPicture &gp)
Definition: TGPicture.h:86
virtual ~TGSelectedPicture()
Delete selected picture.
Definition: TGPicture.cxx:430
const TGClient * fClient
Definition: TGPicture.h:81
TGSelectedPicture & operator=(const TGSelectedPicture &gp)
Definition: TGPicture.h:88
THashTable implements a hash table to store TObject's.
Definition: THashTable.h:35
Mother of all ROOT objects.
Definition: TObject.h:37
TObject & operator=(const TObject &rhs)
TObject assignment operator.
Definition: TObject.h:268
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:933
Definitions for TRefCnt, base class for reference counted objects.
Definition: TRefCnt.h:27
void SetRefCount(UInt_t r)
Definition: TRefCnt.h:39
Basic string class.
Definition: TString.h:131
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
Definition: TString.cxx:638
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
ULong_t * fPixels
Definition: GuiTypes.h:329